{"version":3,"sources":["webpack:///./node_modules/.store/core-js@3.42.0/node_modules/core-js/modules/es.iterator.every.js","webpack:///./src/views/crm/orderList/addOrder.vue","webpack:///src/views/crm/orderList/addOrder.vue","webpack:///./src/views/crm/orderList/addOrder.vue?d738","webpack:///./src/views/crm/orderList/addOrder.vue?8427","webpack:///./src/api/crm/agreement.js","webpack:///./src/views/crm/orderList/addOrder.vue?a6f7"],"names":["$","call","iterate","aCallable","anObject","getIteratorDirect","iteratorClose","iteratorHelperWithoutClosingOnEarlyError","everyWithoutClosingOnEarlyError","TypeError","target","proto","real","forced","every","predicate","this","error","record","counter","value","stop","IS_RECORD","INTERRUPTED","stopped","render","_vm","_c","_self","staticClass","orderCustomerList","length","ref","attrs","inputList","dataList","getCustomerCreditInfo","on","isNeedFeedbackChange","onQualityIndicatorChange","_e","orderApprovalResultList","model","reasonForApprovalRejection","callback","$$v","expression","_l","item","ind","key","approvalTimeStr","finalResultStr","reason","orderProductList","staticStyle","orderStatus","rejectFlag","saveDisabled","$event","onSubmit","_v","onRemove","dialogData","show","$set","_s","thousandthMark","curCreditAmount","curAvailableCreditAmount","staticRenderFns","now","Date","_initMaxDate","getFullYear","getMonth","getDate","name","components","formComp","data","title","tit","type","placeholder","readonly","keyCopy","rules","required","columns","option","columnsTop","isNeedFeedback","text","itemList","slot","minDate","maxDate","rightText","table","unitKey","hqtion","orderTechnicalMaterials","premiumAmount","signCompanyName","signSimpleName","languageCode","availableCredit","normalOccupiedCredit","occupiedCredit","overdueOccupiedCredit","payPeriod","totalCredit","planPayAmount","terminationModel","stopReason","loading","customerId","planPayAndDeliveryType","planPayStyle","SupplierAndDemanderKeys","curPlanUseCreditAmount","curAvailableCredit","beforeRouteEnter","to","from","next","vm","$nextTick","ProductSelection","localStorage","removeItem","mounted","searchList","query","$route","hasTextValue","id","getDetails","activated","quotationId","methods","loadingInit","$toast","forbidClick","overlay","duration","undefined","String","trim","getLatestPremiumAmount","candidates","i","source","isPrimitiveValue","includes","getCustomerById","find","getCustomerDisplayName","customer","companyName","companyNameEn","getSignCompanyField","orderInfo","syncSignCompanyToForm","$refs","showForm","buildSignCompanyColumns","push","simpleName","simpleNameEn","getLanguageCodeBySignCompany","syncSignCompanyFields","options","field","updateParameters","preferredSignCompanyName","keepCurrent","matchedColumn","targetColumn","hasServerSimpleName","Object","prototype","hasOwnProperty","hasServerLanguageCode","nextSimpleName","nextLanguageCode","getOrderDetail","orderId","then","res","_res$data$contractDet","productList","packingStandard","facadeStandard","specsItems","Arr","JSON","parse","showSpecsItems","map","ele","itemName","join","forEach","consumptionMode","consumptionModeName","filter","finalResult","_data","assign","contractDetailVO","provider","planPayStyleChange","setCustomerCreditInfo","getCustomerCredit","catch","err","updatePayDayRules","payload","qualityIndicator","qualityStandard","qs","arr","itemValue","e","selectUserByRoleKeys","findFill","documenter","getOrderCustomerList","companyDisplayName","filterDictText","getAction","dictType","rows","getPlanPayAndDeliveryType","getCompanyInfoFromTj","providerList","Gsmc","providerChange","fare","num","str","strA","strB","list","Throttle","state","_bool","validateForm","addOrderList","Dialog","alert","showCancelButton","message","removeOrder","code","Toast","success","$router","go","fail","number","_form","remark","createTime","currency","flag","clear","prepareSubmit","taxRate","taxAmount","excludeTaxAmount","status","orderType","hasNoEmptyConsumptionMode","Boolean","Number","planUseCreditAmount","inwardProcessingFee","addOrder","setItem","stringify","goBack","bool","_productList$","getItem","productOrgCode","latestPremiumAmount","huiShow","customerName","tcInfoShow","amount","actualTotalPrice","category","productCategoryCode","inputClick","targetName","obj","console","log","setSimpleName","tcInfo","tcInfoList","price","actualTcPrice","tcName","stopOrderSubmit","stopOrder","that","time","setTimeout","clearTimeout","merged","parentListEmpty","childListFilled","updatePlanUseCredit","providerId","deliveryTypeList","contractInputs","amountIndex","findIndex","_opt","payDayIndex","insertIndex","splice","form","styleStr","delivery","deliveryStyle","inputPlanPayAmount","noCreditNoPayAmount","calcCreditAmounts","planPayAmountInput","_obj","_oldKey","useCredit","maxPeriod","idx","validator","val","n","isNaN","component","service","process","cloud","getAgreementList","request","url","method","params","addContract","getContractDetailVO","handleApprove","browseContractFile","cancelContract","applyUpdate","batchUpdateContractFile","batchUpdateContractFileyY","getstampReturnList","getstampReturnListYy","ackStamp","ackStampYy","getApprovalProcessByContractId","queryCrmContractDetailById","updateAttachmentsYy","updateAttachments","updateOrderSign","updateOrderSignYy","updateContractQuality","getContractQualityUpdateList"],"mappings":"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","file":"js/chunk-c925b206.v0.1.2.1794211824866.js?hash=v0.1.2.1794211824866","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar everyWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('every', TypeError);\n\n// `Iterator.prototype.every` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.every\n$({ target: 'Iterator', proto: true, real: true, forced: everyWithoutClosingOnEarlyError }, {\n  every: function every(predicate) {\n    anObject(this);\n    try {\n      aCallable(predicate);\n    } catch (error) {\n      iteratorClose(this, 'throw', error);\n    }\n\n    if (everyWithoutClosingOnEarlyError) return call(everyWithoutClosingOnEarlyError, this, predicate);\n\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return !iterate(record, function (value, stop) {\n      if (!predicate(value, counter++)) return stop();\n    }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n  }\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content\"},[(_vm.orderCustomerList && _vm.orderCustomerList.length > 0)?_c('formComp',{ref:\"formComp\",attrs:{\"inputList\":_vm.inputList,\"dataList\":_vm.dataList,\"orderCustomerList\":_vm.orderCustomerList,\"customerCreditInfoFunction\":_vm.getCustomerCreditInfo},on:{\"isNeedFeedback:change\":_vm.isNeedFeedbackChange,\"qualityIndicator:change\":_vm.onQualityIndicatorChange}}):_vm._e(),(_vm.dataList.orderApprovalResultList && _vm.dataList.orderApprovalResultList.length > 0)?_c('van-collapse',{model:{value:(_vm.reasonForApprovalRejection),callback:function ($$v) {_vm.reasonForApprovalRejection=$$v},expression:\"reasonForApprovalRejection\"}},[_c('van-collapse-item',{attrs:{\"title\":\"审批拒绝原因\",\"name\":\"1\"}},[_vm._l((_vm.dataList.orderApprovalResultList),function(item,ind){return [_c('van-cell',{key:ind,attrs:{\"title\":item.approvalTimeStr,\"value\":item.finalResultStr,\"label\":item.reason}})]})],2)],1):_vm._e(),(_vm.dataList && _vm.dataList.orderProductList && _vm.dataList.orderProductList.length > 0)?_c('div',{staticStyle:{\"margin\":\"16px\",\"display\":\"flex\",\"justify-content\":\"space-evenly\"}},[(!_vm.dataList.orderStatus || _vm.dataList.orderStatus == '0' || _vm.dataList.orderStatus == '6' || _vm.dataList.orderStatus == '5' || (_vm.dataList.orderStatus == '1' && _vm.dataList.rejectFlag == 1))?[_c('van-button',{ref:\"saveBtn\",attrs:{\"round\":\"\",\"block\":\"\",\"type\":\"primary\",\"disabled\":_vm.saveDisabled},on:{\"click\":function($event){return _vm.onSubmit(0)}}},[_vm._v(\"保存\")]),(_vm.dataList.orderStatus == '0')?_c('van-button',{attrs:{\"round\":\"\",\"block\":\"\",\"type\":\"primary\"},on:{\"click\":_vm.onRemove}},[_vm._v(\"删除\")]):_vm._e(),_c('van-button',{attrs:{\"round\":\"\",\"block\":\"\",\"type\":\"primary\"},on:{\"click\":function($event){return _vm.onSubmit(1)}}},[_vm._v(\"提交\")])]:_vm._e()],2):_vm._e(),_c('van-dialog',{staticClass:\"credit-dialog\",attrs:{\"title\":\"提交失败\"},model:{value:(_vm.dialogData.show),callback:function ($$v) {_vm.$set(_vm.dialogData, \"show\", $$v)},expression:\"dialogData.show\"}},[_c('div',{staticClass:\"dialog-content\"},[_c('div',{staticClass:\"credit-msg\"},[_vm._v(\" 本单使用授信金额 \"),_c('span',{staticClass:\"num\"},[_vm._v(\"￥\"+_vm._s(_vm.thousandthMark(_vm.dialogData.curCreditAmount))+\"元\")]),_vm._v(\" 超过剩余可用授信额度 \"),_c('span',{staticClass:\"num\"},[_vm._v(\"￥\"+_vm._s(_vm.thousandthMark(_vm.dialogData.curAvailableCreditAmount))+\"元\")]),_vm._v(\" ，无法提交订单。 \")]),_c('div',{staticClass:\"credit-tips\"},[_c('div',{staticClass:\"tips-title\"},[_vm._v(\"建议：\")]),_c('ul',{staticClass:\"tips-list\"},[_c('li',[_vm._v(\"1.增加预付款比例\")]),_c('li',[_vm._v(\"2.对占用中授信额度进行回款\")]),_c('li',[_vm._v(\"3.申请提高授信额度\")])])])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","  <!-- 新增订单 -->\r\n<template>\r\n  <div class=\"content\">\r\n    <formComp v-if=\"orderCustomerList && orderCustomerList.length > 0\" :inputList=\"inputList\" :dataList=\"dataList\"\r\n      ref=\"formComp\" :orderCustomerList=\"orderCustomerList\" @isNeedFeedback:change=\"isNeedFeedbackChange\"\r\n      @qualityIndicator:change=\"onQualityIndicatorChange\" :customerCreditInfoFunction=\"getCustomerCreditInfo\">\r\n    </formComp>\r\n    <!-- 审批拒绝历史 TODO 获取审批结果描述 -->\r\n    <van-collapse v-model=\"reasonForApprovalRejection\"\r\n      v-if=\"dataList.orderApprovalResultList && dataList.orderApprovalResultList.length > 0\">\r\n      <van-collapse-item title=\"审批拒绝原因\" name=\"1\">\r\n        <template v-for=\"(item, ind) in dataList.orderApprovalResultList\">\r\n          <van-cell :key=\"ind\" :title=\"item.approvalTimeStr\" :value=\"item.finalResultStr\" :label=\"item.reason\" />\r\n        </template>\r\n      </van-collapse-item>\r\n    </van-collapse>\r\n    <div style=\"margin: 16px;display:flex;justify-content: space-evenly;\" v-if=\"dataList && dataList.orderProductList && dataList.orderProductList.length > 0\">\r\n      <template\r\n        v-if=\"!dataList.orderStatus || dataList.orderStatus == '0' || dataList.orderStatus == '6' || dataList.orderStatus == '5' || (dataList.orderStatus == '1' && dataList.rejectFlag == 1)\">\r\n        <van-button round block type=\"primary\" @click=\"onSubmit(0)\" :disabled=\"saveDisabled\"\r\n          ref=\"saveBtn\">保存</van-button>\r\n        <van-button v-if=\"dataList.orderStatus == '0'\" round block type=\"primary\" @click=\"onRemove\">删除</van-button>\r\n        <van-button round block type=\"primary\" @click=\"onSubmit(1)\">提交</van-button>\r\n      </template>\r\n    </div>\r\n    <!-- 提交失败弹窗提示 -->\r\n   <van-dialog v-model=\"dialogData.show\" title=\"提交失败\" class=\"credit-dialog\">\r\n      <div class=\"dialog-content\">\r\n        <div class=\"credit-msg\">\r\n          本单使用授信金额\r\n          <span class=\"num\">￥{{ thousandthMark(dialogData.curCreditAmount) }}元</span>\r\n          超过剩余可用授信额度\r\n          <span class=\"num\">￥{{ thousandthMark(dialogData.curAvailableCreditAmount) }}元</span>\r\n          ，无法提交订单。\r\n        </div>\r\n        <div class=\"credit-tips\">\r\n          <div class=\"tips-title\">建议：</div>\r\n          <ul class=\"tips-list\">\r\n            <li>1.增加预付款比例</li>\r\n            <li>2.对占用中授信额度进行回款</li>\r\n            <li>3.申请提高授信额度</li>\r\n          </ul>\r\n        </div>\r\n      </div>\r\n    </van-dialog>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport formComp from \"../components/formComp/list.vue\";\r\nimport { getAction, filterDictText, selectUserByRoleKeys } from \"@/api/crm/index\"\r\nimport { getOrderCustomerList, getCustomerCredit } from \"@/api/crm/customer\"\r\nimport { addOrder, getOrderDetail, stopOrder, removeOrder } from \"@/api/crm/order\"\r\nimport { getPlanPayAndDeliveryType, getCompanyInfoFromTj } from \"@/api/crm/agreement\"\r\nimport { Throttle } from '@/utils';\r\nimport { Toast, Dialog } from \"vant\";\r\nimport { calcCreditAmounts } from \"@/utils/crm\";\r\nvar now = new Date();\r\nlet _initMaxDate = new Date(now.getFullYear(), now.getMonth() + 12, now.getDate());\r\nexport default {\r\n  name: \"addOrder\",\r\n  components: { formComp },\r\n  data() {\r\n    return {\r\n\r\n      /**\r\n       * 配置form表单\r\n       * tit：标题名称 必填\r\n       * key 对应的存储key 必填\r\n       * isNeedFeedback 数据变化是否回传页面\r\n       * type 类型 必填\r\n       *    [text:输入框，picker：单选下拉选择器，radio：单选框]\r\n       * rules 校验\r\n       * placeholder 提示语 默认为： 请输入/请选择 + tit（标题）\r\n       * model 对象 存在于类型为 picker radio 必传\r\n       *    - columns 选择器中的配置 举例： { text: '外贸公司', value: '1' } 格式固定\r\n       *    -\r\n       *\r\n        */\r\n      inputList: [\r\n        {\r\n          title: \"订单信息\", inputList: [\r\n            // TODO 订单编号默认为只读  去掉 签约日期\r\n            { tit: \"订单编号\", key: \"number\", type: \"text\", placeholder: \"新增后根据订单自动生成\", readonly: true },\r\n            { tit: \"公司名称\", key: \"customerId\", keyCopy: \"companyName\", type: \"picker\", rules: [{ required: true }], model: { columns: [], option: { columnsTop: true } }, isNeedFeedback: true },\r\n            { tit: \"公司简称\", key: \"simpleName\", type: \"text\", placeholder: \"根据公司名称自动填写\", readonly: true },\r\n            { tit: \"签约公司名称\", key: \"signCompanyName\", type: \"picker\", rules: [{ required: true }], model: { columns: [] }, isNeedFeedback: true },\r\n            { tit: \"签约公司简称\", key: \"signSimpleName\", type: \"text\", placeholder: \"根据签约公司名称自动填写\", readonly: true },\r\n            { tit: \"授信详情\", key: \"credictDetail\", placeholder: \"\", type: \"credictDetail\"},\r\n            { tit: \"业务员\", key: \"salesNickName\", rules: [{ required: true }], type: \"text\", readonly: true },\r\n            // { tit: \"业务员\", key: \"salesUserName\", keyCopy: \"salesNickName\", rules: [{ required: true }], type: \"picker\", model: { columns: [] } },\r\n            { tit: \"跟单员\", key: \"followUserName\", keyCopy: \"followNickName\", type: \"picker\", model: { columns: [] } },\r\n            { tit: \"币种\", key: \"currency\", type: \"picker\", model: { columns: [] }, readonly: true },\r\n            {\r\n              tit: \"订单类型\", key: \"orderType\", placeholder: \"请选择订单类型\", type: \"radio\", rules: [{ required: true }], model: {\r\n                columns: [\r\n                  { text: '成品订单', value: 1 },\r\n                  { text: '代加工订单', value: 2 }\r\n                ]\r\n              }, readonly: true\r\n            },\r\n            { tit: \"订单金额\", key: \"amount\", placeholder: \"根据产品总价进行计算\", type: \"money\", rules: [{ required: true }], readonly: true },\r\n            {\r\n              tit: \"原药\", key: \"orderTechnicalMaterials\", placeholder: \"请填写原药核算价\", type: \"material\", itemList: [\r\n                { name: \"名称\", key: \"name\", readonly: true }, { name: \"核算价\", key: \"price\", readonly: true, rules: [{ required: true }], slot: 'consumptionModeName' }\r\n              ]\r\n            }\r\n          ]\r\n        },\r\n        {\r\n          title: \"合同信息\", key: \"contractDetailVO\", inputList: [\r\n            { tit: \"签约地\", key: \"signAddress\", type: \"text\" },\r\n            { tit: \"签约日期\", key: \"signDate\", type: \"datetimePicker\", placeholder: \"年/月/日\", model: { minDate: new Date(2010, 0, 31), maxDate: _initMaxDate }, rules: [{ required: true }], },\r\n            // { tit: \"汇率%\", key: \"signAddress1\", type: \"text\" },\r\n            // { tit: \"利润率\", key: \"signAddress2\", type: \"text\" },\r\n            { tit: \"结算方式\", key: \"settleStyle\", placeholder: \"\", type: \"picker\", model: { columns: [] }, rules: [{ required: true }], },\r\n            { tit: \"预付款\", key: \"planPayStyle\", placeholder: \"\", type: \"picker\", model: { columns: [] }, isNeedFeedback: true, rules: [{ required: true }], },\r\n            // { tit: \"结算方式\", key: \"settleStyle\", rules: [{ required: true, }], placeholder: \"\", type: \"picker\", model: { columns: [] } },\r\n            // { tit: \"预付款\", key: \"planPayStyle\", rules: [{ required: true, }], placeholder: \"\", type: \"picker\", model: { columns: [] }, isNeedFeedback: true },\r\n            { tit: \"发货方式\", key: \"deliveryStyle\", placeholder: \"根据预付款提供发货方式\", type: \"picker\", model: { columns: [] }, isNeedFeedback: true, rules: [{ required: true }] },\r\n            { tit: \"货到\", key: \"payDay\", placeholder: \"填写数字\", type: \"digit\", rightText: \"天内付款\" },\r\n            { tit: \"预 计 使 用 授 信\", key: \"planUseCreditAmount\", placeholder: \"选择预付款后自动计算\", type: \"planUseCreditAmount\", rightText: \"元\", readonly: true },\r\n            { tit: \"交（提）货地点\", key: \"deliveryAddress\", type: \"text\", placeholder: \"填写需方指定仓库\", rightText: \"详见送货通知\" },\r\n            { tit: \"交（提）货时间\", key: \"deliveryDate\", type: \"datetimePicker\", placeholder: \"填写\", model: { minDate: new Date(2010, 0, 31), maxDate: _initMaxDate } },\r\n            { tit: \"交货备注\", key: \"deliveryRemark\", placeholder: \"填写\" },\r\n            {\r\n              tit: \"运费承担方\", key: \"fare\", placeholder: \"自动生成\", type: \"radio\", model: {\r\n                columns: [\r\n                  { text: '供方', value: \"0\" },\r\n                  { text: '需方', value: \"1\" }\r\n                ]\r\n              }\r\n            },\r\n          ]\r\n        },\r\n        {\r\n          title: \"供方信息\", key: \"contractDetailVO\", inputList: [\r\n            { tit: \"供方\", key: \"providerId\", placeholder: \" \", type: \"picker\", model: { columns: [] }, isNeedFeedback: true },\r\n            { tit: \"地址\", key: \"providerAddress\", placeholder: \" \", type: \"textarea\", readonly: true },\r\n            { tit: \"法人\", key: \"providerLegalRepresentative\", placeholder: \" \", type: \"text\", readonly: true },\r\n            { tit: \"账号\", key: \"providerAccount\", placeholder: \" \", type: \"text\", readonly: true },\r\n            { tit: \"电话\", key: \"providerPhone\", placeholder: \" \", type: \"text\", readonly: true },\r\n          ]\r\n        },\r\n        {\r\n          title: \"产品信息\", type: \"changeover\", key: \"orderProductList\", inputList: [\r\n            { tit: \"产品名称\", key: \"productName\", type: \"text\", readonly: true },\r\n            { tit: \"产品编码\", key: \"productNumber\", type: \"text\", readonly: true },\r\n            // { tit: \"有效成分\", key: \"activeIngredients\", type: \"text\" },\r\n            { tit: \"单位\", key: \"unit\", type: \"text\", readonly: true, placeholder: \" \" },\r\n            // { tit: \"计量单位(件)\", key: \"piece\", type: \"number\" },\r\n            { tit: \"包装规格\", key: \"packFormat\", type: \"text\", readonly: true },\r\n            { tit: \"质量标准\", key: \"qualityStandard\", type: \"textarea\", readonly: true, table: true },\r\n            { tit: \"特殊包装\", key: \"showSpecsItems\", placeholder: \"请填写特殊包装\", type: \"text\", readonly: true },\r\n            { tit: \"包装要求补充\", key: \"packingStandard\", type: \"textarea\" },\r\n            { tit: '(*注:复合标签、打托盘、说明书及其装袋、覆膜、覆物、特殊包材等影响成本项目请务必在“特殊包装”中勾选。<strong>包装需求仅限填写一些对成本无影响的要求。</strong>)', key: \"packingStandardTip\", type: \"tips\" },\r\n            // facadeStandard\r\n            { tit: \"备注\", key: \"remark\", placeholder: \"请填写备注信息\", type: \"text\" },\r\n            { tit: \"产品数量\", key: \"productCount\", rules: [{ required: true, }], type: \"text\", readonly: true },\r\n            { tit: \"进仓费\", key: \"inwardProcessingFee\", unitKey: \"inwardProcessingFeeUnit\", placeholder: \"根据报价自动带入\", type: \"money\", readonly: true },\r\n            { tit: \"溢价金额\", key: \"premiumAmount\", placeholder: \"根据报价自动带入\", type: \"money\", readonly: true },\r\n            { tit: \"含税单价\", key: \"productPrice\", rules: [{ required: true, }], type: \"text\", readonly: true },\r\n            { tit: \"含税总价\", key: \"productAmount\", placeholder: \"根据产品数据和含税单价进行计算\", type: \"money\", readonly: true },\r\n            // 税率：必填，单位为百分比；输入规范为1位小数，默认9（表示9%）\r\n            { tit: \"税率\", key: \"taxRate\", type: \"number\", rules: [{ required: true }] },\r\n            // 不含税总价：自动计算，公式 = 含税总价 / (1 + 税率/100)，只读\r\n            { tit: \"不含税总价\", key: \"excludeTaxAmount\", placeholder: \"自动计算\", type: \"money\", rules: [{ required: true }], readonly: true },\r\n            // 税额：自动计算，公式 = 含税总价 − 不含税总价，只读\r\n            { tit: \"税额\", key: \"taxAmount\", placeholder: \"自动计算\", type: \"money\", rules: [{ required: true }], readonly: true }\r\n          ]\r\n        }\r\n      ],\r\n      hqtion: 0,  // 历史报价选择\r\n      dataList: {\r\n        orderProductList: [],\r\n        orderTechnicalMaterials: [],\r\n        premiumAmount: '',\r\n        signCompanyName: '',\r\n        signSimpleName: '',\r\n        languageCode: 'zh-CN',\r\n        availableCredit: 0,\r\n        normalOccupiedCredit: 0,\r\n        occupiedCredit: 0,\r\n        overdueOccupiedCredit: 0,\r\n        payPeriod: '',\r\n          totalCredit: 0,\r\n          planPayAmount: ''\r\n      },\r\n      terminationModel: {\r\n        show: false,\r\n        stopReason: \"\"\r\n      },\r\n      loading: null,\r\n      customerId: null,//公司id\r\n      orderCustomerList: [],// 公司集合\r\n      saveDisabled: false,\r\n\r\n      planPayAndDeliveryType: [],\r\n      planPayStyle: null,// 用于和子组件中的planPayStyle参数判断是否需要更新对应的下拉数据\r\n      SupplierAndDemanderKeys: [\"Name\", \"Address\", \"LegalRepresentative\", \"Account\", \"Phone\"],\r\n      reasonForApprovalRejection: [],\r\n      dialogData: {\r\n        show: false,\r\n        curPlanUseCreditAmount: '',\r\n        curAvailableCredit: '',\r\n      }\r\n    };\r\n  },\r\n  beforeRouteEnter(to, from, next) {\r\n    next((vm) => {\r\n      vm.$nextTick(() => {\r\n        if (from.name == 'historical') {\r\n          vm.ProductSelection(true)\r\n          // this.$set(this.dataList, 'historical', true)\r\n        } else {\r\n          localStorage.removeItem('productList');\r\n        }\r\n      });\r\n    });\r\n  },\r\n  mounted() {\r\n    this.searchList()\r\n    const query = this.$route.query;\r\n    if (query && this.hasTextValue(query.premiumAmount)) {\r\n      this.$set(this.dataList, 'premiumAmount', query.premiumAmount);\r\n    }\r\n    if (query && query.id) this.getDetails();  // 查询详情数据\r\n  },\r\n  activated() {\r\n    const query = this.$route.query;\r\n    // 只处理从历史报价跳转过来的情况（带 quotationId），直接刷新缓存数据\r\n    if (query && query.quotationId) {\r\n      localStorage.removeItem('productList');\r\n      this.$set(this.dataList, 'orderProductList', []);\r\n      this.$set(this.dataList, 'amount', '');\r\n      this.$set(this.dataList, 'orderId', '');\r\n      if (this.hasTextValue(query.premiumAmount)) {\r\n        this.$set(this.dataList, 'premiumAmount', query.premiumAmount);\r\n      }\r\n    }\r\n  },\r\n  methods: {\r\n    loadingInit() {\r\n      this.loading = this.$toast.loading({\r\n        //   message: '加载中...',\r\n        forbidClick: true,\r\n        overlay: true,\r\n        duration: 0\r\n      });\r\n    },\r\n    /**\r\n     * 判断字符串是否包含有效内容\r\n     * @param {string} value 待校验的值\r\n     * @returns {boolean} true 表示存在有效文本，false 表示为空值\r\n     */\r\n    hasTextValue(value) {\r\n      return value !== null && value !== undefined && String(value).trim() !== '';\r\n    },\r\n    /**\r\n     * 按优先级获取最新溢价金额\r\n     * @param {...any} candidates 候选数据源，可传表单对象、报价对象或原始值\r\n     * @returns {string|number} 命中的溢价金额；未命中时返回空字符串\r\n     */\r\n    getLatestPremiumAmount(...candidates) {\r\n      for (let i = 0; i < candidates.length; i++) {\r\n        const source = candidates[i];\r\n        if (source && typeof source === 'object' && this.hasTextValue(source.premiumAmount)) {\r\n          return source.premiumAmount;\r\n        }\r\n        // 兜底分支只允许返回原始值，避免把整个表单/数据对象赋给 premiumAmount 造成循环引用。\r\n        const isPrimitiveValue = ['string', 'number', 'boolean'].includes(typeof source);\r\n        if (isPrimitiveValue && this.hasTextValue(source)) {\r\n          return source;\r\n        }\r\n      }\r\n      return '';\r\n    },\r\n    /**\r\n     * 根据客户ID获取客户信息\r\n     * @param {string|number} customerId 客户ID\r\n     * @returns {Object|null} 匹配到的客户信息，未命中时返回 null\r\n     */\r\n    getCustomerById(customerId) {\r\n      if (!this.orderCustomerList || !this.orderCustomerList.length) return null;\r\n      return this.orderCustomerList.find(item => item.id == customerId) || null;\r\n    },\r\n    // 客户名称展示优先中文，中文为空时回退英文。\r\n    getCustomerDisplayName(customer) {\r\n      if (!customer) return '';\r\n      if (this.hasTextValue(customer.companyName)) return String(customer.companyName).trim();\r\n      return this.hasTextValue(customer.companyNameEn) ? String(customer.companyNameEn).trim() : '';\r\n    },\r\n    /**\r\n     * 获取签约公司名称表单配置\r\n     * @param {void} 无\r\n     * @returns {Object|null} 签约公司名称对应的配置项\r\n     */\r\n    getSignCompanyField() {\r\n      const orderInfo = this.inputList && this.inputList.length ? this.inputList[0].inputList : [];\r\n      return orderInfo.find(item => item.key === 'signCompanyName') || null;\r\n    },\r\n    /**\r\n     * 直接同步子表单中的签约公司相关字段\r\n     * @param {string} signCompanyName 签约公司名称\r\n     * @param {string} signSimpleName 签约公司简称\r\n     * @param {string} languageCode 订单语言编码\r\n     * @returns {void} 无返回值\r\n     */\r\n    syncSignCompanyToForm(signCompanyName, signSimpleName, languageCode) {\r\n      if (!this.$refs.formComp || !this.$refs.formComp.showForm) return;\r\n      this.$set(this.$refs.formComp.showForm, 'signCompanyName', signCompanyName);\r\n      this.$set(this.$refs.formComp.showForm, 'signSimpleName', signSimpleName);\r\n      this.$set(this.$refs.formComp.showForm, 'languageCode', languageCode);\r\n    },\r\n    /**\r\n     * 构造签约公司名称下拉选项\r\n     * @param {Object} customer 当前选中的客户信息\r\n     * @returns {Array} 供选择器使用的下拉数据\r\n     */\r\n    buildSignCompanyColumns(customer) {\r\n      if (!customer) return [];\r\n      const companyName = this.hasTextValue(customer.companyName) ? String(customer.companyName).trim() : '';\r\n      const companyNameEn = this.hasTextValue(customer.companyNameEn) ? String(customer.companyNameEn).trim() : '';\r\n      const columns = [];\r\n      if (companyName) {\r\n        columns.push({ text: companyName, value: companyName, simpleName: customer.simpleName || '', languageCode: 'zh-CN' });\r\n      }\r\n      if (companyNameEn && companyNameEn !== companyName) {\r\n        columns.push({ text: companyNameEn, value: companyNameEn, simpleName: customer.simpleNameEn || '', languageCode: 'en-US' });\r\n      }\r\n      return columns;\r\n    },\r\n    /**\r\n     * 根据签约公司名称推断订单语言\r\n     * @param {Object} customer 当前选中的客户信息\r\n     * @param {string} signCompanyName 当前签约公司名称\r\n     * @returns {string} 订单语言编码\r\n     */\r\n    getLanguageCodeBySignCompany(customer, signCompanyName) {\r\n      if (customer && this.hasTextValue(customer.companyNameEn) && signCompanyName === String(customer.companyNameEn).trim()) {\r\n        return 'en-US';\r\n      }\r\n      return 'zh-CN';\r\n    },\r\n    /**\r\n     * 同步签约公司字段与下拉选项\r\n     * @param {Object} customer 当前选中的客户信息\r\n     * @param {Object} options 同步选项\r\n     * @param {boolean} options.keepCurrent 是否尽量保留当前签约公司\r\n     * @param {string} options.signCompanyName 指定的签约公司名称\r\n     * @param {string} options.signSimpleName 指定的签约公司简称\r\n     * @param {string} options.languageCode 指定的语言编码\r\n     * @returns {void} 无返回值\r\n     */\r\n    syncSignCompanyFields(customer, options = {}) {\r\n      const field = this.getSignCompanyField();\r\n      const columns = this.buildSignCompanyColumns(customer);\r\n      if (field && field.model) {\r\n        this.$set(field.model, 'columns', columns);\r\n      }\r\n      if (!customer || !columns.length) {\r\n        this.$set(this.dataList, 'signCompanyName', '');\r\n        this.$set(this.dataList, 'signSimpleName', '');\r\n        this.$set(this.dataList, 'languageCode', 'zh-CN');\r\n        this.syncSignCompanyToForm('', '', 'zh-CN');\r\n        this.updateParameters();\r\n        return;\r\n      }\r\n      const preferredSignCompanyName = options.keepCurrent\r\n        ? (options.signCompanyName || this.dataList.signCompanyName || '')\r\n        : '';\r\n      const matchedColumn = columns.find(item => item.value === preferredSignCompanyName);\r\n      const targetColumn = matchedColumn || columns[0];\r\n      const hasServerSimpleName = Object.prototype.hasOwnProperty.call(options, 'signSimpleName');\r\n      const hasServerLanguageCode = this.hasTextValue(options.languageCode);\r\n      // 详情回显优先保留后端返回值；新选客户时则按当前选项自动生成简称和语言。\r\n      const nextSimpleName = options.keepCurrent && matchedColumn && hasServerSimpleName\r\n        ? (options.signSimpleName || '')\r\n        : (targetColumn.simpleName || '');\r\n      const nextLanguageCode = options.keepCurrent && matchedColumn && hasServerLanguageCode\r\n        ? options.languageCode\r\n        : (targetColumn.languageCode || this.getLanguageCodeBySignCompany(customer, targetColumn.value));\r\n      this.$set(this.dataList, 'signCompanyName', targetColumn.value);\r\n      this.$set(this.dataList, 'signSimpleName', nextSimpleName);\r\n      this.$set(this.dataList, 'languageCode', nextLanguageCode);\r\n      this.syncSignCompanyToForm(targetColumn.value, nextSimpleName, nextLanguageCode);\r\n      this.updateParameters();\r\n    },\r\n    //获取详情\r\n    getDetails() {\r\n      getOrderDetail({ orderId: this.$route.query.id }).then(res => {\r\n        res.data.orderProductList = res.data.productList;\r\n        // 兼容老数据\r\n        if (res.data.productList && res.data.productList.length) {\r\n          res.data.orderProductList[0].packingStandard = res.data.productList[0].facadeStandard;    // 包装要求补充\r\n          res.data.orderProductList[0].premiumAmount = res.data.premiumAmount;    // 溢价金额展示放到产品信息区\r\n          // 特殊包装\r\n          if (res.data.orderProductList[0].specsItems) {\r\n            const Arr = JSON.parse(res.data.orderProductList[0].specsItems) || [];\r\n            res.data.orderProductList[0].showSpecsItems = Arr.map(ele => ele.itemName).join(\",\");\r\n          }\r\n\r\n        };\r\n        res.data.orderId = this.$route.query.id;\r\n        if (!res.data.orderTechnicalMaterials) res.data.orderTechnicalMaterials = []; //老数据处理\r\n        if (res.data.orderTechnicalMaterials) {\r\n          res.data.orderTechnicalMaterials.forEach(ele => {\r\n            const name = ele.consumptionMode == '1' ? '实' : ele.consumptionMode == '2' ? '折' : '无';\r\n            ele.consumptionModeName = name;\r\n          })\r\n        }\r\n        if (res.data.orderApprovalResultList && res.data.orderApprovalResultList.length) {\r\n          res.data.orderApprovalResultList = res.data.orderApprovalResultList.filter(item => { return item.finalResult == 2 })\r\n        }\r\n        // if(res.data.code==\"\"){\r\n        //   delete res.data;\r\n        // }\r\n        let _data = Object.assign({}, res.data, res.data.contractDetailVO, res.data.contractDetailVO?.provider);\r\n        _data.premiumAmount = res.data.premiumAmount;\r\n        if (_data.orderProductList && _data.orderProductList.length) {\r\n          // 详情接口的溢价金额挂在根节点，这里显式同步到产品项，保证产品信息区能稳定回显。\r\n          _data.orderProductList[0].premiumAmount = res.data.premiumAmount;\r\n        }\r\n        this.dataList = _data;\r\n        if (this.orderCustomerList && this.orderCustomerList.length && _data.customerId) {\r\n          this.syncSignCompanyFields(this.getCustomerById(_data.customerId), {\r\n            keepCurrent: true,\r\n            signCompanyName: _data.signCompanyName,\r\n            signSimpleName: _data.signSimpleName,\r\n            languageCode: _data.languageCode\r\n          });\r\n        }\r\n        this.planPayStyleChange(_data.planPayStyle);\r\n        this.setCustomerCreditInfo(res.data.companyName);\r\n      })\r\n    },\r\n    // 根据客户公司名称查询客户授信额度信息\r\n    getCustomerCreditInfo(companyName) {\r\n      return getCustomerCredit({ companyName })\r\n        .then(res => res.data)\r\n        .catch(err => {\r\n          return null;\r\n        })\r\n    },\r\n    // 设置客户公司授信额度信息\r\n    setCustomerCreditInfo(companyName) {\r\n      this.getCustomerCreditInfo(companyName).then(res => {\r\n        if (res) {\r\n          this.$set(this.dataList, 'availableCredit', res.availableCredit);\r\n          this.$set(this.dataList, 'normalOccupiedCredit', res.normalOccupiedCredit);\r\n          this.$set(this.dataList, 'occupiedCredit', res.occupiedCredit);\r\n          this.$set(this.dataList, 'overdueOccupiedCredit', res.overdueOccupiedCredit);\r\n          this.$set(this.dataList, 'payPeriod', res.payPeriod);\r\n          this.$set(this.dataList, 'totalCredit', res.totalCredit);\r\n          this.updatePayDayRules();\r\n        }\r\n      })\r\n    },\r\n    // 质量指标变更回调：由子组件 list.vue 通过 $emit('qualityIndicator:change', {...}) 触发\r\n    // 用途：在订单顶层页面同步维护详情字段，确保展示和提交时读取到最新的质量指标\r\n    onQualityIndicatorChange(payload) {\r\n      // 解构获取质量指标 JSON 串与已拼接的质量标准文本（可能为空）\r\n      const { qualityIndicator, qualityStandard } = payload || {}\r\n      // 同步子表单内部数据，保持 list.vue 中的 showForm 与顶层一致\r\n      if (this.$refs.formComp && this.$refs.formComp.showForm) {\r\n        this.$refs.formComp.showForm.qualityIndicator = qualityIndicator\r\n      }\r\n      // 更新详情根字段：qualityIndicator（用于页面展示或其他逻辑）\r\n      this.dataList.qualityIndicator = qualityIndicator\r\n      // 兜底初始化产品列表，保证后续可安全写入第 0 个产品的字段\r\n      if (!this.dataList.orderProductList) {\r\n        this.$set(this.dataList, 'orderProductList', [])\r\n      }\r\n      if (!this.dataList.orderProductList.length) {\r\n        this.$set(this.dataList.orderProductList, 0, {})\r\n      }\r\n      // 写回产品维度字段：qualityIndicator（提交入参要求放在产品列表中）\r\n      this.$set(this.dataList.orderProductList[0], 'qualityIndicator', qualityIndicator)\r\n      // 计算 qualityStandard 文本：优先使用父组件传入的拼接结果，否则按 JSON 现算\r\n      let qs = qualityStandard\r\n      if (!qs) {\r\n        try {\r\n          const arr = JSON.parse(qualityIndicator) || []\r\n          qs = arr.map(ele => `${ele.itemName}:${ele.itemValue}`).join(', ')\r\n        } catch (e) {\r\n          qs = ''\r\n        }\r\n      }\r\n      // 写回产品维度字段：qualityStandard（页面展示与合同文本使用）\r\n      this.$set(this.dataList.orderProductList[0], 'qualityStandard', qs)\r\n    },\r\n    //搜索项数据\r\n    searchList() {\r\n      //业务员\\跟单员\r\n      selectUserByRoleKeys(['salesman', 'documenter']).then(res => {\r\n        // this.findFill(res.data.salesman, 0, 'salesUserName', 'userName', 'userId')\r\n        this.findFill(res.data.documenter, 0, 'followUserName', 'userName', 'userId')\r\n      })\r\n      //客户\r\n      getOrderCustomerList().then((res => {\r\n        this.orderCustomerList = (res.data || []).map(item => ({\r\n          ...item,\r\n          companyDisplayName: this.getCustomerDisplayName(item)\r\n        }));\r\n        filterDictText(this.orderCustomerList, 'companyDisplayName', 'id').then(res => {\r\n          // console.log(res);\r\n          this.inputList[0]['inputList'][1].model.columns = res\r\n        })\r\n        if (this.dataList.customerId) {\r\n          this.syncSignCompanyFields(this.getCustomerById(this.dataList.customerId), {\r\n            keepCurrent: true,\r\n            signCompanyName: this.dataList.signCompanyName,\r\n            signSimpleName: this.dataList.signSimpleName,\r\n            languageCode: this.dataList.languageCode\r\n          });\r\n        }\r\n      }))\r\n      // 获取币种\r\n      getAction({ dictType: 'currency' }).then((res) => {\r\n        // console.log(res);\r\n        this.findFill(res.rows, 0, 'currency', \"dictValue\", \"dictValue\")\r\n      });\r\n\r\n\r\n\r\n      //结算方式\r\n      getAction({ dictType: 'refund_settle_type' }).then((res) => {\r\n        this.findFill(res.rows, 1, 'settleStyle')\r\n      });\r\n\r\n      //预付款\r\n      getAction({ dictType: 'refund_plan_pay_type' }).then((res) => {\r\n        this.findFill(res.rows, 1, 'planPayStyle')\r\n      });\r\n      //预付款和发货方式\r\n      getPlanPayAndDeliveryType().then(res => {\r\n        this.planPayAndDeliveryType = res.data\r\n      });\r\n\r\n      // 获取供方列表信息\r\n      getCompanyInfoFromTj().then(res => {\r\n        this.providerList = res.data;\r\n        this.findFill(res.data, 2, 'providerId', \"Gsmc\", \"id\")\r\n        if (!res.data.length) return;\r\n        this.dataList[\"providerId\"] = res.data.filter(item => { return item.Gsmc == '河南蕴农植保科技有限公司' })[0].id; //查到当前河南蕴农公司\r\n        this.providerChange(this.dataList[\"providerId\"])\r\n      });\r\n      this.dataList.fare = '0'\r\n\r\n\r\n\r\n\r\n\r\n    },\r\n    //接口数据查找并填充\r\n    findFill(arr, num, str, strA, strB) {\r\n      // 数组，查找数组列索引,查找字符串\r\n      filterDictText(arr, strA, strB).then(res => {\r\n        let list = this.inputList[num].inputList.filter(item => {\r\n          return item.key == str\r\n        })\r\n        // 暂时先这样写\r\n        list[0].model.columns = res.filter(item => { return item.text != '款未到部分发货' })\r\n      })\r\n    },\r\n\r\n    onSubmit: Throttle(async function (state, num) {\r\n      let _bool = await this.$refs.formComp.validateForm();\r\n      if (!_bool) {\r\n        return\r\n      }\r\n      this.saveDisabled = true;\r\n      this.loadingInit();\r\n      // console.log(\"???????????????\");\r\n      this.addOrderList(0, state);\r\n      // this.$router.push({ path: '/pqsHistoricalQuotationList' });\r\n    }),\r\n    onRemove() {\r\n      Dialog.alert({\r\n        showCancelButton: true,\r\n        title: '删除',\r\n        message: '您确定删除吗',\r\n      }).then(() => {\r\n        removeOrder({ id: this.$route.query.id }).then(res => {\r\n          if (res.code == 200) {\r\n            Toast.success(\"删除成功\");\r\n            this.$router.go(-1);\r\n          } else {\r\n            Toast.fail(res.error);\r\n          }\r\n        })\r\n      }).catch(() => {\r\n        // on cancel\r\n      });;\r\n\r\n    },\r\n\r\n    //新增订单\r\n    addOrderList(number, state) {\r\n      // 通过子组件引用拿到表单模型（引用语义）：_form 与 this.$refs.formComp.showForm 指向同一对象\r\n      // 后续对 _form 的任何读写都会直接作用于子组件的表单数据\r\n      let _form = this.$refs.formComp.showForm;\r\n      if (_form.orderProductList && _form.orderProductList.length) _form.remark = _form.orderProductList[0].remark; // 备注\r\n      if (_form.qualityIndicator) { // 质量标准-- 包装要求补充 --特殊包装\r\n        _form.orderProductList[0].qualityIndicator = _form.qualityIndicator;\r\n        _form.orderProductList[0].qualityStandard = (JSON.parse(_form.orderProductList[0].qualityIndicator) || []).map(ele => `${ele.itemName}:${ele.itemValue}`).join(', ');\r\n        _form.orderProductList[0].facadeStandard = _form.orderProductList[0].packingStandard;\r\n      };\r\n      _form.createTime ? _form.createTime += \" 00:00:00\" : \"\";\r\n      !_form.currency ? _form.currency = \"CNY\" : \"\";\r\n\r\n      // return;\r\n      this.$refs.formComp.validateForm().then(res => {\r\n        if (!res) {\r\n          flag = false\r\n          this.loading.clear();\r\n          Toast.fail(\"请填写必要信息\");\r\n          this.saveDisabled = false;\r\n          // this.$refs.saveBtn.remove(\"is-disabled\")\r\n          return;\r\n        }\r\n        // 提交前预处理：调用子组件的 prepareSubmit 对数据进行规范化\r\n        // - 统一税率到 1 位小数（空值默认 9.0）\r\n        // - 依据含税总价与税率计算不含税总价（excludeTaxAmount）与税额（taxAmount）\r\n        // - 规范金额到 2 位小数，并重新汇总订单总额 amount\r\n        if (this.$refs.formComp && this.$refs.formComp.prepareSubmit) {\r\n          this.$refs.formComp.prepareSubmit();\r\n        }\r\n        // 在详情维度，添加税额、税率、不含税总价\r\n        _form.taxRate = _form.orderProductList[0].taxRate;\r\n        _form.taxAmount = _form.orderProductList[0].taxAmount;\r\n        _form.excludeTaxAmount = _form.orderProductList[0].excludeTaxAmount;\r\n        // 提交前统一将签约公司字段覆盖到历史提交字段中，兼容后端当前入参结构。\r\n        _form.companyName = _form.signCompanyName || _form.companyName || '';\r\n        _form.simpleName = _form.signSimpleName || '';\r\n        if (!_form.languageCode) {\r\n          _form.languageCode = this.getLanguageCodeBySignCompany(this.getCustomerById(_form.customerId), _form.signCompanyName);\r\n        }\r\n\r\n        _form.status = state\r\n        if (_form.productList) {\r\n          delete _form.productList;\r\n        }\r\n        if (!_form.orderType) {\r\n          this.loading.clear();\r\n          Toast.fail(\"请选择订单类型\");\r\n          this.saveDisabled = false;\r\n          return\r\n        }\r\n        // 查看 原药的实物折百信息是否丢失\r\n        const hasNoEmptyConsumptionMode = _form.orderTechnicalMaterials.every(item =>\r\n          Boolean(item.consumptionMode)\r\n        );\r\n        if (_form.orderTechnicalMaterials && _form.orderTechnicalMaterials.length && !hasNoEmptyConsumptionMode) {\r\n          this.loading.clear();\r\n          Toast.fail(\"原药信息缺失实物、折百，请联系管理员\");\r\n          this.saveDisabled = false;\r\n          return\r\n        }\r\n        // 如果预计使用授信 大于 当前授信可用额度，则校验失败\r\n        if (Number(_form.planUseCreditAmount) > Number(_form.availableCredit)) {\r\n          this.loading.clear();\r\n          this.dialogData.show = true;\r\n          this.dialogData.curCreditAmount = _form.planUseCreditAmount;\r\n          this.dialogData.curAvailableCreditAmount = _form.availableCredit;\r\n          this.saveDisabled = false;\r\n          return\r\n        }\r\n        // 查看是否填写原药\r\n        // if (_form.orderTechnicalMaterials && _form.orderTechnicalMaterials.length <= 0) {\r\n        //   this.loading.clear();\r\n        //   Toast.fail(\"请填写原药信息\");\r\n        //   this.saveDisabled = false;\r\n        //   return\r\n        // }\r\n        // 提交时优先取当前表单中的最新报价溢价金额，未命中时再回退到路由入参。\r\n        _form.premiumAmount = this.getLatestPremiumAmount(_form, this.dataList, this.$route.query && this.$route.query.premiumAmount)\r\n        // 进仓费：产品行里的值同步到根节点，保证后端无论从根节点还是产品行取都能拿到（0 是合法值，仅 null/undefined 不同步）\r\n        if (_form.orderProductList && _form.orderProductList.length\r\n          && _form.orderProductList[0].inwardProcessingFee !== undefined\r\n          && _form.orderProductList[0].inwardProcessingFee !== null) {\r\n          _form.inwardProcessingFee = _form.orderProductList[0].inwardProcessingFee;\r\n        }\r\n        addOrder(_form).then(res => {\r\n          this.loading.clear();\r\n          if (res.code == 200) {\r\n            Toast.success(`${state == 0 ? '保存' : '提交'}成功`);\r\n            // TODO 回退页面\r\n            localStorage.setItem(\"isRefresh\", JSON.stringify(true)); //存储内容刷新列表\r\n            // this.goBack();\r\n            localStorage.setItem(\"crmAddOrderEditSuccess\", this.$route.query.quotationId); //存储内容刷新列表\r\n            // this.$router.go(-1);\r\n            this.goBack();\r\n\r\n\r\n          } else {\r\n            this.$toast(res.error, { duration: 5000 });\r\n          }\r\n          this.saveDisabled = false;\r\n        }).catch(res => {\r\n          this.loading.clear();\r\n          this.saveDisabled = false;\r\n        })\r\n      })\r\n\r\n    },\r\n    // 产品选择完成  页面返回\r\n    ProductSelection(bool) {\r\n      let productList = JSON.parse(localStorage.getItem(\"productList\")) || [];\r\n      this.$refs.formComp.showForm.quotationId = productList[0].quotationId;\r\n        // 新增：只赋值到子组件表单，提交时 _form 会读取，不做详情回显\r\n  const productOrgCode = productList[0]?.productOrgCode || '';\r\n  this.$set(this.$refs.formComp.showForm, 'productOrgCode', productOrgCode);\r\n      const latestPremiumAmount = this.getLatestPremiumAmount(\r\n        productList[0],\r\n        this.$refs.formComp.showForm,\r\n        this.dataList,\r\n        this.$route.query && this.$route.query.premiumAmount\r\n      );\r\n      // 选择新报价后，优先把新报价中的溢价金额同步到父子表单，保证页面展示与提交一致。\r\n      this.$set(this.$refs.formComp.showForm, 'premiumAmount', latestPremiumAmount);\r\n      this.$set(this.dataList, 'premiumAmount', latestPremiumAmount);\r\n      if (productList && productList.length) {\r\n        productList[0].premiumAmount = latestPremiumAmount;\r\n      }\r\n      // 公司信息的更换\r\n      this.huiShow(this.orderCustomerList, productList[0].customerName);\r\n      // 订单类型\r\n      this.dataList.orderType = productList[0].orderType == 0 ? 1 : 2;\r\n\r\n      // 原药信息的回显\r\n      this.tcInfoShow(productList[0]);\r\n      this.$nextTick(() => {\r\n        // 订单金额\r\n        this.dataList.amount = productList[0].actualTotalPrice || '';\r\n        // 产品信息的form表单\r\n        const showForm = JSON.parse(JSON.stringify(this.$refs.formComp.showForm));\r\n        // 以子表单快照为基础，再把父组件最新联动结果合并回来，避免报价带入时覆盖公司与签约公司字段。\r\n        let _form = Object.assign({}, showForm, this.dataList);\r\n        if (productList && productList.length) {\r\n          _form.qualityIndicator = productList[0].qualityIndicator;    // 产品质量指标\r\n          _form.premiumAmount = latestPremiumAmount;    // 最新报价的溢价金额\r\n          productList[0].category = productList[0].productCategoryCode;    // 产品信息中需要产品的类别\r\n          this.dataList.currency = productList[0].currency;    // 产品信息中需要产品的类别\r\n        }\r\n        this.dataList = _form\r\n        // 产品列表设置后，税务相关字段统一由子组件 list.vue 在 watch(dataList) 中初始化与计算\r\n        this.$set(this.dataList, 'orderProductList', productList)\r\n        // 报价带入后再次同步签约公司，避免被旧表单快照覆盖为空。\r\n        this.syncSignCompanyFields(this.getCustomerById(this.dataList.customerId), {\r\n          keepCurrent: true,\r\n          signCompanyName: this.dataList.signCompanyName,\r\n          signSimpleName: this.dataList.signSimpleName,\r\n          languageCode: this.dataList.languageCode\r\n        });\r\n        this.$refs.formComp.inputClick(this.inputList[1].inputList[5], 0, this.inputList[1])\r\n      });\r\n\r\n    },\r\n    // 选择完报价后回显客户信息（名称、简称、id）\r\n    huiShow(list, name) {\r\n      const targetName = this.hasTextValue(name) ? String(name).trim() : '';\r\n      const Arr = list.filter(item => {\r\n        const companyName = this.hasTextValue(item.companyName) ? String(item.companyName).trim() : '';\r\n        const companyNameEn = this.hasTextValue(item.companyNameEn) ? String(item.companyNameEn).trim() : '';\r\n        // 历史报价回显时，优先按中文名称匹配；中文为空或未命中时，继续按英文名称匹配。\r\n        return companyName === targetName || companyNameEn === targetName;\r\n      });\r\n      let obj = {};\r\n      if (Arr && Arr.length) {\r\n        obj = Arr[0];\r\n      }\r\n      console.log(obj, '筛选出来的公司信息');\r\n      this.dataList.companyName = this.getCustomerDisplayName(obj);   // 公司名称优先中文，兜底英文\r\n      this.dataList.customerId = obj.id;\r\n      // 更换公司简称\r\n      this.customerId = obj.id;\r\n      this.setSimpleName();\r\n      this.syncSignCompanyFields(obj);\r\n    },\r\n    // 原药信息回显\r\n    tcInfoShow(obj) {\r\n      if (obj.tcInfo) {\r\n        const tcInfoList = JSON.parse(obj.tcInfo);\r\n        this.dataList.orderTechnicalMaterials = tcInfoList.map(ele => {\r\n          return {\r\n            price: ele.actualTcPrice,\r\n            name: ele.tcName,\r\n            consumptionMode: ele.consumptionMode || '',\r\n            // const name = ele.consumptionMode == '1' ? '实' : ele.consumptionMode == '2' ? '折' : '无';\r\n            consumptionModeName: ele.consumptionMode == '1' ? '实' : ele.consumptionMode == '2' ? '折' : '无',\r\n            ...ele\r\n          }\r\n        })\r\n      }\r\n    },\r\n    stopOrderSubmit() {\r\n      this.loadingInit();\r\n      stopOrder({\r\n        orderId: this.dataList.orderId,\r\n        stopReason: this.terminationModel.stopReason\r\n      }).then(res => {\r\n        this.$toast.success(\"申请成功\")\r\n        this.loading.clear();\r\n        let that = this;\r\n        let time = setTimeout(function () {\r\n          clearTimeout(time)\r\n          that.goBack()\r\n        }, 1000)\r\n      })\r\n    },\r\n    // 公司简称赋值\r\n    setSimpleName() {\r\n      let _data = this.orderCustomerList.find(item => {\r\n        return item.id == this.customerId;\r\n      });\r\n      this.dataList[\"simpleName\"] = _data ? (_data.simpleName || '') : ''\r\n      this.updateParameters();\r\n    },\r\n    updateParameters() {\r\n      this.$nextTick(() => {\r\n        let _form = this.$refs.formComp.showForm;\r\n        // 以子表单现有值为基础，再用父级最新联动结果覆盖，避免父级写入的新值被旧空值冲掉。\r\n        let merged = Object.assign({}, _form, this.dataList);\r\n        // 历史报价带入的产品列表/原药列表由子组件异步回填（getData），父级 dataList 里的旧空列表\r\n        // 不能反过来覆盖它们，否则供方列表等接口晚于报价接口返回时会把它俩清空\r\n        // （原药被清空会导致预算订单缺原药信息、审批流程报错；iOS 上偶发）。\r\n        [\"orderProductList\", \"orderTechnicalMaterials\"].forEach(key => {\r\n          const parentListEmpty = !this.dataList[key] || !this.dataList[key].length;\r\n          const childListFilled = _form[key] && _form[key].length;\r\n          if (parentListEmpty && childListFilled) {\r\n            merged[key] = _form[key];\r\n          }\r\n        });\r\n        this.dataList = merged;\r\n      })\r\n    },\r\n    /* form 参数 变化 */\r\n    isNeedFeedbackChange(query) {\r\n      console.log(query, \"变化\");\r\n      const { key, data } = query;\r\n      switch (key) {\r\n        case \"customerId\":\r\n          // 公司名称\r\n          this.customerId = data[key]\r\n          this.setSimpleName();\r\n          this.syncSignCompanyFields(this.getCustomerById(data[key]));\r\n          this.setCustomerCreditInfo(data.companyName);\r\n          break;\r\n        case \"signCompanyName\":\r\n          // 签约公司名称\r\n          this.syncSignCompanyFields(this.getCustomerById(data.customerId || this.customerId), {\r\n            keepCurrent: true,\r\n            signCompanyName: data.signCompanyName\r\n          });\r\n          break;\r\n        case \"planPayStyle\":\r\n          // 预付款切换\r\n          if (data.planPayStyle != this.planPayStyle) {\r\n            this.planPayStyleChange(data.planPayStyle);\r\n            // 更新预计使用授信\r\n            this.updatePlanUseCredit();\r\n          }\r\n          break;\r\n        case \"planPayAmount\":\r\n          // 自定义预付金额变化：联动计算与校验刷新\r\n          this.updatePlanUseCredit();\r\n          break;\r\n        case \"deliveryStyle\":\r\n          // 发货方式切换，更新预计使用授信\r\n          this.updatePlanUseCredit();\r\n          break;\r\n        case \"providerId\":\r\n          // 供方切换\r\n          this.providerChange(data.providerId);\r\n          break;\r\n\r\n        default:\r\n          break;\r\n      }\r\n    },\r\n    // 预付款切换\r\n    planPayStyleChange(value) {\r\n      console.log(value, \"切换************\");\r\n      let arr = this.planPayAndDeliveryType.filter(item => {\r\n        return item.planPayStyle == value\r\n      })\r\n      console.log(arr);\r\n      this.findFill(arr[0].deliveryTypeList, 1, 'deliveryStyle', \"deliveryStyleName\", \"deliveryStyle\");\r\n\r\n      // if (value == 100) {\r\n      //   let _opt = { tit: \"具体金额\", key: \"planPayAmount\", placeholder: \"填写数字\", type: \"number\" };\r\n      //   this.inputList[1].inputList.splice(5, 0, _opt)\r\n      // }\r\n      const contractInputs = this.inputList[1].inputList; // 合同输入项列表（第二组）\r\n      const amountIndex = contractInputs.findIndex(item => item.key === 'planPayAmount'); // 查找“具体金额”输入框的位置\r\n      // 当预付款方式为自定义金额（100）时：确保页面上有“具体金额”输入框\r\n      if (value == 100) {\r\n        // 若不存在“具体金额”输入框，则新增一个输入项\r\n        if (amountIndex === -1) {\r\n          const _opt = { tit: \"具体金额\", key: \"planPayAmount\", placeholder: \"填写数字\", type: \"number\" };\r\n          // “货到天数”字段的索引，用于确定插入位置\r\n          const payDayIndex = contractInputs.findIndex(item => item.key === 'payDay');\r\n          const insertIndex = payDayIndex !== -1 ? payDayIndex : 5; // 有“货到天数”则插到其前；否则回退到位置 5\r\n          contractInputs.splice(insertIndex, 0, _opt);\r\n        }\r\n      } else {\r\n        // 当预付款方式为非自定义金额时：移除“具体金额”输入框，并清空已填的具体金额\r\n        if (amountIndex !== -1) {\r\n          contractInputs.splice(amountIndex, 1);\r\n        }\r\n        if (this.$refs.formComp && this.$refs.formComp.showForm) {\r\n          this.$set(this.$refs.formComp.showForm, 'planPayAmount', ''); // 清空子表单中的具体金额值（响应式）\r\n        }\r\n        this.$set(this.dataList, 'planPayAmount', ''); // 同步清空父级数据中的具体金额值\r\n      }\r\n      if (this.planPayStyle == 100) {\r\n        this.inputList[1].inputList.splice(2, 1)\r\n      }\r\n\r\n      this.planPayStyle = value;\r\n      this.updatePlanUseCredit()\r\n    },\r\n    updatePlanUseCredit() {\r\n      // 计算说明：统一从表单读取参数，调用公共方法计算三项金额\r\n      // 计算目标：planUseCreditAmount（预计使用授信）、planPayAmount（预付款）、noCreditNoPayAmount（剩余：非授信非预付款）\r\n      const form = this.$refs.formComp && this.$refs.formComp.showForm ? this.$refs.formComp.showForm : this.dataList;\r\n      const amount = Number(form.amount) || 0;\r\n      const styleStr = String(form.planPayStyle || '');\r\n      const delivery = String(form.deliveryStyle || '');\r\n      // 自定义预付金额仅在 planPayStyle = '100' 时传入\r\n      const inputPlanPayAmount = styleStr === '100' ? form.planPayAmount : undefined;\r\n      // 调用公共方法进行计算，返回三项金额（已保留两位小数）\r\n      const { planUseCreditAmount, planPayAmount, noCreditNoPayAmount } = calcCreditAmounts({ amount, planPayStyle: styleStr, deliveryStyle: delivery, planPayAmountInput: inputPlanPayAmount });\r\n      // 写回子组件表单（用于展示与提交）\r\n      if (this.$refs.formComp && this.$refs.formComp.showForm) {\r\n        this.$refs.formComp.showForm.planUseCreditAmount = planUseCreditAmount;\r\n        this.$refs.formComp.showForm.planPayAmount = planPayAmount;\r\n        this.$refs.formComp.showForm.noCreditNoPayAmount = noCreditNoPayAmount;\r\n      }\r\n      // 写回父级数据（用于存储与回显）\r\n      this.$set(this.dataList, 'planUseCreditAmount', planUseCreditAmount);\r\n      this.$set(this.dataList, 'planPayAmount', planPayAmount);\r\n      this.$set(this.dataList, 'noCreditNoPayAmount', noCreditNoPayAmount);\r\n      // console.log('父组件计算结果：planUseCreditAmount', planUseCreditAmount);\r\n      // console.log('父组计算结果：planPayAmount', planPayAmount);\r\n      // console.log('父组计算结果：noCreditNoPayAmount', noCreditNoPayAmount);\r\n      this.updatePayDayRules();\r\n    },\r\n    //  供方切换\r\n    providerChange(value) {\r\n      let _obj = this.providerList.filter(item => item.id == value)[0];\r\n      //  供方 新增TODO\r\n      let _oldKey = [\"Gsmc\", \"Dz\", \"fr\", \"Zh\", \"Dh\"];\r\n\r\n      // console.log(_obj);\r\n      this.SupplierAndDemanderKeys.forEach((item, i) => {\r\n        this.dataList[\"provider\" + item] = _obj[_oldKey[i]]\r\n        // this.$set(this.dataList, \"provider\" + item, _obj[_oldKey[i]]);\r\n      });\r\n      this.dataList[\"signPath\"] = _obj[\"Gzlj\"];\r\n      this.updateParameters();\r\n      // console.log(this.dataList);\r\n    },\r\n    //  更新货到天数校验规则\r\n    updatePayDayRules() {\r\n      const form = this.$refs.formComp && this.$refs.formComp.showForm ? this.$refs.formComp.showForm : this.dataList;\r\n      const useCredit = Number(form.planUseCreditAmount) || 0;\r\n      const delivery = String(form.deliveryStyle || '');\r\n      const maxPeriod = Number(form.payPeriod || this.dataList.payPeriod);\r\n      const contractInputs = this.inputList[1].inputList;\r\n      const idx = contractInputs.findIndex(item => item.key === 'payDay');\r\n      if (idx === -1) return;\r\n      if (useCredit > 0 && (delivery === 'day' || delivery === 'pay')) {\r\n        const rules = [\r\n          { required: true, message: '请填写货到天数' },\r\n          {\r\n            validator: (val) => {\r\n              if (val === '' || val === undefined || val === null) return true;\r\n              const n = Number(val);\r\n              if (isNaN(n)) return false;\r\n              if (isNaN(maxPeriod) || !maxPeriod) return true;\r\n              return n <= maxPeriod;\r\n            },\r\n            message: `货到天数不可超过账期${isNaN(maxPeriod) ? '' : maxPeriod}天`\r\n          }\r\n        ];\r\n        this.$set(contractInputs[idx], 'rules', rules);\r\n      } else {\r\n        this.$set(contractInputs[idx], 'rules', []);\r\n      }\r\n    }\r\n  },\r\n\r\n\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.app-main {\r\n  background: #ccc !important;\r\n}\r\n\r\n.blankBlock {\r\n  height: 10px;\r\n  // background: #f8f8f8;\r\n}\r\n\r\n.title {\r\n  width: 100%;\r\n  font-size: 16px;\r\n\r\n  font-size: 16px;\r\n  font-weight: bold;\r\n  color: #26BFB2;\r\n  line-height: 45px;\r\n  text-align: center;\r\n  background: #f8f8f8;\r\n}\r\n\r\n.van-button {\r\n  width: 40%;\r\n  margin: 30px auto;\r\n  background: #fff;\r\n  border: #26BFB2 1px solid;\r\n  color: #26BFB2;\r\n  margin: 0 5px;\r\n}\r\n\r\n.van-button:last-child {\r\n  background: #26BFB2;\r\n  border: #26BFB2 1px solid;\r\n  color: #fff;\r\n}\r\n\r\n.vanpopup {\r\n  padding-top: 50px;\r\n\r\n  .vanCheckboxGroup {\r\n    margin: 0px 24px 20px 24px;\r\n    border: #e9e9e9 1px solid;\r\n\r\n    .vanCheckboxGroup_div {\r\n      padding: 15px 10px;\r\n      font-weight: bold;\r\n      display: flex;\r\n      justify-content: space-between;\r\n    }\r\n  }\r\n\r\n  .textarea {\r\n    width: calc(100% - 48px);\r\n    margin: 0px 24px;\r\n    border: #e9e9e9 1px solid;\r\n    box-sizing: border-box;\r\n  }\r\n}\r\n\r\n.credit-dialog {\r\n  padding: 0px;\r\n  /deep/ .van-dialog {\r\n    width: 88vw;\r\n    max-width: 420px;\r\n    border-radius: 12px;\r\n  }\r\n  .dialog-content {\r\n    padding: 12px 24px;\r\n  }\r\n  .credit-msg {\r\n    font-size: 14px;\r\n    line-height: 1.6;\r\n    color: #333;\r\n    margin-bottom: 8px;\r\n  }\r\n  .num {\r\n    color: #ff4d4f;\r\n    font-weight: 600;\r\n    padding: 0 2px;\r\n  }\r\n  .credit-tips {\r\n    display: block;\r\n    margin-top: 4px;\r\n    border: 1px solid orange;\r\n    background: #fff8e6;\r\n    border-radius: 8px;\r\n    padding: 8px 12px;\r\n  }\r\n  .tips-title {\r\n    font-size: 13px;\r\n    color: orange;\r\n    font-weight: 600;\r\n  }\r\n  .tips-list {\r\n    margin: 6px 0 0;\r\n    padding-left: 18px;\r\n    color: #666;\r\n    font-size: 13px;\r\n    line-height: 1.6;\r\n    list-style: decimal;\r\n  }\r\n  /deep/ .van-dialog__footer .van-button {\r\n    border-radius: 8px;\r\n  }\r\n  /deep/ .van-dialog__footer .van-button--primary {\r\n    background: #26BFB2;\r\n    border-color: #26BFB2;\r\n  }\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/.store/thread-loader@2.1.3/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.store/babel-loader@8.4.1/node_modules/babel-loader/lib/index.js!../../../../node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.store/vue-loader@15.11.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./addOrder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/.store/thread-loader@2.1.3/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.store/babel-loader@8.4.1/node_modules/babel-loader/lib/index.js!../../../../node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.store/vue-loader@15.11.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./addOrder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./addOrder.vue?vue&type=template&id=3f3e6f58&scoped=true\"\nimport script from \"./addOrder.vue?vue&type=script&lang=js\"\nexport * from \"./addOrder.vue?vue&type=script&lang=js\"\nimport style0 from \"./addOrder.vue?vue&type=style&index=0&id=3f3e6f58&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/.store/vue-loader@15.11.1/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3f3e6f58\",\n  null\n  \n)\n\nexport default component.exports","import request from '@/utils/request';\r\n\r\nconst service = process.env.VUE_APP_CRM_URL;\r\nconst cloud = process.env.VUE_APP_CLOUD_URL;\r\n\r\n// 获取合同列表\r\nexport function getAgreementList(data) {\r\n    return request({\r\n        url: `${service}/contract/getContractList`,\r\n        method: 'get',\r\n        params: data\r\n    })\r\n}\r\n\r\n// 获取新增合同的基本信息\r\nexport function getContractBaseInfo() {\r\n    return request({\r\n        url: `${service}/contract/getContractBaseInfo`,\r\n        method: 'get',\r\n    })\r\n}\r\n\r\n// 获取预付款和发货方式枚举值\r\nexport function getPlanPayAndDeliveryType() {\r\n    return request({\r\n        url: `${service}/contract/getPlanPayAndDeliveryType`,\r\n        method: 'get',\r\n    })\r\n}\r\n// 新增合同\r\nexport function addContract(data) {\r\n    return request({\r\n        // url: `${service}/contract/addContract`,\r\n        // url: `${service}/contract/addOrUpdateContract`,\r\n        url: `${service}/contract/updateContract`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n// 查询合同回款明细信息\r\nexport function getContractRefundDetail(data) {\r\n    return request({\r\n        url: `${service}/refund/getContractRefundDetail`,\r\n        method: 'get',\r\n        params: data\r\n    })\r\n}\r\n\r\n// 查询合同详情\r\nexport function getContractDetailVO(data) {\r\n    return request({\r\n        url: `${service}/contract/getContractDetailVO`,\r\n        method: 'get',\r\n        params: data\r\n    })\r\n}\r\n\r\n// 获取新增合同的订单下拉列表-选中某个后调详情接口获取订单关联的产品信息\r\nexport function getOrderListForAddContract(data) {\r\n    return request({\r\n        url: `${service}/contract/getOrderListForAddContract`,\r\n        method: 'get',\r\n        params: data\r\n    })\r\n}\r\n\r\n// 审批\r\nexport function handleApprove(data) {\r\n    return request({\r\n        url: `${service}/approve/handleApprove`,\r\n        method: 'POST',\r\n        data\r\n    })\r\n}\r\n\r\n// 预览\r\n// http://upi.crm.jiuzhuokeji.cn/api/contract/browseContractFile\r\nexport function browseContractFile(data) {\r\n    return request({\r\n        url: `${service}/contract/browseContractFile`,\r\n        method: 'POST',\r\n        data\r\n    })\r\n}\r\n// 撤销\r\nexport function cancelContract(data) {\r\n    return request({\r\n        url: `${service}/contract/cancelContract`,\r\n        method: 'GET',\r\n        params: data\r\n    })\r\n}\r\n// contract/cancelContract?contractId=62\r\n\r\n// 获取供方列表\r\nexport function getCompanyInfoFromTj() {\r\n    return request({\r\n        url: `${service}/order/getCompanyInfoFromTj`,\r\n        method: 'GET',\r\n    })\r\n}\r\n// 申请合同修改 合同状态为已审批状态\r\nexport function applyUpdate(data) {\r\n    return request({\r\n        url: `${service}/contract/applyUpdate`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n// 批量更新 合同附件\r\nexport function batchUpdateContractFile(data) {\r\n    return request({\r\n        url: `${service}/contract/batchUpdateContractFile`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n// 批量更新 合同附件原药\r\nexport function batchUpdateContractFileyY(data) {\r\n    return request({\r\n        url: `${cloud}/jeecg-crm/appCrm/api/batchUpdateContractFile`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n\r\n// 获取盖章回传列表\r\nexport function getstampReturnList(data) {\r\n    return request({\r\n        url: `${service}/stamp/getStampReturnList`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n// 获取盖章回传列表原药\r\nexport function getstampReturnListYy(params) {\r\n    return request({\r\n        url: `${cloud}/jeecg-crm/appCrm/api/getStampReturnList`,\r\n        method: 'get',\r\n        params\r\n    })\r\n}\r\n// /stamp/ackStamp\r\n// 确认盖章\r\nexport function ackStamp(data) {\r\n    return request({\r\n        url: `${service}/stamp/ackStamp`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n// 盖章回传原药\r\nexport function ackStampYy(data) {\r\n    return request({\r\n        url: `${cloud}/jeecg-crm/appCrm/api/ackStamp`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n\r\n\r\n// 新增合同\r\nexport function getApprovalProcessByContractId(data) {\r\n    return request({\r\n        url: `${service}/approve/getApprovalProcessByContractId`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n\r\n// 原药销售订单详情\r\nexport function queryCrmContractDetailById(params) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/queryCrmContractDetailById`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n// 盖章回传-批量更新同步附件\r\nexport function updateAttachmentsYy(data) {\r\n    return request({\r\n        url: `${cloud}/jeecg-crm/appCrm/api/updateAttachments`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n\r\n// 盖章回传-批量更新同步附件\r\nexport function updateAttachments(data) {\r\n    return request({\r\n        url: `${service}/contract/updateAttachments`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n// 合同-更新订单签订日期\r\nexport function updateOrderSign(data) {\r\n    return request({\r\n        url: `${service}/contract/updateOrderSign`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n// 合同-更新订单签订日期 原药\r\n\r\nexport function updateOrderSignYy(data) {\r\n    return request({\r\n        url: `${cloud}/jeecg-crm/appCrm/api/updateOrderSign`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n\r\n// 合同-产品质量标准修改\r\nexport function updateContractQuality(data) {\r\n    return request({\r\n        url: `${service}/contract/updateContractQuality`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n// 合同-查询产品质量指标修改记录\r\nexport function getContractQualityUpdateList(data) {\r\n    return request({\r\n        url: `${service}/contract/getContractQualityUpdateRecordList`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n","export * from \"-!../../../../node_modules/.store/mini-css-extract-plugin@0.9.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.store/css-loader@3.6.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.store/vue-loader@15.11.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/.store/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.store/sass-loader@10.2.0/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.store/vue-loader@15.11.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./addOrder.vue?vue&type=style&index=0&id=3f3e6f58&prod&lang=scss&scoped=true\""],"sourceRoot":""}