| | |
| | | <template> |
| | | <el-dialog :visible.sync="dialogPush" append-to-body :close-on-click-modal="false" @close="recoverPage" title="导出"> |
| | | <div style="margin-bottom: 10px"> |
| | | <el-button type="success" |
| | | @click="handleExcel">下载 多级表头excel</el-button> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="0">选择</el-radio> |
| | | <el-radio :label="1">全部</el-radio> |
| | |
| | | </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> |
| | |
| | | <script> |
| | | export default { |
| | | name: "MasterTransfer", |
| | | props:['visible','tableHeadData'], |
| | | props:['visible','tableHeadData','codeClassifyOid','tableData'], |
| | | data(){ |
| | | const generateData = () => { |
| | | const data = []; |
| | | const cities = ['上海', '北京', '广州', '深圳', '南京', '西安', '成都']; |
| | | cities.forEach((city, index) => { |
| | | data.push({ |
| | | label: city, |
| | | key: index, |
| | | }); |
| | | }); |
| | | return data; |
| | | }; |
| | | return { |
| | | data: generateData(), |
| | | 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: [] |
| | | } |
| | | }; |
| | | }, |
| | | watch:{ |
| | |
| | | visible (){ |
| | | this.dialogPush = this.visible; |
| | | }, |
| | | tableHeadData(){ |
| | | this.tableHeadFindData=this.tableHeadData; |
| | | |
| | | //表头数据 用来渲染穿梭框 |
| | | 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 |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | 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){ |
| | | } |
| | | } |
| | | }, |
| | | computed:{ |
| | | |
| | | }, |
| | | mounted() { |
| | | console.log(this.tableHeadData) |
| | | }, |
| | | methods:{ |
| | | //关闭页面 |
| | | recoverPage(){ |
| | | this.$emit('update:visible', false); |
| | | } |
| | | }, |
| | | handleExcel(){ |
| | | this.$Export.excel({ |
| | | title: this.option.title, |
| | | columns: this.option.column, |
| | | data: this.option.data |
| | | }); |
| | | }, |
| | | } |
| | | } |
| | | </script> |