| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132 | <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>      <el-button type="primary"                 class="el-button--small-yh add-customer-btn-three"                 :disabled="true"                 @click.stop="">请核      </el-button>      <el-button type="success"                 class="el-button--small-yh add-customer-btn-two"                 :disabled="true"                 @click.stop="">复制新单      </el-button>      <el-button        class="el-button--small-yh add-customer-btn"        type="primary"        :disabled="disabled"        @click="editCustomer"        :loading="butLoading"      >{{form.id?'确认修改':'确认新增'}}      </el-button>    </div>    <div style="margin-top: 60px">      <el-form :model="form" ref="form" label-width="130px">        <containerTitle title="基础信息"></containerTitle>        <basic-container style="margin-bottom: 10px">          <el-row>            <el-col v-for="(item, index) in basicData.column" :span="item.span?item.span:8" :key="index">              <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">                <el-date-picker v-if="item.type === 'date'" style="width: 100%;" v-model="form[item.prop]" size="small" type="date" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss"/>                <el-select v-else-if="item.type === 'select'" style="width: 100%" v-model="form[item.prop]" size="small" placeholder="请选择" clearable filterable>                  <el-option                    v-for="(data, index) in item.dicData"                    :key="index"                    :label="data.label"                    :value="data.value"                  ></el-option>                </el-select>                <selectComponent v-else-if="item.prop === 'corpId'" v-model="form[item.prop]" :configuration="configuration"/>                <selectComponent v-else-if="item.prop === 'purchaserId'" v-model="form[item.prop]" :configuration="pConfiguration"/>                <el-select v-else-if="item.prop === 'orderType'"  style="width: 100%"  v-model="form[item.prop]" size="small" placeholder="请选择" clearable filterable>                  <el-option v-for="(item,index) in contractTypeDic" :key="index" :label="item.dictValue" :value="item.dictValue"></el-option>                </el-select>                <el-select v-else-if="item.prop === 'currency'" style="width: 100%"    v-model="form[item.prop]" size="small" placeholder="请选择" @change="currencyChange" clearable filterable>                  <el-option v-for="(item,index) in currencyDic" :key="index" :label="item.dictValue"  :value="item.dictValue"></el-option>                </el-select>                <el-select v-else-if="item.prop === 'paymentType'"  style="width: 100%"  v-model="form[item.prop]" size="small" placeholder="请选择" clearable filterable>                  <el-option v-for="(item,index) in paymentTypeDic" :key="index" :label="item.dictValue" :value="item.dictValue"></el-option>                </el-select>                <el-input type="textarea" v-else-if="(item.prop === 'orderRemark')" v-model="form[item.prop]"   size="small" autocomplete="off" placeholder="请输入"></el-input>                <el-input type="age" v-else v-model="form[item.prop]" :disabled="item.disabled?true:false" size="small" autocomplete="off" placeholder="请输入"></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"            @selection-change="selectionContact"            @row-click="handleRowClick"            @row-update="rowUpdate"            @row-del="rowDel"          >            <template slot="priceCategory" slot-scope="{row,index}">              <span v-if="row.$cellEdit" class="required_fields">*</span>              <el-input                v-if="row.$cellEdit"                v-model="row.priceCategoryNames"                size="small"                placeholder="请点击右侧按钮选择"                :disabled="true"                style="width: 63%"              ></el-input>              <el-button v-if="row.$cellEdit" size="small" icon="el-icon-search" @click="choice(row)"></el-button>              <span v-else>{{ row.priceCategoryNames }}</span>            </template>            <template slot="itemType" slot-scope="{row,index}">              <span v-if="row.$cellEdit"  class="required_fields">*</span>              <el-select                v-if="row.$cellEdit"                v-model="row.itemType"                size="small"                style="width:90% !important;"                clearable                filterable              >                <el-option                  v-for="(item,index) in row.specificationList"                  :key="index"                  :label="item.value"                  :value="item.value"                >                </el-option>              </el-select>              <span v-else>{{ row.itemType }}</span>            </template>            <template slot="purchaseQuantity" slot-scope="{ row }">              <span v-if="row.$cellEdit" class="required_fields">*</span>              <el-input                v-if="row.$cellEdit"                v-model="row.purchaseQuantity"                placeholder="请输入"                size="small"                style="width: 93%"                oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'                @input="quantityChange(row)"              ></el-input>              <span v-else>{{ row.purchaseQuantity }}</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="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")'                @input="totalChange(row.invoiceWeight)"              ></el-input>              <span v-else>{{ row.invoiceWeight }}</span>            </template>            <template slot="billWeight" slot-scope="{ row }">              <el-input                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="totalChange(row.billWeight)"              ></el-input>              <span v-else>{{ row.billWeight }}</span>            </template>            <template slot-scope="{row,index}" slot="menu">              <el-button                type="text"                size="small"                :disabled="row.actualQuantity !=0"                @click="rowCell(row,index)"              >{{ row.$cellEdit ? '修改完成' : '修改' }}              </el-button>              <el-button                type="text"                size="small"                :disabled="row.actualQuantity !=0"                @click="rowDel(row,index)"              >删除              </el-button>            </template>            <template slot="menuLeft" slot-scope="{size}">              <el-button type="primary"                         icon="el-icon-plus"                         size="small"                         @click="commoditySelection"              >录入明细              </el-button>              <el-button type="warning"                         icon="el-icon-s-check"                         size="small"                         :disabled="selectContact.length == 0"                         @click="beforePage(true)"              >申请付款(开证)              </el-button>              <el-button type="warning"                         size="small"                         :disabled="selectContact.length == 0"                         @click="beforePage(false)"              >生成收货单              </el-button>              <el-button type="info"                         size="small"                         @click="applicationDialog = true,applicationData = contactsData"              >查看申请记录              </el-button>            </template>          </avue-crud>        </basic-container>        <fee-info          ref="feeInfo"          :orderFeesList="orderFeesList"          feeUrl=""        />        <upload-file          ref="uploadFile"          title="合同附件"          :orderFilesList="orderFilesList"          delUrl=""        />      </el-form>    </div>    <el-dialog      title="导入商品详情"      append-to-body      class="el-dialogDeep"      :visible.sync="dialogVisible"      width="60%"      :close-on-click-modal="false"      :destroy-on-close="true"      :close-on-press-escape="false"      top="10vh"      v-dialog-drag>      <el-row style="height: 0;">        <el-col :span="5">          <div>            <el-scrollbar>              <basic-container>                <avue-tree :option="treeOption" :data="treeData" @node-click="nodeClick"/>              </basic-container>            </el-scrollbar>          </div>        </el-col>        <el-col :span="19">          <basic-container>            <avue-crud :option="optionTwo"                       :table-loading="loading"                       :data="data"                       ref="crud"                       @refresh-change="refreshChange"                       @selection-change="selectionChange"                       :page.sync="page"                       @on-load="onLoad"></avue-crud>          </basic-container>        </el-col>      </el-row>      <span slot="footer" class="dialog-footer">          <el-button @click="dialogVisible = false , selectKind = -1">取 消</el-button>          <el-button type="primary" @click="commodityConfirm" v-if="selectKind != -1"  :disabled="tableData.length !== 1">确定</el-button><!--          <el-button type="primary" @click="importGoods" v-if="commodityData !== true && selectKind == -1" :disabled="tableData.length !== 1">导入</el-button>--><!--          <el-button type="primary" @click="importChoice"  v-if="commodityData === true  && selectKind == -1"--><!--                     :disabled="tableData.length !== 1">导入<</el-button>-->        </span>    </el-dialog>    <el-dialog      title="申请记录"      append-to-body      class="el-dialogDeep"      :visible.sync="applicationDialog"      width="60%"      :close-on-click-modal="false"      :destroy-on-close="true"      :close-on-press-escape="false"      v-dialog-drag    >      <basic-container>        <avue-crud :option="customerContact"                   :table-loading="applicationLoading"                   :data="applicationData"                   ref="applicationCrud"                   @refresh-change="applicationRefreshChange"                   :page.sync="applicationPage"                   @on-load="applicationOnLoad"></avue-crud>      </basic-container>      <span slot="footer" class="dialog-footer">          <el-button @click="applicationDialog = false ">关 闭</el-button>        </span>    </el-dialog>  </div></template><script>import customerContact from "./config/customerContact.json"import uploadList from './config/uploadList.json'import advantageProject from "./config/advantageProject.json"import {getDeptLazyTree,customerList} from "@/api/basicData/basicFeesDesc";import optionTwoCost from "./config/mainListCost.json"import {detailListData, submitData,getSysNo} from "@/api/importTrade/purchase";import commodity from "./config/commodity.json"import feeInfo from "@/components/fee-info/main";import uploadFile from "@/components/upload-file/main";import _ from "lodash";//商品详情接口import {corpsattn, corpsbank,  getDeptLazyTreeS} from "@/api/basicData/configuration"import { getList } from "@/api/basicData/commodityType"import { contrastObj,contrastList } from "@/util/contrastData";import {getSpecification} from "@/api/exportTrade/purchaseContract";export default {  name: "detailsPage",  props: {    detailData: {      type: Object    }  },  data() {    return {      form: {},      disabled: false,      customerContact: customerContact,      contactsForm: {},      contactsData: [],      dialogVisible:false,      commodityData: false,      tableData: [],      optionTwo: commodity,      loading: false,      data: [],      page: {        pageSize: 10,        currentPage: 1,        total: 0      },      contractTypeDic:[],      currencyDic:[],      selectContact:[],//选中采购明细      selectKind: -1,//选择采购明细的货品      paymentTypeDic:[],      orderFeesList:[],      orderFilesList:[],      treeDeptId: '',      treeOption: {        nodeKey: 'id',        lazy: true,        treeLoad: function (node, resolve) {          const parentId = (node.level === 0) ? 0 : node.data.id;          getDeptLazyTreeS(parentId).then(res => {            resolve(res.data.data.map(item => {              return {                ...item,                leaf: !item.hasChildren              }            }))          });        },        addBtn: false,        menu: false,        size: 'small',        props: {          labelText: '标题',          label: 'title',          value: 'value',          children: 'children'        }      },      configuration:{        multipleChoices:false,        multiple:false,        disabled:false,        searchShow:true,        collapseTags:false,        placeholder:'请点击右边按钮选择',        dicData:[]      },      pConfiguration:{        multipleChoices:false,        multiple:false,        disabled:false,        searchShow:true,        collapseTags:false,        placeholder:'请点击右边按钮选择',        dicData:[]      },      // 合同上传数据      uploadList: uploadList,      // 合同数据      bankOfDepositData: [],      bankOfDepositForm: {},      // 其他费用      advantageProject: advantageProject,      advantageProjectData: [],      advantageProjectForm: {},      dialogCost: false,      choiceData: false,      treeOptionCost:{        nodeKey: 'id',        lazy: true,        treeLoad: function (node, resolve) {          const parentId = (node.level === 0) ? 0 : node.data.id;          getDeptLazyTree(parentId).then(res => {            resolve(res.data.data.map(item => {              return {                ...item,                leaf: !item.hasChildren              }            }))          });        },        addBtn: false,        menu: false,        size: 'small',        props: {          labelText: '标题',          label: 'title',          value: 'value',          children: 'children'        }      },      // 导入其他费用配置      optionTwoCost: optionTwoCost,      loadingCost: false,      dataCost:[],      pageCost:{        pageSize: 10,        currentPage: 1,        total: 0      },      tableDataCost: [],      treeDeptIdCost: '',      choiceIndex: '',      //查看申请记录      applicationDialog:false,      applicationLoading:false,      applicationData:[],      applicationPage:{        pageSize: 10,        currentPage: 1,        total: 0      },      //对比新旧数据信息      oldContactsData:[],      oldForm:{},      oldFeesList:[],      oldFilesList:[],    //  基础信息      basicData: {        column: [          {            label: '系统编号',            prop: 'sysNo',            disabled:true,            rules: [              {                required: false,                message: ' ',                trigger: 'blur'              }            ]          }, {            label: '供应商',            prop: 'corpId',            dicData: [],            rules: [              {                required: true,                message: ' ',                trigger: 'blur'              }            ]          }, {            label: '采购商',            prop: 'purchaserId',            dicData: [],            rules: [              {                required: true,                message: ' ',                trigger: 'blur'              }            ]          },{            label: '合同号',            prop: 'orderNo',            rules: [              {                required: false,                message: ' ',                trigger: 'blur'              }            ]          }, {            label: '合同日期',            prop: 'businesDate',            type:'date',            rules: [              {                required: false,                message: ' ',                trigger: 'blur'              }            ]          }, {            label: '合同类型',            prop: 'orderType',            // type:'select',            dicData: [],            rules: [              {                required: false,                message: ' ',                trigger: 'blur'              }            ]          }, {            label: '合同金额',            prop: 'orderAmount',            rules: [              {                pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,                message: ' ',                trigger: 'blur'              }            ]          }, {            label: '合同重量',            prop: 'contractWeight',            rules: [              {                required: false,                message: ' ',                trigger: 'blur'              }            ]          }, {            label: '业务员',            prop: 'salesName',            dicData: [],            rules: [              {                required: false,                message: ' ',                trigger: 'blur'              }            ]          },{            label: '要求发货日期',            prop: 'requiredDeliveryDate',            type:'date',            rules: [              {                required: true,                message: ' ',                trigger: 'blur'              }            ]          }, {            label: '要求到货日期',            prop: 'requiredArrivalDate',            type:'date',            rules: [              {                required: true,                message: ' ',                trigger: 'blur'              }            ]          },{            label: '到港日期',            prop: 'dateOfArrival',            type:'date',            rules: [              {                required: false,                message: ' ',                trigger: 'blur'              }            ]          }, {            label: '单价',            prop: 'salesPrice',            rules: [              {                pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,                message: ' ',                trigger: 'blur'              }            ]          }, {            label: '币别',            prop: 'currency'          }, {            label: '汇率',            prop: 'exchangeRate',            disabled: true,          }, {            label: '人民币金额',            prop: 'rmbAmount',            rules: [              {                pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,                message: ' ',                trigger: 'blur'              }            ]          }, {            label: '付款方式',            prop: 'paymentType',          }, {            label: '付款/开证日期',            prop: 'accountsCollectionDate',            type:'date',            rules: [              {                required: false,                message: ' ',                trigger: 'blur'              }            ]          }, {            label: '预付(保证)金额',            prop: 'advancePayment',            rules: [              {                pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,                message: ' ',                trigger: 'blur'              }            ]          },{            label: '已付金额',            prop: 'settlmentAmount',            rules: [              {                pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,                message: ' ',                trigger: 'blur'              }            ]          }, {            label: '信用证到期日',            prop: 'creditDate',            type:'date',            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: "订单备注",            span: 24,            prop: "orderRemark",            mock: {              type: 'county'            }          }        ],      },    }  },  created() {    //币别    this.getWorkDicts("currency").then(res =>{      this.currencyDic = res.data.data    })    this.getWorkDicts("contractType").then(res =>{      this.contractTypeDic = res.data.data    })    this.getWorkDicts("payment_term").then(res =>{      this.paymentTypeDic = res.data.data    })    if (this.detailData.id) {      let id = this.detailData.id.replace(/\"/g, "")      detailListData(id).then(res => {        this.form = res.data.data;        this.oldForm = Object.assign({},res.data.data);        this.configuration.dicData = this.form.corpsName        this.pConfiguration.dicData = this.form.purchaserName        if(res.data.data.itemsVOList){          this.contactsData = res.data.data.itemsVOList          this.oldContactsData = this.deepClone(res.data.data.itemsVOList)        }        if(res.data.data.orderFeesList){          this.orderFeesList = res.data.data.orderFeesList          this.oldFeesList = this.deepClone(res.data.data.orderFeesList)        }        if( res.data.data.orderFilesList){          this.orderFilesList = res.data.data.orderFilesList          this.oldFilesList = this.deepClone(res.data.data.orderFilesList)        }      })    }    //赋值去掉    // else{    //   getSysNo("JK-CG").then(res =>{    //     this.$set(this.form,"sysNo", res.data.data)    //   })    // }  },  components: {    feeInfo,    uploadFile  },  methods: {    //单价    priceChange(row) {      if (!row.price) {        row.price = "";        row.amount = 0      } else {        row.amount = _.multiply(row.purchaseQuantity, row.price).toFixed(2);      }    },    currencyChange(value){      if(this.form.orderAmount){        if(value === "人民币"){          this.form.exchangeRate = 1          this.form.rmbAmount = this.form.orderAmount        }else{          this.form.exchangeRate = 6.3843          this.form.rmbAmount =  _.multiply(this.form.orderAmount, 6.3843)        }      }    },    //合计    totalChange(){      let invoiceList =  this.contactsData.map(item => {        if(!item.invoiceWeight){          item.invoiceWeight = 0        }        return parseFloat(item.invoiceWeight);      });      let billList =  this.contactsData.map(item => {        if(!item.billWeight){          item.billWeight = 0        }        return parseFloat(item.billWeight);      });      this.form.invoiceWeight = invoiceList.reduce((n,m) => n + m)      this.form.billWeight = billList.reduce((n,m) => n + m)    },    //件数    quantityChange(row) {      if (!row.purchaseQuantity) {        row.purchaseQuantity = "";        row.amount = 0      } else {        row.amount =_.multiply(row.purchaseQuantity,row.price).toFixed(2);      }    },    //修改提交触发    editCustomer(status) {      this.$refs["form"].validate((valid) => {        if (valid) {          let orderFeesList = this.$refs.feeInfo.submitData();          for (let i = 0; i < orderFeesList.length; i++) {            if (orderFeesList[i].corpId == null) {              return this.$message.error(`请输入第${i + 1}行的结算中心`);            }            if (orderFeesList[i].price == 0) {              return this.$message.error(`请正确输入第${i + 1}行的价格`);            }            if (orderFeesList[i].orderQuantity == 0) {              return this.$message.error(`请正确输入第${i + 1}行的数量`);            }          }          const orderFilesList = this.$refs.uploadFile.submitData();          for (let j = 0; j < this.contactsData.length; j++) {            if (this.contactsData[j].billNo == null) {              return this.$message.error(`请输入采购明细第${j + 1}行的提单号`);            }            if (this.contactsData[j].priceCategory === "") {              return this.$message.error(`请输入采购明细第${j + 1}行的货物品种`);            }            if (this.contactsData[j].itemType === "") {              return this.$message.error(`请输入采购明细第${j + 1}行的规格型号`);            }            if (this.contactsData[j].purchaseQuantity === "") {              return this.$message.error(`请输入采购明细第${j + 1}行的件数`);            }            if (this.importInventoryData[j].purchaseQuantity === 0) {              return this.$message.error(`采购明细第${j + 1}行的件数不能为0`);            }          }          let submitDto = {            ...this.form,            tradeType:"JK",            billType:"CG",            itemsVOList: this.contactsData,            orderFeesList:  orderFeesList,            orderFilesList: orderFilesList          };          submitData(submitDto).then(res => {            if(res.data.success){              this.form.id = res.data.data              this.$message.success("操作成功!")              detailListData(this.form.id).then(res => {                this.form = res.data.data;                this.oldForm = Object.assign({},res.data.data);                this.configuration.dicData = this.form.corpsName                this.pConfiguration.dicData = this.form.purchaserName                if(res.data.data.itemsVOList){                  this.contactsData = res.data.data.itemsVOList                  this.oldContactsData = this.deepClone(res.data.data.itemsVOList)                }                if(res.data.data.orderFeesList){                  this.orderFeesList = res.data.data.orderFeesList                  this.oldFeesList = this.deepClone(res.data.data.orderFeesList)                }                if( res.data.data.orderFilesList){                  this.orderFilesList = res.data.data.orderFilesList                  this.oldFilesList = this.deepClone(res.data.data.orderFilesList)                }              })            }          })          setTimeout(() =>{          },1000);          this.butLoading = false;          if(status === true){            this.$emit("goBack");          }        } else {          return false;        }      });    },    selectionContact(row){      this.selectContact = row;    },    beforePage(type){      let id =   this.selectContact.map(item=>{        return  item.id ? true : false      })      if(id.findIndex(item => item != true) == -1){        const params = {          id:this.form.id,          orderItemIds:this.selectContact.map(i=>{return i.$index})        }        if(contrastObj(this.form,this.oldForm) || contrastList(this.contactsData,this.oldContactsData)          || contrastList(this.orderFeesList,this.oldFeesList) || contrastList(this.orderFilesList,this.oldFilesList)        ){          this.$confirm("您已改动数据,是否先保存在进行操作!", {            confirmButtonText: "保存",            cancelButtonText: "取消",            type: "warning"          }).then(() => {            this.editCustomer();          })        }else{          if(type){            //进入付款管理            if(this.$store.getters.payStatus){              this.$alert("付款页面已存在,请关闭付款页面再进行操作", "温馨提示", {                confirmButtonText: "确定",                type: 'warning',                callback: action => {                }              });            }else{              this.$router.$avueRouter.closeTag('/financialManagement/payment');              this.$router.push({                path: "/financialManagement/payment",                query: {params: params},              });            }          }else{            //进入收货单            if(this.$store.getters.takeStatus){              this.$alert("收货单页面已存在,请关闭收货单再进行操作", "温馨提示", {                confirmButtonText: "确定",                type: 'warning',                callback: action => {                }              });            }else{              //关闭一下存在的列表页              this.$router.$avueRouter.closeTag('/importTrade/receipt/index');              this.$router.push({                path: "/importTrade/receipt/index",                query: {params: params},              });            }          }        }      }else{        this.$confirm("列表内存在新录入数据,是否先保存此数据?", {          confirmButtonText: "保存",          cancelButtonText: "取消",          type: "warning"        }).then(() => {          this.editCustomer();        })      }    },    //选择货物品种    choice(row){      this.dialogVisible = true;      this.selectKind = row.$index;    },    //选择货品    commodityConfirm(){      if(this.tableData){        this.contactsData[this.selectKind].priceCategory = this.tableData[0].id;        this.contactsData[this.selectKind].itemId = this.tableData[0].id;        this.$set(this.contactsData[this.selectKind],'priceCategoryNames',this.tableData[0].cname)        getSpecification({ goodId: this.tableData[0].id}).then(res =>{          this.$set(this.contactsData[this.selectKind],'itemType',res.data.data.map(item =>item)[0])          this.$set(this.contactsData[this.selectKind],'specificationList',res.data.data.map(item => ({ value: item })))        }).finally(()=>{          this.selectKind = -1        })        this.dialogVisible = !this.dialogVisible      }    },    //新增商品明细保存触发    rowSave(row, done, loading) {      // this.contactsData.push(row)      done()    },    //修改商品信息触发    rowUpdate(row, index, done, loading) {      done(row);    },    //删除商品信息触发    rowDel(row, index, donerowDel) {      this.$confirm("确定将选择数据删除?", {        confirmButtonText: "确定",        cancelButtonText: "取消",        type: "warning"      }).then(() => {        //商品判断是否需要调用删除接口        if (row.id) {          corpsattn(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);        }      })    },    //刷新    applicationRefreshChange(){    },    //申请记录    applicationOnLoad(){    },    //点击商品明细选择触发    commodityChoice(row) {      this.dialogVisible = !this.dialogVisible      this.commodityData = true      this.choiceIndexT = row.$index    },    //商品编辑    rowCell(row, index) {      this.$refs.crudContact.rowCell(row, index)    },    //商品新增触发    commoditySelection() {      const params ={        billWeight:0,        invoiceWeight:0,        price:0,        purchaseQuantity:0,      }      this.$refs.crudContact.rowCellAdd(params);      // this.dialogVisible = !this.dialogVisible      // this.commodityData = false    },    //点击行可编辑    handleRowClick(row, event, column) {    },    //刷新触发    refreshChange() {      this.treeDeptId = '';      this.page.currentPage = 1;      this.onLoad(this.page);    },    //选中触发    selectionChange(list) {      this.tableData = list    },    //导入页左商品类型查询    nodeClick(data) {      this.treeDeptId = data.id;      this.page.currentPage = 1;      this.onLoad(this.page);    },    //商品详情list    onLoad(page, params = {}) {      if (this.page.total) {        this.optionTwo.height = window.innerHeight - 520;      } else {        this.optionTwo.height = window.innerHeight - 475;      }      this.loading = true;      getList(page.currentPage, page.pageSize, Object.assign(params, this.query), this.treeDeptId).then(res => {        const data = res.data.data;        this.page.total = data.total;        this.data = data.records;        this.loading = false;      });    },    //确认导入触发    importGoods() {      if (this.tableData.length > 0) {        for (let item in this.tableData) {          const params ={            priceCategory:this.tableData[item].code,            priceCategoryNames:this.tableData[item].cname,            itemId:this.tableData[item].id,            cname:this.tableData[item].cname,            purchaseQuantity:0,            price:0,            amount:0.00          }          this.$refs.crudContact.rowCellAdd(params);          this.$refs.crudContact.rowCell(params,this.contactsData.length - 1)        }      }      this.tableData = []      this.dialogVisible = false    },    //导入商品触发    importChoice() {      if (this.tableData.length === 1) {        this.contactsData[this.choiceIndexT].cname = this.tableData[0].cname        this.contactsData[this.choiceIndexT].code = this.tableData[0].code        this.contactsData[this.choiceIndexT].typeno = this.tableData[0].typeno        this.contactsData[this.choiceIndexT].specificationAndModel = this.tableData[0].specificationAndModel        this.contactsData[this.choiceIndexT].itemId = this.tableData[0].id        this.contactsData[this.choiceIndexT].priceCategory = this.tableData[0].goodsTypeName      }      this.dialogVisible = !this.dialogVisible      this.commodityData = false    },    backToList() {      if(contrastObj(this.form,this.oldForm) || contrastList(this.contactsData,this.oldContactsData)      || contrastList(this.orderFeesList,this.oldFeesList) || contrastList(this.orderFilesList,this.oldFilesList)      ){        this.$confirm("是否保存当前页面?", "提示", {          confirmButtonText: "保存",          cancelButtonText: "取消",          type: "warning",        }).then(() => {          this.editCustomer(true)        }).catch(()=>{          this.$emit("goBack");        })      }else{        this.$emit("goBack");      }    },  }}</script><style scoped lang="scss">.customer-head {  position: fixed;  top: 105px;  width: 100%;  margin-left: -10px;  height: 62px;  background: #ffffff;  box-shadow: 0 4px 12px 0px rgba(232, 232, 235, 1);  z-index: 999;  /* display: flex;  justify-content: left; */}.customer-back {  cursor: pointer;  line-height: 62px;  font-size: 16px;  color: #323233;  font-weight: 400;}.add-customer-btn-two {  position: fixed;  right: 150px;  top: 115px;}.required_fields{  color: #F56C6C;  display:inline-block;  width: 7%}.add-customer-btn-three {  position: fixed;  right: 266px;  top: 115px;}.add-customer-btn {  position: fixed;  right: 36px;  top: 115px;}::v-deep .el-form-item {  margin-bottom: 0;}//el-icon-plus avue-upload__icon.avue-upload /deep/ .avue-upload__icon {  line-height: 178px !important;}::v-deep .el-form-item__content{  line-height: 32px;}</style>
 |