<template>
  <div>
    <el-form ref="form" :model="form" :rules="rules" label-width="120px">
      <headerTitle title="合同信息"></headerTitle>
      <el-row>
        <el-col :span="12">
          <el-form-item
            label="合同类型："
            prop="type"
            style="margin-bottom: 16px"
          >
            {{ form.typeName }} {{ form.categoryName }}
          </el-form-item>
          <el-form-item
            label="核价单："
            prop="sourceName"
            style="margin-bottom: 22px"
            v-if="form.sourceType == 2"
          >
            {{form.sourceName}}
          </el-form-item>
          <el-form-item
            label="报价单："
            prop="sourceName"
            style="margin-bottom: 22px"
            v-if="form.sourceType == 1"
          >
            {{form.sourceName}}
          </el-form-item>
          <el-form-item
            label="计划名称："
            prop="sourceName"
            style="margin-bottom: 22px"
            v-if="form.sourceType == 3"
          >
            {{form.sourceName}}
          </el-form-item>
          <el-form-item
            label="商机名称："
            prop="sourceName"
            style="margin-bottom: 22px"
            v-if="form.sourceType == 4"
          >
            {{form.sourceName}}
          </el-form-item>
          <el-form-item
            label="合同名称："
            prop="contractName"
            style="margin-bottom: 16px"
          >
            {{ form.contractName }}
          </el-form-item>
          <el-form-item
            label="编码："
            prop="contractNumber"
            style="margin-bottom: 16px"
          >
            {{ form.contractNo }}
          </el-form-item>
          <el-form-item
            label="合同编号："
            prop="contractNumber"
            style="margin-bottom: 16px"
          >
            {{ form.contractNumber }}
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item
            label="签订日期："
            prop="contractStartDate"
            style="margin-bottom: 16px"
          >
            {{ form.contractStartDate }}
          </el-form-item>
          <el-form-item
            label="结束日期："
            prop="contractEndDate"
            style="margin-bottom: 16px"
          >
            {{ form.contractEndDate }}
          </el-form-item>
          <el-form-item
            label="计价方式："
            prop="payWay"
            style="margin-bottom: 16px"
          >
            {{ form.pricingWay==1?'按数量计费':'按重量计费' }}
          </el-form-item>
          <el-form-item
            label="结算方式："
            prop="payWay"
            style="margin-bottom: 16px"
          >
            {{ form.settlementModeName }}
          </el-form-item>
          <el-form-item prop="contractFile" label="合同附件：">
            <div v-if="form.contractFile && form.contractFile?.length">
              <el-link
                v-for="link in form.contractFile"
                :key="link.id"
                type="primary"
                :underline="false"
                @click="downloadFile(link)"
              >
                {{ link.name }}</el-link
              >
            </div>
          </el-form-item>
        </el-col>
      </el-row>
      <headerTitle title="基本信息"></headerTitle>
      <el-row>
        <el-col :span="12">
          <el-form-item
            label="甲方名称："
            prop="partaName"
            style="margin-bottom: 16px"
          >
            {{ form.partaName }}
          </el-form-item>
          <el-form-item
            label="甲方统一社会信用代码："
            prop="partaName"
            label-width="180px"
            style="margin-bottom: 16px"
          >
            {{ form.partaUnifiedSocialCreditCode }}
          </el-form-item>
          <el-form-item
            label="甲方联系人："
            prop="partaLinkName"
            style="margin-bottom: 16px"
          >
            {{ form.partaLinkName }}
          </el-form-item>
          <el-form-item
            label="甲方电话："
            prop="partaTel"
            style="margin-bottom: 16px"
          >
            {{ form.partaTel }}
          </el-form-item>
          <el-form-item
            label="甲方传真："
            prop="partaFax"
            style="margin-bottom: 16px"
          >
            {{ form.partaFax }}
          </el-form-item>
          <el-form-item
            label="	甲方Email："
            prop="partaEmail"
            style="margin-bottom: 16px"
          >
            {{ form.partaEmail }}
          </el-form-item>
          <el-form-item
            label="甲方地址："
            prop="partaAddress"
            style="margin-bottom: 16px"
          >
            {{ form.partaAddress }}
          </el-form-item>
          <!-- <el-form-item
            label="甲方税号"
            prop="contactAddress"
            style="margin-bottom: 16px"
          >
            <el-input
              clearable
              v-model="form.contactAddress"
              placeholder="请输入"
            />
          </el-form-item> -->
        </el-col>

        <el-col :span="12">
          <el-form-item
            label="乙方名称："
            prop="partbName"
            style="margin-bottom: 16px"
          >
            {{ form.partbName }}
          </el-form-item>
          <el-form-item
            label="乙方统一社会信用代码："
            prop="partaName"
            label-width="180px"

            style="margin-bottom: 16px"
          >
            {{ form.partbUnifiedSocialCreditCode }}
          </el-form-item>
          <el-form-item
            label="乙方联系人："
            prop="partbLinkName"
            style="margin-bottom: 16px"
          >
            {{ form.partbLinkName }}
          </el-form-item>
          <el-form-item prop="partbTel" label="乙方联系电话：">
            {{ form.partbTel }}
          </el-form-item>
          <el-form-item prop="partbFax" label="乙方传真：">
            {{ form.partbFax }}
          </el-form-item>

          <el-form-item
            label="乙方Email："
            prop="partbEmail"
            style="margin-bottom: 16px"
          >
            {{ form.partbEmail }}
          </el-form-item>

          <el-form-item
            label="乙方地址："
            prop="partbAddress"
            style="margin-bottom: 16px"
          >
            {{ form.partbAddress }}
          </el-form-item>
          <!-- <el-form-item
            label="乙方税号"
            prop="contactAddress"
            style="margin-bottom: 16px"
          >
            <el-input
              clearable
              v-model="form.contactAddress"
              placeholder="请输入"
            />
          </el-form-item> -->
        </el-col>
      </el-row>
    </el-form>
    <headerTitle title="产品清单"></headerTitle>

    <inventoryTabledetail
      ref="inventoryTabledetailRef"
      :isDiscountTotalPrice="true"
      :contractBookType="form.type"
      :isCustomerMark="false"
    >
    </inventoryTabledetail>

    <headerTitle
      :title="form.type == '2' ? '付款方式' : '收款方式'"
      style="margin-top: 30px"
    ></headerTitle>
    <ele-pro-table
      ref="table"
      :needPage="false"
      :columns="receiptPaymentListcolumns"
      :toolkit="[]"
      :datasource="detailData.receiptPaymentList"
      row-key="id"
    >
    </ele-pro-table>
  </div>
</template>

<script>
  import { getDetail } from '@/api/bpm/components/contractManage/contractBook';
  import { getFile } from '@/api/system/file';
  import dictMixins from '@/mixins/dictMixins';
  import { copyObj } from '@/utils/util';
  import inventoryTabledetail from './inventoryTabledetail.vue';

  export default {
    mixins: [dictMixins],
    components: {
      inventoryTabledetail
    },
    props: {
      businessId: {
        default: ''
      }
    },
    data() {
      return {
        visible: false,
        detailId: '',
        title: '详情',
        row: {},
        activeName: 'base',
        form: {},
        rules: {},
        detailData: {},
        receiptPaymentListcolumns: [
          {
            width: 45,
            type: 'index',
            columnKey: 'index',
            align: 'center',
            fixed: 'left'
          },
          {
            width: 200,
            prop: 'moneyName',
            label: '款项名称',
            slot: 'moneyName'
          },
          {
            width: 100,
            prop: 'price',
            label: '金额',
            slot: 'price',
            formatter: (_row, _column, cellValue) => {
              return _row.price + '元';
            }
          },
          {
            width: 100,
            prop: 'ratio',
            label: '比例',
            slot: 'ratio',
            formatter: (_row, _column, cellValue) => {
              return _row.ratio + '%';
            }
          },
          {
            width: 160,
            prop: 'deadLine',
            label: '截止日期',
            slot: 'deadLine'
          },
          {
            prop: 'remark',
            label: '	说明',
            slot: 'remark'
          }
        ],
        competAnalysisListcolumns: [
          {
            width: 45,
            type: 'index',
            columnKey: 'index',
            align: 'center',
            fixed: 'left'
          },
          {
            width: 200,
            prop: 'productName',
            label: '名称',
            slot: 'productName'
          },
          {
            width: 120,
            prop: 'productCode',
            label: '编码',
            slot: 'productCode'
          },
          {
            width: 200,
            prop: 'productCategoryName',
            label: '类型',
            slot: 'productCategoryName'
          },
          {
            width: 160,
            prop: 'productBrand',
            label: '牌号',
            slot: 'productBrand'
          },
          {
            width: 120,
            prop: 'modelType',
            label: '型号',
            slot: 'modelType'
          },
          {
            width: 120,
            prop: 'specification',
            label: '规格',
            slot: 'specification'
          },

          {
            width: 160,
            prop: 'singlePrice',
            label: '单价',
            slot: 'singlePrice'
          },
          {
            width: 120,
            prop: 'totalCount',
            label: '数量',
            slot: 'totalCount'
          },
          {
            width: 120,
            prop: 'totalPrice',
            label: '销售总金额',
            slot: 'totalPrice',
            formatter: (_row, _column, cellValue) => {
              return _row.totalPrice + '元';
            }
          },
          {
            width: 120,
            prop: 'measuringUnit',
            label: '计量单位',
            slot: 'measuringUnit'
          },
          {
            width: 120,
            prop: 'deliveryDays',
            label: '交期(天)',
            slot: 'deliveryDays'
          },
          {
            width: 200,
            prop: 'guaranteePeriod',
            label: '质保期',
            slot: 'guaranteePeriod',
            formatter: (_row, _column, cellValue) => {
              return (_row.guaranteePeriod||'') + _row.guaranteePeriodUnitName;
            }
          },
          // {
          //   width: 120,
          //   prop: 'guaranteePeriodUnitCode',
          //   label: '',
          //   slot: 'guaranteePeriodUnitCode'
          // },
          {
            width: 240,
            prop: 'customerReqFiles',
            label: '技术图纸',
            slot: 'customerReqFiles'
          },

          {
            width: 120,
            prop: 'technicalAnswerName',
            label: '技术答疑人',
            slot: 'technicalAnswerName'
          },
          {
            width: 220,
            prop: 'technicalParams',
            label: '技术参数',
            slot: 'technicalParams'
          },
          {
            width: 240,
            prop: 'technicalDrawings',
            label: '技术图纸',
            slot: 'technicalDrawings',
            formatter: (_row, _column, cellValue) => {
              return (_row.guaranteePeriod||'') + _row.guaranteePeriodUnitName;
            }
          },
          {
            width: 220,
            prop: 'remark',
            label: '备注',
            slot: 'remark'
          }
        ]
      };
    },
    created() {
      this.getDetailData(this.businessId);
    },
    methods: {
      //导出
      // async exportTable() {
      //   this.loading = true;
      //   const response = await getExport(this.detailId);
      // },
      // async open(row) {
      //   this.form = row;
      //   this.visible = true;
      //   this.getDetailData(row.id);
      //   this.detailId = row.id;
      // },

      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 getDetail(id);
        this.loading = false;
        if (data) {
          this.detailData = data;
          this.form = data.contractVO;
          this.$refs.inventoryTabledetailRef &&
            this.$refs.inventoryTabledetailRef.putTableValue({
              ...data,
              ...data.contractVO
            });
          console.log(this.form.type);
        }
      }
    }
  };
</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;
    }
  }
</style>
