From 7033fa158e4f62fbb756344f6c359c93750e7a34 Mon Sep 17 00:00:00 2001 From: fujunling <2984387807@qq.com> Date: 星期五, 07 七月 2023 10:51:36 +0800 Subject: [PATCH] 批量带入 --- Source/UBCS-WEB/src/components/BatchImport/ShowImportData.vue | 188 +++++++++++++++++++++++++++++++--------------- 1 files changed, 126 insertions(+), 62 deletions(-) diff --git a/Source/UBCS-WEB/src/components/BatchImport/ShowImportData.vue b/Source/UBCS-WEB/src/components/BatchImport/ShowImportData.vue index 6bfd88d..b4ebd93 100644 --- a/Source/UBCS-WEB/src/components/BatchImport/ShowImportData.vue +++ b/Source/UBCS-WEB/src/components/BatchImport/ShowImportData.vue @@ -6,8 +6,19 @@ append-to-body top="5vh" > + <!-- <div> + <FormTemplate + v-if="type === 'batchApplyCode'" + type="add" + :selfColumnType="selfColumnType" + :selfColumnConfig="selfColumnConfig" + ref="CodeApply" + @getFormData="getCodeApplyFormData" + @referConfigDataUpdate="referConfigDataUpdate" + ></FormTemplate> + </div> --> <div class="flex_box"> - <div class="left" :style="{ width: leftWidth }"> + <div class="left" :style="{ width: leftWidth + 'px' }" v-show="false"> <div class="isExpand_box"> <el-link type="primary" @click="hideTree"> <i @@ -38,9 +49,10 @@ > </el-tree> </div> - <div class="right"> - <div class="tab_box"> + <div class="right" :style="{ width: 1280 - leftWidth - 60 + 'px' }"> + <div class="tab_box" style="width: 100%"> <el-tabs + style="width: 100%" v-model="activeTab" type="card" @tab-click="handleClick" @@ -55,33 +67,31 @@ highlight-current-row @current-change="resembleRowChange" @selection-change="tab1TableSelectChange" + v-if="cloNamesList.length > 1" > - <el-table-column type="index"></el-table-column> + <el-table-column + type="selection" + width="100px" + align="center" + ></el-table-column> + <el-table-column + type="index" + label="搴忓彿" + width="100px" + align="center" + ></el-table-column> <el-table-column v-for="item in cloNamesList" :key="item.field" :prop="item.field" :label="item.title" :width="item.width" + align="center" > </el-table-column> </el-table> - </el-tab-pane> - <el-tab-pane :label="tab2Name" name="tab2"> - <el-table border :data="tab2Table" height="400px"> - <el-table-column - v-for="item in cloNamesList" - :key="item.field" - :prop="item.field" - :label="item.title" - :width="item.width" - > - </el-table-column> - </el-table> - </el-tab-pane> - </el-tabs> - </div> - <div> + <div v-else style="height: 400px"></div> + <div> <el-table border :data="currentSelectedResemble" @@ -94,6 +104,7 @@ :prop="item.field" :label="item.title" :minWidth="item.minWidth" + align="center" > <template #default="{ row }"> <span v-if="item.field === 'id'"> @@ -110,15 +121,35 @@ v-show="resembleColumList.length > 0" prop="rowIndex" label="excel琛屾暟" + align="center" ></el-table-column> </el-table> </div> + </el-tab-pane> + <el-tab-pane :label="tab2Name" name="tab2"> + <el-table border :data="tab2Table" height="600px"> + <el-table-column + v-for="item in cloNamesList" + :key="item.field" + :prop="item.field" + :label="item.title" + :width="item.width" + align="center" + > + </el-table-column> + </el-table> + </el-tab-pane> + </el-tabs> + </div> + </div> </div> <template #footer> <div> - <el-button size="small" type="primary" @click="submit">纭畾瀵煎叆</el-button> - <el-button size="small">鍙栨秷</el-button> + <el-button size="small" type="primary" @click="submit" + >纭畾瀵煎叆</el-button + > + <el-button size="small" @click="dialogVisible = false">鍙栨秷</el-button> </div> </template> <FormTemplateDialog @@ -133,16 +164,20 @@ <script> import { - getHistorySuccessTable, - getHistoryResembleTable, + getSuccessTable, + getResembleTable, getFormTemplate, getCurretnSelectedRowResemble, - submitHistoryimport + submitHistoryimport, } from "../../api/batchImport/index"; import ResembleQuery from "../FormTemplate/ResembleQuery.vue"; +import FormTemplate from "../FormTemplate/FormTemplate.vue"; +import codeApply from "@/mixins/codeApply.js"; + export default { name: "ShowImportData", - components: { ResembleQuery }, + components: { ResembleQuery, FormTemplate }, + // mixins: [codeApply], props: { title: { type: String, @@ -159,11 +194,16 @@ }, classifyAttr: { type: String, - default: 'id' + default: "id", }, codeClassifyOid: { type: String, - default: '' + default: "", + }, + type: String, + secDTOList: { + type: Array, + default: () => ({}) } }, computed: { @@ -180,17 +220,17 @@ return { isExpand: true, filterText: "", - leftWidth: "200px", + leftWidth: 200, templateOid: null, - tab1Name: '鐩镐技椤�', - tab2Name: '姝g‘鏁版嵁', + tab1Name: "鐩镐技椤�", + tab2Name: "姝g‘鏁版嵁", tab1Table: [], selectedTab1Table: [], tab2Table: [], activeTab: "tab1", - cloNamesList: [], + cloNamesList: [], //鍒楄〃澶撮儴瀛楁 localCodeClassifyOid: "", - resembleColumList: [], + resembleColumList: [], //鐩镐技椤规煡鍑烘潵鐨勫垪琛ㄥ瓧娈� currentSelectedResemble: [], currentSelectedResembleRow: { templateOid: "", @@ -198,6 +238,7 @@ rowOid: "", formTemplateVisible: false, }, + secVOList: [], }; }, @@ -208,41 +249,46 @@ }, hideTree() { if (this.isExpand) { - this.leftWidth = "50px"; + this.leftWidth = 50; } else { - this.leftWidth = "200px"; + this.leftWidth = 200; } this.isExpand = !this.isExpand; }, treeNodeClick(data) { + console.log(data); this.localCodeClassifyOid = data.codeclassifyoid; this.cloNamesList = data.cloNamesList; - this.templateOid = data.codeClassifyTemplateVO.oid - getHistorySuccessTable(this.redisOid).then((res) => { - this.tab2Table = res.data - }); - getHistoryResembleTable({ - codeClassifyOid: data.codeClassifyOid, + this.templateOid = data.oid; + getResembleTable({ + codeClassifyOid: this.templateOid, redisOid: this.redisOid + "-resemble", }).then((res) => { - this.tab1Table = res.data + this.tab1Table = res.data.data; + }); + // 鑾峰彇姝g‘鏁版嵁 + getSuccessTable({ + codeClassifyOid: this.templateOid, + redisOid: this.redisOid + "-ok", + }).then((res) => { + this.tab2Table = res.data.data; }); getFormTemplate({ templateOid: data.oid, - codeClassifyOid: data.codeClassifyOid, + codeClassifyOid: this.localCodeClassifyOid, }).then((res) => { this.resembleColumList = res.data.resembleTableVO.cols[0]; }); }, tab1TableSelectChange(selection) { - this.selectedTab1Table = selection + this.selectedTab1Table = selection; }, resembleRowChange(row) { getCurretnSelectedRowResemble({ redisOid: this.redisOid + "-resemble-data", dataOid: row.oid, }).then((res) => { - this.currentSelectedResemble = res.data + this.currentSelectedResemble = res.data.data; }); }, openFormTemlpate(row) { @@ -251,37 +297,54 @@ templateOid: row.codetemplateoid, codeClassifyOid: this.localCodeClassifyOid, rowOid: row.rowOid, - } + }; }, submit() { const params = { - classifyAttr: this.classifyAttr, - isImprot: true, + classifyAttr: this.type === 'historyImport' ? this.classifyAttr : undefined, + improt: this.type === 'historyImport' ? true : false, codeImprotSaveDatVOList: [ { - Clos: this.cloNamesList.map(item => item.title), + Clos: this.cloNamesList.map((item) => item.title), dataList: this.tab2Table.concat(this.selectedTab1Table), orderDTO: { codeClassifyOid: this.codeClassifyOid, templateOid: this.templateOid, - secDTOList: [] - } - } - ] - } - submitHistoryimport(params).then(res => { - if (res.code === 200) { - this.$message.success(res.obj) + secDTOList: this.secDTOList, + }, + }, + ], + }; + submitHistoryimport(params).then((res) => { + console.log(res); + if (res.data.code === 200) { + this.$message.success(res.data.msg); } else { - this.$message.error(res.obj) + this.$message.error(res.data.msg); } - }) - } + }); + }, }, watch: { filterText(val) { this.$refs.tree.filter(val); }, + leftTree: { + immediate: true, + deep: true, + handler(arr) { + if (arr.length > 0 ) { + this.treeNodeClick(arr[0]) + if (this.type === 'batchImportApply') { + this.tab1Name = '鏈夌浉浼奸」鎴栭敊璇暟鎹�' + this.tab2Name = '姝g‘鏁版嵁' + this.leftWidth = 0 + } else { + this.leftWidth = 200 + } + } + } + } }, }; </script> @@ -289,13 +352,15 @@ <style lang="scss" scoped> .flex_box { display: flex; + width: 1280px; .left { - transition: all 0.3s; + transition: all 0.5s; .isExpand_box { margin-bottom: 10px; text-align: right; } .filter_tree { + margin-top: 15px; max-height: 400px; overflow-y: scroll; } @@ -303,7 +368,6 @@ .right { margin-left: 20px; margin-top: 30px; - width: 1000px; } } </style> -- Gitblit v1.9.3