<template>
  <div class="borderless">
    <div class="customer-head">
      <div class="customer-back">
        <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
                   @click="backToList">返回列表
        </el-button>
      </div>
      <div class="upper_right_button">
        <el-button type="primary"
                   size="small"
                   class="el-button--small-yh"
                   :loading="buttonLoading"
                   :disabled="!form.id"
                   @click.stop="confirmReceipt">
          {{receiptDisable ?"撤销收货":"确认收货"}}
        </el-button>
        <el-button type="success"
                   size="small"
                   class="el-button--small-yh "
                   :disabled="true"
                   :loading="buttonLoading"
                   @click.stop="">复制新单
        </el-button>
        <el-button
          class="el-button--small-yh"
          type="primary"
          size="small"
          :disabled="disabled || receiptDisable"
          :loading="buttonLoading"
          @click="editCustomer"
        >{{ form.id ? '确认修改' : '确认新增' }}
        </el-button>
      </div>
    </div>
    <div class="customer-main">
      <el-form :model="form" ref="form" label-width="130px" class="demo-ruleForm">
        <containerTitle title="基础信息"></containerTitle>
        <basic-container style="margin-bottom: 10px">
          <el-row>
            <el-col v-for="(item,index) in basicData.column" :key="index" :span="item.span?item.span:8">
              <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
                <el-date-picker v-if="item.type === 'datetime'" style="width: 100%;" v-model="form[item.prop]" :disabled="receiptDisable" size="small" type="date" placeholder="请选择日期" value-format="yyyy-MM-dd HH:mm:ss"/>
                <selectComponent v-else-if="item.prop === 'corpId'" :disabled="receiptDisable" v-model="form[item.prop]" :configuration="configuration"/>
                <el-select v-else-if="item.prop === 'storageId'" style="width: 100%" :disabled="receiptDisable" v-model="form[item.prop]" size="small" placeholder="请选择" clearable filterable>
                  <el-option v-for="(item,index) in storageIdDic" :key="index" :label="item.cname" :value="item.id"></el-option>
                </el-select>
<!--                <warehouse-select v-else-if="item.prop === 'storageId'" v-model="form[item.prop]" @change="warehouseChange" :configuration="configuration" />-->
                <el-input type="textarea" v-else-if="(item.prop === 'deliveryRemarks')" v-model="form[item.prop]"  :disabled="receiptDisable" size="small" autocomplete="off" placeholder="请输入"></el-input>
                <el-input v-else v-model="form[item.prop]" size="small" :disabled="item.disabled?true:false || receiptDisable" placeholder="请输入" autocomplete="off"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
        </basic-container>
        <containerTitle title="收货明细"></containerTitle>
        <basic-container style="margin-bottom: 10px">
          <avue-crud
            :option="customerContact"
            v-model="contactsForm"
            :data="contactsData"
            ref="crudContact"
            @row-save="rowSave"
            @row-click="handleRowClick"
            @row-update="rowUpdate"
            @saveColumn="saveColumn"
            @row-del="rowDel"
          >
            <template slot-scope="{row}" slot="billNo">
              <span v-if="row.$cellEdit" class="required_fields">*</span>
              <el-input
                v-if="row.$cellEdit"
                v-model="row.billNo"
                style="width: 90%"
                placeholder=" "
                size="small"
                @change="bingOut(row)"
              ></el-input>
              <span v-else>{{ row.billNo }}</span>
            </template>
            <template slot-scope="{row}" slot="contractNumber">
              <span v-if="row.$cellEdit" class="required_fields">*</span>
              <el-select
                v-if="row.$cellEdit"
                style="width:90% !important;"
                v-model="row.contractNumber"
                placeholder=" "
                size="small"
                clearable
                filterable
              >
                <el-option
                  style="width:90%"
                  v-for="(item,index) in contractDic"
                  :key="index"
                  :label="item.orderNo"
                  @change="sumOrderNo(row)"
                  :value="item.orderNo"
                ></el-option>
              </el-select>
              <span v-else>{{ row.contractNumber }}</span>
            </template>
            <template slot="priceCategory" slot-scope="{row,index}">
              <span v-if="row.$cellEdit" class="required_fields">*</span>
              <goods-select
                style="width:90% !important;"
                v-if="row.$cellEdit"
                v-model="row.priceCategoryNames"
                @valueName="(value) => valueName(value,row)"
                :configuration="itemConfiguration"
              >
                <!-- @valueName="valueName($event,row)"   保留入参情况下，自定义参数-->
              </goods-select>
              <span v-else>{{ row.priceCategoryNames }}</span>
            </template>
            <template slot="cntrNo" slot-scope="{ row }">
              <span v-if="row.$cellEdit" class="required_fields">*</span>
              <el-input
                style="width:90%"
                v-if="row.$cellEdit"
                v-model="row.cntrNo"
                placeholder="请输入"
                size="small"
              ></el-input>
              <span v-else>{{ row.cntrNo }}</span>
            </template>
            <template slot="billWeight" slot-scope="{ row }">
              <el-input
                style="width:90%"
                v-if="row.$cellEdit"
                v-model="row.billWeight"
                placeholder="请输入"
                size="small"
                oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d\d\d\d\d).*$/, "$1.$2")'
                @input="billWeightChange(row)"
                @change="totalChange(row.billWeight)"
              ></el-input>
              <span v-else>{{ row.billWeight }}</span>
            </template>
            <template slot="invoiceWeight" slot-scope="{ row }">
              <el-input
                v-if="row.$cellEdit"
                v-model="row.invoiceWeight"
                placeholder="请输入"
                size="small"
                oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d\d\d\d\d).*$/, "$1.$2")'
                @change="totalChange(row.invoiceWeight)"
              ></el-input>
              <span v-else>{{ row.invoiceWeight }}</span>
            </template>
            <template slot="price" slot-scope="{ row }">
              <el-input
                v-if="row.$cellEdit"
                v-model="row.price"
                placeholder="请输入"
                size="small"
                oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
                @input="priceChange(row)"
              ></el-input>
              <span v-else>{{ row.price }}</span>
            </template>
            <template slot="actualQuantity" slot-scope="{ row }">
              <span v-if="row.$cellEdit" class="required_fields">*</span>
              <el-input
                style="width:90%"
                v-if="row.$cellEdit"
                v-model="row.actualQuantity"
                placeholder="请输入"
                size="small"
                oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
              ></el-input>
              <span v-else>{{ row.actualQuantity }}</span>
            </template>
            <template slot="contractAmount" slot-scope="{ row }">
              <el-input
                v-if="row.$cellEdit"
                v-model="row.contractAmount"
                placeholder="请输入"
                size="small"
                oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
              ></el-input>
              <span v-else>{{ row.contractAmount }}</span>
            </template>
            <template slot="currency" slot-scope="{ row }">
              <el-select v-model="row.currency"
                         v-if="row.$cellEdit"
                         size="small"
                         placeholder="请选择 币别"
                         @change="currencyChange(row)"
                         clearable filterable>
                <el-option v-for="(item,index) in currencyDic" :key="index" :label="item.dictValue"  :value="item.dictValue"></el-option>
              </el-select>
              <span v-else>{{ row.currency }}</span>
            </template>
            <template slot="taxRate" slot-scope="{ row }">
              <el-input
                v-if="row.$cellEdit"
                v-model="row.taxRate"
                size="small"
                oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d\d\d\d\d).*$/, "$1.$2")'
                autocomplete="off"
              >
                <i slot="suffix" style="margin-top:3px;margin-right: 10px;display:inline-block">%</i>
              </el-input>
              <span v-else>{{ row.taxRate }}</span>
            </template>
            <template slot-scope="{row,index}" slot="menu">
              <el-button
                type="text"
                size="small"
                :disabled="receiptDisable"
                @click="rowCell(row,index)"
              >{{ row.$cellEdit ? '修改完成' : '修改' }}
              </el-button>
              <el-button
                type="text"
                size="small"
                :disabled="receiptDisable"
                @click="rowDel(row,index)"
              >删除
              </el-button>
            </template>
            <template slot="menuLeft" slot-scope="{size}">
              <el-button type="primary"
                         icon="el-icon-plus"
                         size="small"
                         :disabled="receiptDisable"
                         @click="commoditySelection"
              >导入明细
              </el-button>
            </template>
          </avue-crud>
        </basic-container>
        <containerTitle title="附件上传"></containerTitle>
        <basic-container style="margin-bottom: 40px">
          <avue-crud
            :option="upLoadOption"
            v-model="upLoadForm"
            :data="upLoadData"
            @row-save="upLoadSave"
            @row-update="upLoadUpdate"
            @row-del="upLoadDel"
          ></avue-crud>
        </basic-container>
      </el-form>
    </div>

    <el-dialog
      title="导入采购"
      append-to-body
      class="el-dialogDeep"
      :visible.sync="procurementDialog"
      width="60%"
      :close-on-click-modal="false"
      :destroy-on-close="true"
      :close-on-press-escape="false"
      top="10vh"
      v-dialog-drag>
      <procurement-detail
        @closeFun="closeFun"
       @importProMent="importProMent"
      >
      </procurement-detail>
    </el-dialog>
  </div>
</template>

<script>
import customerContact from "./config/customerContact.json"
import {detailReceiptList,
  submitReceiptList,
  removeGoodsItem,
  getStorage,
  getInventory,
  confirmReceipt,
  repealReceipt
} from "@/api/importTrade/receipt"
import upLoadOption from "../../exportTrade/purchaseContract/config/uploadList.json";
import {detailListData } from "@/api/importTrade/purchase";
import { contrastObj,contrastList } from "@/util/contrastData";
import { getOrgOrderNo } from "@/api/importTrade/salesContract"
import  procurementDetail from "@/components/procurement/purchase";
import {selectJKGoodsNum} from "@/api/basicData/inventoryAccount"
import _ from "lodash";

export default {
  name: "detailsPageEdit",
  props: {
    detailData: {
      type: Object
    }
  },
  components:{
    procurementDetail
  },
  data() {
    return {
      form: {},
      disabled: false,
      skip:false,
      buttonLoading:false,
      receiptDisable:false,
      customerContact: customerContact,
      contactsForm: {},
      contactsData: [],
      contractDic:[],
      currencyDic:[],
      singleton:[],
      selectKind:-1,
      configuration:{
        multipleChoices:false,
        multiple:false,
        disabled:false,
        searchShow:true,
        collapseTags:false,
        placeholder:'请点击右边按钮选择',
        dicData:[]
      },
      itemConfiguration:{
        multipleChoices:false,
        multiple:false,
        disabled:false,
        searchShow:true,
        collapseTags:false,
        placeholder:'请点击右边按钮选择',
        dicData:[]
      },
      basicData: {
        column: [
          {
            label: '系统号',
            prop: 'sysNo',
            disabled:true,
            rules: [
              {
                required: false,
                message: ' ',
                trigger: 'blur'
              }
            ]
          },
          {
            label: '供应商',
            prop: 'corpId',
            span: 16,
            dicData: [],
            rules: [
              {
                required: true,
                message: ' ',
                trigger: 'blur'
              }
            ]
          },
          {
            label: '合同号',
            prop: 'orderNo',
            rules: [
              {
                required: false,
                message: ' ',
                trigger: 'blur'
              }
            ]
          },
          {
            label: '仓库名称',
            type:'select',
            prop: 'storageId',
            dicData: [],
            rules: [
              {
                required: true,
                message: ' ',
                trigger: 'blur'
              }
            ]
          },{
            label: '发货日期',
            prop: 'businessDate',
            type:'datetime',
            rules: [
              {
                required: false,
                message: ' ',
                trigger: 'blur'
              }
            ]
          },
          {
            label: '发货人',
            prop: 'arrivalContact',
            rules: [
              {
                required: false,
                message: ' ',
                trigger: 'blur'
              }
            ]
          },
          {
            label: '发货电话',
            prop: 'arrivalTel',
            rules: [
              {
                required: false,
                message: ' ',
                trigger: 'blur'
              }
            ]
          },
          {
            label: '发货地址',
            prop: 'arrivalAddress',
            rules: [
              {
                required: false,
                message: ' ',
                trigger: 'blur'
              }
            ]
          },
          {
            label: '业务员',
            prop: 'saleman',
            dicData: [],
            rules: [
              {
                required: false,
                message: ' ',
                trigger: 'blur'
              }
            ]
          },
          {
            label: '发票重量',
            prop: 'invoiceWeight',
            disabled: true,
            rules: [
              {
                required: false,
                message: ' ',
                trigger: 'blur'
              }
            ]
          },
          {
            label: '码单重量',
            prop: 'billWeight',
            disabled: true,
            rules: [
              {
                required: false,
                message: ' ',
                trigger: 'blur'
              }
            ]
          },
          {
            label: '备注',
            prop: 'deliveryRemarks',
            span: 24,
            mock: {
              type: 'county'
            }
          }
        ]
      },
      //上传文件
      upLoadOption: upLoadOption,
      upLoadData:[],
      storageIdDic:[],
      upLoadForm:{},
      loading: false,
      commodityData: false,
      tableData: [],
      //
      procurementDialog:false,
      //新旧数据对比
      oldForm:{},
      oldContactsData:[],
      oldUpLoadData:[],
    }
  },
  async created() {
    // this.customerContact = await this.getColumnData(this.getColumnName(41), customerContact);
    //币别
    this.getWorkDicts("currency").then(res =>{
      this.currencyDic = res.data.data
    })
    getStorage().then(res =>{
      this.storageIdDic = res.data
    })
    if (this.detailData.id) {
      this.buttonLoading = true;
      let id = this.detailData.id.replace(/\"/g, "")
      detailReceiptList(id).then(res => {
        this.form = res.data.data;
        this.oldForm = Object.assign({},res.data.data);
        this.receiptDisable = res.data.data.deliveryStatus === "已收货" ?   true :false
        this.configuration.disabled = this.receiptDisable
        this.configuration.dicData = this.form.corpName
        if(this.form.deliveryItemsList){
          this.contactsData = this.form.deliveryItemsList
          this.oldContactsData = this.deepClone(this.form.deliveryItemsList)
        }
        if(this.form.deliveryFilesList){
          this.upLoadData = this.form.deliveryFilesList
          this.oldUpLoadData = this.deepClone(this.form.deliveryFilesList)
        }
      }).finally(()=>{
        this.buttonLoading = false;
      })
    }
    if(this.detailData.params){
      this.skip = true
      this.buttonLoading = true;
      detailListData(this.detailData.params.id).then(res =>{
        const orderNoList = [];  //合同号数据
        this.detailData.params.orderItemIds.forEach((e,i) =>{
          const item =   res.data.data.itemsVOList[e];
          item.srcId =  item.id;
          item.orgOrderNo =  res.data.data.orgOrderNo;
          item.contractNumber =  res.data.data.orderNo;
          item.exRate = res.data.data.exchangeRate;  //汇率
          item.currency = res.data.data.currency;   //币别
              orderNoList.push(item.contractNumber)
          if(item.actualQuantity !== 0){   //如果收过货
            item.actualQuantity = _.subtract(item.orderQuantity, item.actualQuantity); //收货件数 = 采购件数 - 已收件数
          }else{
            item.actualQuantity =  item.orderQuantity;
          }
          item.contractAmount =  item.amount;
          //码单重量 除以 数量     每个的码单重量
          // item.singleton = {
          //   BQ : _.divide(item.billWeight, item.orderQuantity),
          //   IQ : _.divide(item.invoiceWeight, item.orderQuantity)
          // }
          delete item.id
          this.$refs.crudContact.rowCellAdd(item);
          this.$refs.crudContact.rowCell(item,this.contactsData.length - 1)
        })
        this.$set(this.form,'orderNo', Array.from(new Set(orderNoList)).join(","))  // 数组去重逗号隔开 那合同总
        this.$set(this.form,'saleman',res.data.data.salesName)
        this.$set(this.form,'corpId',res.data.data.corpsName[0].id)
        this.$set(this.form,'orgOrderNo', res.data.data.orgOrderNo)
        this.$set(this.configuration,'dicData', res.data.data.corpsName)
        this.totalChange();  //调用合计 算出重量
      }).finally(()=>{
        this.buttonLoading = false;
      })
    }
  },
  methods: {
    //币别选择
    currencyChange(row){
      if(row.currency == "CNY"){
        this.$set(row,"exRate",1)
      }else if(row.currency == "USD"){
        this.$set(row,"exRate",6.3686)
      }else{
        this.$set(row,"exRate",7.1749)
      }
    },
    //货物名称 回显
    valueName(value,row){
      this.$set(row,"priceCategory",value)
      // this.selectInventory(row)
    },
    //选择仓库  带出库存
    // warehouseChange(){
    //   this.contactsData.forEach(item =>{
    //     this.selectInventory(item);
    //   })
    // },
    // //查询库存
    // selectInventory(row){
    //   if(row.billNo && row.contractNumber && row.cntrNo && row.priceCategory && this.form.storageId){
    //     const params = {
    //       billNo:row.billNo,
    //       contractNumber:row.contractNumber,
    //       goodsId:row.priceCategory,
    //       storageId:this.form.storageId,
    //       cntrNo:row.cntrNo
    //     }
    //     selectJKGoodsNum(params).then(res =>{
    //       if(res.data.data){
    //         this.$set(this.contactsData[row.$index],"inventoryNumber",res.data.data.inQuantity)
    //         this.$set(this.contactsData[row.$index],"inWeight",res.data.data.inWeight)
    //       }else {
    //         this.$set(this.contactsData[row.$index],"inventoryNumber",0.00)
    //         this.$set(this.contactsData[row.$index],"inWeight",0.00)
    //       }
    //     })
    //   }
    // },

    //拿到所有明细合同号 去重加逗号放到主表合同号
    sumOrderNo(row){
      const contractNumberList =  this.contactsData.map(item =>{return  item.contractNumber})
      this.$set(this.form,'orderNo', Array.from(new Set(contractNumberList)).join(","))
      // if(row){
      //   this.selectInventory(row);
      // }
    },
    //计算
    // actualQuantityChange(row){
    //   if(row.singleton){
    //     const _sing =  row.singleton
    //     if( _sing.BQ !== 0){  //如果有值并且不为空 计算码单与发票
    //       row.billWeight = _.multiply(_sing.BQ,row.actualQuantity)
    //     }
    //     if( _sing.IQ !== 0){
    //       row.invoiceWeight = _.multiply(_sing.IQ,row.actualQuantity)
    //       this.invoiceWeightChange(row)  //发票改变合同
    //     }
    //     this.totalChange()
    //   }
    // },
    //合计
    totalChange(){
      let invoiceList =  this.contactsData.map(item => {
        if(item.invoiceWeight){
          return parseFloat(item.invoiceWeight);
        }else return 0
      });
      let billList =  this.contactsData.map(item => {
        if(item.billWeight){
          return parseFloat(item.billWeight);
        }else return 0
      });
      this.$set(this.form,"invoiceWeight",invoiceList.reduce((n,m) => n + m))
      this.$set(this.form,"billWeight",billList.reduce((n,m) => n + m))
    },
    //提单号带出合同号
    bingOut(row){
      getOrgOrderNo(row.billNo).then(res =>{
        if(res.data){
          this.contractDic = res.data;
          row.contractNumber =  res.data[0].orderNo;
          this.sumOrderNo()
        }
      }).catch(()=>{
        row.contractNumber = ''
      })
      // this.selectInventory(row);
    },
    //单价
    priceChange(row) {
      if (row.price && row.billWeight) {
        row.contractAmount = _.multiply(row.billWeight, row.price).toFixed(2);
      }
    },
    //码单重量
    billWeightChange(row) {
      if (row.billWeight &&  row.price) {
        row.contractAmount = _.multiply(row.billWeight, row.price).toFixed(2);
      }
    },
    //新增商品信息保存触发
    rowSave(row, done, loading) {
      // this.contactsData.push(row)
      done()
    },
    //点击行可编辑
    handleRowClick(row, event, column) {
    },
    //商品编辑
    rowCell(row, index) {
      this.$refs.crudContact.rowCell(row, index)
    },
    //修改商品信息触发
    rowUpdate(row, index, done, loading) {
      done(row);
    },
    //删除商品信息触发
    rowDel(row, index, donerowDel) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        //商品判断是否需要调用删除接口
        if (row.id) {
          removeGoodsItem(row.id).then(res => {
            this.$message({
              type: "success",
              message: "操作成功!"
            });
            this.contactsData.splice(index, 1);
          })
        } else {
          this.$message({
            type: "success",
            message: "操作成功!"
          });
          this.contactsData.splice(index, 1);
        }
      }).finally(()=>{
        this.totalChange()
      })
    },
    //修改提交触发
    editCustomer(status) {
      this.$refs["form"].validate((valid) => {
        for (let i = 0; i < this.contactsData.length; i++) {
          if (this.contactsData[i].billNo === (null || "" )) {
            return this.$message.error(`请输入第${i + 1}行的提单号`);
          }
          if (this.contactsData[i].contractNumber === (null || "" )) {
            return this.$message.error(`请输入第${i + 1}行的合同号`);
          }
          if (this.contactsData[i].priceCategory === (null || "" )) {
            return this.$message.error(`请输入第${i + 1}行的货物品种`);
          }
          if (this.contactsData[i].cntrNo === (null || "" )) {
            return this.$message.error(`请输入第${i + 1}行的箱号`);
          }
          if (this.contactsData[i].actualQuantity === (null || "" )) {
            return this.$message.error(`请输入第${i + 1}行的件数`);
          }
        }
        this.form.billNo = this.contactsData.map(item =>{return item.billNo}).join(",")
        if (valid) {
          let submitDto = {
            ...this.form,
            deliveryItemsList: this.contactsData,
            deliveryFilesList: this.upLoadData,
          };
          this.buttonLoading = true;
          submitReceiptList(submitDto).then(res => {
            if(res.data.success){
              this.$message.success("保存成功!")
              detailReceiptList(res.data.data.id).then(res => {
                this.form = res.data.data;
                this.oldForm = Object.assign({},res.data.data);
                this.receiptDisable = res.data.data.deliveryStatus === "已收货" ?   true :false
                this.configuration.dicData = this.form.corpName
                if(this.form.deliveryItemsList){
                  this.contactsData = this.form.deliveryItemsList
                  this.oldContactsData = this.deepClone(this.form.deliveryItemsList)
                }
                if(this.form.deliveryFilesList){
                  this.upLoadData = this.form.deliveryFilesList
                  this.oldUpLoadData = this.deepClone(this.form.deliveryFilesList)
                }
              })
            }
          }).finally(()=>{
            this.buttonLoading =  false;
          })
          if(status === true){
            this.$emit("goBack");
          }
        } else {
          return false;
        }
      });
    },
    //确认收货
    confirmReceipt(){
      if(contrastObj(this.form,this.oldForm) || contrastList(this.contactsData,this.oldContactsData)
        || contrastList(this.upLoadData,this.oldUpLoadData)
      ){
        this.$confirm("请先保存在进行操作!", {
          confirmButtonText: "保存",
          cancelButtonText: "取消",
          type: "warning"
        }).then(()=>{
          this.editCustomer()
        })
      }else{
        this.buttonLoading = true;
        if(!this.receiptDisable){
          this.$confirm("是否确认收货?", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning"
          }).then(()=>{
            this.form.deliveryItemsList = this.contactsData;
            confirmReceipt(this.form).then(res =>{
              if(res.data.success){
                this.$message.success("收货成功!")
                this.form = res.data.data;
                this.oldForm = Object.assign({},res.data.data);
                this.receiptDisable = res.data.data.deliveryStatus === "已收货" ?   true :false
                this.configuration.dicData = this.form.corpName
                if(this.form.deliveryItemsList){
                  this.contactsData = this.form.deliveryItemsList
                  this.oldContactsData = this.deepClone(this.form.deliveryItemsList)
                }
                if(this.form.deliveryFilesList){
                  this.upLoadData = this.form.deliveryFilesList
                  this.oldUpLoadData = this.deepClone(this.form.deliveryFilesList)
                }
              }
            })
          }).finally(()=>{
            this.buttonLoading = false;
          })
        }else{
          this.$confirm("是否撤销收货!", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning"
          }).then(()=>{
            this.buttonLoading = true;
            this.form.deliveryItemsList = this.contactsData;
            repealReceipt(this.form).then(res =>{
              if(res.data.success){
                this.$message.success("撤销成功!")
                this.form = res.data.data;
                this.oldForm = Object.assign({},res.data.data);
                this.receiptDisable = res.data.data.deliveryStatus === "已收货" ?   true :false
                this.configuration.dicData = this.form.corpName
                if(this.form.deliveryItemsList){
                  this.contactsData = this.form.deliveryItemsList
                  this.oldContactsData = this.deepClone(this.form.deliveryItemsList)
                }
                if(this.form.deliveryFilesList){
                  this.upLoadData = this.form.deliveryFilesList
                  this.oldUpLoadData = this.deepClone(this.form.deliveryFilesList)
                }
              }
            })
          }).finally(()=>{
            this.buttonLoading = false;
          })
        }
        this.buttonLoading = false;
      }
    },
    //导入采购明细
    importProMent(list){
      list.forEach((item,index) =>{
        item.srcId = item.id;
        item.contractNumber = item.orderNo;
        item.contractAmount = item.amount;
        item.actualQuantity = item.orderQuantity;
        // item.singleton = {
        //   BQ :  item.billWeight && item.orderQuantity?_.divide(item.billWeight, item.orderQuantity):0,
        //   IQ : item.invoiceWeight && item.orderQuantity?_.divide(item.invoiceWeight, item.orderQuantity):0
        // }
        delete item.id
        this.$refs.crudContact.rowCellAdd(item);
        // this.selectInventory(item)
      })

      this.totalChange()
      this.sumOrderNo();   //合并合同号
      this.procurementDialog = false;
    },
    //上传文件保存
    upLoadSave(row, done, loading){
      this.upLoadData.push(row)
      done()
    },
    //修改附件上传触发
    upLoadUpdate(row, done){
      done(row);
    },
    //删除附件上传触发
    upLoadDel(row, index,){
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        if (row.id){
          corpsbank(row.id).then(res=>{
            if(res.data.success){
              this.$message({
                type: "success",
                message: "操作成功!"
              });
              this.bankOfDepositData.splice(index, 1);
            }
          })
        }else {
          this.$message({
            type: "success",
            message: "操作成功!"
          });
          this.bankOfDepositData.splice(index, 1);
        }
      })
    },
    closeFun(){
      this.procurementDialog = false
    },
    //导入采购
    commoditySelection() {
      this.procurementDialog = true;
    },
    //返回列表
    backToList() {
      if(contrastObj(this.form,this.oldForm) || contrastList(this.contactsData,this.oldContactsData)
        || contrastList(this.upLoadData,this.oldUpLoadData)
      ){
        this.$confirm("是否保存当前页面？", "提示", {
          confirmButtonText: "保存",
          cancelButtonText: "取消",
          type: "warning",
        }).then(() => {
          this.editCustomer(true)
        }).catch(()=>{
          this.$emit("goBack");
        })
      }else{
        this.$emit("goBack");
      }
    },
    //列保存触发
    async saveColumn() {
      const inSave = await this.saveColumnData(
        this.getColumnName(41),
        this.customerContact
      );
      if (inSave) {
        this.$message.success("保存成功");
        //关闭窗口
        this.$refs.crudContact.$refs.dialogColumn.columnBox = false;
      }
    },
  },
}
</script>

<style lang="scss" scoped>

.back-icon {
  line-height: 64px;
  font-size: 20px;
  margin-right: 8px;
}


::v-deep .el-form-item {
  margin-bottom: 0;
}
.required_fields{
  color: #F56C6C;
  display:inline-block;
  width: 7%
}

.upper_right_button{
  display: flex;
  position: fixed;
  right: 12px;
  top: 47px;
}
.el-dialogDeep {
  ::v-deep .el-dialog {
    margin: 1vh auto 0 !important;
    padding-bottom: 10px !important;

    .el-dialog__body, .el-dialog__footer {
      padding-bottom: 0 !important;
      padding-top: 0 !important;
    }
  }
}
::v-deep .el-form-item__content{
  line-height: 32px;
}
</style>
