<template>
  <div>
    <avue-crud :option="option"
               :table-loading="loading"
               :data="data"
               :search.sync="search"
               ref="crud"
               @refresh-change="refreshChange"
               @selection-change="selectionChange"
               @search-change="searchChange"
               @saveColumn="saveColumn"
               :page.sync="page"
               @on-load="onLoad">
      <template slot="costTypeSearch">
        <breakdown-select
          v-model="search.costType"
          :configuration="breakConfiguration"
        ></breakdown-select>
      </template>
    </avue-crud>
    <div class="dialogButton">
       <span slot="footer" class="dialog-footer" >
           <el-button @click="$emit('closeFun')">取 消</el-button>
           <el-button type="primary" @click="importProMent" :disabled="selectList.length == 0">导入</el-button>
       </span>
    </div>
  </div>
</template>

<script>
  import option from './config/mainList.json'
  import { getBillList } from "@/api/financialManagement/paymentRequest";

  export default {
    name: "index",
    props: {
      billType:{
        type: String
      },
      params:{
        type: Object
      },
      itemId: {
        type: String
      },
      closeFun: {
        type: Function
      }
    },
    data(){
      return {
        option:option,
        loading:false,
        search:{},
        data:[],
        selectList:[],
        page: {
          pageSize: 10,
          pagerCount: 5,
          total: 0,
        },
        breakConfiguration:{
          multipleChoices:false,
          multiple:false,
          disabled:false,
          searchShow:true,
          collapseTags:false,
          clearable:true,
          placeholder:'请点击右边按钮选择',
          dicData:[]
        },
      }
    },
    watch:{
      'params.corpId' (newVal,oldVal){
        if(newVal != oldVal){
          this.onLoad(this.page, this.search)
        }
      }
    },
    async created() {
      // this.option = await this.getColumnData(this.getColumnName(45), option);
    },
    methods:{
      refreshChange(){
        this.onLoad(this.page);
      },
      searchChange(params,done){
        this.onLoad(this.page, params);
        done()
      },
      selectionChange(row){
        this.selectList = row
      },
      onLoad(page, params){
        this.loading = true;
        params = {
          ...this.params
        }
        params.billType = this.billType
        params.flag = 1
        getBillList(page.currentPage, page.pageSize,params).then(res=>{
          this.data = res.data.data.records
          this.page.total = res.data.data.total
        }).finally(()=>{
          this.loading = false;
        })
      },
      importProMent(){
        this.$emit('importProMent',this.selectList);
      },
      //列保存触发
      async saveColumn() {
        const inSave = await this.saveColumnData(
          this.getColumnName(45),
          this.option
        );
        if (inSave) {
          this.$message.success("保存成功");
          //关闭窗口
          this.$refs.crud.$refs.dialogColumn.columnBox = false;
        }
      },
    }
  }
</script>
<style scoped>

</style>
