<template>
  <div class="page">
    <template-page
      v-if="isShowTab && !formDialog"
      ref="pageRef"
      :get-list="getList"
      :table-attributes="tableAttributes"
      :table-events="tableEvents"
      :operationColumnWidth="170"
      :options-evens-group="optionsEvensGroup"
      :moreParameters="moreParameters"
      :column-parsing="columnParsing"
      :operation="operation()"
      :exportList="exportList"
    >
      <div slot="moreSearch">
        <el-radio-group v-model="status" size="mini" @change="changeType">
          <el-radio-button label="">全部</el-radio-button>
          <el-radio-button label="NO">未付款</el-radio-button>
          <el-radio-button label="WAIT">部分付款</el-radio-button>
          <el-radio-button label="OK">已完成</el-radio-button>
        </el-radio-group>
        <br /><br />
      </div>
    </template-page>
    <div class="detail" v-if="formDialog">
      <detail :id="id" @back="backList" :formType="formDialogType" title="工程配件收款详情"></detail>
    </div>
  </div>
</template>

<script>
import TemplatePage from '@/components/template/template-page-1.vue'
import detail from './detail.vue'
import import_mixin from '@/components/template/import_mixin.js'
import ImageUpload from '@/components/file-upload'
import { downloadFiles } from '@/utils/util'
import { required, mobileRequired, mobile, httpUrl, email } from '@/components/template/rules_verify.js'
import { listPage, pageExport } from '@/api/auxiliaryFittings/projectAuxiliaryManage'
import operation_mixin from '@/components/template/operation_mixin.js'
export default {
  components: { TemplatePage, ImageUpload, detail },
  mixins: [import_mixin, operation_mixin],
  data() {
    return {
      // 表格属性
      tableAttributes: {
        // 启用勾选列
        selectColumn: true
      },
      // 表格事件
      tableEvents: {
        'selection-change': this.selectionChange
      },
      // 勾选选中行
      recordSelected: [],
      /** 表单变量 */
      formDialogType: 0,
      formDialogTitles: ['新增', '编辑', '详情'],
      formDialog: false,
      id: '',
      status: this?.$route?.params?.pageCode || '',
      isShowTab: true
    }
  },
  computed: {
    // 事件组合
    optionsEvensGroup() {
      return [
        // [
        // 	[
        // 		this.optionsEvensAuth("add", {
        // 			click: this.addData
        // 		}),
        // 	]
        // ]
      ]
    },
    // 更多参数
    moreParameters() {
      return []
    },
    formItems() {}
  },
  created() {},
  watch: {
    status() {
      this.isShowTab = false
      this.$nextTick(() => {
        this.isShowTab = true
      })
    }
  },
  methods: {
    // 切换状态
    changeType(val) {
      this.$refs?.pageRef?.refreshList()
    },
    backList() {
      this.id = ''
      this.formDialog = false
      this.$refs?.pageRef?.refreshList()
    },
    // 列表请求函数
    getList(p, cb) {
      try {
        var pam = JSON.parse(JSON.stringify(p))
        pam.params.push(
          { param: 'a.goods_type', compare: '=', value: 'P' },
          { param: 'a.status', compare: '=', value: this.status }
        )
        cb && cb(pam)
        return listPage(pam)
      } catch (error) {
        console.log(error)
      }
    },
    // 列表导出函数
    exportList: pageExport,
    // 表格列解析渲染数据更改
    columnParsing(item, defaultData) {
      return defaultData
    },
    // 监听勾选变化
    selectionChange(data) {
      this.recordSelected = data
    },

    operation() {
      return this.operationBtn({
        detail: {
          click: ({ row, index, column }) => {
            this.id = row.websitSalesManagerId
            this.formDialogType = 2
            this.openForm()
          }
        },
        sellOrderDetail: {
          click: ({ row, index, column }) => {
            this.$router.push({
              name: 'attachmentSalesOrder',
              params: {
                pageName: row.orderEnginBaseId,
                pageType: '-',
                pageCode: row.orderEnginBaseId
              }
            })
          }
        },
        returnGoodsDetail: {
          name: '返还单明细',
          click: ({ row, index, column }) => {
            this.$router.push({
              name: 'attachmentNewReturn',
              params: {
                pageName: row.orderEnginBaseId,
                pageType: '-',
                pageCode: row.orderEnginBaseId
              }
            })
          }
        }
      })
    },

    openForm() {
      this.formDialog = true
    }
  }
}
</script>

<style lang="scss" scoped>
.page {
  height: 100%;
}

.tab {
  padding: 20px 20px 0 20px;
}
</style>
