FileEdit.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <template>
  2. <div>
  3. <div class="qualityManual-container-office">
  4. <jjtOnlyOffice :option="option" />
  5. </div>
  6. </div>
  7. </template>
  8. <script>
  9. import { ref, onMounted, defineEmits } from "vue";
  10. import { useRouter, useRoute } from "vue-router";
  11. import jjtOnlyOffice from "@/components/OnlyOffice/index.vue";
  12. import useUserStore from "@/store/modules/user";
  13. // import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
  14. import {
  15. listInfo,
  16. getInfo,
  17. delInfo,
  18. addInfo,
  19. updateInfo,
  20. } from "@/api/biz/info";
  21. export default {
  22. props: {
  23. docId: {
  24. type: Number, // 这里的类型应该匹配你要传递的数据类型
  25. // required: true, // 如果这个属性是必须的,请添加此项
  26. },
  27. copyRow: {
  28. //点击外层列表的哪项数据
  29. type: Object,
  30. // required: true,
  31. },
  32. historyPrew: {
  33. Boolean,
  34. default: false,
  35. },
  36. historycopyRow: {
  37. //点击历史预览的哪项数据
  38. type: Object,
  39. default: () => {},
  40. },
  41. onlyView: {
  42. Boolean,
  43. default: false,
  44. },
  45. },
  46. setup(props) {
  47. let docId = props.docId || '';
  48. let copyRow = props.copyRow || '';
  49. const router = useRouter(); //注册路由
  50. const route = useRoute();
  51. const uid = useUserStore().uid
  52. let option = ref({
  53. key: "",
  54. url: "", //在线文档地址
  55. isEdit: props.onlyView, //是否允许编辑
  56. fileType: "", //文件扩展名
  57. title: "", //文件标题
  58. user: {
  59. id: null, //用户ID
  60. name: "", //用户姓名
  61. },
  62. userdata: "",
  63. editUrl: "", //回调地址
  64. });
  65. let show = ref(true);
  66. let newObj = ref({});
  67. function oo(docId, isEdit) {
  68. if (docId && !props.historyPrew) {
  69. getInfo(docId).then((response) => {
  70. const obj = response.data;
  71. obj.isEdit = isEdit;
  72. newObj.value = obj;
  73. option.value.isEdit = obj.isEdit;
  74. option.value.url = `${window.location.origin}${
  75. import.meta.env.VITE_APP_BASE_API
  76. }/api/access/${obj.docId}?uid=${uid}`;
  77. option.value.title = obj.fileName;
  78. option.value.key = obj.fileId;
  79. option.value.fileType = obj.fileType.replace(".", "");
  80. option.value.editUrl = `${window.location.origin}${
  81. import.meta.env.VITE_APP_BASE_API
  82. }/only-office/callback/${obj.docId}?name=${useUserStore().uname}`;
  83. option.value.user = {
  84. id: useUserStore().uid, //用户ID
  85. name: useUserStore().uname, //用户姓名
  86. };
  87. });
  88. } else if (docId && props.historyPrew) {
  89. option.value.isEdit = false;
  90. option.value.url = `${window.location.origin}${
  91. import.meta.env.VITE_APP_BASE_API
  92. }/api/access/${props.historycopyRow.docId}?uid=${uid}`;
  93. option.value.title = props.copyRow.fileName;
  94. option.value.key = props.historycopyRow.fileId;
  95. option.value.fileType = props.copyRow.fileType.replace(".", "");
  96. option.value.editUrl = `${window.location.origin}${
  97. import.meta.env.VITE_APP_BASE_API
  98. }/only-office/callback/${props.docId}?name=${useUserStore().uname}`;
  99. option.value.user = {
  100. id: useUserStore().uid, //用户ID
  101. name: useUserStore().uname, //用户姓名
  102. };
  103. // const emit = defineEmits(["cancleHistoryPrew"]);
  104. // emit("cancleHistoryPrew",false);
  105. // console.log(option.value,'option3===');
  106. }
  107. }
  108. /** 修改按钮操作 */
  109. function edit() {
  110. oo(docId, true);
  111. }
  112. onMounted(() => {
  113. let route = useRoute();
  114. if(route.query.clickRowId){
  115. docId = route.query.clickRowId
  116. copyRow = JSON.parse(route.query.copyRow)
  117. }
  118. edit();
  119. // let row = JSON.parse(newObj.value)
  120. // console.log(row, '852');
  121. });
  122. return {
  123. option,
  124. show,
  125. newObj,
  126. route,
  127. uid
  128. };
  129. },
  130. components: {
  131. jjtOnlyOffice,
  132. },
  133. };
  134. </script>
  135. <style scoped></style>