From 42c17fe468ceea7e5eed7fec520b9858bed02e85 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期五, 04 八月 2023 17:52:30 +0800 Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs --- Source/UBCS-WEB/src/components/Master/MasterTransfer.vue | 238 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 159 insertions(+), 79 deletions(-) diff --git a/Source/UBCS-WEB/src/components/Master/MasterTransfer.vue b/Source/UBCS-WEB/src/components/Master/MasterTransfer.vue index dab8951..24ea436 100644 --- a/Source/UBCS-WEB/src/components/Master/MasterTransfer.vue +++ b/Source/UBCS-WEB/src/components/Master/MasterTransfer.vue @@ -1,11 +1,15 @@ <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 @@ -20,19 +24,20 @@ </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 >鍙栨秷</el-button> + <el-button size="small" plain @click="escHandler">鍙栨秷</el-button> </div> </el-dialog> </template> <script> -import {exportCode} from '@/api/GetItem' +import {exportCode,FindData} from '@/api/GetItem' import func from "@/util/func"; export default { name: "MasterTransfer", - props:['visible','tableHeadData','codeClassifyOid','tableData','selectRow'], + props:['visible','tableHeadData','codeClassifyOid','tableData','selectRow','templateOid','limit'], data(){ return { + pageExport:"", data: [], value: [], filterMethod(query, item) { @@ -50,7 +55,10 @@ children: [] }], data: [] - } + }, + exportArr:{}, + exportArrTwo:{}, + ids:"" }; }, watch:{ @@ -59,28 +67,29 @@ this.dialogPush = this.visible; }, //琛ㄥご鏁版嵁 鐢ㄦ潵娓叉煋绌挎妗� - tableHeadData:{ - handler(newval,oldval){ - console.log(newval) - if(newval){ - //excel琛ㄥご鏁版嵁杞崲 - this.tableHeadFindData=newval.map(obj => obj.label); - this.tableHeadFindData.forEach((city, index) => { - this.data.push({ - label: city, - key: index, - }); - }); - //excel琛ㄦ牸鏁版嵁杞崲 - this.option.column[0].children=newval.map(obj => { - return { - label: obj.label, - prop: obj.prop - } - }) - } + tableHeadData: { + handler(newval, oldval) { + 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, + }); + }); + // 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 => { @@ -97,6 +106,11 @@ codeClassifyOid:{ handler(newval,oldval){ } + }, + value:{ + handler(newval,oldval){ + console.log('value',newval) + } } }, computed:{ @@ -105,60 +119,126 @@ mounted() { }, methods:{ + escHandler(){ + this.$emit('update:visible', false); + this.value=[]; + this.radio=0 + }, //鍏抽棴椤甸潰 recoverPage(){ this.$emit('update:visible', false); }, handleExcel(){ - // this.$Export.excel({ - // title: this.option.title, - // columns: this.option.column, - // data: this.option.data - // }); - 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 - ) - }) - this.value.map(index => this.tableHeadData[index].prop).forEach((item, index) => { - exportArr[`attrIdIndexMap[${index}]`] = item - }) - exportCode({codeClassifyOid:this.codeClassifyOid,'conditionMap[oid]':ids,...exportArr}).then(res=>{ - console.log('res',res) - if(res){ - const fileNames = res.headers['content-disposition'].split(";"); - let characterSet = fileNames[2].split("filename*=")[1]; - let fileName = decodeURI(fileNames[1].split("filename=")[1],characterSet); // 涓嬭浇鐨勬枃浠跺悕 - let blob = new Blob([res.data], { - type: res.data.type + ";charset=utf-8", - }); - func.downloadFileByBlob(blob,fileName); - window.URL.revokeObjectURL(src); //閲婃斁鎺塨lob瀵硅薄 + 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={} + this.ids = this.selectRow.map(item => item.oid).join(',') + this.selectRow.forEach(item=>{ + selectList.push( + item.oid + ) + }) + if(this.value <= 0){ + this.tableHeadData.map(item => item.prop) + .forEach((prop, index) => { + this.exportArrTwo[`attrIdIndexMap[${index}]`] = prop; + }); + exportCode({codeClassifyOid:this.codeClassifyOid,'conditionMap[oid]':this.ids,...this.exportArrTwo,limit:-1}).then(res=>{ + // console.log('res',res) + if(res){ + func.downloadFileByBlobHandler(res); + this.escHandler() + } + }) + }else { + + exportCode({codeClassifyOid:this.codeClassifyOid,'conditionMap[oid]':this.ids,...this.exportArr}).then(res=>{ + // console.log('res',res) + if(res){ + func.downloadFileByBlobHandler(res); + this.escHandler() + } + }) + } - - // let src = window.URL.createObjectURL(blob); - // if (src) { - // let link = document.createElement("a"); - // link.style.display = "none"; - // link.href = src; - // link.setAttribute("download", "鏂囦欢鍚嶅瓧.xls"); - // document.body.appendChild(link); - // link.click(); - // document.body.removeChild(link); //涓嬭浇瀹屾垚绉婚櫎鍏冪礌 - // window.URL.revokeObjectURL(src); //閲婃斁鎺塨lob瀵硅薄 - // } - }) + } + }else if(this.radio === 1){ + if(this.value <= 0){ + this.tableHeadData.map(item => item.prop) + .forEach((prop, index) => { + this.exportArrTwo[`attrIdIndexMap[${index}]`] = prop; + }); + exportCode({codeClassifyOid:this.codeClassifyOid,...this.exportArrTwo,limit:-1}).then(res=>{ + // console.log('res',res) + if(res){ + func.downloadFileByBlobHandler(res); + this.escHandler() + } + }) + }else { + exportCode({codeClassifyOid:this.codeClassifyOid,...this.exportArr,limit:-1}).then(res=>{ + // console.log('res',res) + if(res){ + func.downloadFileByBlobHandler(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; + } + } + if(this.value >=1 ){ + 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() + } + }); + }else { + this.tableHeadData.map(item => item.prop) + .forEach((prop, index) => { + this.exportArrTwo[`attrIdIndexMap[${index}]`] = prop; + }); + exportCode({codeClassifyOid:this.codeClassifyOid,...this.exportArrTwo,limit:this.limit,page: start, endPage: end}).then(res=>{ + // console.log('res',res) + if(res){ + func.downloadFileByBlobHandler(res); + this.escHandler() + } + }) + } } - }; }, } } -- Gitblit v1.9.3