From 42085aad206257ddeffe71d6defc547b5e13b4b7 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期一, 26 六月 2023 19:57:50 +0800 Subject: [PATCH] 代码整合 --- Source/UBCS-WEB/src/components/BatchImport/index.vue | 205 ++++++++++++++++++++++++++++++++++---------------- 1 files changed, 139 insertions(+), 66 deletions(-) diff --git a/Source/UBCS-WEB/src/components/BatchImport/index.vue b/Source/UBCS-WEB/src/components/BatchImport/index.vue index 3c65d7a..c73ac79 100644 --- a/Source/UBCS-WEB/src/components/BatchImport/index.vue +++ b/Source/UBCS-WEB/src/components/BatchImport/index.vue @@ -12,12 +12,24 @@ {{ item }} </li> </ul> - <div class="radio_box"> + <div class="radio_box" v-show="currentTypeObj[type]['upParams'] === 'classifyAttr'"> <span>鍒嗙被鐨勮矾寰勪娇鐢ㄧ殑灞炴��:</span> <el-radio-group v-model="classifyAttr"> <el-radio label="id">鍒嗙被缂栧彿</el-radio> <el-radio label="name">鍒嗙被鍚嶇О</el-radio> </el-radio-group> + </div> + <div style="margin-top: 20px;" v-if="showCodeApply && type === 'batchImportApply'"> + <Divider text="缂栫爜瑙勫垯鐨勭爜娈典俊鎭紝璇峰厛閫夋嫨鍚庡啀瀵煎叆" left="30px"></Divider> + <FormTemplate + style="margin-top: 30px;" + type="add" + :selfColumnType="selfColumnType" + :selfColumnConfig="selfColumnConfig" + ref="CodeApply" + @getFormData="getCodeApplyFormData" + @referConfigDataUpdate="referConfigDataUpdate" + ></FormTemplate> </div> <Divider text="excel鏂囦欢锛岄�夋嫨鏂囦欢鍚庝細鑷姩涓婁紶" left="30px"></Divider> <el-upload @@ -30,10 +42,7 @@ :on-success="onSuccess" :show-file-list="false" :on-change="uploadChange" - :data="{ - codeClassifyOid: this.codeClassifyOid, - classifyAttr: this.classifyAttr, - }" + :data="upParams" > <el-button size="small" type="primary" ><i class="el-icon-upload"></i> 鐐瑰嚮涓婁紶</el-button @@ -51,9 +60,12 @@ </template> <ShowImportData :visible.sync="showVisible" - v-if="dialogVisible" + v-if="showVisible" :leftTree="leftTree" + :classifyAttr="classifyAttr" + :codeClassifyOid="codeClassifyOid" :redisOid="redisOid" + :type="type" ></ShowImportData> </el-dialog> </template> @@ -63,12 +75,16 @@ import { downloadHistoryImportTemplate, downloadErrorFile, - getHistoryLeftTree + getHistoryLeftTree, + downloadBatchImportApplyTemplate } from "../../api/batchImport/index"; +import FormTemplate from "../FormTemplate/FormTemplate.vue"; import { getToken } from "@/util/auth"; +import codeApply from '@/mixins/codeApply.js' export default { name: "BatchImport", - components: { ShowImportData }, + mixins: [codeApply], + components: { ShowImportData, FormTemplate }, props: { visible: { type: Boolean, @@ -87,17 +103,6 @@ default: "", }, }, - data() { - return { - classifyAttr: "id", - uploadParams: {}, - downloadLoading: false, - showVisible: false, - leftTree: [], - redisOid:'', - pageLoading: null - }; - }, computed: { uploadHeaders() { return { @@ -112,44 +117,115 @@ this.$emit("update:visible", val); }, }, + title() { + return this.currentTypeObj[this.type]['title'] + }, + tipList() { + return this.currentTypeObj[this.type]['tipList'] + }, + downloadTemplateApi() { + return this.currentTypeObj[this.type]['downloadTemplateFun'] + }, + action() { + return this.currentTypeObj[this.type]['action'] + }, + upParams() { + if (this.type === 'historyImport') { + return { + codeClassifyOid: this.codeClassifyOid, + classifyAttr: this.classifyAttr, + } + } else if(this.type === 'batchImportApply') { + return { + codeClassifyOid: this.codeClassifyOid, + } + } + } + }, + data() { + return { + classifyAttr: "id", + uploadParams: {}, + downloadLoading: false, + showVisible: false, + leftTree: [], + redisOid: "", + pageLoading: null, + currentTypeObj: { + historyImport: { + title: "鍘嗗彶鏁版嵁瀵煎叆", + tipList: [ + "1.鏍囬甯︿簲瑙掓槦鐨勮〃绀哄叧閿睘鎬э紝甯︽槦鍙疯〃绀哄繀杈撻」", + "2.浼佷笟缂栫爜锛岄泦鍥㈢爜鍜岀姸鎬侀兘闇�瑕佸鍏�", + "3.姣忔浠呰兘鏈�澶氬鍏�10000鏉℃暟鎹紝濡傛灉鍑洪敊浼氳繑鍥為敊璇殑鏁版嵁鍜屽師鍥狅紝浣嗘槸姝g‘鐨勬暟鎹細淇濆瓨", + "4.鍒嗙被鐨勮矾寰勯渶瑕佺敤#鍒嗛殧銆備粎濉啓褰撳墠閫夌殑鍒嗙被鏍戜笂鐨勪笅绾у垎绫荤殑璺緞锛屽鏋滃綋鍓嶅垎绫诲凡缁忔槸鍙跺瓙鑺傜偣锛屽垯涓嶅~鍐�", + ], + action: "/api/ubcs-code/mdmEngineController/batchImportHistoryData", + downloadTemplateFun: downloadHistoryImportTemplate, + upParams: 'classifyAttr' + }, + batchImportApply: { + title: "鎵归噺鐢宠缂栫爜", + tipList: [ + "1.鏍囬甯︿簲瑙掓槦鐨勮〃绀哄叧閿睘鎬э紝甯︽槦鍙疯〃绀哄繀杈撻」", + "2.璇蜂竴瀹氬厛閫夋嫨/杈撳叆缂栫爜瑙勫垯鐨勭爜娈靛�煎悗鍐嶉�夋嫨excel鏂囦欢", + "3.姣忔浠呰兘鏈�澶氬鍏�10000鏉℃暟鎹紝濡傛灉鍑洪敊浼氳繑鍥為敊璇殑鏁版嵁鍜屽師鍥狅紝浣嗘槸姝g‘鐨勬暟鎹細淇濆瓨", + "4.濡傛灉灞炴�т负鍙傜収锛屽湪鍙傜収閰嶇疆涓缃涓睘鎬ф椂锛屼紭鍏堜娇鐢╪ame灞炴�х殑鍊硷紝鍚﹀垯濉啓绗竴涓睘鎬х殑鍊笺��", + ], + action: "/api/ubcs-code/mdmEngineController/batchImportCode", + downloadTemplateFun: downloadBatchImportApplyTemplate, + upParams: false + } + }, + }; }, methods: { - getDataByType() { - if (this.type === "historyImport") { - this.title = "鍘嗗彶鏁版嵁瀵煎叆"; - this.tipList = [ - "1.鏍囬甯︿簲瑙掓槦鐨勮〃绀哄叧閿睘鎬э紝甯︽槦鍙疯〃绀哄繀杈撻」", - "2.浼佷笟缂栫爜锛岄泦鍥㈢爜鍜岀姸鎬侀兘闇�瑕佸鍏�", - "3.姣忔浠呰兘鏈�澶氬鍏�10000鏉℃暟鎹紝濡傛灉鍑洪敊浼氳繑鍥為敊璇殑鏁版嵁鍜屽師鍥狅紝浣嗘槸姝g‘鐨勬暟鎹細淇濆瓨", - "4.鍒嗙被鐨勮矾寰勯渶瑕佺敤#鍒嗛殧銆備粎濉啓褰撳墠閫夌殑鍒嗙被鏍戜笂鐨勪笅绾у垎绫荤殑璺緞锛屽鏋滃綋鍓嶅垎绫诲凡缁忔槸鍙跺瓙鑺傜偣锛屽垯涓嶅~鍐�", - ]; - this.action = - "/api/ubcs-code/mdmEngineController/batchImportHistoryData"; - } else if (this.type === "codeApply") { - this.title = "鎵归噺缂栫爜鐢宠"; - this.tipList = [ - "1.鏍囬甯︿簲瑙掓槦鐨勮〃绀哄叧閿睘鎬э紝甯︽槦鍙疯〃绀哄繀杈撻」", - "2.鍒嗙被鐨勮矾寰勯渶瑕佺敤#鍒嗛殧銆備粠褰撳墠閫夋嫨鍒嗙被鑺傜偣鐨勪笅绾у紑濮嬪~鍐欙紝鐩村埌鏈�鏈熬鑺傜偣锛屽 浜у搧#涓绘満浜у搧#涓绘満浜у搧", - ]; - } - }, - beforeUpload(file) { + // getDataByType() { + // if (this.type === "historyImport") { + // } else if (this.type === "codeApply_leaf") { + // this.title = "鎵归噺缂栫爜鐢宠"; + // this.tipList = [ + // "1.鏍囬甯︿簲瑙掓槦鐨勮〃绀哄叧閿睘鎬э紝甯︽槦鍙疯〃绀哄繀杈撻」", + // "2.鍒嗙被鐨勮矾寰勯渶瑕佺敤#鍒嗛殧銆備粠褰撳墠閫夋嫨鍒嗙被鑺傜偣鐨勪笅绾у紑濮嬪~鍐欙紝鐩村埌鏈�鏈熬鑺傜偣锛屽 浜у搧#涓绘満浜у搧#涓绘満浜у搧", + // ]; + // this.action = + // "/api/ubcs-code/mdmEngineController/batchImportHistoryData"; + // } else { + // this.title = "鍘嗗彶鏁版嵁瀵煎叆"; + // this.tipList = [ + // "1.鏍囬甯︿簲瑙掓槦鐨勮〃绀哄叧閿睘鎬э紝甯︽槦鍙疯〃绀哄繀杈撻」", + // "2.浼佷笟缂栫爜锛岄泦鍥㈢爜鍜岀姸鎬侀兘闇�瑕佸鍏�", + // "3.姣忔浠呰兘鏈�澶氬鍏�10000鏉℃暟鎹紝濡傛灉鍑洪敊浼氳繑鍥為敊璇殑鏁版嵁鍜屽師鍥狅紝浣嗘槸姝g‘鐨勬暟鎹細淇濆瓨", + // "4.鍒嗙被鐨勮矾寰勯渶瑕佺敤#鍒嗛殧銆備粎濉啓褰撳墠閫夌殑鍒嗙被鏍戜笂鐨勪笅绾у垎绫荤殑璺緞锛屽鏋滃綋鍓嶅垎绫诲凡缁忔槸鍙跺瓙鑺傜偣锛屽垯涓嶅~鍐�", + // ]; + // this.action = + // "/api/ubcs-code/mdmEngineController/batchImportHistoryData"; + // } + // }, + async beforeUpload(file) { + console.log(223344); const fileType = file.name.split(".").pop(); if (fileType !== "xlsx" && fileType !== "xls") { // 涓婁紶鏍煎紡涓嶇鍚堣姹傦紝鎻愮ず閿欒淇℃伅骞跺彇娑堜笂浼� this.$message.error("鍙厑璁镐笂浼爔lsx銆亁ls鏍煎紡鐨勬枃浠�"); - return false; + return Promise.reject(false) + } + if (this.type === 'batchImportApply') { + const flag = await this.$refs.CodeApply.validate() + if (!flag) { + return Promise.reject(false) + } } return true; }, // 涓嬭浇瀵煎叆妯℃澘 downloadTemplateFun() { this.downloadLoading = true; - downloadHistoryImportTemplate({ + this.downloadTemplateApi({ codeClassifyOid: this.codeClassifyOid, }) .then((res) => { - this.$utilFunc.downloadFileByBlob(res.data, "鍘嗗彶鏁版嵁瀵煎叆妯℃澘.xls"); + this.$utilFunc.downloadFileByBlob(res.data, this.title + "妯℃澘.xls"); this.downloadLoading = false; }) .catch(() => { @@ -157,7 +233,7 @@ }); }, onSuccess(res) { - let fileName = res.data.filePath.split('/').pop() + let fileName = res.data.filePath.split("/").pop(); if (res.data.fileOid) { this.$message.error("璇蜂笅杞介敊璇俊鎭枃浠惰繘琛屾煡鐪嬶紒"); downloadErrorFile({ uuid: res.data.fileOid }).then((res2) => { @@ -165,39 +241,33 @@ }); } if (res.data.redisUuid) { - this.redisOid = res.data.redisUuid - getHistoryLeftTree(res.data.redisUuid).then(res => { - this.leftTree = res.obj.map(item => { + this.redisOid = res.data.redisUuid; + getHistoryLeftTree(res.data.redisUuid).then((res) => { + this.leftTree = res.obj.map((item) => { return { ...item.codeClassifyTemplateVO, - cloNamesList: item.cloNamesList - } - }) - this.showVisible = true - }) + cloNamesList: item.cloNamesList, + }; + }); + this.showVisible = true; + }); } }, uploadChange(file) { - if (file.status === 'ready') { + if (file.status === "uploadin") { this.pageLoading = this.$loading({ lock: true, - text: '鏂囦欢涓婁紶涓�', - spinner: 'el-icon-loading', - background: 'rgba(0, 0, 0, 0.7)' + text: "鏂囦欢涓婁紶涓�", + spinner: "el-icon-loading", + background: "rgba(0, 0, 0, 0.7)", }); } - if (file.status === 'success' || file.status === 'error') { - this.pageLoading.close() + if (file.status === "success" || file.status === "error") { + this.pageLoading.close(); } - } + }, }, watch: { - visible: { - immediate: true, - handler() { - this.getDataByType(); - }, - }, }, }; </script> @@ -205,7 +275,7 @@ <style lang="scss" scoped> ul { color: rgb(188, 188, 188); - margin: 20px 0 0 0; + margin: 20px 0 20px 0; padding: 0; padding-left: 30px; list-style: none; @@ -216,7 +286,7 @@ } .radio_box { padding-left: 30px; - margin: 20px 0 25px 0; + margin: 0px 0 25px 0; display: flex; align-items: center; span { @@ -227,4 +297,7 @@ padding-left: 30px; margin-top: 30px; } +/deep/ .no-print { + display: none !important; +} </style> -- Gitblit v1.9.3