<template>
  <div class="mytable">
    <el-button size="small"  type="primary" @click="getList" >查询</el-button>
    <el-button size="small"  type="success" @click="add" >新增</el-button>
    <el-button size="small"  type="danger" @click="remove" >删除</el-button>
    <el-button size="small"  type="success" @click="saveGxcd" >保存</el-button>
    <vxe-grid
      id="gxId"
      ref="xGridGx"
      border
      resizable
      keep-source
      :align="'center'"
      :height="height"
      :auto-resize="true"
      :columns="gxCDtableColumn"
      highlight-current-row
      :data="gxCDList"
      :custom-config="{storage: true }"
      :edit-config="{
                trigger: 'click',
                mode: 'row',
                showStatus: true,
              }"
      :scroll-x="{enabled: true}"
      :scroll-y="{enabled: true}"
      highlight-hover-row
      show-overflow
      show-header-overflow
    >
    </vxe-grid>
  </div>
</template>

<script>
import {getCdAll,saveGxcd,removeGxcd,getGxDict} from '@/api/jhzx/pc'
export default {
  name:'GxCD',
  props:{
    height:{
      type:Number,
      default:700,
    }
  },
  data(){
    return {
      gxCDList:[],
      gxList:[],
      gxCDtableColumn:[
        { type: 'checkbox', width: 50 },
        {type: 'seq', width: 60, title: '序号'},
        { field: 'gx', title: '工序', width: 150,
          editRender: {  name: '$select', options:[], props: {clearable: true}},
          filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
          filterRender: { name: 'FilterCombination', },
        },
        { field: 'cd', title: '间隔周期', width: 150,
          editRender: { name: "input" },
          filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
          filterRender: { name: 'FilterCombination', },
        },
      ],
    }
  },
  created() {
    getGxDict().then((res)=>{
      res.data.forEach(item=>{
        // this.gxList.push({label:item.name,value:item.code})
        this.gxList.push({label:item.name,value:item.name})
      })
      const xGridGx = this.$refs.xGridGx
      const gx = xGridGx.getColumnByField('gx')
      gx.editRender.options = this.gxList
    })
    this.getList()
  },
  methods:{
    getList(){
      getCdAll().then((res) => {
        this.gxCDList=[]
        this.gxList.forEach(gx=>{
          res.data.forEach(item=>{
            if (gx.value===item.gx){
              this.gxCDList.push(item)
            }
          })
        })

      })
    },
    add(){
      this.$refs.xGridGx.insertAt({},-1)
    },
    remove(){
      this.$refs.xGridGx.removeCheckboxRow()
    },
    async saveGxcd(){
      const {insertRecords, removeRecords, updateRecords} = this.$refs.xGridGx.getRecordset()
      if (insertRecords.length !== 0 ) {
        await saveGxcd(insertRecords).then(res => {
          this.getList()
        })
      }
      if (updateRecords.length !== 0) {
        await saveGxcd(updateRecords).then(res => {
          this.getList()
        })
      }
      if (removeRecords.length !== 0) {
        await removeGxcd(removeRecords).then(res => {
          this.getList()
        })
      }
    }
  }
}
</script>
