xiejun
2023-07-19 ded6e8d2312e139e8ce770c7f1d5830bf2db4af6
Source/UBCS-WEB/src/components/Master/MasterTransfer.vue
@@ -1,6 +1,8 @@
<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>
@@ -9,11 +11,12 @@
  </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>
@@ -23,28 +26,27 @@
<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:{
@@ -52,22 +54,64 @@
    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>