Received.vue 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <!-- @format -->
  2. <template>
  3. <div
  4. class="app-container"
  5. v-loading="loadingWebLoad"
  6. :element-loading-text="loadingWebLoadText"
  7. >
  8. <el-row :gutter="10">
  9. <el-col :span="20">
  10. <div class="iWebOfficeDom" ref="iWebOfficeDom"></div
  11. ></el-col>
  12. <el-col :span="4">
  13. <el-form
  14. ref="receivedFormRef"
  15. label-width="90px"
  16. :rules="rules"
  17. :model="receivedParams"
  18. >
  19. <el-form-item label="来文标题:" prop="title">
  20. <el-input
  21. v-model="receivedParams.title"
  22. placeholder="请输入来文标题"
  23. ></el-input>
  24. </el-form-item>
  25. <el-form-item label="来文单位:" prop="sender">
  26. <el-input
  27. v-model="receivedParams.sender"
  28. placeholder="请输入来文单位"
  29. ></el-input>
  30. </el-form-item>
  31. <el-form-item label="来文日期:" prop="sendTime">
  32. <el-date-picker
  33. format="YYYY-MM-DD"
  34. value-format="YYYY-MM-DD"
  35. v-model="receivedParams.sendTime"
  36. type="date"
  37. placeholder="请输入来文日期"
  38. size="defalut"
  39. />
  40. </el-form-item>
  41. <el-form-item label="流水号: " prop="serial">
  42. <el-input
  43. v-model="receivedParams.serial"
  44. placeholder="请输入流水号"
  45. ></el-input>
  46. </el-form-item>
  47. <el-form-item label="文件字号:" prop="documentNum">
  48. <el-input
  49. v-model="receivedParams.documentNum"
  50. placeholder="请输入文件字号"
  51. ></el-input>
  52. </el-form-item>
  53. <el-form-item label="紧急程度:">
  54. <el-input
  55. v-model="receivedParams.emergencyDegree"
  56. placeholder="请输入紧急程度"
  57. ></el-input>
  58. </el-form-item>
  59. <el-form-item label="添加附件:">
  60. <el-upload
  61. v-model:file-list="receivedParams.yOffcialReceiveFileList"
  62. action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
  63. multiple
  64. :on-preview="handlePreview"
  65. :on-remove="handleRemove"
  66. :limit="3"
  67. >
  68. <el-button type="primary">点击上传附件</el-button>
  69. </el-upload>
  70. </el-form-item>
  71. <el-form-item label="收文原件:">
  72. <el-upload
  73. v-model:file-list="receivedParams.receiveFileId"
  74. :action="`${baseUrl}/system/file/fileupload`"
  75. multiple
  76. :on-preview="handlePreview"
  77. :on-remove="handleRemove"
  78. :limit="3"
  79. >
  80. <el-button type="primary">点击上传原件</el-button>
  81. </el-upload>
  82. </el-form-item>
  83. <el-form-item>
  84. <el-button @click="onSubmit(receivedFormRef)">提交</el-button>
  85. </el-form-item>
  86. </el-form>
  87. </el-col>
  88. </el-row>
  89. </div>
  90. </template>
  91. <script setup>
  92. import { ref, reactive, onMounted } from "vue";
  93. import { LoadStr } from "@/plugins/iWebOffice2015";
  94. import { getRequest } from "../hookFunction";
  95. import { setObj, WebOpenFile } from "@/plugins/my.js";
  96. import { saveReceived } from "@/api/office/received";
  97. const WebOfficeStr = LoadStr();
  98. const iWebOfficeDom = ref(null); //获取他的dom
  99. const loadingWebLoad = ref(false);
  100. const receivedFormRef = ref(false);
  101. const loadingWebLoadText = ref("");
  102. const baseUrl = ref(import.meta.env.VITE_APP_BASE_API);
  103. console.log(baseUrl);
  104. const receivedParams = reactive({
  105. title: null, //来文标题
  106. sender: null, //单位
  107. sendTime: null, //时间
  108. serial: null, //流水号
  109. documentNum: null, //字号
  110. emergencyDegree: null, //紧急程度
  111. sendDownFileId: null,
  112. receiveFileId: [], //收文原件
  113. yOffcialReceiveFileList: [], //附件信息
  114. });
  115. const rules = reactive({
  116. title: [
  117. {
  118. required: true,
  119. message: "来文标题不能为空",
  120. trigger: "blur",
  121. },
  122. ],
  123. sender: [
  124. {
  125. required: true,
  126. message: "来文时间不能为空",
  127. trigger: "blur",
  128. },
  129. ],
  130. sendTime: [
  131. {
  132. required: true,
  133. message: "来文单位不能为空",
  134. trigger: "blur",
  135. },
  136. ],
  137. serial: [
  138. {
  139. required: true,
  140. message: "流水号不能为空",
  141. trigger: "blur",
  142. },
  143. ],
  144. documentNum: [
  145. {
  146. required: true,
  147. message: "字号不能为空",
  148. trigger: "blur",
  149. },
  150. ],
  151. });
  152. let requestParams = getRequest(); //获取当前url地址
  153. let WebOffice;
  154. const onSubmit = (formEl) => {
  155. if (!formEl) return;
  156. formEl.validate(async (valid, fields) => {
  157. if (valid) {
  158. loadingWebLoadText.value = "正在提交中";
  159. loadingWebLoad.value = true;
  160. let { code } = await saveReceived(receivedParams);
  161. if (code == 200) {
  162. loadingWebLoad.value = false;
  163. }
  164. }
  165. });
  166. };
  167. const handlePreview = () => {};
  168. const handleRemove = () => {};
  169. function Load() {
  170. //chrome浏览器,HookEnabled设置为true,用于控件中和本地excel表格的焦点互相切换
  171. let FuncExt = WebOffice.FuncExtModule; //获取iWebOffice2015扩展接口对象
  172. setObj(WebOffice);
  173. FuncExt.ShowToolBar = 1;
  174. WebOpenFile();
  175. loadingWebLoad.value = false;
  176. //FuncExt.EditType="1,1"; //可以编辑,不显示痕迹,可以有批注
  177. }
  178. function OnReady() {
  179. //获取iWebOffice2015控件对象,WebOffice.FuncExtModule是iWebOffice2015控件扩展接口对象
  180. WebOffice = document.getElementById("WebOffice2015");
  181. setTimeout(function () {
  182. Load();
  183. }, 10); //需要做一个延时,iWebOffice2015才能获取FuncExtModule扩展接口对象
  184. }
  185. onMounted(() => {
  186. loadingWebLoad.value = true;
  187. iWebOfficeDom.value.innerHTML = WebOfficeStr;
  188. OnReady();
  189. });
  190. </script>
  191. <style lang="scss" scoped>
  192. .iWebOfficeDom {
  193. height: 950px;
  194. }
  195. </style>