<template>
  <ele-modal
    custom-class="ele-dialog-form long-dialog-form"
    :centered="true"
    v-if="visible"
    :visible.sync="visible"
    :title="title"
    :close-on-click-modal="false"
    width="70%"
    @close="cancel"
    :maxable="true"
    :resizable="true"
    :modal="modal"
    append-to-body
  >
    <div class="switch">
      <div class="switch_left">
        <ul>
          <li
            v-for="item in tabOptions"
            :key="item.key"
            :class="{ active: activeComp == item.key }"
            @click="activeComp = item.key"
          >
            {{ item.name }}
          </li>
        </ul>
      </div>
    </div>
    <div v-if="activeComp == 'order'">
      <el-form
        ref="form"
        :model="form"
        :rules="rules"
        class="el-form-box"
        label-width="120px"
      >
        <headerTitle title="订单信息"> </headerTitle>
        <el-row>
          <el-col :span="8">
            <el-form-item label="订单编号：" prop="orderNo">
              <el-input v-model="form.orderNo" disabled></el-input>
            </el-form-item>
            <el-form-item label="来源类型" prop="relationType">
              <el-select
                v-model="form.relationType"
                filterable
                clearable
                disabled
                style="width: 100%"
              >
                <el-option :value="1" label="采购需求单"></el-option>
                <el-option :value="2" label="采购计划单"></el-option>
                <el-option :value="3" label="采购核价单"></el-option>
                <el-option :value="4" label="采购合同"></el-option>
              </el-select>
            </el-form-item>
            <el-form-item
              v-if="form.relationType == 1"
              label="采购需求单"
              prop="relationName"
            >
              <el-input
                disabled
                v-model="form.relationName"
                placeholder="请选择"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="form.relationType == 2"
              label="采购计划单"
              prop="relationName"
            >
              <!--            <el-input-->
              <!--              @click.native="handPurchasePlan"-->
              <!--              v-model="form.purchasePlanName"-->
              <!--              placeholder="请选择"-->
              <!--            ></el-input> -->
              <el-input
                disabled
                v-model="form.relationName"
                placeholder="请选择"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="form.relationType == 3"
              label="采购核价单"
              prop="relationName"
            >
              <el-input
                disabled
                v-model="form.relationName"
                placeholder="请选择"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="form.relationType == 4"
              label="选择合同"
              prop="contractName"
            >
              <el-input
                clearable
                v-model="form.contractName"
                disabled
                placeholder="请输入"
              />
            </el-form-item>
            <el-form-item label="需求部门：" prop="requireDeptName">
              <el-input v-model="form.requireDeptName" disabled></el-input>
            </el-form-item>
            <el-form-item label="订单类型：" prop="sourceTypeName">
              <el-input v-model="form.sourceTypeName" disabled></el-input>
            </el-form-item>

            <el-form-item prop="remark" label="备注：">
              <el-input
                type="textarea"
                v-model="form.remark"
                disabled
              ></el-input>
            </el-form-item>
            <el-form-item prop="orderFiles" label="附件：">
              <fileMain v-model="form.orderFiles" type="view"></fileMain>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="采购计划名称：" prop="purchasePlanName">
              <el-input v-model="form.purchasePlanName" disabled></el-input>
            </el-form-item>
            <el-form-item label="项目名称：" prop="projectName">
              <el-input v-model="form.projectName" disabled></el-input>
            </el-form-item>
            <el-form-item label="结算方式：" prop="settlementModeName">
              <el-input
                v-model="detailData.settlementModeName"
                disabled
              ></el-input>
            </el-form-item>
            <el-form-item
              prop="outsourceScene"
              label="委外场景"
              v-if="
                orderSourceType.includes(form.sourceType) && form.outsourceScene
              "
            >
              <el-select
                v-model="form.outsourceScene"
                disabled
                style="width: 100%"
              >
                <el-option
                  :value="item.value"
                  :label="item.label"
                  v-for="item in outsourceSceneList"
                  :key="item.value"
                >
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="需求人：" prop="requireUserName">
              <el-input v-model="form.requireUserName" disabled></el-input>
            </el-form-item>
            <el-form-item label="优惠后总金额：" prop="payAmount">
              <el-input v-model="form.payAmount" disabled>
                <template slot="append">元</template>
              </el-input>
            </el-form-item>
            <el-form-item label="订单总金额：" prop="totalAmount">
              <el-input v-model="form.totalAmount" disabled>
                <template slot="append">元</template>
              </el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="订单总金额" prop="orderTotalPrice">
              <el-input v-model="form.orderTotalPrice" disabled />
            </el-form-item>
            <el-form-item label="发货总金额" prop="sendTotalPrice">
              <el-input v-model="form.sendTotalPrice" disabled />
            </el-form-item>
            <el-form-item label="发货总数量" prop="sendTotalCount">
              <el-input v-model="form.sendTotalCount" disabled />
            </el-form-item>
            <el-form-item label="收货总金额" prop="receiveTotalPrice">
              <el-input v-model="form.receiveTotalPrice" disabled />
            </el-form-item>
            <el-form-item label="收货总数量" prop="receiveTotalCount">
              <el-input v-model="form.receiveTotalCount" disabled />
            </el-form-item>
            <el-form-item label="退货总金额" prop="returnTotalPrice">
              <el-input v-model="form.returnTotalPrice" disabled />
            </el-form-item>
            <el-form-item label="退货总数量" prop="returnTotalCount">
              <el-input v-model="form.returnTotalCount" disabled />
            </el-form-item>
          </el-col>
        </el-row>
        <headerTitle title="基本信息"></headerTitle>
        <el-row>
          <el-col :span="12">
            <el-form-item label="采购方名称：" prop="partaName">
              <el-input v-model="form.partaName" disabled> </el-input>
            </el-form-item>
            <el-form-item
              label="采购方统一社会信用代码："
              prop="partaUnifiedSocialCreditCode"
              class="form_item_label"
            >
              <el-input v-model="form.partaUnifiedSocialCreditCode" disabled>
              </el-input>
            </el-form-item>
            <el-form-item label="采购方联系人：" prop="partaLinkName">
              <el-input v-model="form.partaLinkName" disabled> </el-input>
            </el-form-item>
            <el-form-item label="采购方电话：" prop="partaTel">
              <el-input v-model="form.partaTel" disabled> </el-input>
            </el-form-item>
            <el-form-item label="采购方传真：" prop="partaFax">
              <el-input v-model="form.partaFax" disabled></el-input>
            </el-form-item>
            <el-form-item label="	采购方Email：" prop="partaEmail">
              <el-input v-model="form.partaEmail" disabled></el-input>
            </el-form-item>
            <el-form-item label="采购方地址：" prop="partaAddress">
              <el-input v-model="form.partaAddress" disabled></el-input>
            </el-form-item>
          </el-col>

          <el-col :span="12">
            <el-form-item label="供应商名称：" prop="partbName">
              <el-input v-model="form.partbName" disabled></el-input>
            </el-form-item>
            <el-form-item
              label="供应商统一社会信用代码："
              prop="partbUnifiedSocialCreditCode"
              class="form_item_label"
            >
              <el-input
                v-model="form.partbUnifiedSocialCreditCode"
                disabled
              ></el-input>
            </el-form-item>
            <el-form-item label="供应商联系人：" prop="partbLinkName">
              <el-input v-model="form.partbLinkName" disabled></el-input>
            </el-form-item>
            <el-form-item
              prop="partbTel"
              label="供应商联系电话："
              class="form_item_label"
            >
              <el-input v-model="form.partbTel" disabled></el-input>
            </el-form-item>
            <el-form-item prop="partbFax" label="供应商传真：">
              <el-input v-model="form.partbFax" disabled></el-input>
            </el-form-item>

            <el-form-item label="供应商Email：" prop="partbEmail">
              <el-input v-model="form.partbEmail" disabled></el-input>
            </el-form-item>

            <el-form-item label="供应商地址：" prop="partbAddress">
              <el-input v-model="form.partbAddress" disabled></el-input>
            </el-form-item>
            <!-- <el-form-item
              label="售出方税号"
              prop="contactAddress"

            >
              <el-input
                clearable
                v-model="form.contactAddress"
                placeholder="请输入"
              />
            </el-form-item> -->
          </el-col>
        </el-row>
      </el-form>
      <el-tabs v-model="activeName" style="margin-top: 15px" type="border-card">
        <el-tab-pane label="物品清单" name="1">
          <ele-pro-table
            ref="table"
            :needPage="false"
            :columns="columns"
            @columns-change="handleColumnChange"
            :cache-key="cacheKeyUrl"
            :datasource="detailData.productList"
            row-key="id"
            max-height="500px"
          >
            <template v-slot:toolbar>
              <div class="headbox">
                <span class="amount">总计：{{ detailData.totalAmount }}元</span>
                <span class="amount"
                  >应付金额：{{ detailData.payAmount }}元</span
                >
              </div>
            </template>
            <template v-slot:technicalDrawings="{ row }">
              <fileMain v-model="row.technicalDrawings" type="view"></fileMain>
            </template>
            <template v-slot:requirementTotalCount="{ row, $index }">
              <el-button type="text" @click="handleGetBillDetail(row, 1)">{{
                row.requirementTotalCount
              }}</el-button>
              <span v-if="row.requirementTotalCount">{{
                row.measuringUnit
              }}</span>
            </template>
            <template v-slot:planTotalCount="{ row, $index }">
              <el-button type="text" @click="handleGetBillDetail(row, 2)">{{
                row.planTotalCount
              }}</el-button>
              <span v-if="row.planTotalCount">{{ row.measuringUnit }}</span>
            </template>
            <template v-slot:inquiryTotalCount="{ row, $index }">
              <el-button type="text" @click="handleGetBillDetail(row, 3)">{{
                row.inquiryTotalCount
              }}</el-button>
              <span v-if="row.inquiryTotalCount">{{ row.measuringUnit }}</span>
            </template>
            <template v-slot:contractTotalCount="{ row, $index }">
              <el-button type="text" @click="handleGetBillDetail(row, 4)">{{
                row.contractTotalCount
              }}</el-button>
              <span v-if="row.contractTotalCount">{{ row.measuringUnit }}</span>
            </template>
            <template v-slot:doneTotalCount="{ row, $index }">
              <el-button type="text" @click="handleGetBillDetail(row, 5)">{{
                row.doneTotalCount
              }}</el-button>
              <span v-if="row.doneTotalCount">{{ row.measuringUnit }}</span>
            </template>
            <template v-slot:waitTotalCount="{ row, $index }">
              <el-button type="text" @click="handleGetBillDetail(row, 6)">{{
                row.waitTotalCount
              }}</el-button>
              <span v-if="row.waitTotalCount">{{ row.measuringUnit }}</span>
            </template>
          </ele-pro-table>
        </el-tab-pane>

        <el-tab-pane
          label="带料清单"
          name="2"
          v-if="orderSourceType.includes(form.sourceType)"
        >
          <ele-pro-table
            ref="table"
            :needPage="false"
            :columns="competAnalysisListcolumns1"
            :toolkit="[]"
            :datasource="detailData.rawList"
            row-key="id"
          >
            <template v-slot:technicalDrawings="{ row }">
              <fileMain v-model="row.technicalDrawings" type="view"></fileMain>
            </template>
          </ele-pro-table>
        </el-tab-pane>
        <el-tab-pane
          label="产出清单"
          name="3"
          v-if="orderSourceType.includes(form.sourceType)"
        >
          <ele-pro-table
            ref="table"
            :needPage="false"
            :columns="competAnalysisListcolumns1"
            :toolkit="[]"
            :datasource="detailData.outputList"
            row-key="id"
          >
            <template v-slot:technicalDrawings="{ row }">
              <fileMain v-model="row.technicalDrawings" type="view"></fileMain>
            </template>
          </ele-pro-table>
        </el-tab-pane>
      </el-tabs>
    </div>
    <bpmDetail
      v-if="activeComp === 'bpm' && form.processInstanceId"
      :id="form.processInstanceId"
    ></bpmDetail>
    <div v-if="activeComp == 'invoice'">
      <invoiceList :orderId="detailId"></invoiceList>
    </div>
    <div v-if="activeComp == 'outSourceSend'">
      <outSourceSendList :orderId="detailId"></outSourceSendList>
    </div>
    <div v-if="activeComp == 'returnorder'">
      <returnGoodsList :orderId="detailId"></returnGoodsList>
    </div>
    <div v-if="activeComp == 'accountstatement'">
      <accountstatementList :orderId="detailId"></accountstatementList>
    </div>
    <div slot="footer" class="footer">
      <el-button @click="cancel">返回</el-button>
    </div>
    <bill-detail-dialog
      :bill-detail-dialog-flag.sync="billDetailDialogFlag"
      v-if="billDetailDialogFlag"
      ref="billDetailDialogRef"
    ></bill-detail-dialog>
  </ele-modal>
</template>

<script>
  import {
    // getpurchaseorderDetail,
    getpurchaseorderDetail
  } from '@/api/purchasingManage/purchaseOrder';
  import invoiceList from '@/views/purchasingManage/purchaseOrder/orderAssociation/invoiceList.vue';
  import returnGoodsList from '@/views/purchasingManage/purchaseOrder/orderAssociation/returnGoodsList.vue';
  import accountstatementList from '@/views/purchasingManage/purchaseOrder/orderAssociation/accountstatementList.vue';
  import outSourceSendList from '@/views/purchasingManage/purchaseOrder/orderAssociation/outSourceSendList.vue';
  import { getFile } from '@/api/system/file';
  import dictMixins from '@/mixins/dictMixins';
  import { copyObj } from '@/utils/util';
  import bpmDetail from '@/views/bpm/processInstance/detail.vue';
  // import fileMain from '@/components/addDoc/index.vue';
  import billDetailDialog from '@/views/purchasingManage/purchaseOrder/components/billDetailDialog.vue';
  import { orderSourceType, outsourceSceneList, lbjtList } from '@/enum/dict';
  import tabMixins from '@/mixins/tableColumnsMixin';
  import { levelList } from '@/enum/dict.js';

  export default {
    mixins: [dictMixins, tabMixins],
    components: {
      billDetailDialog,
      outSourceSendList,
      invoiceList,
      returnGoodsList,
      accountstatementList,
      bpmDetail
    },
    props: {
      modal: {
        type: Boolean,
        default: true
      }
    },
    data() {
      return {
        orderSourceType,
        outsourceSceneList,
        cacheKeyUrl: 'eos-purchasingManage-purchaseOrder-inventoryTableDetail',
        processList: [
          {
            label: '是',
            value: 1
          },
          {
            label: '否',
            value: 0
          }
        ],
        activeComp: 'order',
        billDetailDialogFlag: false,
        fullscreen: false,
        tabOptions: [
          { key: 'order', name: '订单详情' },
          { key: 'bpm', name: '流程详情' },
          { key: 'outSourceSend', name: '发货列表' },
          { key: 'invoice', name: '收货列表' },
          { key: 'returnorder', name: '退货列表' },
          { key: 'accountstatement', name: '对账列表' }
        ],
        visible: false,
        detailId: '',
        title: '详情',
        row: {},
        activeName: '1',
        form: {
          orderFiles: [{ name: '222' }]
        },
        rules: {},
        detailData: {},

        columns: [
          {
            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'
          },
          {
            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'
          },
          {
            minWidth: 200,
            prop: 'taskName',
            label: '工序',
            slot: 'taskName',
            align: 'center'
          },
          {
            width: 120,
            prop: 'requirementTotalCount',
            label: '采购需求数量',
            slot: 'requirementTotalCount',
            align: 'center'
          },
          {
            width: 120,
            prop: 'planTotalCount',
            label: '采购计划数量',
            slot: 'planTotalCount',
            align: 'center'
          },
          {
            width: 120,
            prop: 'inquiryTotalCount',
            label: '采购核价数量',
            slot: 'inquiryTotalCount',
            align: 'center'
          },
          {
            width: 120,
            prop: 'contractTotalCount',
            label: '采购合同数量',
            slot: 'contractTotalCount',
            align: 'center'
          },
          {
            width: 80,
            prop: 'doneTotalCount',
            label: '已采数量',
            slot: 'doneTotalCount',
            align: 'center'
          },
          {
            width: 100,
            prop: 'waitTotalCount',
            label: '待采数量',
            // slot: 'waitTotalCount',
            align: 'center',
            formatter: (row, column) => {
              if (row.waitTotalCount) {
                return row.waitTotalCount + ' ' + row.measuringUnit;
              }
            }
          },
          {
            width: 100,
            prop: 'doneReceiveCount',
            label: '已收货数量',
            align: 'center',
            formatter: (row, column) => {
              if (row.doneReceiveCount) {
                return row.doneReceiveCount + ' ' + row.measuringUnit;
              }
            }
          },
          {
            width: 100,
            prop: 'waitReceiveCount',
            label: '未收货数量',
            align: 'center',
            formatter: (row, column) => {
              if (row.waitReceiveCount) {
                return row.waitReceiveCount + ' ' + row.measuringUnit;
              }
            }
          },
          {
            width: 170,
            prop: 'purchaseCount',
            label: '数量',
            align: 'center',
            formatter: (row, column) => {
              if (row.purchaseCount) {
                return row.purchaseCount + ' ' + row.purchaseUnit;
              }
            }
          },
          // {
          //   width: 150,
          //   prop: 'purchaseUnit',
          //   label: '单位',
          //   align: 'center'
          // },
          {
            minWidth: 180,
            prop: 'packingSpecification',
            align: 'center',
            label: '包装规格',
            showOverflowTooltip: true
          },
          {
            width: 150,
            prop: 'totalCount',
            label: '计量数量',
            slot: 'totalCount',
            align: 'center',
            formatter: (row, column) => {
              if (row.totalCount) {
                return row.totalCount + ' ' + row.measuringUnit;
              }
            }
          },
          // {
          //   width: 120,
          //   prop: 'measuringUnit',
          //   label: '计量单位',
          //   slot: 'measuringUnit',
          //   align: 'center'
          // },
          {
            width: 120,
            prop: 'produceType',
            align: 'center',
            label: '属性类型',
            showOverflowTooltip: true,
            formatter: (row, column) => {
              if (row.produceType) {
                return row.produceType
                  .map((item) => {
                    return lbjtList[item];
                  })
                  .toString();
              }
            }
          },

          {
            width: 120,
            prop: 'singleWeight',
            label: '单重',
            slot: 'singleWeight',
            align: 'center',
            formatter: (row, column) => {
              if (row.singleWeight) {
                return row.singleWeight + ' ' + row.weightUnit;
              }
            }
          },
          {
            width: 120,
            prop: 'totalWeight',
            label: '总重',
            slot: 'totalWeight',
            align: 'center',
            formatter: (row, column) => {
              if (row.totalWeight) {
                return row.totalWeight + ' ' + row.weightUnit;
              }
            }
          },
          // {
          //   width: 120,
          //   prop: 'weightUnit',
          //   label: '重量单位',
          //   slot: 'weightUnit',
          //   align: 'center'
          // },
          // {
          //   width: 160,
          //   prop: 'pricingWay',
          //   label: '计价方式',
          //   slot: 'pricingWay',
          //   align: 'center',
          //   formatter: (row, column) => {
          //     return row.pricingWay == 1
          //       ? '按数量计费'
          //       : row.pricingWay == 2
          //       ? '按重量计费'
          //       : '';
          //   }
          // },
          {
            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: 120,
            prop: 'taxRate',
            label: '税率',
            formatter: (row, column) => {
              return row.taxRate && row.taxRate + '%';
            },
            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',
            formatter: (_row, _column, cellValue) => {
              return _row.totalPrice + '元';
            },
            align: 'center'
          },
          {
            width: 120,
            prop: 'discountTotalPrice',
            label: '折后合计',
            slot: 'discountTotalPrice',
            formatter: (_row, _column, cellValue) => {
              return _row.discountTotalPrice + '元';
            },
            align: 'center'
          },
          {
            width: 110,
            prop: 'batchNo',
            label: '批次号',
            slot: 'batchNo',
            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'
          },
          {
            width: 160,
            prop: 'deliveryDeadline',
            label: '交期截止日期',
            slot: 'deliveryDeadline',
            align: 'center'
          },
          {
            width: 200,
            prop: 'guaranteePeriod',
            label: '有效期',
            slot: 'guaranteePeriod',
            formatter: (_row, _column, cellValue) => {
              return (
                (_row.guaranteePeriod || '') + _row.guaranteePeriodUnitName
              );
            },
            align: 'center'
          },
          {
            width: 160,
            prop: 'guaranteePeriodDeadline',
            label: '有效期截止日期',
            slot: 'guaranteePeriodDeadline',
            align: 'center'
          },
          {
            width: 120,
            prop: 'technicalAnswerName',
            label: '技术答疑人',
            slot: 'technicalAnswerName',
            align: 'center'
          },
          {
            width: 220,
            prop: 'technicalParams',
            label: '技术参数',
            slot: 'technicalParams',
            align: 'center'
          },
          {
            width: 240,
            prop: 'technicalDrawings',
            label: '技术图纸',
            slot: 'technicalDrawings',
            formatter: (_row, _column, cellValue) => {
              return (
                (_row.guaranteePeriod || '') + _row.guaranteePeriodUnitName
              );
            },
            align: 'center'
          },
          {
            width: 220,
            prop: 'remark',
            label: '备注',
            slot: 'remark',
            align: 'center'
          }
        ],
        competAnalysisListcolumns1: [
          {
            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'
          },
          {
            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'
          },
          {
            minWidth: 200,
            prop: 'taskName',
            label: '工序',
            slot: 'taskName',
            align: 'center'
          },

          {
            width: 150,
            prop: 'totalCount',
            label: '计量数量',
            slot: 'totalCount',
            align: 'center',
            formatter: (row, column) => {
              if (row.totalCount) {
                return row.totalCount + ' ' + row.measuringUnit;
              }
            }
          },
          // {
          //   width: 120,
          //   prop: 'measuringUnit',
          //   label: '计量单位',
          //   slot: 'measuringUnit',
          //   align: 'center'
          // },
          {
            width: 120,
            prop: 'singleWeight',
            label: '单重',
            slot: 'singleWeight',
            align: 'center',
            formatter: (row, column) => {
              if (row.singleWeight) {
                return row.singleWeight + ' ' + row.weightUnit;
              }
            }
          },
          {
            width: 120,
            prop: 'totalWeight',
            label: '总重',
            slot: 'totalWeight',
            align: 'center',
            formatter: (row, column) => {
              if (row.totalWeight) {
                return row.totalWeight + ' ' + row.weightUnit;
              }
            }
          },

          {
            width: 110,
            prop: 'batchNo',
            label: '批次号',
            slot: 'batchNo',
            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(',')
                : '';
            }
          },
          // {
          //   width: 120,
          //   prop: 'deliveryDays',
          //   label: '交期(天)',
          //   slot: 'deliveryDays'
          // },
          {
            width: 160,
            prop: 'deliveryDeadline',
            label: '交期截止日期',
            slot: 'deliveryDeadline',
            align: 'center'
          },
          {
            width: 200,
            prop: 'guaranteePeriod',
            label: '有效期',
            slot: 'guaranteePeriod',
            formatter: (_row, _column, cellValue) => {
              return (
                (_row.guaranteePeriod || '') + _row.guaranteePeriodUnitName
              );
            },
            align: 'center'
          },
          {
            width: 160,
            prop: 'guaranteePeriodDeadline',
            label: '有效期截止日期',
            slot: 'guaranteePeriodDeadline',
            align: 'center'
          },
          {
            width: 120,
            prop: 'technicalAnswerName',
            label: '技术答疑人',
            slot: 'technicalAnswerName',
            align: 'center'
          },
          {
            width: 220,
            prop: 'technicalParams',
            label: '技术参数',
            slot: 'technicalParams',
            align: 'center'
          },
          {
            width: 240,
            prop: 'technicalDrawings',
            label: '技术图纸',
            slot: 'technicalDrawings',
            formatter: (_row, _column, cellValue) => {
              return (
                (_row.guaranteePeriod || '') + _row.guaranteePeriodUnitName
              );
            },
            align: 'center'
          },
          {
            width: 220,
            prop: 'remark',
            label: '备注',
            slot: 'remark',
            align: 'center'
          }
        ]
      };
    },
    created() {
      this.requestDict('产地');
    },
    methods: {
      async open(row) {
        this.activeName = '1';
        this.activeComp = 'order';

        this.form = row;
        this.visible = true;
        await this.getDetailData(row.id);
        this.detailId = row.id;
      },
      handleGetBillDetail(row, type) {
        this.billDetailDialogFlag = true;
        this.$nextTick(() => {
          this.$refs.billDetailDialogRef.open(row, type);
        });
      },
      cancel() {
        this.$nextTick(() => {
          // 关闭后，销毁所有的表单数据
          (this.form = copyObj(this.formDef)),
            (this.otherForm = copyObj(this.otherFormDef)),
            (this.tableBankData = []);
          this.tableLinkData = [];
          this.visible = false;
        });
      },
      downloadFile(file) {
        getFile({ objectName: file.storePath }, file.name);
      },
      async getDetailData(id) {
        this.loading = true;
        const data = await getpurchaseorderDetail(id);
        this.loading = false;
        if (data) {
          this.form = data;
          this.detailData = data;
        }
      }
    }
  };
</script>

<style scoped lang="scss">
  .ele-dialog-form {
    .el-form-item {
      margin-bottom: 10px;
    }
  }

  .headbox {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    .amount {
      font-size: 14px;
      font-weight: bold;
      margin-right: 20px;
    }
  }

  .switch_left ul .active {
    border-top: 4px solid var(--color-primary);
    color: var(--color-primary-5);
  }

  .switch {
    padding-bottom: 20px;
  }

  :deep .divider .content {
    justify-content: flex-start;
  }
</style>
