From 5578f0d1faf6ff1c5fb10f9eea805fd0411d3c1b Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期三, 06 十二月 2023 17:42:16 +0800 Subject: [PATCH] 整合代码 --- Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue | 389 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 273 insertions(+), 116 deletions(-) diff --git a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue index 376bd5f..4157faa 100644 --- a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue +++ b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue @@ -11,7 +11,7 @@ v-if="!['PREVIEW', 'DELETEFILE', 'revisefile', 'DOWNLOADFILE', 'UPLOADFILE'].includes(item.uniqueFlag)" :key="index" plain size="small" type="primary" - @click="handelBtnClick(item)">{{ + @click="handleBtnClick(item)">{{ item.name }} </el-button> @@ -36,33 +36,38 @@ </el-select></span> </div> <div class="custom-table"> - <el-table class="cus-table" ref="dataTable" v-loading="isLoading" :data="tableData" - :height="tableHeight" border - @select="handleSelection" @cell-click="handleCellClick" @row-click="handleRowClick" - @select-all="handleSelectionAll" @selection-change="handleSelectionChange" - @sort-change="sortChange"> + <el-table ref="dataTable" v-loading="isLoading" :data="tableData" + :header-cell-style="{background:'#FAFAFA',color:'#505050'}" + :height="tableHeight" border + class="cus-table" @select="handleSelection" @cell-click="handleCellClick" + @row-click="handleRowClick" @select-all="handleSelectionAll" + @selection-change="handleSelectionChange" @sort-change="sortChange"> <el-table-column v-if="tableData.length != 0" fixed type="selection" width="55"></el-table-column> <el-table-column v-if="tableData.length != 0" fixed label="搴忓彿" type="index" width="55"> </el-table-column> <!-- 鐢熷懡鍛ㄦ湡--> - <el-table-column v-for="(item,index) in lcstatusArray" key="index" v-if=" lcstatusArray.length !== 0 && !item.hidden" label="鐢熷懡鍛ㄦ湡鍊�" prop="lcstatus" - :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width" - align="center"> + <el-table-column v-for="(item,index) in lcstatusArray" + v-if=" lcstatusArray.length >= 0 && !item.hidden" + key="index" :show-overflow-tooltip="true" :sortable="item.sortable" + :width="item.width" align="center" label="鐢熷懡鍛ㄦ湡鍊�" + prop="lcstatus"> <template slot-scope="scope"> <span>{{ scope.row.lcstatus_text }}</span> </template> </el-table-column> <!-- 缂栧彿--> - <el-table-column v-for="(item, index) in CodeArray" key="index" v-if="CodeArray.length !== 0 && !item.hidden" :label="item.label" :prop="item.prop" - :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width" - align="center"> + <el-table-column v-for="(item, index) in CodeArray" v-if="CodeArray.length !== 0 && !item.hidden" + key="index" :label="item.label" :prop="item.prop" + :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width" + align="center"> <template slot-scope="scope"> <el-link type="primary" @click="CodeLinkHandler(scope.row)"> {{ scope.row[item.prop] }} </el-link> </template> </el-table-column> - <el-table-column v-for="item in this.tableHeadFindData" v-if="!item.hidden && item.prop !== 'id' && item.prop !== 'lcstatus'" + <el-table-column v-for="item in this.tableHeadFindData" + v-if="!item.hidden && item.prop !== 'id' && item.prop !== 'lcstatus' && Object.keys(item.referConfig).length <= 0" :key="item.id" :formatter="item.formatter" :label="item.label" :prop="item.prop" @@ -71,10 +76,32 @@ :width="item.width" align="center"> </el-table-column> - + <!-- 鍙傜収鏁版嵁--> + <el-table-column v-for="(item,index) in referArray" + v-if="item.referConfig && Object.keys(item.referConfig).length > 0 && !item.hidden" + :key="index" + :label="item.title" :show-overflow-tooltip="true" + :sortable="item.sortable" :width="item.width" align="center" + prop="jiliangdw"> + <template slot-scope="scope"> + <span>{{ scope.row.jiliangdwname }}</span> + </template> + </el-table-column> </el-table> </div> </el-row> + <!-- 鐢宠--> + <FormTemplateDialog :TreeValue="TreeValue" :codeClassifyOid="this.codeClassifyOid" + :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :templateOid="templateOid" + :visible.sync="applyvisible" status="apply" + type="add" + @submit="applySumbit"> + </FormTemplateDialog> + <!-- 淇--> + <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" + :disabledProp="disabledProp" :selectRow="selectRow" :templateOid="templateOid" + :title="'鏁版嵁淇'" :visible.sync="amendvisible" status="amend" + type="add" @submit="amendSumbit"></FormTemplateDialog> <!-- 鏂板--> <FormTemplateDialog :TreeValue="TreeValue" :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :templateOid="templateOid" @@ -84,12 +111,15 @@ </FormTemplateDialog> <!-- 淇敼--> <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" - :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :title="'淇敼缂栫爜淇℃伅'" + :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" + :title="'淇敼缂栫爜淇℃伅'" :visible.sync="editvisible" type="edit" @submit="EditSumbit"></FormTemplateDialog> + <!-- 鎵归噺缂栬緫--> + <!-- <MasterEditBulk :visible.sync="bulkeditvisible" ></MasterEditBulk>--> <!-- 鏁版嵁璇︽儏--> <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" - :rowOid="this.LinkObject.oid" :templateOid="templateOid" + :rowOid="this.LinkObject.oid" :templateOid="templateOid" :title="'鏁版嵁璇︽儏'" :visible.sync="LinkVisible" type="detail"></FormTemplateDialog> @@ -119,6 +149,11 @@ :tableData="tableData" :tableHeadData="tableHeadFindData" :templateOid="templateOid" :visible.sync="dialogPush"></MasterTransfer> + <!-- 瀵煎叆--> + <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :resetTable="CrudRend" + :selectRow="selectRow" :tableHeadData="tableHeadFindData" + :visible.sync="batchImportData.visible"> + </BatchImport> <!-- 鐩镐技椤�--> <ResembleQueryDialog :codeClassifyOid="codeClassifyOid" :codeRuleOid="this.codeRuleOid" :rowOid="rowOid" :templateOid="templateOid" :visible.sync="similarVisible"></ResembleQueryDialog> @@ -130,11 +165,6 @@ </el-pagination> </div> </div> - </div> - <div> - <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :resetTable="CrudRend" - :visible.sync="batchImportData.visible"> - </BatchImport> </div> <div class="bottom"> <el-collapse v-model="visibleNames" @change="handleCollapse"> @@ -156,7 +186,9 @@ deleteCode, upSaveCode, applyGroupCode, - receiveEditApply + receiveEditApply, + applySaveCode, + exportGroupCodeExcel } from "@/api/GetItem"; import {processTS, changeStatus} from "@/api/template/setPersonnel" import {listCodeAttributeByClassId} from "@/api/integration/integration.js"; @@ -164,9 +196,11 @@ import SetPersonnel from "@/components/template/SetPersonnel"; import ResembleQueryDialog from "@/components/FormTemplate/ResembleQueryDialog.vue"; import BatchImport from '@/components/BatchImport' +import MasterEditBulk from '@/components/Master/MasterEditBulk' import {validatenull} from "@/util/validate"; import fileInHtml from "@/components/file/inHtml.vue"; import {getUserInfo} from "@/api/system/user"; +import func from "@/util/func"; export default { components: { @@ -174,7 +208,8 @@ SetPersonnel, ResembleQueryDialog, BatchImport, - fileInHtml + fileInHtml, + MasterEditBulk }, name: "Crud.vue", props: { @@ -223,17 +258,26 @@ Treedata: { type: Array }, - + nodeClickList: { + type: Array, + default: [] + } }, data() { return { + //鎵归噺缂栬緫瀵硅瘽妗� + bulkeditvisible: false, LinkVisible: false, LinkObject: {}, // 缂栫爜鏁版嵁 LinkList: [], isCodeArrayPushed: false, // 缂栫爜鏁扮粍娣诲姞鏍囪瘑鍙橀噺 CodeArray: [], - lcstatusArray:[], - islcstatusPushed:false, + //鐢熷懡鍛ㄦ湡鏁扮粍 + lcstatusArray: [], + //鍙傜収鏁版嵁鏁扮粍 + referArray: [], + islcstatusPushed: false, + isReferPushed: false, // 鐘舵�佹悳绱� statusSelect: "all", // 鍏抽敭瀛楁煡璇� @@ -272,6 +316,8 @@ label: "name", }, tableHeadFindDatas: [], + applyvisible: false, + amendvisible: false, addvisible: false, editvisible: false, findvisible: false, @@ -318,7 +364,8 @@ hasUpload: true, height: 110 }, - result: '' + result: '', + elapsedTime: '', }; }, computed: { @@ -328,7 +375,7 @@ oids.push(ele.oid); }); return oids; - } + }, }, created() { // const index = this.$route.query.id.indexOf('@name=') + '@name='.length; @@ -346,6 +393,11 @@ this.doLayout() }, watch: { + isLoading: { + handler(newval) { + // console.log(newval) + } + }, tableHeadDataFateher: { handler(newval, oldval) { this.options = newval.tableDefineVO.seniorQueryColumns @@ -361,7 +413,7 @@ handler(newval, oldval) { this.tableData = newval; this.searchResults = newval - this.doLayout() + this.doLayout(); }, }, tableHeadFindData: { @@ -386,26 +438,31 @@ } }) this.tableHeadFindDatas = newval; - // console.log('new',newval) - if (!this.isCodeArrayPushed) { + if (newval) { + this.CodeArray = []; if (newval.find(item => item.prop === 'id')) { this.CodeArray.push(newval.find(item => item.prop === 'id')); } else { - this.CodeArray.push([]); + this.CodeArray = []; } - // console.log('CodeArray', this.CodeArray); - this.isCodeArrayPushed = true; + } - if (!this.islcstatusPushed) { + if (newval) { + this.lcstatusArray = []; if (newval.find(item => item.prop === 'lcstatus')) { this.lcstatusArray.push(newval.find(item => item.prop === 'lcstatus')); } else { - this.lcstatusArray.push([]); + this.lcstatusArray = []; } - // console.log('lcstatusArray', this.lcstatusArray); - this.islcstatusPushed = true; } - // console.log('new',newval) + if (newval) { + this.referArray = []; + if (newval.find(item => Object.keys(item.referConfig).length > 0)) { + this.referArray.push(newval.find(item => Object.keys(item.referConfig).length > 0)); + } else { + this.referArray = []; + } + } this.WupinFindValue = '' }, }, @@ -422,9 +479,7 @@ }, tableHeadBtnData: { handler(newval) { - if (newval.length !== 0) { - this.masterVrBtnList = newval - } + this.masterVrBtnList = newval }, deep: true }, @@ -434,8 +489,7 @@ this.LinkObject = row; this.LinkVisible = true; this.LinkList = Object.keys(row).map(property => property) - // console.log(result); - // console.log(this.LinkObject) + }, //鐘舵�佹悳绱� cellSelectHandler(row) { @@ -446,6 +500,7 @@ } }, cellStatusFind(lcstatus) { + this.isLoading = true; TableData({ templateOid: this.templateOid, codeClassifyOid: this.codeClassifyOid, @@ -453,7 +508,10 @@ limit: this.page.pageSize, 'conditionMap[lcstatus]': lcstatus }).then(res => { - this.tableData = res.data.data + // console.log(res) + this.tableData = res.data.data; + this.page.total = res.data.total; + this.isLoading = false; }) }, //灞曞紑闄勪欢 @@ -469,10 +527,10 @@ openVis(visible) { this[visible] = true }, - handelBtnClick(event) { + handleBtnClick(event) { const {uniqueFlag} = event this.$nextTick(() => { - if (uniqueFlag === 'CODEADD') return this.addvisible = true + if (uniqueFlag === 'CODEADD') return this.addSaveHandler() if (uniqueFlag === 'CODEEDIT') return this.editHandler() if (uniqueFlag === 'CODEBATCHADD') return this.openBatchImport('batchImportApply') if (uniqueFlag === 'CODEIMPORTHISTORY') return this.openBatchImport('historyImport') @@ -497,6 +555,129 @@ if (uniqueFlag === 'receiveEditApply') return this.receiveEditApply() // 鐩镐技椤规煡璇� // if(uniqueFlag === 'CODEEDIT') return this.similarHandler() + // 鏍囧噯鐢宠 + if (uniqueFlag === 'CODEAPPLY') return this.codeApplyHandler() + // 鏍囧噯淇 + if (uniqueFlag === 'CODEAMEND') return this.codeAMENDHandler() + //鎵归噺缂栬緫 + if (uniqueFlag === 'bulkEdit') return this.bulkEditHandler("bulkEdit") + //闆嗗洟鐮佸鍑� + if (uniqueFlag === 'excelGroupCode') return this.excelGroupCode() + //闆嗗洟鐮佸鍏� + if (uniqueFlag === 'importGroupCode') return this.importGroupCode("groupCode") + }); + }, + importGroupCode(type) { + this.batchImportData.visible = true + this.batchImportData.type = type + this.batchImportData.codeClassifyOid = this.codeClassifyOid + }, + //闆嗗洟鐮佸鍑� + excelGroupCode() { + this.isLoading = true; + exportGroupCodeExcel({ + codeClassifyOid: this.codeClassifyOid, + }).then(res => { + let reader = new FileReader(); + reader.readAsText(res.data) + reader.onload = (result) => { + try { + let resData = JSON.parse(result.target.result); // 瑙f瀽瀵硅薄鎴愬姛 + if (!resData.success) { + console.log("resData", resData) + this.$message.error(resData.msg); + this.isLoading = false; + } + } catch (err) { + // console.log("err",err)// 瑙f瀽鎴愬璞″け璐ワ紝璇存槑鏄甯哥殑鏂囦欢娴� + func.downloadFileByBlobHandler(res); + this.$message.success('涓嬭浇鎴愬姛锛岃鏌ョ湅锛�'); + this.isLoading = false; + } + }; + + }); + }, + //鏍囧噯鐢宠 + codeApplyHandler() { + this.$nextTick(() => { + this.applyvisible = true; + }); + }, + applySumbit(val) { + // console.log('val',val) + if (func.notEmpty(val.ts)) { + val.ts = func.formattedDateTime(val.ts); + //console.log(val.ts); + } + applySaveCode(val).then(res => { + this.$nextTick(() => { + this.applyvisible = false; + this.$message.success("淇濆瓨鎴愬姛"); + this.onLoad() + }) + }) + }, + amendSumbit(val) { + applySaveCode(val).then(res => { + this.$nextTick(() => { + this.amendvisible = false; + this.$message.success("淇濆瓨鎴愬姛"); + this.onLoad() + }) + }) + + }, + //鏍囧噯淇 + codeAMENDHandler() { + let foundItem = false; + this.tableHeadFindData.forEach(item => { + if (item.field === "oldcode" && Object.keys(item.referConfig).length >= 1) { + foundItem = true; + } + }); + if (foundItem) { + if (this.selectRow.length >= 1) { + this.$confirm('宸叉湁鍙傜収鏄惁鍙栨秷鍕鹃�夌户缁墽琛岋紵', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.selectRow = []; + //鍙栨秷鍕鹃�夌姸鎬� + this.$refs.dataTable.clearSelection(); + this.amendvisible = true; + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝綋鍓嶆搷浣�' + }); + }); + } else { + this.amendvisible = true; + } + } else { + if (this.selectRow.length <= 0) { + this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�"); + } else { + this.amendvisible = true; + + } + } + }, + //鎵归噺缂栬緫 + bulkEditHandler(type) { + if (this.nodeClickList.children.length >= 1) { + this.$message.warning('褰撳墠閫夋嫨鐨勫垎绫讳笉鏄彾瀛愯妭鐐癸紝涓嶅厑璁告壒閲忕紪杈戯紒') + return; + } + this.batchImportData.visible = true + this.batchImportData.type = type + this.batchImportData.codeClassifyOid = this.codeClassifyOid + }, + addSaveHandler() { + this.$nextTick(() => { + this.addvisible = true; }); }, //鐢宠闆嗗洟鐮佹暟鎹� @@ -504,9 +685,6 @@ if (this.selectRow.length <= 0) { this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹ā鏉匡紒') } else { - // const requestData = this.selectRow.forEach(item => { - // return { oids: item.oid, btmName: item.btmname }; - // }); const oids = this.selectRow.map(item => item.oid).join(','); applyGroupCode({oids, btmName: this.selectRow[0].btmname}).then(res => { if (res.data.code == 200) { @@ -521,9 +699,6 @@ if (this.selectRow.length <= 0) { this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹ā鏉匡紒') } else { - // const requestData = this.selectRow.forEach(item => { - // return { oids: item.oid, btmName: item.btmname }; - // }); const oids = this.selectRow.map(item => item.oid).join(','); receiveEditApply({oids, btmName: this.selectRow[0].btmname}).then(res => { if (res.data.code == 200) { @@ -674,21 +849,36 @@ }); } }, - handleSizeChange(val) { - this.isLoading = true; - setTimeout(() => { - this.page.pageSize = val; - this.$emit("pageSize", val); - this.CrudRend(); - }, 3000); + async CrudRend() { + this.elapsedTime = 0; + const startTime = performance.now(); + const res = await TableData({ + templateOid: this.templateOid, + codeClassifyOid: this.codeClassifyOid, + page: this.page.currentPage, + limit: this.page.pageSize, + }); + const endTime = performance.now(); + this.elapsedTime = Math.floor(endTime - startTime) * 1; + this.page.total = res.data.total; + this.data = res.data.data; + this.tableData = res.data.data; }, - handleCurrentChange(val) { + + async handleSizeChange(val) { + this.page.pageSize = val; + this.$emit("pageSize", val); this.isLoading = true; - setTimeout(() => { - this.page.currentPage = val; - this.$emit("currentPage", val); - this.CrudRend(); - }, 3000); + await this.CrudRend(); + this.isLoading = false; + }, + + async handleCurrentChange(val) { + this.page.currentPage = val; + this.$emit("currentPage", val); + this.isLoading = true; + await this.CrudRend(); + this.isLoading = false; }, // 鐩戝惉鍗曞厓鏍肩偣鍑讳簨浠跺苟瀛樺偍姝e湪缂栬緫鐨勮 handleCellClick(row, column) { @@ -739,43 +929,6 @@ this.$refs.dataTable.doLayout(); } }) - }, - //琛ㄦ牸澶存覆鏌� - CrudHeaderRend() { - if (this.codeClassifyOid != "") { - MasterTable({ - codeClassifyOid: this.codeClassifyOid - }).then((res) => { - this.options = res.data.tableDefineVO.seniorQueryColumns; - this.List = res.data.tableDefineVO.cols[0]; - this.List.forEach((item) => { - let columnItem = { - label: item.title, - prop: item.queryField, - type: this.columnType[item.type], - sortable: item.sort, - width: item.minWidth, - }; - this.option.column.push(columnItem); - this.option.column = this.tableHeadData; - this.templateOid = res.data.tableDefineVO.oid; - this.$emit("templateOid", this.templateOid); - }); - }); - } - }, - //琛ㄦ牸鏁版嵁 - CrudRend() { - TableData({ - templateOid: this.templateOid, - codeClassifyOid: this.codeClassifyOid, - page: this.page.currentPage, - limit: this.page.pageSize, - }).then((res) => { - this.page.total = res.data.total; - this.data = res.data.data; - this.tableData = res.data.data; - }); }, // 鎺掑簭 sortChange(val) { @@ -830,15 +983,13 @@ }, //缂栬緫 editHandler() { - if (this.selectRow.length <= 0) { + if (this.selectRow.length !== 1) { this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�"); - } else if (this.selectRow.length > 1) { - this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�"); - } else if (this.selectRow[0].lcstatus != "Editing") { - this.$message.warning("缂栫爜鐘舵�佷笉鏄�滅紪杈戜腑鈥�,涓嶅彲缂栬緫"); + } else if (this.selectRow[0].lcstatus !== "Editing") { + this.$message.warning("缂栫爜鐘舵�佷笉鏄�滅紪杈戜腑鈥濓紝涓嶅彲缂栬緫"); } else { this.editvisible = true; - this.rowOid = this.selectRow[0]['oid'] + this.rowOid = this.selectRow[0].oid; } }, //楂樼骇鏌ヨ鎸夐挳 @@ -881,6 +1032,11 @@ }, //澧炲姞淇濆瓨 AddSumbit(val) { + // console.log('val',val) + if (func.notEmpty(val.ts)) { + val.ts = func.formattedDateTime(val.ts); + //console.log(val.ts); + } addSaveCode(val).then(res => { this.$nextTick(() => { this.addvisible = false; @@ -918,10 +1074,7 @@ }, //杈撳叆鍥炶溅鎼滅储 tableFindInp() { - /*if (this.WupinFindValue.trim() === '') { - this.$message.warning('杈撳叆鍊间笉鑳戒负绌�') - return; - }*/ + this.isLoading = true; TableData({ templateOid: this.templateOid, codeClassifyOid: this.codeClassifyOid, @@ -929,7 +1082,9 @@ limit: this.page.pageSize, ['conditionMap[' + this.keyWordFind + ']']: '*' + this.WupinFindValue + '*' }).then(res => { - this.tableData = res.data.data + this.tableData = res.data.data; + this.page.total = res.data.total; + this.isLoading = false; }) } @@ -940,8 +1095,9 @@ <style lang="scss" scoped> //鍥哄畾鍒楅珮搴� /deep/ .el-table__fixed { - height: calc(100vh - 370px)!important; + height: calc(100vh - 370px) !important; } + // 婊氬姩鏉℃牱寮忎慨鏀� // 婊氬姩鏉$殑瀹藉害 /deep/ .el-table__body-wrapper::-webkit-scrollbar { @@ -951,6 +1107,7 @@ width: 10px; } + // 婊氬姩鏉$殑婊戝潡 /deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb { background-color: #ececec; @@ -983,7 +1140,7 @@ margin-top: 10px; } - .el-table__body-wrapper{ +.el-table__body-wrapper { height: calc(100% - 44px) !important; } </style> -- Gitblit v1.9.3