| | |
| | | :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 >取消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import {exportCode} from '@/api/GetItem' |
| | | export default { |
| | | name: "MasterTransfer", |
| | | props:['visible','tableHeadData','codeClassifyOid'], |
| | | props:['visible','tableHeadData','codeClassifyOid','tableData','selectRow'], |
| | | data(){ |
| | | return { |
| | | data: [], |
| | |
| | | option:{ |
| | | title: '文档标题', |
| | | column: [{ |
| | | label: '多级表头', |
| | | label: '主数据', |
| | | prop: 'header', |
| | | children: [] |
| | | }], |
| | | data: [{ |
| | | title1: "测试数据1", |
| | | title2: "测试数据2" |
| | | }, { |
| | | title1: "测试数据2", |
| | | title2: "测试数据2" |
| | | }] |
| | | data: [] |
| | | } |
| | | }; |
| | | }, |
| | |
| | | //表头数据 用来渲染穿梭框 |
| | | 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({ |
| | |
| | | key: index, |
| | | }); |
| | | }); |
| | | return this.data; |
| | | //excel表格数据转换 |
| | | this.option.column[0].children=newval.map(obj => { |
| | | return { |
| | | label: obj.label, |
| | | prop: obj.prop |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | tableData(){ |
| | | // 将值里面的true或false改变为是或否 |
| | | 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){ |
| | | console.log('daochu',newval,oldval) |
| | | } |
| | | } |
| | | }, |
| | |
| | | |
| | | }, |
| | | mounted() { |
| | | this.ExportRend() |
| | | }, |
| | | methods:{ |
| | | //关闭页面 |
| | | recoverPage(){ |
| | | this.$emit('update:visible', false); |
| | | }, |
| | | //导出表格数据转换表头信息 |
| | | ExportRend(){ |
| | | this.tableExportData=this.tableHeadData.map(obj => { |
| | | return { |
| | | label: obj.label, |
| | | prop: obj.prop |
| | | 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) |
| | | const filename = '下载.xlsx'; // 下载的文件名 |
| | | let blob = new Blob([res.data], { |
| | | type: res.data.type + ";charset=utf-8", |
| | | }); |
| | | 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); //释放掉blob对象 |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | console.log(this.tableExportData) |
| | | } |
| | | }; |
| | | }, |
| | | } |
| | | } |
| | | </script> |