<template>
  <div :loading="loading" style="margin-top: 10px;">
    <el-form
      ref="form"
      :model="form"
      :rules="rules"
      class="el-form-box"
      label-width="140px"
    >
      <headerTitle title="收货确认单信息"></headerTitle>
      <el-row :gutter="12">
        <el-col :span="12">
          <el-form-item label="收货确认单编码" prop="receiveConfirmNo">
            <el-input
              v-model="form.receiveConfirmNo"
              :disabled="true"
              placeholder=" "
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="收货单" prop="receiveCode">
            <el-input
              clearable
              v-model="form.receiveCode"
              :disabled="title == '详情'"
              placeholder="请输入"
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item prop="repliedFiles" label="回执附件">
            <fileMain
              v-model="form.repliedFiles"
              :type="title == '详情' ? 'view' : 'add'"
            ></fileMain>
          </el-form-item>
        </el-col>
      </el-row>

      <headerTitle title="收货信息"></headerTitle>

      <el-row :gutter="12">
        <el-col :span="12">
          <el-form-item label="收货单编码：" prop="receiveCode">
            <el-input v-model="form.receiveCode" disabled></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item prop="orderNo" label="订单编码：">
            <el-input v-model="form.orderNo" disabled></el-input>
          </el-form-item>
        </el-col>
        <!-- <el-col :span="12">
          <el-form-item prop="outsourceSendCode" label="委外发货单编码：">
            <el-input v-model="form.outsourceSendCode" disabled></el-input>
          </el-form-item>
        </el-col> -->
        <el-col :span="12">
          <el-form-item label="供应商名称：" prop="supplierName">
            <el-input v-model="form.supplierName" disabled></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="供应商联系人：" prop="linkName">
            <el-input v-model="form.linkName" disabled></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="供应商电话：" prop="linkPhone">
            <el-input v-model="form.linkPhone" disabled></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="车牌号：" prop="carNo">
            <el-input v-model="form.carNo" disabled></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item prop="receiveDate" label="收货日期：">
            <el-input v-model="form.receiveDate" disabled></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="附件：" prop="receiveFiles">
            <fileMain v-model="form.receiveFiles" type="view"></fileMain>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <headerTitle title="物品清单"></headerTitle>
    <ele-pro-table
      ref="table"
      :needPage="false"
      :columns="columns"
      :datasource="form.productList"
      row-key="id"
      max-height="500px"
      :toolbar="false"
    >
      <template v-slot:technicalDrawings="{ row }">
        <fileMain v-model="row.technicalDrawings" type="view"></fileMain>
      </template>
      <template v-slot:isException="scope">
        <el-select
          v-model="scope.row.isException"
          :disabled="title == '详情'"
          placeholder="请选择"
        >
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value"
          >
          </el-option>
        </el-select>
      </template>

      <template v-slot:totalCount="scope">
        <el-input
          :disabled="title == '详情'"
          v-model="scope.row.confirmCount"
          @input="totalCountChange(scope.row, scope.$index)"
          type="number"
          placeholder="请输入"
        ></el-input>
      </template>
      <template v-slot:remark="scope">
        <el-input
          :disabled="title == '详情'"
          v-model="scope.row.remark"
          placeholder="请输入"
        ></el-input>
      </template>
    </ele-pro-table>
  </div>
</template>

<script>
  import dictMixins from '@/mixins/dictMixins';
  import { levelList } from '@/enum/dict.js';
  import { getReceiveConfirmDetail } from '@/api/bpm/components/purchasingManage/invoiceConfirm';

  let formDef = {
    receiveCode: '',
    repliedFiles: '',
    supplierName: '',
    linkName: '',
    linkPhone: '',
    carNo: '',
    receiveDate: '',
    receiveFiles: '',
    receiveNo: '',
    productList: []
  };
  export default {
    mixins: [dictMixins],
    components: {},
    props: {
      businessId: {
        default: ''
      }
    },
    data() {
      return {
        title: '',
        form: {
          ...formDef
        },

        options: [
          { value: 0, label: '无异常' },
          { value: 1, label: '有异常' }
        ],
        rules: {
          sendNo: [
            { required: true, message: '请选择发货单', trigger: 'change' }
          ],
          repliedFiles: [
            { required: true, message: '请上传回执附件', trigger: 'change' }
          ]
        },

        // 提交状态
        loading: false
      };
    },
    created() {
      this.requestDict('产地');
      this.requestDict('生产类型');
      this.getSendSaleOrderDetail(this.businessId);
    },
    computed: {
      columns() {
        return [
          {
            width: 45,
            type: 'index',
            columnKey: 'index',
            align: 'center',
            fixed: 'left'
          },
          {
            width: 200,
            prop: 'productName',
            label: '名称',
            slot: 'productName',
            align: 'center'
          },
          {
            width: 120,
            prop: 'productCode',
            label: '编码',
            slot: 'productCode',
            align: 'center'
          },
          {
            width: 200,
            prop: 'productCategoryName',
            label: '类型',
            slot: 'productCategoryName',
            align: 'center'
          },
          {
            minWidth: 150,
            prop: 'taskName',
            label: '工序',
            slot: 'taskName',
            align: 'center'
          },
          {
            width: 110,
            prop: 'batchNo',
            label: '批次号',
            slot: 'batchNo',
            align: 'center'
          },
          {
            width: 160,
            prop: 'productBrand',
            label: '牌号',
            slot: 'productBrand',
            align: 'center'
          },
          {
            width: 120,
            prop: 'modelType',
            label: '型号',
            slot: 'modelType',
            align: 'center'
          },

          {
            width: 120,
            prop: 'supplierMark',
            label: '供应商代号',
            slot: 'supplierMark',
            align: 'center'
          },
          {
            width: 120,
            prop: 'specification',
            label: '规格',
            slot: 'specification',
            align: 'center'
          },
          {
            width: 200,
            prop: 'warehouseName',
            label: '仓库名称',
            slot: 'warehouseName',
            align: 'center'
          },

          {
            width: 80,
            prop: 'totalCount',
            label: '收货数量',
            align: 'center'
          },
          {
            width: 150,
            prop: 'confirmCount',
            label: '确认数量',
            slot: 'totalCount',
            align: 'center'
          },

          {
            width: 80,
            prop: 'measuringUnit',
            label: '计量单位',
            slot: 'measuringUnit',
            align: 'center'
          },
          // {
          //   width: 120,
          //   prop: 'singleWeight',
          //   label: '单重',
          //   slot: 'singleWeight',
          //   align: 'center'
          // },
          // {
          //   width: 200,
          //   prop: 'sendTotalWeight',
          //   label: '发货总重',
          //   slot: 'sendTotalWeight',
          //   align: 'center',
          //   headerSlot: 'headerTotalCount'
          // },
          // {
          //   width: 100,
          //   prop: 'receiveTotalWeight',
          //   label: '收货总重',
          //   slot: 'receiveTotalWeight',
          //   align: 'center'
          // },
          // {
          //   width: 100,
          //   prop: 'increaseTotalWeight',
          //   label: '增重重量',
          //   slot: 'increaseTotalWeight',
          //   align: 'center'
          // },
          // {
          //   width: 100,
          //   prop: 'weightUnit',
          //   label: '重量单位',
          //   slot: 'weightUnit',
          //   align: 'center'
          // },
          {
            width: 120,
            prop: 'packingSpecification',
            align: 'center',
            label: '包装规格',
            showOverflowTooltip: true
          },
          {
            minWidth: 120,
            prop: 'goodsLevel',
            label: '物品级别',
            formatter: (_row, _column, cellValue) => {
              return levelList.find((item) => item.value == _row.goodsLevel)
                ?.label;
            },
            align: 'center'
          },
          {
            width: 160,
            prop: 'singlePrice',
            label: '单价',
            slot: 'singlePrice',
            align: 'center'
          },
          {
            width: 150,
            prop: 'notaxSinglePrice',
            label: '不含税单价',
            align: 'center'
          },
          {
            width: 160,
            prop: 'discountSinglePrice',
            label: '折后单价',
            slot: 'discountSinglePrice',
            align: 'center'
          },
          {
            width: 120,
            prop: 'totalPrice',
            label: '合计',
            slot: 'totalPrice',
            align: 'center'
          },
          {
            width: 160,
            prop: 'discountTotalPrice',
            label: '折后合计',
            slot: 'discountTotalPrice',
            align: 'center'
          },
          {
            prop: 'provenance',
            label: '产地',
            slot: 'provenance',
            align: 'center',
            minWidth: 200,
            showOverflowTooltip: true,
            formatter: (row, column) => {
              return row.provenance && row.provenance.length
                ? row.provenance
                    .map((item) => this.getDictValue('产地', item))
                    .join(',')
                : '';
            }
          },
                    {
            minWidth: 120,
            prop: 'modelKey',
            label: '机型',
            showOverflowTooltip: true,
            align: 'center',

          },
          {
            minWidth: 120,
            prop: 'colorKey',
            showOverflowTooltip: true,
            label: '颜色',
            align: 'center',

          },
          {
            prop: 'productionDate',
            label: '生产日期',
            slot: 'productionDate',
            align: 'center',
            showOverflowTooltip: true,
            minWidth: 200
          },
          {
            width: 160,
            prop: 'deliveryDeadline',
            label: '交期截止日期',
            slot: 'deliveryDeadline',
            align: 'center'
          },
          {
            width: 200,
            prop: 'guaranteePeriod',
            label: '有效期',
            slot: 'guaranteePeriod',
            align: 'center',
            formatter: (_row, _column, cellValue) => {
              return (
                (_row.guaranteePeriod || '') + _row.guaranteePeriodUnitName
              );
            }
          },
          {
            width: 160,
            prop: 'guaranteePeriodDeadline',
            label: '有效期截止日期',
            slot: 'guaranteePeriodDeadline',
            align: 'center'
          },
          {
            width: 130,
            prop: 'technicalAnswerName',
            label: '技术答疑人',
            slot: 'technicalAnswerName',
            align: 'center'
          },
          {
            width: 220,
            prop: 'technicalParams',
            label: '技术参数',
            slot: 'technicalParams',
            align: 'center'
          },
          {
            width: 240,
            prop: 'technicalDrawings',
            label: '技术图纸',
            slot: 'technicalDrawings',
            align: 'center'
          },
          {
            width: 220,
            prop: 'remark',
            label: '备注',
            slot: 'remark',
            align: 'center'
          },
          {
            width: 120,
            slot: 'isException',
            prop: 'isException',
            label: '收货状态',
            align: 'center',
            fixed: 'right'
          }
        ];
      }
    },

    methods: {
      // //发货单确认详情
      async getSendSaleOrderDetail(id) {
        this.title = '详情';
        this.loading = true;
        const data = await getReceiveConfirmDetail(this.businessId);
        this.loading = false;
        if (data) {
          this.form = data;
        }
      }
    }
  };
</script>
<style scoped lang="scss">
  .TotalAmount {
    font-size: 16px;
    padding-right: 30px;
  }

  .headbox {
    display: flex;
    justify-content: flex-start;
    align-items: center;

    .amount {
      font-size: 14px;
      font-weight: bold;
      margin-right: 20px;
    }
  }
</style>
