<template>
  <div class="ele-body">
    <el-card shadow="never" v-loading="loading">
      <order-search @search="reload" ref="searchRef"> </order-search>
      <ele-pro-table
        ref="table"
        :columns="columns"
        :datasource="datasource"
        :selection.sync="selection"
      >
        <!-- 操作列 -->
        <!-- <template v-slot:toolbar>
          <el-button
              type="primary"
              slot="reference"
              :disabled="selection.length == 0"
              @click="dialogVisible=true"
              >批量处置</el-button
            >

          <el-popconfirm
            class="ele-action"
            title="确定要删除吗？"
            @confirm="remove"
          >
            <template v-slot:reference>
              <el-button :disabled="selection.length == 0" type="danger"
                >批量删除</el-button
              >
            </template>
          </el-popconfirm>
        </template> -->
        <template v-slot:action="{ row }">
          <el-popconfirm
            class="ele-action"
            title="确定要删除吗？"
            v-if="row.status==1"
            @confirm="remove(row)"
          >
            <template v-slot:reference>
              <el-link type="danger" :underline="false" icon="el-icon-delete">
                删除
              </el-link>
            </template>
          </el-popconfirm>
          <el-link
            slot="reference"
            type="primary"
            :underline="false"
            icon="el-icon-edit"
            v-if="row.status == 0"
            @click="disposeList(row)"
          >
            处置
          </el-link>
        </template>
      </ele-pro-table>
    </el-card>
    <SalesToProduction ref="salesToProductionRef" @success="reload" />
  </div>
</template>

<script>
import OrderSearch from '../components/probationalGoods-search.vue';
import SalesToProduction from '../components/salesToProduction.vue';
import dictMixins from '@/mixins/dictMixins';

import { trialProducts, deleteTrialProducts } from '@/api/unacceptedProduct/index';
export default {
  components: {
    OrderSearch,
    SalesToProduction
  },
  mixins: [dictMixins],
  data() {
    return {
      loading: false,
      dialogVisible: false,
      current: null,
      selection: [],
      disposeType: '',
      releasParams: {
        teamId: '',
        id: ''
      }
    };
  },
  computed: {
    // 表格列配置
    columns() {
      return [
        // {
        //   width: 45,
        //   type: 'selection',
        //   columnKey: 'selection',
        //   align: 'center',
        //   // selectable: (row, index) => {
        //   //   return row.status == 1; //
        //   // }
        // },
        {
          columnKey: 'index',
          label: '序号',
          type: 'index',
          width: 55,
          align: 'center',
          showOverflowTooltip: true,
          fixed: 'left'
        },
        {
          prop: 'code',
          width: 160,
          label: '编码',
          align: 'center'
        },
        {
          prop: 'unqualifiedProductsCode',
          label: '不良品编码',
          align: 'center'
        },
        {
          prop: 'batchNo',
          label: '批次号',
          align: 'center'
        },
        {
          prop: 'engravingCode',
          label: '刻码',
          align: 'center'
        },
     
        {
          prop: 'productName',
          label: '产品名称',
          align: 'center'
        },
        {
          prop: 'productCode',
          label: '产品编码',
          align: 'center'
        },
        {
          prop: 'specification',
          label: '产品规格',
          align: 'center'
        },
        {
          prop: 'unqualifiedQuantity',
          label: '数量',
          align: 'center',
          width: 60
        },
        {
          prop: 'produceRoutingName',
          label: '工艺路线',
          align: 'center'
        },
        {
          prop: 'produceTaskName',
          label: '工序',
          align: 'center'
        },
        {
          prop: 'unqualifiedReason',
          label: '原因',
          align: 'center'
        },

        {
          prop: 'createTime',
          label: '创建时间',
          align: 'center',
          width: 160
        },
        {
          prop: 'reviewerName',
          label: '创建人',
          align: 'center'
        },
        {
          prop: 'depotName',
          label: '仓库名称',
          align: 'center',
       
        },
        {
          prop: 'status',
          label: '状态',
          align: 'center',
          formatter: (row, column, cellValue) => {
            return cellValue==0?'未入库':cellValue==1?'已入库':''
          }
        },

        // {
        //   columnKey: 'action',
        //   label: '操作',
        //   width: 150,
        //   align: 'center',
        //   resizable: false,
        //   fixed: 'right',
        //   slot: 'action',
        //   showOverflowTooltip: true
        // }
      ];
    }
  },
  created() {},
  filters: {},
  methods: {
    /* 表格数据源 */
    datasource({ page, limit, where }) {
      return trialProducts({
        pageNum: page,
        size: limit,
        ...where
      });
    },
    remove(row) {
      let ids = row ? [row.id] : this.selection.map((item) => item.id);
      deleteTrialProducts(ids).then((res) => {
        this.$message.success('删除' + res);
        this.reload();
      });
    },
    open(type) {
      let isCode = true,
        isBatchNo = true;
      this.selection.forEach((item) => {
        this.selection.forEach((item1) => {
          if (item.productCodeNew != item1.productCodeNew) {
            isCode = false;
          }
          if (item.batchNo != item1.batchNo) {
            isBatchNo = false;
          }
        });
      });
      if (!isCode) {
        this.$message.error('产品编码不一致！');
        return;
      }
      if (!isBatchNo) {
        this.$message.error('批次号不一致！');
        return;
      }
      this.$refs.salesToProductionRef.open(this.selection,type);
    },
    async disposeList(row) {
      if (row && row.id) {
        this.current = row;
        this.dialogVisible = true;
        return;
      }
      let ids = this.current
        ? [this.current.id]
        : this.selection.map((item) => item.id);
      await dispose({
        id: ids,
        disposeType: Number(this.disposeType)
      });
      this.dialogVisible = false;
      this.current = null;
      this.$message.success('处置成功！');
      this.getList();
    },
    /* 刷新表格 */
    reload(where) {
      this.$nextTick(() => {
        this.$refs.table.reload({ page: 1, where });
      });
    }
  }
};
</script>

<style lang="scss" scoped></style>
