<template>
  <div class="table_total">
    <div class="table_header">
      <!-- <p>单表</p>
      <el-divider></el-divider> -->
      <div class="table_headerBtun" v-if="queryData.buttonList">
        <el-button type="primary" size="small"  plain v-for="(item,index) in jeigneutwo" :key="index" @click="handleQuery(item)">{{item }}</el-button>
      </div>
    </div>
    <!-- 内容 -->
    <div class="table_nav headertable_nav">
      <el-collapse v-model="activeNames" @change="handleChange">
        <el-collapse-item :title="item.columnComment" :name="index" v-for="(item,index) in queryData.showData" :key="index" >
          <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="120px">
            <el-row :gutter="0">
              <el-col :span="24"  :key="index">
                  <dynamic-forms :ref="items.columnName" :config="queryParams" @inputs = "changeFn" :formConfig="items" v-for="(items,indexs) in item.hrChildren" :key='indexs' />
              </el-col>
            </el-row>
          </el-form>
        </el-collapse-item>
      </el-collapse>
    </div>
  </div>
</template>
<script>
  import {
    getTableQuery,
    getQueryList,
    tableSubimt,
    tableSubimtanit,
    addbjectSave,
    delMenutab
  } from '@/api/system/table.js'
  export default {
    name: "index",
    data() {
      return {
        // 显示搜索条件
        showSearch: true,
        activeNames: [0],
        title: '单表1',
        tabledeLise:{
          table:'',
          isUi:true
        },
        queryData: {},
        // 查询参数
        queryParams: {

        },
        labletit: '查询参数1233',
        tableZbie:{
          table:'',
          isUi:true,
          fixedData:{
            id:-1
          }

        },
        taleLisst:[],
        forme:{
          table:'',
          objId:-1,
          fixedData:{}
        },
        formeanti:{
          table:'',
          commitData:[],
        },
        formy:{
          id:0,
          status:1
        },
        // 删除参数
        deledlid:{
          table:'',
          idList:[]
        },
        jeigneu:[],
        jeigneutwo:[]
      };
    },
    filters:{
      btnConversion(val) {
        switch(val){
          case 'A':
          return '保存';
          case 'M':
          return '保存';
          case 'D':
          return '删除';
          case 'Q':
          return '查询';
          case 'S':
          return '提交';
          case 'U':
          return '反提交';
          case 'I':
          return '导入';
          case 'E':
          return '导出';
        }
      }
    },
    mounted() {
      // this.tableZbie.fixedData.id = 0
       this.deledlid.idList = []
       this.formeanti.table = this.$route.query.tables
       // this.formeanti.id = this.$route.query.id
       this.forme.table = this.$route.query.tables
       this.forme.objId = this.$route.query.id
       this.tableZbie.table = this.$route.query.tables
       this.tableZbie.fixedData.id = this.$route.query.id
       this.formy.id = this.$route.query.id
       this.deledlid.table = this.$route.query.tables
       this.deledlid.idList.push(this.$route.query.tables)
       console.log(this.$route.query.id)
       console.log(this.tableZbie.table)

      this.init()
      // this.tablsie()
    },
    methods: {
      changeFn(obj) {
        for(let key in obj){
          this.queryParams[key] = obj[key]
        }
      },
      resetQuery() {

      },
      /** 搜索按钮操作 */
      handleQuery(index) {
         console.log(index,4)
         for(let item of this.queryData.showData){
           for(var i = 0 ; i < item.hrChildren.length ; i++){
             if(item.hrChildren[i].htmlType == 'checkbox' || item.hrChildren[i].htmlType == 'imageUpload' || item.hrChildren[i].htmlType == 'fileUpload'){
               this.queryParams[item.hrChildren[i].columnName] = this.$refs[item.hrChildren[i].columnName][0].config
             } else{
               this.queryParams[item.hrChildren[i].columnName] = this.$refs[item.hrChildren[i].columnName][0].config[item.hrChildren[i].columnName]
             }
           }
         }
         this.queryParams.image = JSON.stringify(this.queryParams.image)
         this.queryParams.file = JSON.stringify(this.queryParams.file)
         console.log(this.queryParams)
         if(this.queryParams.pageNum !== undefined){
           this.queryParams.pageNum = undefined
         }
         if(this.queryParams.pageSize !== undefined){
           this.queryParams.pageSize = undefined
         }

         if(index == '删除'){
           //删除
           console.log(this.formy.id)
           this.handleDelete(this.deledlid)
         }else if(index == '提交'){
           //提交  保存
            this.formeanti.commitData = []
            this.formy.status = 1
            this.formeanti.commitData.push(this.formy)
            console.log(this.formeanti)
           this.antiSubmission()
         }else if(index == '反提交'){
           //反提交  保存
            this.formeanti.commitData = []
            this.formy.status = 2
            this.formeanti.commitData.push(this.formy)
            console.log(this.formeanti)
           this.antiSubmission()
         }else if(index == '保存'){
           // 修改
           this.forme.fixedData = this.queryParams
           this.submitForm()
         }else if(index == '新增'){
           //新增
           this.$router.push({
             path: '/business/table',
             query: {id:-1,tables:this.forme.table},
           })
           this.$router.go(0)
         }else if(index == '返回'){
           this.$router.go(-1)
         }else if(index == '刷新'){
           this.$router.go(0)
         }
         

        console.log(this.forme)
        // this.getList();
      },
      getList() {

      },
      init() {
        getTableQuery(
          this.tableZbie
        ).then(res => {
          let data = res.data
          this.queryData = data
          this.jeigneutwo = []
          this.queryData.jeigneu = data.buttonList.split('')
          console.log(this.queryData.jeigneu)
          this.queryData.jeigneu.filter(route => {
            // route.dept_id = route.dept_id.value
            console.log(route)
            if(route == 'A'){
              if(this.formy.id == -1){
                route = '保存'
              }else{
                route = '新增'
              }
             this.jeigneutwo.push(route)
            }else if(route == 'M'){
              route = '保存'
              if(this.formy.id != -1){
                this.jeigneutwo.push(route)
              }
            }else if(route == 'D'){
              route = '删除'
              if(this.formy.id != -1){
                this.jeigneutwo.push(route)
              }
            }else if(route == 'Q'){
              route = '查询'
            }else if(route == 'S'){
              route = '提交'
              if(this.formy.id != -1){
                this.jeigneutwo.push(route)
              }
            }else if(route == 'U'){
              route = '反提交'
              if(this.formy.id != -1){
                this.jeigneutwo.push(route)
              }
            }else if(route == 'I'){
              route = '导入'
            }else if(route == 'E'){
              route = '导出'
            }

          })
          this.jeigneutwo.push('刷新')
          this.jeigneutwo.push('返回')
          console.log(this.jeigneutwo,567)
        })
      },
      tablsie(){
        console.log(1234)
        getQueryList(
          this.tabledeLise
        ).then(res => {
          let data = res.data
          this.taleLisst = data
          // console.log(this.queryData.queryList)
        })
      },
      handleChange(val) {
        console.log(val);
      },
      // 按钮点击
      delet(index){
      console.log(index)
      if(index == 'D'){
        this.handleDelete(this.formy.id)
      }
      },
      /** 新增 修改提交按钮 */
      submitForm: function() {
              addbjectSave(this.forme).then(response => {
                this.msgSuccess("保存成功");
                this.open = false;
                this.$router.go(-1)
                // this.getList();
              });
      },
      // 提交反提交
      antiSubmission(){
        if (this.formy.status == 1) {
          // 提交
          tableSubimt(this.formeanti).then(response => {
            this.msgSuccess("提交成功");
            this.$router.go(-1)
            // this.open = false;
            // this.getList();
          });
        } else if(this.formy.status == 2){
          // 反提交
          tableSubimtanit(this.formeanti).then(response => {
            this.msgSuccess("反提交成功");
            this.$router.go(-1)
            // this.open = false;
            // this.getList();
          });
        }
      },
      //删除
      handleDelete(index) {
        this.$confirm('是否确认删除', "警告", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning"
          }).then(function() {
            return delMenutab(index);
          }).then(() => {
            // this.getList();
            this.msgSuccess("删除成功");
            this.$router.go(-1)
          })
      }
    },
  };
</script>


<style  lang="scss">
  .table_header{
    .el-divider--horizontal{
      margin-top: 16px;
    }
  }
  .headertable_nav{
    .el-collapse-item__wrap{
      border-bottom: 0;
    }
    .el-collapse-item__header{
      border-bottom: 0;
      font-size: 15px;
      font-family: PingFang SC;
      font-weight: bold;
      color: #3C8DBC;
      line-height: 36px;
    }
    // .el-form-item__content{
    //   width: 55%;
    // }
    .el-collapse{
      border-top: 0;
    }
  }

</style>



<style scoped lang="scss">
  .app-main{
     // background-color: #eef0ff !important;
  }
  .table_total{
     background-color: #eef0ff;
     height: 100%;
     padding: 20px;
     // 头部
     .table_header{
        background-color: #fff;
        border-radius: 6px;
        padding: 23px;
        margin-bottom: 20px;
      p{
         font-size: 15px;
         font-weight: bold;
         color: #3C8DBC;
         line-height: 36px;
        }
      p::before{
        content: "";
        display: block;
        width: 18px;
        height: 8px;
        background: #3C8DBC;
        border-radius: 3px;

      }
     }
     // 内容
     .headertable_nav{
       background-color: #fff;
       border-radius: 6px;
       padding: 23px;
     }
  }
  p{
    margin: 0;

  }
</style>
