From d30089f9dd63f5f844433c5414b471f2676eec3a Mon Sep 17 00:00:00 2001 From: ludc Date: 星期三, 02 八月 2023 16:05:56 +0800 Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs --- Source/UBCS-WEB/src/components/Master/MasterTransfer.vue | 188 ++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 160 insertions(+), 28 deletions(-) diff --git a/Source/UBCS-WEB/src/components/Master/MasterTransfer.vue b/Source/UBCS-WEB/src/components/Master/MasterTransfer.vue index ccfc623..b876bab 100644 --- a/Source/UBCS-WEB/src/components/Master/MasterTransfer.vue +++ b/Source/UBCS-WEB/src/components/Master/MasterTransfer.vue @@ -1,50 +1,63 @@ <template> -<el-dialog :visible.sync="dialogPush" append-to-body :close-on-click-modal="false" @close="recoverPage" title="瀵煎嚭"> - <div style="margin-bottom: 10px"> - <el-radio-group v-model="radio"> - <el-radio :label="0">閫夋嫨</el-radio> - <el-radio :label="1">鍏ㄩ儴</el-radio> - <el-radio :label="2">椤电爜</el-radio> - </el-radio-group> +<el-dialog :visible.sync="dialogPush" append-to-body :close-on-click-modal="false" @close="escHandler" title="瀵煎嚭" style="width: 1550px; margin: auto"> + <div style="margin-bottom: 20px;"> + <div> + <span>瀵煎嚭鏂瑰紡锛�</span> + <el-radio-group v-model="radio"> + <el-radio :label="0">閫夋嫨</el-radio> + <el-radio :label="1">鍏ㄩ儴</el-radio> + <el-radio :label="2">椤电爜</el-radio> + </el-radio-group> + <span v-if="radio === 2" style="margin-left: 20px;"><el-input style="width: 150px" v-model="pageExport"></el-input> 锛堣緭鍏ラ〉鐮佹垨鑰呴〉闈㈣寖鍥达紝濡傦細1-10)锛�</span> + </div> </div> <div style="text-align: center"> <el-transfer - style="text-align: left; display: inline-block" + style="text-align: left; display: inline-block;height: 400px" filterable :filter-method="filterMethod" - filter-placeholder="璇疯緭鍏ュ煄甯傛嫾闊�" + filter-placeholder="鍏抽敭璇嶆悳绱�" v-model="value" + :titles="['鏈�夊睘鎬�', '宸查�夊睘鎬�']" :data="data"> </el-transfer> + </div> + <div style="display: flex;justify-content: flex-end;"> + <el-button size="small" plain type="success" @click="handleExcel">纭畾</el-button> + <el-button size="small" plain @click="escHandler">鍙栨秷</el-button> </div> </el-dialog> </template> <script> +import {exportCode,FindData} from '@/api/GetItem' +import func from "@/util/func"; export default { name: "MasterTransfer", - props:['visible','tableHeadData'], + props:['visible','tableHeadData','codeClassifyOid','tableData','selectRow','templateOid','limit'], data(){ - const generateData = () => { - const data = []; - const cities = ['涓婃捣', '鍖椾含', '骞垮窞', '娣卞湷', '鍗椾含', '瑗垮畨', '鎴愰兘']; - cities.forEach((city, index) => { - data.push({ - label: city, - key: index, - }); - }); - return data; - }; return { - data: generateData(), + pageExport:"", + data: [], value: [], filterMethod(query, item) { return item.label.indexOf(query) > -1; }, dialogPush:this.visible, radio:0, - tableHeadFindData:[] + tableHeadFindData:[], + tableExportData:[], + option:{ + title: '鏂囨。鏍囬', + column: [{ + label: '涓绘暟鎹�', + prop: 'header', + children: [] + }], + data: [] + }, + exportArr:{}, + ids:"" }; }, watch:{ @@ -52,22 +65,141 @@ visible (){ this.dialogPush = this.visible; }, - tableHeadData(){ - this.tableHeadFindData=this.tableHeadData; - + //琛ㄥご鏁版嵁 鐢ㄦ潵娓叉煋绌挎妗� + tableHeadData: { + handler(newval, oldval) { + console.log(newval) + if (newval) { + // 娓呯┖data鏁扮粍 + this.data = []; + // excel琛ㄥご鏁版嵁杞崲 + this.tableHeadFindData = newval.map(obj => obj.label); + this.tableHeadFindData.forEach((city, index) => { + this.data.push({ + label: city, + key: index, + }); + }); + console.log(this.data) + // excel琛ㄦ牸鏁版嵁杞崲 + this.option.column[0].children = newval.map(obj => { + return { + label: obj.label, + prop: obj.prop + } + }) + } + } + }, + tableData(){ + // 灏嗗�奸噷闈㈢殑true鎴杅alse鏀瑰彉涓烘槸鎴栧惁 + this.option.data = this.tableData.map(obj => { + for (let prop in obj) { + if (obj[prop] === "true") { + obj[prop] = "鏄�"; + } else if (obj[prop] === "false") { + obj[prop] = "鍚�"; + } + } + return obj; + }); + }, + codeClassifyOid:{ + handler(newval,oldval){ + } } }, computed:{ }, mounted() { - console.log(this.tableHeadData) }, methods:{ + escHandler(){ + this.$emit('update:visible', false); + this.value=[]; + this.radio=0 + }, //鍏抽棴椤甸潰 recoverPage(){ this.$emit('update:visible', false); - } + }, + handleExcel(){ + if(this.value <= 0){ + this.$message.warning('璇烽�夋嫨灞炴��') + }else { + this.value.map(index => this.tableHeadData[index].prop).forEach((item, index) => { + this.exportArr[`attrIdIndexMap[${index}]`] = item + }) + if(this.radio === 0){ + if(this.selectRow.length<=0){ + this.$message.warning('璇烽�夋嫨瑕佸鍑虹殑妯℃澘') + }else { + //宸查�夋嫨澶氶�� + const selectList=[] + //宸查�夋嫨灞炴�� + let exportArr={} + const ids = this.selectRow.map(item => item.oid).join(',') + this.selectRow.forEach(item=>{ + selectList.push( + item.oid + ) + }) + exportCode({codeClassifyOid:this.codeClassifyOid,'conditionMap[oid]':this.ids,...this.exportArr}).then(res=>{ + // console.log('res',res) + if(res){ + func.downloadFileByBlob(res); + this.escHandler() + } + }) + + } + }else if(this.radio === 1){ + this.ids=this.tableData.map(item => item.oid).join(',') + exportCode({codeClassifyOid:this.codeClassifyOid,...this.exportArr,limit:-1}).then(res=>{ + // console.log('res',res) + if(res){ + func.downloadFileByBlob(res); + this.escHandler() + } + }) + }else if(this.radio === 2){ + const input = this.pageExport.trim(); + let start, end; + if (input.includes('-')) { + if (input.indexOf('-') !== input.lastIndexOf('-')) { + this.$message.warning('杈撳叆鏍煎紡閿欒锛氬彧鑳借緭鍏ヤ竴涓� - 鍙烽殧寮�'); + return; + } + //鍖呭惈-瑙f瀽 + const range = input.split('-'); + start = Number(range[0]); + end = Number(range[1]); + if (isNaN(start) || isNaN(end)) { + this.$message.warning('杈撳叆鏍煎紡閿欒'); + return; + } + } else { + //涓嶅寘鍚�-瑙f瀽 + start = Number(input); + end = start; + if (isNaN(start)) { + this.$message.warning('杈撳叆鏍煎紡閿欒'); + return; + } + } + exportCode({ codeClassifyOid: this.codeClassifyOid, ...this.exportArr, limit: this.limit, page: start, endPage: end }).then((res) => { + // console.log('res',res) + if (res) { + func.downloadFileByBlobHandler(res); + this.escHandler() + } + }); + } + + } + + }, } } </script> -- Gitblit v1.9.3