{"version":3,"sources":["webpack:///./src/views/customerCredit/creditApplication/components/credictLimitCard.vue?aaf3","webpack:///src/views/customerCredit/creditApplication/components/credictLimitCard.vue","webpack:///./src/views/customerCredit/creditApplication/components/credictLimitCard.vue?e1d3","webpack:///./src/views/customerCredit/creditApplication/components/credictLimitCard.vue","webpack:///./src/utils/crm.js","webpack:///./src/api/crm/index.js","webpack:///./src/views/crm/components/formComp/list.vue?136a","webpack:///./src/views/crm/components/formComp/table.vue?8fa2","webpack:///./src/views/crm/components/formComp/list.vue?8d7b","webpack:///src/views/crm/components/formComp/list.vue","webpack:///./src/views/crm/components/formComp/list.vue?091b","webpack:///./src/views/crm/components/formComp/list.vue","webpack:///./src/api/crm/order.js","webpack:///./src/views/customerCredit/creditApplication/components/credictLimitCard.vue?e0f1","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///./src/views/crm/components/formComp/table.vue?2e12","webpack:///src/views/crm/components/formComp/table.vue","webpack:///./src/views/crm/components/formComp/table.vue?e342","webpack:///./src/views/crm/components/formComp/table.vue","webpack:///./src/api/crm/customer.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","_v","attrs","_s","thousandthMark","creditInfo","totalCredit","payPeriod","style","width","getSegmentWidth","preOccupiedCredit","normalOccupiedCredit","overdueOccupiedCredit","availableCredit","staticRenderFns","name","props","type","default","methods","field","component","calcCreditAmounts","amount","planPayStyle","deliveryStyle","planPayAmountInput","amt","Number","styleStr","String","delivery","planPayAmount","planUseCreditAmount","percent","input","noCreditNoPayAmount","Math","max","to2","n","toFixed","service","process","getAction","params","request","url","method","selectUserByRoleKeys","data","getCurrentLoginUser","filterDictText","strA","strB","length","resData","map","item","text","dictLabel","value","dictValue","show","ref","class","dataList","orderStatus","isDisabled","on","onSubmit","_l","blockInd","key","title","_e","historicalQuotation","showForm","list","index","$event","delClick","childItem","unitKey","tit","placeholder","rules","readonly","inputClick","scopedSlots","_u","fn","staticStyle","proxy","model","showMoney","callback","$$v","$set","expression","_n","qualityIndicatorList","tableChange","qualityStandard","domProps","rightIcon","stopPropagation","iconClick","rightIconClick","initPicker","columnsItme","rightText","materialList","materialIndex","slot","closePopup","showPicker","columns","onConfirm","onCancel","option","query","tempCheckedArr","itemList","onAffirm","getmaterialcolumns","materialcolumns","checked","toggle","el","checkboxRefs","refInFor","minDate","maxDate","onDatetimeConfirm","components","comTable","CredictLimitCard","inputList","orderCustomerList","customerCreditInfoFunction","watch","handler","val","oldVal","deep","quotationId","salesNickName","salesUserName","signAddress","qualityIndicator","showKeyName","keyCopy","loading","mounted","normalizeRate","v","sanitizeRateOnEdit","computeTaxAmounts","pa","rate","ex","tx","ensureProductTaxAndAmount","ele","idx","recalcTotalAmount","total","syncTopLevelMoneyFields","formData","group","syncChangeoverMoneyFields","rows","row","prepareSubmit","indexRequire","updatePlanUseCredit","getData","safeParse","console","queryById","result","logCustomerHistoryLibrary","targetCustomerName","companyDetail","productSpec","packingUnit","specsArr","showSpecsItems","productName","productNumber","packFormat","productCount","productPrice","productAmount","packingStandard","specsItems","unit","remark","inwardProcessingFee","inwardProcessingFeeUnit","activeConstituent","category","tonPrice","price","firstProduct","formatter","addproduct","ids","localStorage","path","validateForm","flag","duration","_query","_maxDate","multipleClick","_key","_productPrice","_list","synchronous","updateProduct","code","facadeStandard","then","renew","getProductList","keyword","classification","isAsc","pageNum","pageSize","_obj","addmaterial","deletematerial","ind","id","getAllTechnicalMaterial","catch","cloud","getOrderListYy","getOrderListFH","addCrmShippingOrder","editCrmShippingOrder","getOrderListFHD","addOrUpdateMaterialSalesOrder","previewContract","queryCrmOrderDetailById","selectUserByRoleCode","removeOrderYy","getCompanyInfoFromTj","selectContractList","stopOrdeYy","applyUpdate","orderGetFlow","statisticsList","addOrder","getOrderList","getPremiumOrderList","getOrderDetail","removeOrder","getOrderForProcessList","getOrderForProcessListYy","getOrderProcessList","getOrderProcessListYy","confirmProcess","addProcessProduce","addProcessWarehouse","addProcessDelivery","stopOrder","getProcessProduceDetail","getProcessWarehouseDetail","getProcessDeliveryDetail","getDgProductList","getProductById","queryCustomerHistoryLibraryPageList","selectOrderOutList","getApprovalProcessByOrderId","$","uncurryThis","IndexedObject","toIndexedObject","arrayMethodIsStrict","un$Join","join","ES3_STRINGS","Object","STRICT_METHOD","target","proto","forced","separator","undefined","$findIndex","findIndex","addToUnscopables","FIND_INDEX","SKIPS_HOLES","Array","callbackfn","arguments","_m","itemName","itemValue","editable","itemCost","openSelector","form","height","selector","zIndex","defaultIndex","pickerConfirm","pickerCancel","rowIndex","costPrice","selectedName","selectedPrice","selectedIndex","created","computed","CLOUD_URL","addCustomerInfo","updateCustomerInfo","getCustomerInfoList","getOrderCustomerList","getCustomerInfoDetail","deleteCustomerInfo","getCustomerNumber","getCustomerInfo","getEnterpriseInfo","getCustomerCredit"],"mappings":"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","file":"js/chunk-2860fb1f.v0.1.2.1793783355314.js?hash=v0.1.2.1793783355314","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"credit-info-simple\"},[_c('div',{staticClass:\"credit-info-row\"},[_c('div',{staticClass:\"credit-info-item\"},[_c('span',{staticClass:\"credit-info-label\"},[_vm._v(\"总授信额度\")]),_c('span',{staticClass:\"credit-info-value total\",attrs:{\"id\":\"totalCredit\"}},[_vm._v(\"¥\"+_vm._s(_vm.thousandthMark(_vm.creditInfo.totalCredit))+\"元\")])]),_c('div',{staticClass:\"credit-info-item\"},[_c('span',{staticClass:\"credit-info-label\"},[_vm._v(\"账期\")]),_c('span',{staticClass:\"credit-info-value\",attrs:{\"id\":\"paymentTerm\"}},[_vm._v(_vm._s(_vm.creditInfo.payPeriod)+\"天\")])])]),_c('div',{staticClass:\"credit-bar\",attrs:{\"role\":\"progressbar\",\"aria-label\":\"授信额度分布\"}},[_c('div',{staticClass:\"credit-bar__segment pre\",style:({ width: _vm.getSegmentWidth('preOccupiedCredit') })}),_c('div',{staticClass:\"credit-bar__segment normal\",style:({ width: _vm.getSegmentWidth('normalOccupiedCredit') })}),_c('div',{staticClass:\"credit-bar__segment overdue\",style:({ width: _vm.getSegmentWidth('overdueOccupiedCredit') })}),_c('div',{staticClass:\"credit-bar__segment available\",style:({ width: _vm.getSegmentWidth('availableCredit') })})]),_c('div',{staticClass:\"credit-bar-meta\"},[_c('div',{staticClass:\"meta-item pre\"},[_c('span',{staticClass:\"dot\"}),_c('span',[_vm._v(\"预占用\")]),_c('span',{staticClass:\"amount\"},[_vm._v(\"¥\"+_vm._s(_vm.thousandthMark(_vm.creditInfo.preOccupiedCredit))+\"元\")])]),_c('div',{staticClass:\"meta-item normal\"},[_c('span',{staticClass:\"dot\"}),_c('span',[_vm._v(\"正常占用\")]),_c('span',{staticClass:\"amount\"},[_vm._v(\"¥\"+_vm._s(_vm.thousandthMark(_vm.creditInfo.normalOccupiedCredit))+\"元\")])]),_c('div',{staticClass:\"meta-item overdue\"},[_c('span',{staticClass:\"dot\"}),_c('span',[_vm._v(\"逾期占用\")]),_c('span',{staticClass:\"amount\"},[_vm._v(\"¥\"+_vm._s(_vm.thousandthMark(_vm.creditInfo.overdueOccupiedCredit))+\"元\")])]),_c('div',{staticClass:\"meta-item available\"},[_c('span',{staticClass:\"dot\"}),_c('span',[_vm._v(\"可用额度\")]),_c('span',{staticClass:\"amount\"},[_vm._v(\"¥\"+_vm._s(_vm.thousandthMark(_vm.creditInfo.availableCredit))+\"元\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n    <div class=\"credit-info-simple\">\r\n        <div class=\"credit-info-row\">\r\n            <div class=\"credit-info-item\">\r\n                <span class=\"credit-info-label\">总授信额度</span>\r\n                <span class=\"credit-info-value total\" id=\"totalCredit\">¥{{ thousandthMark(creditInfo.totalCredit)\r\n                }}元</span>\r\n            </div>\r\n            <div class=\"credit-info-item\">\r\n                <span class=\"credit-info-label\">账期</span>\r\n                <span class=\"credit-info-value\" id=\"paymentTerm\">{{ creditInfo.payPeriod }}天</span>\r\n            </div>\r\n        </div>\r\n        <div class=\"credit-bar\" role=\"progressbar\" aria-label=\"授信额度分布\">\r\n            <div class=\"credit-bar__segment pre\"\r\n                :style=\"{ width: getSegmentWidth('preOccupiedCredit') }\">\r\n            </div>\r\n            <div class=\"credit-bar__segment normal\"\r\n                :style=\"{ width: getSegmentWidth('normalOccupiedCredit') }\">\r\n            </div>\r\n            <div class=\"credit-bar__segment overdue\"\r\n                :style=\"{ width: getSegmentWidth('overdueOccupiedCredit') }\">\r\n            </div>\r\n            <div class=\"credit-bar__segment available\"\r\n                :style=\"{ width: getSegmentWidth('availableCredit') }\">\r\n            </div>\r\n        </div>\r\n        <div class=\"credit-bar-meta\">\r\n             <div class=\"meta-item pre\">\r\n                <span class=\"dot\"></span>\r\n                <span>预占用</span>\r\n                <span class=\"amount\">¥{{ thousandthMark(creditInfo.preOccupiedCredit) }}元</span>\r\n            </div>\r\n            <div class=\"meta-item normal\">\r\n                <span class=\"dot\"></span>\r\n                <span>正常占用</span>\r\n                <span class=\"amount\">¥{{ thousandthMark(creditInfo.normalOccupiedCredit) }}元</span>\r\n            </div>\r\n            <div class=\"meta-item overdue\">\r\n                <span class=\"dot\"></span>\r\n                <span>逾期占用</span>\r\n                <span class=\"amount\">¥{{ thousandthMark(creditInfo.overdueOccupiedCredit) }}元</span>\r\n            </div>\r\n            <div class=\"meta-item available\">\r\n                <span class=\"dot\"></span>\r\n                <span>可用额度</span>\r\n                <span class=\"amount\">¥{{ thousandthMark(creditInfo.availableCredit) }}元</span>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n    name: 'CredictLimitCard',\r\n    props: {\r\n        creditInfo: {\r\n            type: Object,\r\n            default: () => ({})\r\n        }\r\n    },\r\n    methods: {\r\n        getSegmentWidth(field) {\r\n            const total = Number(this.creditInfo.totalCredit) || 0\r\n            const raw = this.creditInfo[field]\r\n            const val = Number(raw) || 0\r\n            if (field === 'normalOccupiedCredit' || field === 'overdueOccupiedCredit') {\r\n                if (val === 0) return '0%'\r\n            }\r\n            const pct = total > 0 ? (100 * val / total) : 0\r\n            return (pct > 100 ? 100 : (pct < 0 ? 0 : pct)) + '%'\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.credit-info-simple {\r\n    position: relative;\r\n    padding: 18px 20px;\r\n    margin: 8px;\r\n    border-radius: 16px;\r\n    background: #fff;\r\n    border: 1px solid #e9e9e9;\r\n    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.08);\r\n    overflow: hidden;\r\n}\r\n\r\n.credit-info-row {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    align-items: center;\r\n    margin-bottom: 12px;\r\n    flex-wrap: wrap;\r\n    gap: 14px;\r\n}\r\n\r\n.credit-info-item {\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: flex-start;\r\n    min-width: 140px;\r\n    flex: 1;\r\n}\r\n\r\n.credit-info-label {\r\n    font-size: 14px;\r\n    color: #606266;\r\n    font-weight: 500;\r\n    margin-bottom: 4px;\r\n    white-space: nowrap;\r\n    letter-spacing: 0.3px;\r\n}\r\n\r\n.credit-info-value {\r\n    font-size: 16px;\r\n    color: #333;\r\n    font-weight: 600;\r\n    white-space: nowrap;\r\n}\r\n\r\n.credit-info-value.total {\r\n    color: #1677ff;\r\n}\r\n\r\n.credit-bar {\r\n    display: flex;\r\n    width: 100%;\r\n    height: 10px;\r\n    border-radius: 10px;\r\n    overflow: hidden;\r\n    background: #dcdcdc;\r\n    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);\r\n    margin: 10px 0 6px;\r\n}\r\n\r\n.credit-bar__segment {\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    color: #fff;\r\n    font-size: 14px;\r\n    font-weight: 600;\r\n    text-overflow: ellipsis;\r\n    white-space: nowrap;\r\n    overflow: hidden;\r\n    min-width: 0;\r\n    transition: width 0.24s ease;\r\n    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.15);\r\n}\r\n\r\n.credit-bar__segment.normal {\r\n    background: #43d147;\r\n}\r\n\r\n.credit-bar__segment.pre {\r\n    background: #faad14;\r\n}\r\n\r\n.credit-bar__segment.overdue {\r\n    background: #ff4d4f;\r\n}\r\n\r\n.credit-bar__segment.available {\r\n    background: #999da3;\r\n}\r\n\r\n.credit-bar__segment:first-child {\r\n    border-top-left-radius: 14px;\r\n    border-bottom-left-radius: 14px;\r\n}\r\n\r\n.credit-bar__segment:last-child {\r\n    border-top-right-radius: 14px;\r\n    border-bottom-right-radius: 14px;\r\n}\r\n\r\n.credit-bar-meta {\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 6px;\r\n    margin-top: 6px;\r\n}\r\n\r\n.credit-bar-meta .meta-item {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 10px;\r\n    font-size: 14px;\r\n    color: #606266;\r\n}\r\n\r\n.credit-bar-meta .meta-item .amount {\r\n    font-weight: 700;\r\n    color: #333;\r\n    font-size: 16px;\r\n    font-variant-numeric: tabular-nums;\r\n    letter-spacing: 0.2px;\r\n}\r\n\r\n.credit-bar-meta .meta-item.normal .amount {\r\n    color: #43d147;\r\n}\r\n\r\n.credit-bar-meta .meta-item.pre .amount {\r\n    color: #faad14;\r\n}\r\n\r\n.credit-bar-meta .meta-item.overdue .amount {\r\n    color: #ff4d4f;\r\n}\r\n\r\n.credit-bar-meta .meta-item.available .amount {\r\n    color: #999da3;\r\n}\r\n\r\n.credit-bar-meta .meta-item .dot {\r\n    width: 8px;\r\n    height: 8px;\r\n    border-radius: 50%;\r\n    display: inline-block;\r\n}\r\n\r\n.credit-bar-meta .meta-item.normal .dot {\r\n    background: #43d147;\r\n}\r\n\r\n.credit-bar-meta .meta-item.pre .dot {\r\n    background: #faad14;\r\n}\r\n\r\n.credit-bar-meta .meta-item.overdue .dot {\r\n    background: #ff4d4f;\r\n}\r\n\r\n.credit-bar-meta .meta-item.available .dot {\r\n    background: #999da3;\r\n}\r\n</style>\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./credictLimitCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./credictLimitCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./credictLimitCard.vue?vue&type=template&id=05107d60&scoped=true&\"\nimport script from \"./credictLimitCard.vue?vue&type=script&lang=js&\"\nexport * from \"./credictLimitCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./credictLimitCard.vue?vue&type=style&index=0&id=05107d60&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"05107d60\",\n  null\n  \n)\n\nexport default component.exports","/**\r\n * 根据预付款方式与发货方式，计算订单的三类金额：\r\n * - 预计使用授信金额 planUseCreditAmount\r\n * - 预付款金额 planPayAmount\r\n * - 非授信非预付款金额 noCreditNoPayAmount\r\n * 参数说明：\r\n * - amount：订单金额\r\n * - planPayStyle：预付款类型（'0'无，'1'..'5'为10%..50%，'6'为100%，'100'为自定义金额）\r\n * - deliveryStyle：发货方式\r\n * - planPayAmountInput：自定义预付金额（仅当 planPayStyle='100' 时使用）\r\n * 返回值：三类金额均以两位小数返回\r\n */\r\nexport function calcCreditAmounts({ amount, planPayStyle, deliveryStyle, planPayAmountInput }) {\r\n  // 基础入参解析与初始值\r\n  const amt = Number(amount) || 0;\r\n  const styleStr = String(planPayStyle || '');\r\n  const delivery = String(deliveryStyle || '');\r\n  let planPayAmount = 0;\r\n  let planUseCreditAmount = 0;\r\n  // 按预付款类型逐类计算\r\n  switch (styleStr) {\r\n    case '0':  \r\n      // 无预付款：预付为0；仅当货到付款时占用授信=订单金额\r\n      planPayAmount = 0;\r\n      switch (delivery) {\r\n        case 'pay':   // 货到付款：占用授信=订单金额\r\n          planUseCreditAmount = amt;\r\n          break;\r\n        case 'full':  // 全款款到发货：不占用授信\r\n        case 'day':   // 剩余部分款到xx天发货：不占用授信\r\n        default:\r\n          planUseCreditAmount = 0;\r\n      }\r\n      break;\r\n    case '1':\r\n    case '2':\r\n    case '3':\r\n    case '4':\r\n    case '5':\r\n    case '6': {\r\n      // 比例预付：'1'..'5' => 10%..50%，'6' => 100%\r\n      const percent = styleStr === '6' ? 100 : Number(styleStr) * 10;\r\n      planPayAmount = amt * (percent / 100);\r\n      switch (delivery) {\r\n        case 'day':  // 货到xx天付款：授信占用=订单金额-预付\r\n          planUseCreditAmount = amt - planPayAmount;\r\n          break;\r\n        case 'full':  // 全款款到发货：不占用授信\r\n        default:\r\n          planUseCreditAmount = 0;\r\n      }\r\n      break;\r\n    }\r\n    case '100': {\r\n      // 自定义金额：将输入限制在 0..amt 范围\r\n      let input = Number(planPayAmountInput) || 0;\r\n      if (input < 0) input = 0;\r\n      if (input > amt) input = amt;\r\n      planPayAmount = 0;\r\n      switch (delivery) {\r\n        case 'day':  // 货到xx天付款：授信占用=订单金额-预付\r\n          planPayAmount = input;\r\n          planUseCreditAmount = amt - planPayAmount;\r\n          break;\r\n        case 'full':  // 全款款到发货：不占用授信\r\n          planPayAmount = amt;\r\n          planUseCreditAmount = 0;\r\n          break;\r\n        default:\r\n          planPayAmount = 0;\r\n          planUseCreditAmount = 0;\r\n      }\r\n      break;\r\n    }\r\n    default:\r\n      // 未知类型：统一视为不预付、不占用授信\r\n      planPayAmount = 0;\r\n      planUseCreditAmount = 0;\r\n  }\r\n  // 剩余金额：非授信非预付款 = 金额 - 授信占用 - 预付（非负保护）\r\n  const noCreditNoPayAmount = Math.max(0, amt - planUseCreditAmount - planPayAmount);\r\n  // 统一保留两位小数并返回\r\n  const to2 = (n) => Number((n || 0).toFixed(2));\r\n  return {\r\n    planUseCreditAmount: to2(planUseCreditAmount),\r\n    planPayAmount: to2(planPayAmount),\r\n    noCreditNoPayAmount: to2(noCreditNoPayAmount),\r\n  };\r\n}\r\n","import request from '@/utils/request';\r\n\r\nconst service = process.env.VUE_APP_CRM_URL;\r\n//字典用值\r\nexport function getAction(params) {\r\n    return request({\r\n        url: service + '/system/dict/data/list',\r\n        method: 'get',\r\n        params\r\n    })\r\n}\r\n\r\n// 根据角色查找人员\r\nexport function selectUserByRoleKeys(data) {\r\n    return request({\r\n        url: `${service}/system/user/query/selectUserByRoleKeys`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n// 获取crm用户角色信息\r\nexport function getCurrentLoginUser() {\r\n    return request({\r\n        // url: `${service}/system/user/query/getCurrentLoginUser`,\r\n        url: `${service}/approve/getCurrentLoginUser`,\r\n        method: 'post',\r\n    })\r\n}\r\n\r\n\r\n/**\r\n * 翻译字段值对应的文本\r\n * @param children\r\n * @returns string\r\n */\r\nexport async function filterDictText(data,strA,strB) {\r\n    //数组，替换值a,替换值b\r\n    if (data && data.length) {\r\n        var resData = data.map(item => ({\r\n            text:strA? item[strA] : item.dictLabel,\r\n            value:strB? item[strB] : item.dictValue,\r\n            show:false\r\n        }))\r\n        return resData\r\n    }\r\n    return []\r\n}","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./list.vue?vue&type=style&index=0&id=423eb131&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./table.vue?vue&type=style&index=0&id=67d6f788&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('van-form',{ref:\"form\",class:_vm.dataList.orderStatus > 0 ? 'disabledCla' : '',attrs:{\"disabled\":!_vm.isDisabled()},on:{\"submit\":_vm.onSubmit}},_vm._l((_vm.inputList),function(item,blockInd){return _c('div',{key:blockInd},[_c('div',{class:item.title ? 'title' : 'blankBlock'},[_vm._v(_vm._s(item.title))]),(item.type == 'changeover' && ( _vm.dataList.orderStatus=='0' || _vm.dataList.orderStatus=='5' || _vm.dataList.orderStatus=='6'))?_c('van-button',{staticClass:\"addvant\",attrs:{\"round\":\"\",\"block\":\"\",\"type\":\"primary\",\"size\":\"small\"},on:{\"click\":_vm.historicalQuotation}},[_vm._v(\"选择报价\")]):_vm._e(),(item.type == 'changeover')?_c('van-swipe',{staticClass:\"my-swipe\",attrs:{\"indicator-color\":\"#26BFB2\"}},_vm._l((_vm.showForm[item.key]),function(list,index){return _c('van-swipe-item',{key:index},[(_vm.showForm[item.key] && _vm.showForm[item.key].length > 1 && (_vm.dataList.orderStatus <= 0 || !_vm.dataList.orderStatus))?_c('van-icon',{staticClass:\"vanIcon\",attrs:{\"name\":\"delete-o\",\"size\":\"24\"},on:{\"click\":function($event){return _vm.delClick(index, item.key)}}}):_vm._e(),_vm._l((item.inputList),function(childItem){return _c('van-cell-group',{key:childItem.key},[(childItem.type == 'money' && childItem.unitKey)?_c('van-field',{attrs:{\"label\":childItem.tit,\"placeholder\":childItem.placeholder ? childItem.placeholder : '请输入' + childItem.tit,\"rules\":childItem.rules || [],\"required\":childItem.rules && childItem.rules.length > 0,\"readonly\":childItem.readonly ? childItem.readonly : false,\"label-class\":\"labelClass\"},on:{\"input\":function($event){return _vm.inputClick(childItem, index, item)}},scopedSlots:_vm._u([{key:\"extra\",fn:function(){return [_c('span',{staticStyle:{\"white-space\":\"nowrap\",\"color\":\"#666\"}},[_vm._v(_vm._s(list[childItem.unitKey] || ''))])]},proxy:true}],null,true),model:{value:(_vm.showMoney[item.key + '-' + index + childItem.key]),callback:function ($$v) {_vm.$set(_vm.showMoney, item.key + '-' + index + childItem.key, $$v)},expression:\"showMoney[item.key + '-' + index + childItem.key]\"}}):(childItem.type == 'money')?_c('van-field',{attrs:{\"label\":childItem.tit,\"placeholder\":childItem.placeholder ? childItem.placeholder : '请输入' + childItem.tit,\"rules\":childItem.rules || [],\"required\":childItem.rules && childItem.rules.length > 0,\"readonly\":childItem.readonly ? childItem.readonly : false,\"label-class\":\"labelClass\"},on:{\"input\":function($event){return _vm.inputClick(childItem, index, item)}},model:{value:(_vm.showMoney[item.key + '-' + index + childItem.key]),callback:function ($$v) {_vm.$set(_vm.showMoney, item.key + '-' + index + childItem.key, $$v)},expression:\"showMoney[item.key + '-' + index + childItem.key]\"}}):(childItem.key == 'taxRate')?_c('van-field',{attrs:{\"label\":childItem.tit,\"placeholder\":childItem.placeholder ? childItem.placeholder : '请输入' + childItem.tit,\"rules\":childItem.rules || [],\"required\":childItem.rules && childItem.rules.length > 0,\"readonly\":childItem.readonly ? childItem.readonly : false,\"label-class\":\"labelClass\",\"type\":childItem.type ? childItem.type : 'text'},on:{\"input\":function($event){return _vm.inputClick(childItem, index, item)}},scopedSlots:_vm._u([{key:\"extra\",fn:function(){return [_c('span',[_vm._v(\"%\")])]},proxy:true}],null,true),model:{value:(_vm.showForm[item.key][index][childItem.key]),callback:function ($$v) {_vm.$set(_vm.showForm[item.key][index], childItem.key, _vm._n($$v))},expression:\"showForm[item.key][index][childItem.key]\"}}):(childItem.table)?_c('div',[(_vm.qualityIndicatorList && _vm.qualityIndicatorList.length)?_c('div',{staticStyle:{\"box-sizing\":\"border-box\",\"width\":\"100%\"}},[_c('comTable',{attrs:{\"form\":_vm.qualityIndicatorList || [],\"editable\":_vm.isDisabled()},on:{\"change\":_vm.tableChange}})],1):_c('van-cell-group',[_c('van-field',{attrs:{\"label-class\":\"labelClass\",\"label\":\"指标要求\",\"type\":'textarea',\"placeholder\":\"请输入指标要求\",\"readonly\":\"\"},model:{value:(_vm.qualityStandard),callback:function ($$v) {_vm.qualityStandard=$$v},expression:\"qualityStandard\"}})],1)],1):(childItem.type == 'tips')?_c('div',{staticClass:\"form-tip\",domProps:{\"innerHTML\":_vm._s(childItem.tit)}}):_c('van-field',{attrs:{\"label\":childItem.tit,\"placeholder\":childItem.placeholder ? childItem.placeholder : '请输入' + childItem.tit,\"rules\":childItem.rules || [],\"required\":childItem.rules && childItem.rules.length > 0,\"readonly\":childItem.readonly ? childItem.readonly : false,\"label-class\":\"labelClass\",\"type\":childItem.type ? childItem.type : 'text'},on:{\"input\":function($event){return _vm.inputClick(childItem, index, item)}},model:{value:(list[childItem.key]),callback:function ($$v) {_vm.$set(list, childItem.key, $$v)},expression:\"list[childItem.key]\"}})],1)})],2)}),1):_vm._l((item.inputList),function(childItem){return _c('van-cell-group',{key:childItem.key},[(childItem.type == 'text')?_c('van-field',{attrs:{\"label\":childItem.tit,\"placeholder\":childItem.placeholder ? childItem.placeholder : '请输入' + childItem.tit,\"rules\":childItem.rules || [],\"required\":childItem.rules && childItem.rules.length > 0,\"readonly\":childItem.readonly ? childItem.readonly : false,\"label-class\":\"labelClass\"},on:{\"input\":function($event){return _vm.inputClick(childItem)}},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{domProps:{\"innerHTML\":_vm._s(childItem.tit)}})]},proxy:true}],null,true),model:{value:(_vm.showForm[childItem.key]),callback:function ($$v) {_vm.$set(_vm.showForm, childItem.key, $$v)},expression:\"showForm[childItem.key]\"}}):(childItem.type == 'money')?_c('van-field',{attrs:{\"label\":childItem.tit,\"placeholder\":childItem.placeholder ? childItem.placeholder : '请输入' + childItem.tit,\"rules\":childItem.rules || [],\"required\":childItem.rules && childItem.rules.length > 0,\"readonly\":childItem.readonly ? childItem.readonly : false,\"label-class\":\"labelClass\"},on:{\"input\":function($event){return _vm.inputClick(childItem)}},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{domProps:{\"innerHTML\":_vm._s(childItem.tit)}})]},proxy:true}],null,true),model:{value:(_vm.showMoney[childItem.key]),callback:function ($$v) {_vm.$set(_vm.showMoney, childItem.key, $$v)},expression:\"showMoney[childItem.key]\"}}):(childItem.type == 'datetimePicker')?_c('van-field',{attrs:{\"is-link\":!childItem.rightIcon,\"readonly\":\"\",\"name\":childItem.key,\"label\":childItem.tit,\"placeholder\":childItem.placeholder ? childItem.placeholder : '请输入' + childItem.tit,\"required\":childItem.rules && childItem.rules.length > 0,\"rules\":childItem.rules || [],\"right-icon\":childItem.rightIcon,\"label-class\":\"labelClass\"},on:{\"click-right-icon\":function($event){$event.stopPropagation();return _vm.iconClick(childItem.rightIconClick)},\"click\":function($event){return _vm.initPicker(childItem)}},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{domProps:{\"innerHTML\":_vm._s(childItem.tit)}})]},proxy:true}],null,true),model:{value:(_vm.showForm[childItem.key]),callback:function ($$v) {_vm.$set(_vm.showForm, childItem.key, $$v)},expression:\"showForm[childItem.key]\"}}):(childItem.type == 'radio')?_c('van-field',{attrs:{\"name\":childItem.key,\"label\":childItem.tit,\"required\":childItem.rules && childItem.rules.length > 0,\"label-class\":\"labelClass\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{domProps:{\"innerHTML\":_vm._s(childItem.tit)}})]},proxy:true},{key:\"input\",fn:function(){return [_c('van-radio-group',{attrs:{\"direction\":\"horizontal\"},model:{value:(_vm.showForm[childItem.key]),callback:function ($$v) {_vm.$set(_vm.showForm, childItem.key, $$v)},expression:\"showForm[childItem.key]\"}},_vm._l((childItem.model.columns),function(columnsItme){return _c('van-radio',{key:columnsItme.value,attrs:{\"name\":columnsItme.value,\"checked-color\":\"#26BFB2\",\"disabled\":childItem.readonly}},[_vm._v(_vm._s(columnsItme.text))])}),1)]},proxy:true}],null,true)}):(childItem.type == 'number' || childItem.type == 'digit')?_c('van-field',{attrs:{\"name\":childItem.key,\"label\":childItem.tit,\"placeholder\":childItem.placeholder || '请输入' + childItem.tit,\"required\":childItem.rules && childItem.rules.length > 0,\"readonly\":childItem.readonly,\"rules\":childItem.rules,\"type\":childItem.type,\"label-class\":\"labelClass\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{domProps:{\"innerHTML\":_vm._s(childItem.tit)}})]},proxy:true},(childItem.rightText)?{key:\"extra\",fn:function(){return [_c('span',[_vm._v(_vm._s(childItem.rightText))])]},proxy:true}:null],null,true),model:{value:(_vm.showForm[childItem.key]),callback:function ($$v) {_vm.$set(_vm.showForm, childItem.key, _vm._n($$v))},expression:\"showForm[childItem.key]\"}}):(childItem.type == 'picker' || childItem.type == 'multiple' || childItem.type == 'click')?_c('van-field',{attrs:{\"value\":_vm.fn(_vm.showForm[childItem.key], childItem),\"label\":childItem.tit,\"placeholder\":childItem.placeholder ? childItem.placeholder : '请选择' + childItem.tit,\"rules\":childItem.rules || [],\"required\":childItem.rules && childItem.rules.length > 0,\"readonly\":true,\"label-class\":\"labelClass\",\"is-link\":\"\"},on:{\"click\":function($event){return _vm.initPicker(childItem)}}}):_vm._e(),(childItem.type == 'material')?_vm._l((_vm.showForm[childItem.key]),function(materialList,materialIndex){return _c('div',{key:materialIndex},_vm._l((childItem.itemList),function(list){return _c('van-cell-group',{key:list.key + materialIndex},[_c('van-field',{attrs:{\"label\":(\"\" + (list.name) + (materialIndex + 1)),\"placeholder\":list.placeholder ? list.placeholder : '请输入' + list.name,\"rules\":list.rules || [],\"required\":list.rules && list.rules.length > 0,\"readonly\":list.readonly ? list.readonly : false,\"label-class\":\"labelClass\"},scopedSlots:_vm._u([{key:\"input\",fn:function(){return [(list.slot)?_c('span',{staticClass:\"yyys\"},[_vm._v(_vm._s(_vm.showForm[childItem.key][materialIndex][list.slot] || '无'))]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.showForm[childItem.key][materialIndex][list.key])+\" \")]},proxy:true}],null,true),model:{value:(_vm.showForm[childItem.key][materialIndex][list.key]),callback:function ($$v) {_vm.$set(_vm.showForm[childItem.key][materialIndex], list.key, $$v)},expression:\"showForm[childItem.key][materialIndex][list.key]\"}})],1)}),1)}):(childItem.type == 'planUseCreditAmount')?[_c('van-field',{attrs:{\"name\":childItem.key,\"label\":childItem.tit,\"placeholder\":childItem.placeholder || '请输入' + childItem.tit,\"required\":childItem.rules && childItem.rules.length > 0,\"readonly\":childItem.readonly,\"rules\":childItem.rules,\"type\":childItem.type,\"label-class\":\"labelClass\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{domProps:{\"innerHTML\":_vm._s(childItem.tit)}})]},proxy:true},(childItem.rightText)?{key:\"extra\",fn:function(){return [_c('span',[_vm._v(_vm._s(childItem.rightText))])]},proxy:true}:null],null,true),model:{value:(_vm.showForm[childItem.key]),callback:function ($$v) {_vm.$set(_vm.showForm, childItem.key, _vm._n($$v))},expression:\"showForm[childItem.key]\"}}),_c('div',{staticClass:\"credit-info-tip\"},[_vm._v(\"说明：订单下单后，实际占用授信额度 = 订单金额 - 预付金额\")])]:_vm._e(),(childItem.type == 'credictDetail')?[_c('credict-limit-card',{attrs:{\"credit-info\":{\n                  payPeriod: _vm.showForm.payPeriod,\n                  totalCredit: _vm.showForm.totalCredit,\n                  preOccupiedCredit: _vm.showForm.preOccupiedCredit,\n                  normalOccupiedCredit: _vm.showForm.normalOccupiedCredit,\n                  overdueOccupiedCredit: _vm.showForm.overdueOccupiedCredit,\n                  availableCredit: _vm.showForm.availableCredit\n                }}})]:_vm._e()],2)})],2)}),0),(_vm.model.type != 'datetimePicker')?_c('van-popup',{attrs:{\"position\":\"bottom\"},on:{\"close\":function($event){return _vm.closePopup(0)}},model:{value:(_vm.showPicker),callback:function ($$v) {_vm.showPicker=$$v},expression:\"showPicker\"}},[(_vm.model.type == 'picker')?_c('van-picker',{attrs:{\"columns\":_vm.model.columns,\"title\":_vm.model.title,\"show-toolbar\":\"\"},on:{\"confirm\":_vm.onConfirm,\"cancel\":_vm.onCancel},scopedSlots:_vm._u([(_vm.model.option.columnsTop)?{key:\"columns-top\",fn:function(){return [_c('van-cell-group',[_c('van-field',{attrs:{\"label\":_vm.model.title,\"placeholder\":'请输入' + _vm.model.title},scopedSlots:_vm._u([{key:\"button\",fn:function(){return [_c('van-button',{attrs:{\"size\":\"small\",\"type\":\"primary\"},on:{\"click\":_vm.query}},[_vm._v(\"查询\")])]},proxy:true}],null,false,1598707330),model:{value:(_vm.model.value),callback:function ($$v) {_vm.$set(_vm.model, \"value\", $$v)},expression:\"model.value\"}})],1)]},proxy:true}:null],null,true)}):_vm._e(),(_vm.model.type == 'multiple')?_c('div',{staticClass:\"labelBox\"},[_c('van-checkbox-group',{model:{value:(_vm.tempCheckedArr),callback:function ($$v) {_vm.tempCheckedArr=$$v},expression:\"tempCheckedArr\"}},[_c('van-cell-group',{attrs:{\"inset\":\"\"}},_vm._l((_vm.model.columns),function(itemList){return _c('van-cell',{key:itemList.value,attrs:{\"clickable\":\"\"},scopedSlots:_vm._u([{key:\"right-icon\",fn:function(){return [_c('van-checkbox',{attrs:{\"name\":itemList.value}})]},proxy:true}],null,true)},[_vm._v(\" \"+_vm._s(itemList.text)+\" \")])}),1)],1),_c('van-button',{staticClass:\"vantBtn\",attrs:{\"round\":\"\",\"block\":\"\",\"type\":\"primary\"},on:{\"click\":_vm.onAffirm}},[_vm._v(\"确认\")])],1):_vm._e(),(_vm.model.type == 'material')?_c('div',{staticClass:\"materialBox\"},[_c('div',{staticClass:\"materialBox-title\"},[_c('span',{on:{\"click\":function($event){return _vm.closePopup(0)}}},[_vm._v(\"取消\")]),_c('p',[_vm._v(_vm._s(_vm.model.title))]),_c('font',{on:{\"click\":function($event){return _vm.closePopup(1)}}},[_vm._v(\"确认\")])],1),_c('van-cell-group',[_c('van-field',{attrs:{\"label\":\"名称/含量\",\"placeholder\":'请输入' + _vm.model.title},scopedSlots:_vm._u([{key:\"button\",fn:function(){return [_c('van-button',{attrs:{\"size\":\"small\",\"type\":\"primary\"},on:{\"click\":_vm.getmaterialcolumns}},[_vm._v(\"查询\")])]},proxy:true}],null,false,308513104),model:{value:(_vm.model.value),callback:function ($$v) {_vm.$set(_vm.model, \"value\", $$v)},expression:\"model.value\"}})],1),_c('div',{staticClass:\"content\"},[(_vm.loading)?_c('van-loading',{attrs:{\"type\":\"spinner\",\"color\":\"#1989fa\",\"size\":\"36px\"}}):[(_vm.materialcolumns.length)?_c('van-checkbox-group',{model:{value:(_vm.checked),callback:function ($$v) {_vm.checked=$$v},expression:\"checked\"}},[_c('van-cell-group',{attrs:{\"inset\":\"\"}},_vm._l((_vm.materialcolumns),function(item,index){return _c('van-cell',{key:item,attrs:{\"clickable\":\"\",\"title\":item},on:{\"click\":function($event){return _vm.toggle(index, item)}},scopedSlots:_vm._u([{key:\"right-icon\",fn:function(){return [_c('van-checkbox',{ref:function (el) { return _vm.checkboxRefs[index] = el; },refInFor:true,attrs:{\"name\":item},on:{\"click\":function($event){$event.stopPropagation();}}})]},proxy:true}],null,true)})}),1)],1):_c('van-empty',{attrs:{\"description\":\"暂无数据\"}})]],2)],1):_vm._e()],1):_vm._e(),(_vm.model.type == 'datetimePicker')?_c('van-calendar',{attrs:{\"min-date\":_vm.minDate,\"max-date\":_vm.maxDate},on:{\"confirm\":_vm.onDatetimeConfirm},model:{value:(_vm.showPicker),callback:function ($$v) {_vm.showPicker=$$v},expression:\"showPicker\"}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div>\r\n    <van-form ref=\"form\" @submit=\"onSubmit\" :disabled=\"!isDisabled()\"\r\n      :class=\"dataList.orderStatus > 0 ? 'disabledCla' : ''\">\r\n      <div v-for=\"(item, blockInd) in inputList\" :key=\"blockInd\">\r\n        <div :class=\"item.title ? 'title' : 'blankBlock'\">{{ item.title }}</div>\r\n        <!-- <van-button round block type=\"primary\" @click=\"addproduct\" class=\"addvant\" size=\"small\"\r\n          v-if=\"item.type == 'changeover'\" :disabled=\"!isDisabled()\">选择产品</van-button> -->\r\n        <!-- 订单状态为  初稿、已驳回、修改中的展示此按钮 -->\r\n        <van-button round block type=\"primary\" @click=\"historicalQuotation\" class=\"addvant\" size=\"small\"\r\n          v-if=\"item.type == 'changeover' && ( dataList.orderStatus=='0' || dataList.orderStatus=='5' || dataList.orderStatus=='6')\">选择报价</van-button>\r\n        <van-swipe class=\"my-swipe\" indicator-color=\"#26BFB2\" v-if=\"item.type == 'changeover'\">\r\n          <van-swipe-item v-for=\"(list, index) in showForm[item.key]\" :key=\"index\">\r\n            <van-icon name=\"delete-o\"\r\n              v-if=\"showForm[item.key] && showForm[item.key].length > 1 && (dataList.orderStatus <= 0 || !dataList.orderStatus)\"\r\n              class=\"vanIcon\" size=\"24\" @click=\"delClick(index, item.key)\"></van-icon>\r\n            <van-cell-group v-for=\"childItem in item.inputList\" :key=\"childItem.key\">\r\n              <!-- 输入框 -->\r\n              <!-- 带动态单位后缀的金额字段：unitKey 指向行数据里存放单位的字段（如进仓费取产品 max_unit） -->\r\n              <van-field v-if=\"childItem.type == 'money' && childItem.unitKey\"\r\n                v-model=\"showMoney[item.key + '-' + index + childItem.key]\" :label=\"childItem.tit\"\r\n                :placeholder=\"childItem.placeholder ? childItem.placeholder : '请输入' + childItem.tit\"\r\n                :rules=\"childItem.rules || []\" :required=\"childItem.rules && childItem.rules.length > 0\"\r\n                :readonly=\"childItem.readonly ? childItem.readonly : false\" label-class=\"labelClass\"\r\n                @input=\"inputClick(childItem, index, item)\">\r\n                <template #extra>\r\n                  <span style=\"white-space: nowrap; color: #666;\">{{ list[childItem.unitKey] || '' }}</span>\r\n                </template>\r\n              </van-field>\r\n              <van-field v-model=\"showMoney[item.key + '-' + index + childItem.key]\" :label=\"childItem.tit\"\r\n                :placeholder=\"childItem.placeholder ? childItem.placeholder : '请输入' + childItem.tit\"\r\n                :rules=\"childItem.rules || []\" :required=\"childItem.rules && childItem.rules.length > 0\"\r\n                :readonly=\"childItem.readonly ? childItem.readonly : false\" label-class=\"labelClass\"\r\n                v-else-if=\"childItem.type == 'money'\" @input=\"inputClick(childItem, index, item)\" />\r\n              <!-- 税率输入：在尾部追加 % 符号 -->\r\n              <van-field v-else-if=\"childItem.key == 'taxRate'\"\r\n                v-model.number=\"showForm[item.key][index][childItem.key]\"\r\n                :label=\"childItem.tit\"\r\n                :placeholder=\"childItem.placeholder ? childItem.placeholder : '请输入' + childItem.tit\"\r\n                :rules=\"childItem.rules || []\"\r\n                :required=\"childItem.rules && childItem.rules.length > 0\"\r\n                :readonly=\"childItem.readonly ? childItem.readonly : false\"\r\n                label-class=\"labelClass\"\r\n                :type=\"childItem.type ? childItem.type : 'text'\"\r\n                @input=\"inputClick(childItem, index, item)\">\r\n                <template #extra>\r\n                  <span>%</span>\r\n                </template>\r\n              </van-field>\r\n              <!-- 质量标准 -->\r\n              <div v-else-if=\"childItem.table\">\r\n                <div v-if=\"qualityIndicatorList && qualityIndicatorList.length\"\r\n                  style=\"box-sizing: border-box;width: 100%;\">\r\n                  <comTable :form=\"qualityIndicatorList || []\" :editable=\"isDisabled()\" @change=\"tableChange\" />\r\n                </div>\r\n                <!-- 兼容老数据的展示 -->\r\n                <van-cell-group v-else>\r\n                  <van-field label-class=\"labelClass\" v-model=\"qualityStandard\" label=\"指标要求\" :type=\"'textarea'\"\r\n                    placeholder=\"请输入指标要求\" readonly />\r\n                </van-cell-group>\r\n              </div>\r\n              <!-- 文本提示行 -->\r\n              <div v-else-if=\"childItem.type == 'tips'\" class=\"form-tip\" v-html=\"childItem.tit\"></div>\r\n              <van-field v-model=\"list[childItem.key]\" :label=\"childItem.tit\"\r\n                :placeholder=\"childItem.placeholder ? childItem.placeholder : '请输入' + childItem.tit\"\r\n                :rules=\"childItem.rules || []\" :required=\"childItem.rules && childItem.rules.length > 0\"\r\n                :readonly=\"childItem.readonly ? childItem.readonly : false\" label-class=\"labelClass\" v-else\r\n                :type=\"childItem.type ? childItem.type : 'text'\" @input=\"inputClick(childItem, index, item)\" />\r\n            </van-cell-group>\r\n            <!-- 按钮 -->\r\n            <!-- <div>\r\n\r\n              <van-button round type=\"success\">同步</van-button>\r\n              <van-button round type=\"success\">圆形按钮</van-button>\r\n            </div> -->\r\n            <!-- <van-row type=\"flex\" justify=\"center\" class=\"swipeBtn\">\r\n              <van-col span=\"4\" @click=\"synchronous(showForm[item.key], index, item.inputList)\">同步</van-col>\r\n              <van-col span=\"4\"></van-col>\r\n              <van-col span=\"4\" @click=\"renew(showForm[item.key], index)\">更新</van-col>\r\n            </van-row> -->\r\n          </van-swipe-item>\r\n        </van-swipe>\r\n        <template v-else>\r\n          <van-cell-group v-for=\"childItem in item.inputList\" :key=\"childItem.key\">\r\n            <!-- 输入框 -->\r\n            <van-field v-model=\"showForm[childItem.key]\" :label=\"childItem.tit\"\r\n              :placeholder=\"childItem.placeholder ? childItem.placeholder : '请输入' + childItem.tit\"\r\n              :rules=\"childItem.rules || []\" :required=\"childItem.rules && childItem.rules.length > 0\"\r\n              :readonly=\"childItem.readonly ? childItem.readonly : false\" label-class=\"labelClass\"\r\n              v-if=\"childItem.type == 'text'\" @input=\"inputClick(childItem)\">\r\n              <template #label>\r\n                <div v-html=\"childItem.tit\"></div>\r\n              </template>\r\n\r\n            </van-field>\r\n            <van-field v-model=\"showMoney[childItem.key]\" :label=\"childItem.tit\"\r\n              :placeholder=\"childItem.placeholder ? childItem.placeholder : '请输入' + childItem.tit\"\r\n              :rules=\"childItem.rules || []\" :required=\"childItem.rules && childItem.rules.length > 0\"\r\n              :readonly=\"childItem.readonly ? childItem.readonly : false\" label-class=\"labelClass\"\r\n              v-else-if=\"childItem.type == 'money'\" @input=\"inputClick(childItem)\">\r\n              <template #label>\r\n                <div v-html=\"childItem.tit\"></div>\r\n              </template>\r\n            </van-field>\r\n\r\n            <!-- 日期 -->\r\n            <van-field v-else-if=\"childItem.type == 'datetimePicker'\" :is-link=\"!childItem.rightIcon\" readonly\r\n              v-model=\"showForm[childItem.key]\" :name=\"childItem.key\" :label=\"childItem.tit\"\r\n              :placeholder=\"childItem.placeholder ? childItem.placeholder : '请输入' + childItem.tit\"\r\n              :required=\"childItem.rules && childItem.rules.length > 0\" :rules=\"childItem.rules || []\"\r\n              :right-icon=\"childItem.rightIcon\" @click-right-icon.stop=\"iconClick(childItem.rightIconClick)\"\r\n              @click=\"initPicker(childItem)\" label-class=\"labelClass\">\r\n              <template #label>\r\n                <div v-html=\"childItem.tit\"></div>\r\n              </template>\r\n\r\n            </van-field>\r\n            <!-- 单选框 -->\r\n            <van-field v-else-if=\"childItem.type == 'radio'\" :name=\"childItem.key\" :label=\"childItem.tit\"\r\n              :required=\"childItem.rules && childItem.rules.length > 0\" label-class=\"labelClass\">\r\n              <template #label>\r\n                <div v-html=\"childItem.tit\"></div>\r\n              </template>\r\n              <template #input>\r\n                <van-radio-group v-model=\"showForm[childItem.key]\" direction=\"horizontal\">\r\n                  <van-radio v-for=\"columnsItme in childItem.model.columns \" :key=\"columnsItme.value\"\r\n                    :name=\"columnsItme.value\" checked-color=\"#26BFB2\" :disabled=\"childItem.readonly\">{{\r\n                    columnsItme.text }}</van-radio>\r\n                </van-radio-group>\r\n              </template>\r\n            </van-field>\r\n\r\n            <!-- 数组文本框 -->\r\n            <van-field v-else-if=\"childItem.type == 'number' || childItem.type == 'digit'\"\r\n              v-model.number=\"showForm[childItem.key]\" :name=\"childItem.key\" :label=\"childItem.tit\"\r\n              :placeholder=\"childItem.placeholder || '请输入' + childItem.tit\"\r\n              :required=\"childItem.rules && childItem.rules.length > 0\" :readonly=\"childItem.readonly\"\r\n              :rules=\"childItem.rules\" :type=\"childItem.type\" label-class=\"labelClass\">\r\n              <template #label>\r\n                <div v-html=\"childItem.tit\"></div>\r\n              </template>\r\n              <template #extra v-if=\"childItem.rightText\">\r\n                <span>{{ childItem.rightText }}</span>\r\n              </template>\r\n            </van-field>\r\n\r\n            <!-- 选择下拉 -->\r\n            <!-- :readonly=\"childItem.readonly? childItem.readonly : false\" -->\r\n\r\n            <van-field :value=\"fn(showForm[childItem.key], childItem)\" :label=\"childItem.tit\"\r\n              :placeholder=\"childItem.placeholder ? childItem.placeholder : '请选择' + childItem.tit\"\r\n              :rules=\"childItem.rules || []\" :required=\"childItem.rules && childItem.rules.length > 0\" :readonly=\"true\"\r\n              label-class=\"labelClass\" is-link @click=\"initPicker(childItem)\"\r\n              v-else-if=\"childItem.type == 'picker' || childItem.type == 'multiple' || childItem.type == 'click'\" />\r\n\r\n            <!-- 选择原药库 -->\r\n            <template v-if=\"childItem.type == 'material'\">\r\n              <!-- <van-button round block type=\"primary\" @click=\"addmaterial(childItem)\" class=\"addvant\" size=\"small\"\r\n                :disabled=\"!isDisabled()\">选择原药</van-button> -->\r\n              <div v-for=\"materialList, materialIndex in showForm[childItem.key]\" :key=\"materialIndex\">\r\n                <van-cell-group v-for=\"list in childItem.itemList\" :key=\"list.key + materialIndex\">\r\n                  <van-field v-model=\"showForm[childItem.key][materialIndex][list.key]\"\r\n                    :label=\"`${list.name}${materialIndex + 1}`\"\r\n                    :placeholder=\"list.placeholder ? list.placeholder : '请输入' + list.name\" :rules=\"list.rules || []\"\r\n                    :required=\"list.rules && list.rules.length > 0\" :readonly=\"list.readonly ? list.readonly : false\"\r\n                    label-class=\"labelClass\">\r\n                    <template #input>\r\n                      <span v-if=\"list.slot\" class=\"yyys\">{{ showForm[childItem.key][materialIndex][list.slot] || '无'\r\n                        }}</span> {{ showForm[childItem.key][materialIndex][list.key] }}\r\n                    </template>\r\n                  </van-field>\r\n                </van-cell-group>\r\n                <!-- <template #right>\r\n                  <van-button square text=\"删除\" type=\"danger\" class=\"delete-button\"\r\n                    @click=\"deletematerial(childItem.key, materialIndex,materialList)\" />\r\n                </template> -->\r\n              </div>\r\n            </template>\r\n            <!-- 预计使用授信 -->\r\n            <template v-else-if=\"childItem.type == 'planUseCreditAmount'\">\r\n              <van-field v-model.number=\"showForm[childItem.key]\" :name=\"childItem.key\" :label=\"childItem.tit\"\r\n                :placeholder=\"childItem.placeholder || '请输入' + childItem.tit\"\r\n                :required=\"childItem.rules && childItem.rules.length > 0\" :readonly=\"childItem.readonly\"\r\n                :rules=\"childItem.rules\" :type=\"childItem.type\" label-class=\"labelClass\">\r\n                <template #label>\r\n                  <div v-html=\"childItem.tit\"></div>\r\n                </template>\r\n                <template #extra v-if=\"childItem.rightText\">\r\n                  <span>{{ childItem.rightText }}</span>\r\n                </template>\r\n              </van-field>\r\n              <div class=\"credit-info-tip\">说明：订单下单后，实际占用授信额度 = 订单金额 - 预付金额</div>\r\n            </template>\r\n            <!-- 公司的授信详情 -->\r\n            <template v-if=\"childItem.type == 'credictDetail'\">\r\n              <credict-limit-card\r\n                :credit-info=\"{\r\n                  payPeriod: showForm.payPeriod,\r\n                  totalCredit: showForm.totalCredit,\r\n                  preOccupiedCredit: showForm.preOccupiedCredit,\r\n                  normalOccupiedCredit: showForm.normalOccupiedCredit,\r\n                  overdueOccupiedCredit: showForm.overdueOccupiedCredit,\r\n                  availableCredit: showForm.availableCredit\r\n                }\"\r\n              />\r\n            </template>\r\n          </van-cell-group>\r\n        </template>\r\n      </div>\r\n    </van-form>\r\n    <!-- 选择器 -->\r\n    <van-popup v-model=\"showPicker\" position=\"bottom\" @close=\"closePopup(0)\" v-if=\"model.type != 'datetimePicker'\">\r\n      <!-- 单选选择器 -->\r\n      <van-picker v-if=\"model.type == 'picker'\" :columns=\"model.columns\" :title=\"model.title\" show-toolbar\r\n        @confirm=\"onConfirm\" @cancel=\"onCancel\">\r\n\r\n        <template #columns-top v-if=\"model.option.columnsTop\">\r\n          <van-cell-group>\r\n            <van-field v-model=\"model.value\" :label=\"model.title\" :placeholder=\"'请输入' + model.title\">\r\n              <template #button>\r\n                <van-button size=\"small\" type=\"primary\" @click=\"query\">查询</van-button>\r\n              </template>\r\n            </van-field>\r\n          </van-cell-group>\r\n        </template>\r\n      </van-picker>\r\n      <!-- 日期  -->\r\n      <!-- <van-datetime-picker  v-else-if=\"model.type=='picker'\" v-model=\"form[model.key]\" type=\"year-month\" title=\"选择年月日\" /> -->\r\n      <!-- <van-datetime-picker v-if=\"model.type == 'datetimePicker'\" v-model=\"showForm[model.key]\" type=\"date\" title=\"选择年月日\"\r\n        @confirm=\"onDatetimeConfirm\" @cancel=\"onCancel\" :min-date=\"minDate\" /> -->\r\n      <!-- 多选项 -->\r\n  <div class=\"labelBox\" v-if=\"model.type == 'multiple'\">\r\n  <van-checkbox-group v-model=\"tempCheckedArr\">\r\n    <van-cell-group inset>\r\n      <van-cell v-for=\"itemList in model.columns\" :key=\"itemList.value\" clickable>\r\n        {{ itemList.text }}\r\n        <template #right-icon>\r\n          <van-checkbox :name=\"itemList.value\" />\r\n        </template>\r\n      </van-cell>\r\n    </van-cell-group>\r\n  </van-checkbox-group>\r\n  <van-button round block type=\"primary\" @click=\"onAffirm\" class=\"vantBtn\">确认</van-button>\r\n</div>\r\n      <!-- 原药库选择 -->\r\n      <div class=\"materialBox\" v-if=\"model.type == 'material'\">\r\n        <div class=\"materialBox-title\">\r\n          <span @click=\"closePopup(0)\">取消</span>\r\n          <p>{{ model.title }}</p>\r\n          <font @click=\"closePopup(1)\">确认</font>\r\n        </div>\r\n        <van-cell-group>\r\n          <van-field v-model=\"model.value\" label=\"名称/含量\" :placeholder=\"'请输入' + model.title\">\r\n            <template #button>\r\n              <van-button size=\"small\" type=\"primary\" @click=\"getmaterialcolumns\">查询</van-button>\r\n            </template>\r\n          </van-field>\r\n        </van-cell-group>\r\n        <div class=\"content\">\r\n          <van-loading type=\"spinner\" color=\"#1989fa\" size=\"36px\" v-if=\"loading\" />\r\n          <template v-else>\r\n            <van-checkbox-group v-model=\"checked\" v-if=\"materialcolumns.length\">\r\n              <van-cell-group inset>\r\n                <van-cell v-for=\"(item, index) in materialcolumns\" clickable :key=\"item\" :title=\"item\"\r\n                  @click=\"toggle(index, item)\">\r\n                  <template #right-icon>\r\n                    <van-checkbox :name=\"item\" :ref=\"el => checkboxRefs[index] = el\" @click.stop />\r\n                  </template>\r\n                </van-cell>\r\n              </van-cell-group>\r\n            </van-checkbox-group>\r\n            <van-empty v-else description=\"暂无数据\" />\r\n          </template>\r\n        </div>\r\n      </div>\r\n    </van-popup>\r\n\r\n    <van-calendar v-model=\"showPicker\" @confirm=\"onDatetimeConfirm\" v-if=\"model.type == 'datetimePicker'\"\r\n      :min-date=\"minDate\" :max-date=\"maxDate\" />\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport { deepClone, formatDate } from \"@/utils/index\";\r\nimport { getProductList, updateProduct, getAllTechnicalMaterial } from \"@/api/crm/order\"\r\nimport { queryById, logCustomerHistoryLibrary } from \"@/api/crm/customer\";\r\nimport { getOrderCustomerList } from \"@/api/crm/customer\";\r\nimport comTable from \"./table.vue\";\r\nimport router from \"@/router/index\";\r\nimport { calcCreditAmounts } from \"@/utils/crm\";\r\nimport CredictLimitCard from \"@/views/customerCredit/creditApplication/components/credictLimitCard.vue\";\r\nexport default {\r\n  components: {\r\n    comTable,\r\n    CredictLimitCard\r\n  },\r\n  props: {\r\n    /**\r\n   * 配置form表单\r\n   * tit：标题名称 必填\r\n   * key 对应的存储key 必填\r\n   * type 类型 必填\r\n   * type 类型 必填\r\n   *    [text:输入框，picker：单选下拉选择器，radio：单选框]\r\n   * rules 校验\r\n   * rules 校验\r\n   * placeholder 提示语 默认为： 请输入/请选择 + tit（标题）\r\n   * model 对象 存在于类型为 picker radio 必传\r\n   *    - showKeyName 对应的弹窗控制显示隐藏的 名称\r\n   *    - columns 选择器中的配置 举例： { text: '外贸公司', value: '1' } 格式固定\r\n   *    -\r\n   *\r\n   *    -\r\n   *\r\n    */\r\n    inputList: {\r\n      type: Array,\r\n      default: () => {\r\n        return [];\r\n      },\r\n    },\r\n    orderCustomerList: {\r\n      type: Array,\r\n      default: () => {\r\n        return [];\r\n      },\r\n    },\r\n    //详情\r\n    dataList: {\r\n      type: Object\r\n    },\r\n    customerCreditInfoFunction: {\r\n      type: Function,\r\n      default: () => {\r\n        return () => {}\r\n      }\r\n    }\r\n  },\r\n  watch: {\r\n    dataList: {\r\n      handler(val, oldVal) {\r\n        if (val && val.orderProductList) {\r\n          const list = val.orderProductList;\r\n          if (list.length) {\r\n            list.forEach((ele, idx) => {\r\n              if (ele.qualityIndicator) {\r\n                this.qualityIndicatorList = JSON.parse(ele.qualityIndicator);\r\n              } else if (ele.qualityStandard) {  // 旧的数据\r\n                this.qualityStandard = ele.qualityStandard;\r\n              }\r\n              // 初始数据兜底默认税率：仅在 undefined 或 null 时赋 9.0，允许用户后续清空重填\r\n              if (ele.taxRate === undefined || ele.taxRate === null) {\r\n                this.$set(ele, 'taxRate', 9.0);\r\n              }\r\n              this.ensureProductTaxAndAmount(ele, idx);\r\n            })\r\n          };\r\n\r\n        }\r\n\r\n        this.showForm = val\r\n        this.syncTopLevelMoneyFields(this.showForm);\r\n        this.syncChangeoverMoneyFields(this.showForm);\r\n        if (val && val.orderProductList && val.orderProductList.length) this.recalcTotalAmount();\r\n        this.updatePlanUseCredit()\r\n      },\r\n      deep: true\r\n    },\r\n    'showForm.planPayStyle'(val, oldVal) {\r\n      // 预付类型变更：根据新类型（不预付、比例、全额或自定义）重新计算三项金额\r\n      this.updatePlanUseCredit()\r\n    },\r\n    'showForm.planPayAmount'(val, oldVal) {\r\n      // 自定义预付金额变更：仅在 planPayStyle='100' 时生效，需重新计算\r\n      if (String(this.showForm && this.showForm.planPayStyle) !== '100') return;\r\n      this.updatePlanUseCredit();\r\n      this.$emit(\"isNeedFeedback:change\", { key: 'planPayAmount', data: this.showForm });\r\n    },\r\n    'showForm.amount'(val, oldVal) {\r\n      // 订单金额变更：重新计算预付、授信占用与剩余金额\r\n      this.updatePlanUseCredit()\r\n    },\r\n    'showForm.deliveryStyle'(val, oldVal) {\r\n      // 发货/付款方式变更（全款、货到天数、货到付款）：重新计算授信占用与相关金额\r\n      if (String(val) === String(oldVal)) return;\r\n      this.updatePlanUseCredit()\r\n    }\r\n  },\r\n  data() {\r\n    return {\r\n       tempCheckedArr: [], // 多选弹窗复选框绑定数组\r\n      qualityIndicatorList: [], // 新的产品质量指标 -- 数组\r\n      qualityStandard: '',// 旧的产品质量指标 -- 拼接\r\n      quotationId: '',\r\n      showForm: {\r\n        salesNickName: this.$store.getters.userInfo.nickName,\r\n        salesUserName: this.$store.getters.userInfo.userId,\r\n        signAddress: \"河南\",\r\n        qualityIndicator: [],\r\n\r\n        // salesUserName: this.$store.getters.userInfo.nickName,\r\n        // salesNickName: this.$store.getters.userInfo.userId,\r\n        planPayAmount: ''\r\n      },\r\n      model: {\r\n        showKeyName: \"\",\r\n        columns: [],\r\n        title: \"\",\r\n        keyCopy: \"\",\r\n        value: \"\",//输入内容查询\r\n        option: {},\r\n      },\r\n      showPicker: false,//下拉选择器\r\n      minDate: new Date(1950, 0, 1),\r\n      showMoney: {},\r\n      maxDate: null,\r\n      checkboxRefs: [],\r\n      checked: [],\r\n      materialcolumns: [],//原药库数据\r\n      loading: false\r\n    }\r\n  },\r\n  mounted() {\r\n    if (this.$route.query && this.$route.query.quotationId) {\r\n      this.quotationId = this.$route.query.quotationId;\r\n    }\r\n    if (this.$route.query && this.$route.query.premiumAmount !== undefined) {\r\n      this.$set(this.showForm, 'premiumAmount', this.$route.query.premiumAmount);\r\n      this.syncTopLevelMoneyFields(this.showForm);\r\n    }\r\n    // console.log(this.orderCustomerList,'=========');\r\n    this.getData()\r\n    this.getmaterialcolumns();\r\n  },\r\n  methods: {\r\n    // 统一规范税率为1位小数（提交场景）：空值默认9.0（代表9%）\r\n    normalizeRate(v) {\r\n      if (v === '' || v === undefined || v === null || isNaN(Number(v))) return 9.0;\r\n      return Math.round(Number(v) * 10) / 10;\r\n    },\r\n    // 编辑场景的税率规范：允许空值，非空时保留1位小数\r\n    sanitizeRateOnEdit(v) {\r\n      if (v === '' || v === undefined || v === null) return '';\r\n      if (isNaN(Number(v))) return '';\r\n      return Math.round(Number(v) * 10) / 10;\r\n    },\r\n    // 根据含税总价与税率计算不含税总价与税额\r\n    computeTaxAmounts(pa, rate) {\r\n      const rateNum = Number(rate || 0);\r\n      const ex = Number((Number(pa || 0) / (1 + rateNum / 100)).toFixed(2));\r\n      const tx = Number((Number(pa || 0) - ex).toFixed(2));\r\n      return { ex, tx };\r\n    },\r\n    // 确保产品金额与税务字段齐备：回填 productAmount、taxRate（有则保留、无则保持为空）、excludeTaxAmount、taxAmount，并维护千分位展示\r\n    ensureProductTaxAndAmount(ele, idx) {\r\n      const pa = Number(\r\n        ele.productAmount !== undefined && ele.productAmount !== null && ele.productAmount !== ''\r\n          ? ele.productAmount\r\n          : (ele.actualTotalPrice !== undefined ? ele.actualTotalPrice : ((ele.productPrice || 0) * (ele.productCount || 0)))\r\n      );\r\n      this.$set(ele, 'productAmount', Number(pa.toFixed(2)));\r\n      const hasRate = !(ele.taxRate === '' || ele.taxRate === undefined || ele.taxRate === null || isNaN(Number(ele.taxRate)));\r\n      let rate = hasRate ? Math.round(Number(ele.taxRate) * 10) / 10 : '';\r\n      if (hasRate) {\r\n        this.$set(ele, 'taxRate', rate);\r\n      }\r\n      const { ex, tx } = this.computeTaxAmounts(pa, hasRate ? rate : 0);\r\n      this.$set(ele, 'excludeTaxAmount', ex);\r\n      this.$set(ele, 'taxAmount', tx);\r\n      this.$set(this.showMoney, 'orderProductList-' + idx + 'productAmount', this.thousandthMark(pa));\r\n      this.$set(this.showMoney, 'orderProductList-' + idx + 'excludeTaxAmount', this.thousandthMark(ex));\r\n      this.$set(this.showMoney, 'orderProductList-' + idx + 'taxAmount', this.thousandthMark(tx));\r\n    },\r\n    // 汇总订单含税总额，并写入千分位展示\r\n    recalcTotalAmount() {\r\n      let total = 0;\r\n      const list = (this.showForm && this.showForm.orderProductList) || [];\r\n      list.forEach(it => { total += Number(it.productAmount || 0); });\r\n      this.showForm.amount = total;\r\n      this.$set(this.showMoney, 'amount', this.thousandthMark(total));\r\n    },\r\n    /**\r\n     * 同步顶层金额字段的千分位展示\r\n     * @param {Object} formData 当前表单数据对象\r\n     * @returns {void} 无返回值，仅更新金额字段的展示态\r\n     */\r\n    syncTopLevelMoneyFields(formData) {\r\n      if (!formData || !this.inputList || !this.inputList.length) return;\r\n      this.inputList.forEach(group => {\r\n        if (!group || !group.inputList || !group.inputList.length) return;\r\n        group.inputList.forEach(field => {\r\n          if (!field || field.type !== 'money' || !field.key) return;\r\n          const value = formData[field.key];\r\n          const nextValue = value === '' || value === undefined || value === null\r\n            ? ''\r\n            : this.thousandthMark(value);\r\n          this.$set(this.showMoney, field.key, nextValue);\r\n        });\r\n      });\r\n    },\r\n    /**\r\n     * 同步子表金额字段的千分位展示\r\n     * @param {Object} formData 当前表单数据对象\r\n     * @returns {void} 无返回值，仅更新子表金额字段的展示态\r\n     */\r\n    syncChangeoverMoneyFields(formData) {\r\n      if (!formData || !this.inputList || !this.inputList.length) return;\r\n      this.inputList.forEach(group => {\r\n        if (!group || group.type !== 'changeover' || !group.key || !group.inputList || !group.inputList.length) return;\r\n        const rows = formData[group.key] || [];\r\n        rows.forEach((row, rowIndex) => {\r\n          group.inputList.forEach(field => {\r\n            if (!field || field.type !== 'money' || !field.key) return;\r\n            const value = row && row[field.key] !== undefined && row[field.key] !== null && row[field.key] !== ''\r\n              ? row[field.key]\r\n              : (field.key === 'premiumAmount' ? formData.premiumAmount : '');\r\n            const nextValue = value === '' || value === undefined || value === null\r\n              ? ''\r\n              : this.thousandthMark(value);\r\n            this.$set(this.showMoney, `${group.key}-${rowIndex}${field.key}`, nextValue);\r\n          });\r\n        });\r\n      });\r\n    },\r\n    // 提交前归一化产品税务字段\r\n    prepareSubmit() {\r\n      const list = (this.showForm && this.showForm.orderProductList) || [];\r\n      list.forEach((ele, idx) => {\r\n        this.ensureProductTaxAndAmount(ele, idx);\r\n        ele.taxRate = this.normalizeRate(ele.taxRate);\r\n        ele.productAmount = Number(Number(ele.productAmount || 0).toFixed(2));\r\n        const calc = this.computeTaxAmounts(ele.productAmount, ele.taxRate);\r\n        ele.excludeTaxAmount = Number(calc.ex.toFixed(2));\r\n        ele.taxAmount = Number(calc.tx.toFixed(2));\r\n      });\r\n      this.recalcTotalAmount();\r\n    },\r\n    // comTable 子组件回传变更：qualityIndicator 为 JSON 串，indexRequire 为拼接的索引文本（兼容旧逻辑）\r\n    // 用途：\r\n    // 1) 更新当前页面的 showForm.qualityIndicator，保持表单数据与表格展示一致\r\n    // 2) 解析并回填 qualityIndicatorList，用于 comTable 展示\r\n    // 3) 计算质量标准文本并上抛到父级（addOrder.vue），以便同步详情与提交字段\r\n    tableChange(qualityIndicator, indexRequire) {\r\n      // 写入 JSON 串到表单数据模型\r\n      this.showForm.qualityIndicator = qualityIndicator\r\n      // 刷新表格源数据，驱动 comTable 重绘\r\n      if (qualityIndicator) {\r\n        this.qualityIndicatorList = JSON.parse(qualityIndicator)\r\n      }\r\n      // 计算质量标准的可读文本\r\n      let qualityStandard = ''\r\n      const arr = JSON.parse(qualityIndicator) || []\r\n      qualityStandard = arr.map(ele => `${ele.itemName}:${ele.itemValue}`).join(', ')\r\n      // 通知上层页面（addOrder.vue）做详情同步与提交入参组装\r\n      this.$emit('qualityIndicator:change', { qualityIndicator, qualityStandard })\r\n    },\r\n    updatePlanUseCredit() {\r\n      // 计算说明：从当前表单读取参数，调用公共方法计算三项金额\r\n      // 计算目标：planUseCreditAmount（预计使用授信）、planPayAmount（预付款）、noCreditNoPayAmount（剩余：非授信非预付款）\r\n      const form = this.showForm || {};\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      this.showForm.planUseCreditAmount = planUseCreditAmount;\r\n      this.showForm.planPayAmount = planPayAmount;\r\n      this.showForm.noCreditNoPayAmount = noCreditNoPayAmount;\r\n      // console.log('子组件计算结果：planUseCreditAmount', planUseCreditAmount);\r\n      // console.log('子组件计算结果：planPayAmount', planPayAmount);\r\n      // console.log('子组件计算结果：noCreditNoPayAmount', noCreditNoPayAmount);\r\n    },\r\n async getData() {\r\n  if (!this.quotationId) return;\r\n\r\n  // ============ 工具：安全 JSON 解析 ============\r\n  const safeParse = (v, fallback) => {\r\n    if (v === null || v === undefined || v === '') return fallback;\r\n    try {\r\n      const parsed = JSON.parse(v);\r\n      return parsed === null || parsed === undefined ? fallback : parsed;\r\n    } catch (e) {\r\n      console.warn('[getData] JSON.parse 失败，已使用兜底值:', v, e);\r\n      return fallback;\r\n    }\r\n  };\r\n\r\n  // ============ 兜底：先占位，防止任何中途异常留下 undefined ============\r\n  if (!Array.isArray(this.showForm.orderProductList)) {\r\n    this.$set(this.showForm, 'orderProductList', []);\r\n  }\r\n\r\n  try {\r\n    const { result } = await queryById(this.quotationId);\r\n    await logCustomerHistoryLibrary(result); // 原药：实物、折百信息\r\n\r\n    const data = result || {};\r\n\r\n    // ============ 1. 质量标准 / 原药 / 单位 安全解析 ============\r\n    this.qualityIndicatorList = safeParse(data.qualityIndicator, []); // 表格展示组件用\r\n    this.showForm.qualityIndicator = data.qualityIndicator;\r\n\r\n    data.newtcInfo = safeParse(data.tcInfo, []);          // 保证是数组\r\n    data.newproductUnit = safeParse(data.productUnit, {}); // 保证是对象\r\n\r\n    // ============ 2. 公司名称 / 公司简称 / id 回显 ============\r\n    const targetCustomerName = data.customerName ? String(data.customerName).trim() : '';\r\n    const companyDetail = (this.orderCustomerList || []).filter(item => {\r\n      const companyName = item.companyName ? String(item.companyName).trim() : '';\r\n      const companyNameEn = item.companyNameEn ? String(item.companyNameEn).trim() : '';\r\n      // 历史报价带入时，中文名称为空或未命中时继续按英文名称匹配。\r\n      return companyName === targetCustomerName || companyNameEn === targetCustomerName;\r\n    });\r\n\r\n    if (companyDetail && companyDetail.length) {\r\n      this.showForm.customerId = companyDetail[0].id;\r\n      // 页面主展示名称优先中文，中文为空时兜底英文。\r\n      this.showForm.companyName = companyDetail[0].companyName || companyDetail[0].companyNameEn || '';\r\n      this.showForm.simpleName = companyDetail[0].simpleName;\r\n      // 报价带入时默认使用当前匹配到的公司名称，兼容仅维护英文公司名的客户。\r\n      this.showForm.signCompanyName = this.showForm.companyName;\r\n      this.showForm.signSimpleName = companyDetail[0].simpleName || '';\r\n      this.showForm.languageCode = companyDetail[0].companyName ? 'zh-CN' : 'en-US';\r\n\r\n      // 客户授信额度信息（异步，包一层 try 防止影响主流程）\r\n      try {\r\n        const creditInfo = await this.customerCreditInfoFunction(this.showForm.companyName);\r\n        if (creditInfo) {\r\n          this.showForm.availableCredit = creditInfo.availableCredit;                 // 剩余授信额度\r\n          this.showForm.normalOccupiedCredit = creditInfo.normalOccupiedCredit;       // 正常使用中授信额度\r\n          this.showForm.occupiedCredit = creditInfo.occupiedCredit;                   // 使用中授信额度\r\n          this.showForm.overdueOccupiedCredit = creditInfo.overdueOccupiedCredit;     // 逾期中授信额度\r\n          this.showForm.payPeriod = creditInfo.payPeriod;                             // 账期\r\n          this.showForm.totalCredit = creditInfo.totalCredit;                         // 总授信额度\r\n        }\r\n      } catch (e) {\r\n        console.warn('[getData] 获取客户授信信息失败：', e);\r\n      }\r\n\r\n      // 通知父组件同步构造签约公司下拉选项，并保持父子表单数据一致。\r\n      this.$emit(\"isNeedFeedback:change\", { key: 'customerId', data: this.showForm });\r\n    }\r\n\r\n    // ============ 3. 基础字段 ============\r\n    this.showForm.remark = data.remark;\r\n    this.showForm.orderType = data.orderType == 0 ? 1 : 2;\r\n\r\n    // ============ 4. 原药信息（数组为空也不报错） ============\r\n    (data.newtcInfo || []).forEach(item => {\r\n      item.name = item.tcName;\r\n      item.price = item.actualTcPrice;\r\n      item.consumptionModeName =\r\n        item.consumptionMode == '1' ? '实'\r\n        : item.consumptionMode == '2' ? '折'\r\n        : '无'; // 实物、折百\r\n    });\r\n    this.showForm.orderTechnicalMaterials = JSON.parse(JSON.stringify(data.newtcInfo || []));\r\n\r\n    // ============ 5. 订单交易币种 ============\r\n    this.showForm.currency = data.currency;\r\n\r\n    // ============ 6. 产品信息（始终重置为数组，且只在关键字段存在时 push） ============\r\n    this.showForm.orderProductList = [];\r\n\r\n    const productSpec = data.productSpec || '';\r\n    const packingUnit = productSpec ? productSpec.charAt(productSpec.length - 1) : '';\r\n\r\n    const specsArr = safeParse(data.specsItems, []);\r\n    const showSpecsItems = specsArr.map(i => i.itemName).join(',');\r\n\r\n    // 只有产品名或编码存在时才 push，避免产生一条全空的脏数据\r\n    if (data.productName || data.productCode) {\r\n      this.showForm.orderProductList.push({\r\n        productName: data.productName || '',                    // 产品名称\r\n        productNumber: data.productCode || '',                  // 产品编码\r\n        packFormat: data.productSpec || '',                     // 包装规格\r\n        productCount: data.actualQuantity || 0,                 // 产品数量\r\n        productPrice: data.actualUnitPrice || 0,                // 产品单价\r\n        productAmount: data.actualTotalPrice || 0,              // 产品总价\r\n        packingStandard: data.packingStandard || '暂无',        // 包装需求\r\n        showSpecsItems: showSpecsItems || '暂无',               // 特殊包装 --- 展示用\r\n        specsItems: data.specsItems || '暂无',                  // 特殊包装 --- 传递后台\r\n        unit: (data.newproductUnit && data.newproductUnit.min_unit) || '', // 单位\r\n        remark: data.remark || '暂无',                          // 备注\r\n        // 报价时进仓费：0 是合法值，仅在 null/undefined 时置空\r\n        inwardProcessingFee: data.inwardProcessingFee !== undefined && data.inwardProcessingFee !== null\r\n          ? data.inwardProcessingFee\r\n          : '',\r\n        // 进仓费展示单位：取产品单位 productUnit 的 max_unit\r\n        inwardProcessingFeeUnit: (data.newproductUnit && data.newproductUnit.max_unit) || '',\r\n        activeConstituent: data.activeConstituent || '',        // 有效成分\r\n        packingUnit,                                            // 包装单位\r\n        category: data.productCategoryCode || '',               // 分类编码\r\n        tonPrice: data.tonPrice,                                // 报价系统-报价吨价/千升价\r\n        price: data.price                                       // 报价系统-单价\r\n      });\r\n    } else {\r\n      console.warn('[getData] 报价数据缺少 productName / productCode，未生成产品行。data =', data);\r\n    }\r\n\r\n    // ============ 7. 附加字段 ============\r\n    this.showForm.premiumAmount =\r\n      data.premiumAmount !== undefined && data.premiumAmount !== null\r\n        ? data.premiumAmount\r\n        : (this.$route.query && this.$route.query.premiumAmount !== undefined\r\n            ? this.$route.query.premiumAmount\r\n            : '');\r\n\r\n    this.showForm.quotationId = this.$route.query.quotationId;\r\n    this.showForm.bizType = '代工';\r\n    this.showForm.productOrgCode = data.productOrgCode;\r\n\r\n    // ============ 8. 初始化税务字段与金额展示 ============\r\n    const firstProduct = this.showForm.orderProductList[0];\r\n    if (firstProduct) {\r\n      this.ensureProductTaxAndAmount(firstProduct, 0);\r\n    }\r\n    this.recalcTotalAmount();\r\n    this.syncTopLevelMoneyFields(this.showForm);\r\n    this.syncChangeoverMoneyFields(this.showForm);\r\n\r\n  } catch (e) {\r\n    // 任何意外都在这里收口，保证页面不塌\r\n    console.error('[getData] 执行中断：', e, 'quotationId =', this.quotationId);\r\n    if (!Array.isArray(this.showForm.orderProductList)) {\r\n      this.$set(this.showForm, 'orderProductList', []);\r\n    }\r\n    this.$toast && this.$toast('报价数据加载异常，请重试或联系管理员');\r\n  }\r\n},\r\n    formatter(value) {\r\n      return value\r\n    },\r\n    isDisabled() {\r\n      // {{ this.dataList.orderStatus }}\r\n      return !this.dataList.orderStatus || this.dataList.orderStatus == '0' || (this.dataList.orderStatus == '1' && this.dataList.rejectFlag == 1) || this.dataList.orderStatus == '6' || this.dataList.orderStatus == '5'\r\n    },\r\n    //新增产品\r\n    addproduct() {\r\n      // let classification = ''\r\n      if (this.showForm.orderProductList && this.showForm.orderProductList.length) {\r\n        let ids = []\r\n        this.showForm.orderProductList.forEach(item => {\r\n          ids.push(item.productNumber)\r\n        })\r\n        localStorage.setItem('productListId', JSON.stringify(ids))\r\n        localStorage.setItem('productList', JSON.stringify(this.showForm.orderProductList))\r\n        // classification = this.showForm.orderProductList[0].classification\r\n      }\r\n      // this.$router.push({ path: \"/product\", query: { id: classification } });\r\n      this.$router.push({ path: \"/product\" });\r\n\r\n    },\r\n    // 替换产品报价\r\n    historicalQuotation() {\r\n      this.$router.push({ path: \"/historical\" });\r\n    },\r\n    //提交\r\n    onSubmit() {\r\n      return this.showForm\r\n    },\r\n    validateForm: async function () {\r\n      let flag = false\r\n      await this.$refs['form'].validate().then((res) => {\r\n        flag = true\r\n        console.log('校验成功')\r\n      }, (res) => {\r\n        flag = false\r\n        this.$toast('校验失败', { duration: 5000 });\r\n      });\r\n\r\n      return flag\r\n    },\r\n    /**  下拉选择器数据赋值\r\n     * 入参：点击的数据配置\r\n    */\r\n    initPicker(data) {\r\n      // console.log(data);\r\n      // let data = deepClone(initData);\r\n      if (data.readonly) return;\r\n      if (data.type == 'click') {\r\n        this.$router.push({ path: \"/product\" });\r\n        return;\r\n      }\r\n      let _query = {\r\n        // showKeyName: data.model.showKeyName,\r\n        // showKeyName: \"showPicker\",\r\n        key: data.key,\r\n        title: data.tit,\r\n        type: data.type\r\n      }\r\n      if (data.type == 'picker' || data.type == 'multiple') {\r\n        console.log('data',data);\r\n        _query.columns = data.model.columns\r\n        _query.initColumns = deepClone(data.model.columns)\r\n        _query.option = data.model.option || {}\r\n      }\r\nif (data.type == 'multiple') {\r\n  const currentValue = this.showForm[data.key] || '';\r\n  // 接口返回用中文顿号分割，这里用 、 切割\r\n  this.tempCheckedArr = currentValue ? currentValue.split(',') : [];\r\n  _query.initColumns = deepClone(data.model.columns);\r\n  _query.columns = deepClone(_query.initColumns);\r\n}\r\n      if (data.type == 'datetimePicker') {\r\n        var now = new Date();\r\n        let _initMaxDate = new Date(now.getFullYear(), now.getMonth() + 6, now.getDate());\r\n        let _minxDate = data.model && data.model.minDate ? data.model.minDate : new Date(),\r\n          _maxDate = data.model && data.model.maxDate ? data.model.maxDate : _initMaxDate;\r\n        this.minDate = _minxDate\r\n        this.maxDate = _maxDate\r\n      }\r\n\r\n      if (data.keyCopy) {\r\n        _query.keyCopy = data.keyCopy\r\n      }\r\n      // 是否需要通知上级页面\r\n      if (data.isNeedFeedback) {\r\n        _query.isNeedFeedback = true\r\n      }\r\n      this.model = _query;\r\n      console.log('this.model',this.model);\r\n\r\n\r\n      this.showPicker = true\r\n\r\n    },\r\n    // 单选选择器确定\r\n    onConfirm(value) {\r\n      // console.log(value)\r\n      // this.showForm[this.model.key] = value.value\r\n      console.log('this.model.key',this.model.key);\r\n      console.log('value',value);\r\n      this.showForm[this.model.key] = value.value\r\n      if (this.model.keyCopy) {\r\n        this.showForm[this.model.keyCopy] = value.text\r\n      }\r\n      // 是否需要通知上级页面\r\n      if (this.model.isNeedFeedback) {\r\n        this.$emit(\"isNeedFeedback:change\", { key: this.model.key, data: this.showForm })\r\n      }\r\n\r\n      this.onCancel()\r\n    },\r\n    // 时间选择器确定\r\n    onDatetimeConfirm(val) {\r\n      let _time = formatDate(val)\r\n      this.showForm[this.model.key] = _time\r\n      console.log(this.model, \"????????????\");\r\n      this.onCancel()\r\n    },\r\n    // 关闭弹窗\r\n    onCancel() {\r\n      this.showPicker = false\r\n    },\r\n      // 多选点击切换\r\n    multipleClick(item) {\r\n      item.show = !item.show\r\n    },\r\n// 多选确认\r\nonAffirm() {\r\n  const selectStr = this.tempCheckedArr.join(',');\r\n  console.log(selectStr);\r\n  this.showForm[this.model.key] = selectStr;\r\n  if (this.model.isNeedFeedback) {\r\n    this.$emit(\"isNeedFeedback:change\", {\r\n      key: this.model.key,\r\n      data: this.showForm\r\n    });\r\n  }\r\n  this.onCancel();\r\n},\r\n     //下拉弹出层name 展示\r\n    fn(value, childItem) {\r\n      if (childItem.type == 'picker') {\r\n        let arr = childItem.model.columns\r\n        if (arr && arr.length > 0) {\r\n          let text = arr.filter((item) => {\r\n            return item.value == value\r\n          })\r\n          if (text && text.length) {\r\n            return text[0].text\r\n          } else {\r\n            return ''\r\n          }\r\n        }\r\n      } else if (childItem.type == 'multiple') {\r\n        if (!value) return ''\r\n        let _key = value.split(\",\")\r\n        if (_key.length > 0 && childItem.model.columns.length) {\r\n          let data = []\r\n          _key.forEach(element => {\r\n            let ids = childItem.model.columns.find(ele => {\r\n              return ele.value == element\r\n            })\r\n            if (ids) {\r\n              data.push(ids.text)\r\n            }\r\n          })\r\n          return data.toString()\r\n        }\r\n        return ''\r\n      } else {\r\n        return ''\r\n      }\r\n    },\r\n    inputClick(childItem, index, item) {\r\n      if (childItem.key == 'productCount' || childItem.key == 'productPrice') {\r\n        // this.showForm[item.key][index]['productAmount'] = this.showForm[item.key][index]['productCount'] * this.showForm[item.key][index]['productPrice']\r\n        let _productCount = this.showForm[item.key][index]['productCount'] || 0,\r\n          _productPrice = this.showForm[item.key][index]['productPrice'] || 0;\r\n        const paNum = Number((_productCount * _productPrice).toFixed(2));\r\n        this.showForm[item.key][index]['productAmount'] = paNum\r\n        this.ensureProductTaxAndAmount(this.showForm[item.key][index], index);\r\n        this.recalcTotalAmount();\r\n      } else if (childItem.key == 'taxRate') {\r\n        let v = this.showForm[item.key][index]['taxRate'];\r\n        this.showForm[item.key][index]['taxRate'] = this.sanitizeRateOnEdit(v);\r\n        this.ensureProductTaxAndAmount(this.showForm[item.key][index], index);\r\n      }\r\n      // 更新授信额度\r\n      this.updatePlanUseCredit()\r\n    },\r\n    // 删除产品\r\n    delClick(index, key) {\r\n      this.showForm[key].splice(index, 1)\r\n    },\r\n    iconClick(name) {\r\n      this.$parent[name] ? this.$parent[name]() : '';\r\n    },\r\n    // 单选 模糊搜索\r\n    // 单选 模糊搜索\r\n    query() {\r\n      let _val = this.model.value;\r\n      let _list = this.model.initColumns;\r\n      if (_val) {\r\n        _list = this.model.initColumns.filter(item => {\r\n          return item.text.indexOf(_val) > -1\r\n        });\r\n      }\r\n      this.$set(this.model, \"columns\", _list)\r\n    },\r\n    // 同步\r\n    synchronous(dataList, index, option) {\r\n      // console.log(\"同步\", this.showForm.orderProductList);\r\n      // console.log(dataList, index, option);\r\n      // {\r\n      //   \"code\": \"SZ01JSAJ002\",\r\n      //     \"facadeStandard\": \"\",\r\n      //       \"qualityStandard\": \"\"\r\n      // }\r\n      let _data = dataList[index];\r\n      console.log(_data);\r\n      //  TODO _data 同步数据\r\n      updateProduct({\r\n        code: _data.productNumber,\r\n        facadeStandard: _data.packFormat,\r\n        qualityStandard: _data.qualityStandard\r\n      }).then(res => {\r\n        this.$toast(\"同步成功\")\r\n      })\r\n\r\n    },\r\n    // 更新\r\n    renew(dataList, index,) {\r\n      let _data = dataList[index]\r\n      getProductList({\r\n        keyword: _data.productNumber,\r\n        classification: _data.classification,\r\n        isAsc: 'desc',\r\n        pageNum: 1,\r\n        pageSize: 10\r\n      }).then((res => {\r\n\r\n        // let _key = [\"productName\", \"productNumber\", \"unit\", \"packFormat\", \"outward\"]\r\n        let _key = [\"productName\", \"productNumber\", \"unit\", \"packFormat\", \"qualityStandard\"]\r\n        let _obj = {}\r\n        for (let i = 0; i < _key.length; i++) {\r\n          _obj[_key[i]] = res.rows[0][_key[i]]\r\n        }\r\n        let _renewData = Object.assign({}, _data, _obj);\r\n        this.$set(dataList, index, _renewData);\r\n        console.log(dataList);\r\n        localStorage.setItem(\"productList\", JSON.stringify(dataList));\r\n        this.$parent.ProductSelection();\r\n      }))\r\n    },\r\n    //新增原药\r\n    addmaterial(data) {\r\n      this.model = {\r\n        key: data.key,\r\n        title: data.tit,\r\n        type: data.type,\r\n        value: \"\"\r\n      };\r\n      // 打开弹层与数据匹配\r\n      if (this.showForm.orderTechnicalMaterials && this.showForm.orderTechnicalMaterials.length) {\r\n        this.checked = this.showForm.orderTechnicalMaterials.map(item => item.name)\r\n      }\r\n      this.showPicker = true\r\n    },\r\n    //删除选择原药\r\n    deletematerial(key, ind, id) {\r\n      this.showForm[key].splice(ind, 1);\r\n      this.checked.splice(this.checked.findIndex(item => item == id), 1)\r\n      // console.log(this.showForm,this.checked,\"this.showForm\",id)\r\n    },\r\n    toggle(index, item) {\r\n      this.checkboxRefs[index].toggle();\r\n    },\r\n    //关闭弹层\r\n    closePopup(type) {\r\n      if (type == 1) {\r\n        //新增选择的原药价\r\n        let data = this.showForm.orderTechnicalMaterials;\r\n        //确认是否有删除项\r\n        this.$set(this.showForm, 'orderTechnicalMaterials', data.filter(item => { return this.checked.indexOf(item.name) > -1 }))\r\n        this.checked.map(item => {\r\n          let pushList = data.findIndex(list => list.name == item);\r\n          let materialcolumnsCopy = JSON.parse(JSON.stringify(this.materialcolumns))\r\n          let pushItem = materialcolumnsCopy.filter(colItem => { return colItem == item })[0];\r\n          if (pushList == -1) this.showForm.orderTechnicalMaterials.push({ name: pushItem, price: \"\" })\r\n        })\r\n      } else if (type == 0) {\r\n        if (this.model.key != 'orderTechnicalMaterials') return;\r\n        if (!!this.model.value) {\r\n          this.model.value = \"\";\r\n          this.getmaterialcolumns();\r\n        }\r\n      }\r\n      this.showPicker = false;\r\n    },\r\n    //获取原药库数据\r\n    getmaterialcolumns() {\r\n      this.loading = true;\r\n      getAllTechnicalMaterial({ keyword: this.model.value }).then(res => {\r\n        this.materialcolumns = res.data;\r\n        this.loading = false;\r\n      }).catch(error => {\r\n        this.loading = false;\r\n      })\r\n    },\r\n    // 获取客户数据\r\n    // getOrderCustomerList() {\r\n    //   this.loading = true;\r\n    //   getAllTechnicalMaterial({ keyword: this.model.value }).then(res => {\r\n    //     this.materialcolumns = res.data;\r\n    //     this.loading = false;\r\n    //   }).catch(error => {\r\n    //     this.loading = false;\r\n    //   })\r\n    // }\r\n  }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.blankBlock {\r\n  height: 10px;\r\n  background: #f8f8f8;\r\n}\r\n\r\n.title {\r\n  width: 90%;\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  padding: 0px 5%;\r\n}\r\n\r\n.addvant {\r\n  width: 20%;\r\n  //   margin-left: 10%;\r\n  //   margin: 30px auto;\r\n  background: #26BFB2;\r\n  border: #26BFB2 1px solid;\r\n  color: #fff;\r\n  margin-top: -37px;\r\n  margin-left: 10px;\r\n}\r\n\r\n/deep/.labelClass {\r\n  width: 5em;\r\n  text-align-last: justify;\r\n}\r\n\r\n.vanIcon {\r\n  position: absolute;\r\n  top: 10px;\r\n  right: 10px;\r\n  z-index: 9;\r\n}\r\n\r\n/deep/.disabledCla .van-field__control:disabled {\r\n  -webkit-text-fill-color: #323233;\r\n  color: #323233;\r\n}\r\n\r\n/deep/.van-field--disabled .van-field__label {\r\n  color: #646566;\r\n}\r\n\r\n.swipeBtn {\r\n  padding-top: 20px;\r\n}\r\n\r\n.materialBox-title {\r\n  width: 90%;\r\n  text-align: center;\r\n  height: 44px;\r\n  line-height: 44px;\r\n  display: flex;\r\n  margin: 0 auto;\r\n  justify-content: space-between;\r\n\r\n  span {\r\n    font-size: 14px;\r\n    color: #969799;\r\n  }\r\n\r\n  font {\r\n    font-size: 14px;\r\n    color: #576b95;\r\n  }\r\n\r\n  p {\r\n    font-size: 16px;\r\n    // width: 80%;\r\n  }\r\n\r\n}\r\n\r\n.materialBox {\r\n  /deep/ .van-field__label {\r\n    line-height: 32px !important;\r\n  }\r\n\r\n  /deep/.van-loading {\r\n    text-align: center;\r\n    margin-top: 30%;\r\n  }\r\n}\r\n\r\n.content {\r\n  padding-bottom: 20px;\r\n  max-height: 300px;\r\n  min-height: 300px;\r\n  overflow-y: auto;\r\n}\r\n\r\n.yyys {\r\n  -webkit-text-size-adjust: 100%;\r\n  -webkit-tap-highlight-color: transparent;\r\n  --mainColor: #3864D1;\r\n  --buttonColor: #26BFB2;\r\n  --van-button-primary-color: var(--buttonColor);\r\n  -webkit-font-smoothing: antialiased;\r\n  text-rendering: optimizeLegibility;\r\n  border-collapse: collapse;\r\n  word-break: normal;\r\n  white-space: pre-wrap;\r\n  word-wrap: break-word;\r\n  text-align: right;\r\n  margin: 0;\r\n  font-family: \"Microsoft YaHei\", \"宋体\", \"arial\", \"Helvetica\", \"sans-serif\";\r\n  padding: 0 10px;\r\n  line-height: 20px;\r\n  height: 20px;\r\n  border-radius: 10px;\r\n  font-size: 12px;\r\n  color: #fff;\r\n  display: inline-block;\r\n  margin-right: 10px;\r\n  background-color: #4abe1d;\r\n}\r\n\r\n.form-tip {\r\n  padding: 8px 16px 2px 16px;\r\n  color: #f5222d;\r\n  font-style: italic;\r\n  line-height: 1.6;\r\n}\r\n\r\n.credit-info-tip {\r\n  margin: 8px;\r\n  padding: 8px;\r\n  border-radius: 10px;\r\n  background: rgba(18, 169, 158, 0.08);\r\n  border: 1px solid rgba(18, 169, 158, 0.25);\r\n  color: #0f7a73;\r\n  font-size: 13px;\r\n  line-height: 1.6;\r\n}\r\n\r\n</style>\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./list.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./list.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./list.vue?vue&type=template&id=423eb131&scoped=true&\"\nimport script from \"./list.vue?vue&type=script&lang=js&\"\nexport * from \"./list.vue?vue&type=script&lang=js&\"\nimport style0 from \"./list.vue?vue&type=style&index=0&id=423eb131&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"423eb131\",\n  null\n  \n)\n\nexport default component.exports","import request from '@/utils/request';\r\nconst service = process.env.VUE_APP_CRM_URL;\r\nconst cloud = process.env.VUE_APP_CLOUD_URL;\r\n// 订单列表\r\n\r\n\r\n//获取原药订单列表\r\nexport function getOrderListYy(params) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/selectOrderList`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n//获取原药订单列表（发货单用）\r\nexport function getOrderListFH(params) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/crmOrderList`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n// 新增发货单\r\nexport function addCrmShippingOrder(data) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/addCrmShippingOrder`,\r\n    method: 'post',\r\n    data\r\n  })\r\n}\r\n// 编辑发货单\r\nexport function editCrmShippingOrder(data) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/editCrmShippingOrder`,\r\n    method: 'post',\r\n    data\r\n  })\r\n}\r\n\r\n//获取发货单列表\r\nexport function getOrderListFHD(params) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/shippingOrderList`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n//获取原药真实或虚拟库存列表\r\nexport function queryMaterialRawPageList(params) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/queryMaterialRawPageList`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n// 新增原药销售订单\r\nexport function addOrUpdateMaterialSalesOrder(data) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/addOrUpdateMaterialSalesOrder`,\r\n    method: 'post',\r\n    data\r\n  })\r\n}\r\n// 订单预览\r\nexport function previewContract(data) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/previewContract`,\r\n    method: 'post',\r\n    data\r\n  })\r\n}\r\n\r\n// 原药销售订单详情\r\nexport function queryCrmOrderDetailById(params) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/queryCrmOrderDetailById`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n// 根据角色查找人员业务员\r\nexport function selectUserByRoleCode(params) {\r\n    return request({\r\n        url: `${cloud}/jeecg-crm/appCrm/api/selectUserListByRoleCode`,\r\n        method: 'get',\r\n        params\r\n    })\r\n}\r\n// 根据角色查找人员跟单员\r\nexport function selectFollowUserListByRoleCode(params) {\r\n    return request({\r\n        url: `${cloud}/jeecg-crm/appCrm/api/selectFollowUserListByRoleCode`,\r\n        method: 'get',\r\n        params\r\n    })\r\n}\r\n// 删除\r\n\r\nexport function removeOrderYy(params) {\r\n    return request({\r\n        url: `${cloud}/jeecg-crm/appCrm/api/removeOrder`,\r\n        method: 'delete',\r\n        params\r\n    })\r\n}\r\n// 撤销\r\nexport function cancelOrder(data) {\r\n    return request({\r\n        url: `${cloud}/jeecg-crm/appCrm/api/cancelOrder`,\r\n        method: 'post',\r\n        params: data\r\n    })\r\n}\r\n// 获取供方列表\r\nexport function getCompanyInfoFromTj() {\r\n    return request({\r\n        url: `${cloud}/jeecg-crm/appCrm/api/selectProviderList`,\r\n        method: 'GET',\r\n    })\r\n}\r\n// 合同列表\r\nexport function selectContractList(params) {\r\n    return request({\r\n        url: `${cloud}/jeecg-crm/appCrm/api/selectContractList`,\r\n        method: 'GET',\r\n        params\r\n    })\r\n}\r\n// 合同终止\r\n\r\nexport function stopOrdeYy(data) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/stopOrder`,\r\n    method: 'post',\r\n    data\r\n  })\r\n}\r\n// 申请合同修改 合同状态为已审批状态\r\nexport function applyUpdate(data) {\r\n    return request({\r\n        url: `${cloud}/jeecg-crm/appCrm/api/applyUpdate`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n// 获取销售类型\r\nexport function selectSalesUserType(params) {\r\n    return request({\r\n        url: `${cloud}/jeecg-crm/appCrm/api/selectSalesUserType`,\r\n        method: 'GET',\r\n        params\r\n    })\r\n}\r\n// 查询订单流程\r\nexport function orderGetFlow(params) {\r\n    return request({\r\n        url: `${cloud}/appMes/api/order_getFlow`,\r\n        method: 'get',\r\n        params\r\n    })\r\n}\r\n\r\n// ------------------------------------------------\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n//获取原药订单列表\r\n// export function getOrderListYy(params) {\r\n//   return request({\r\n//     url: `${cloud}/jeecg-crm/appCrm/api/selectOrderList`,\r\n//     method: 'get',\r\n//     params\r\n//   })\r\n// }\r\n//获取原药真实或虚拟库存列表\r\n// export function queryMaterialRawPageList(params) {\r\n//   return request({\r\n//     url: `${cloud}/jeecg-crm/appCrm/api/queryMaterialRawPageList`,\r\n//     method: 'get',\r\n//     params\r\n//   })\r\n// }\r\n// 新增原药销售订单\r\n// export function addOrUpdateMaterialSalesOrder(data) {\r\n//   return request({\r\n//     url: `${cloud}/jeecg-crm/appCrm/api/addOrUpdateMaterialSalesOrder`,\r\n//     method: 'post',\r\n//     data\r\n//   })\r\n// }\r\n// 原药销售订单详情\r\n// export function queryCrmOrderDetailById(params) {\r\n//   return request({\r\n//     url: `${cloud}/jeecg-crm/appCrm/api/queryCrmOrderDetailById`,\r\n//     method: 'get',\r\n//     params\r\n//   })\r\n// }\r\n// 根据角色查找人员业务员\r\n// export function selectUserByRoleCode(params) {\r\n//     return request({\r\n//         url: `${cloud}/jeecg-crm/appCrm/api/selectUserListByRoleCode`,\r\n//         method: 'get',\r\n//         params\r\n//     })\r\n// }\r\n// 根据角色查找人员跟单员\r\n// export function selectFollowUserListByRoleCode(params) {\r\n//     return request({\r\n//         url: `${cloud}/jeecg-crm/appCrm/api/selectFollowUserListByRoleCode`,\r\n//         method: 'get',\r\n//         params\r\n//     })\r\n// }\r\n// 删除\r\n\r\n// export function removeOrderYy(params) {\r\n//     return request({\r\n//         url: `${cloud}/jeecg-crm/appCrm/api/removeOrder`,\r\n//         method: 'delete',\r\n//         params\r\n//     })\r\n// }\r\n// 撤销\r\n// export function cancelOrder(data) {\r\n//     return request({\r\n//         url: `${cloud}/jeecg-crm/appCrm/api/cancelOrder`,\r\n//         method: 'post',\r\n//         params: data\r\n//     })\r\n// }\r\n// 获取供方列表\r\n// export function getCompanyInfoFromTj() {\r\n//     return request({\r\n//         url: `${cloud}/jeecg-crm/appCrm/api/selectProviderList`,\r\n//         method: 'GET',\r\n//     })\r\n// }\r\n// 合同列表\r\n// export function selectContractList(params) {\r\n//     return request({\r\n//         url: `${cloud}/jeecg-crm/appCrm/api/selectContractList`,\r\n//         method: 'GET',\r\n//         params\r\n//     })\r\n// }\r\n// 合同终止\r\n\r\n// export function stopOrdeYy(data) {\r\n//   return request({\r\n//     url: `${cloud}/jeecg-crm/appCrm/api/stopOrder`,\r\n//     method: 'post',\r\n//     data\r\n//   })\r\n// }\r\n// 申请合同修改 合同状态为已审批状态\r\n// export function applyUpdate(data) {\r\n//     return request({\r\n//         url: `${cloud}/jeecg-crm/appCrm/api/applyUpdate`,\r\n//         method: 'post',\r\n//         data\r\n//     })\r\n// }\r\n\r\n// 获取销售类型\r\n// export function selectSalesUserType(params) {\r\n//     return request({\r\n//         url: `${cloud}/jeecg-crm/appCrm/api/selectSalesUserType`,\r\n//         method: 'GET',\r\n//         params\r\n//     })\r\n// }\r\n// // 查询订单流程\r\n// export function orderGetFlow(params) {\r\n//     return request({\r\n//         url: `${cloud}/appMes/api/order_getFlow`,\r\n//         method: 'get',\r\n//         params\r\n//     })\r\n// }\r\n\r\n// ------------------------------------------------\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n//利润统计\r\nexport function statisticsList(params) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/statisticsList`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n\r\n// 新增订单\r\nexport function addOrder(data) {\r\n  return request({\r\n    url: `${service}/order/addOrUpdateOrder`,\r\n    method: 'post',\r\n    data\r\n  })\r\n}\r\n\r\n//修改订单\r\nexport function updateOrder(data) {\r\n  return request({\r\n    url: `${service}/order/updateOrder`,\r\n    method: 'post',\r\n    data\r\n  })\r\n}\r\n\r\n//获取订单列表\r\nexport function getOrderList(params) {\r\n  return request({\r\n    url: `${service}/order/getOrderList`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\nexport function getPremiumOrderList(params) {\r\n  return request({\r\n    url: `${service}/order/getPremiumOrderList`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n\r\n//获取订单详情\r\n\r\n\r\n//获取订单详情\r\nexport function getOrderDetail(params) {\r\n  return request({\r\n    url: `${service}/order/getOrderDetail`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n\r\n//删除订单\r\nexport function deleteOrder(params) {\r\n  return request({\r\n    url: `${service}/order/deleteOrder`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n//删除订单  -- 新的（上面那个后台已经遗弃）\r\nexport function removeOrder(data) {\r\n  return request({\r\n    url: `${service}/order/removeOrder`,\r\n    method: 'post',\r\n    data\r\n  })\r\n}\r\n\r\n//获取产品列表\r\nexport function getProductList(params) {\r\n  return request({\r\n    url: `${service}/order/getProductList`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n// 获取订单列表-订单进程\r\nexport function getOrderForProcessList(params) {\r\n  return request({\r\n    url: `${service}/order/getOrderForProcessList`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n// 获取订单列表-订单进程 原药\r\nexport function getOrderForProcessListYy(params) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/getOrderForProcessList`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n// // 获取订单列表-订单进程 原药\r\n// export function getOrderForProcessListYy(params) {\r\n//   return request({\r\n//     url: `${cloud}/jeecg-crm/appCrm/api/getOrderForProcessList`,\r\n//     method: 'get',\r\n//     params\r\n//   })\r\n// }\r\n// // 获取订单列表-订单进程 原药\r\n// export function getOrderForProcessListYy(params) {\r\n//   return request({\r\n//     url: `${cloud}/jeecg-crm/appCrm/api/getOrderForProcessList`,\r\n//     method: 'get',\r\n//     params\r\n//   })\r\n// }\r\n// // 获取订单列表-订单进程 原药\r\n// export function getOrderForProcessListYy(params) {\r\n//   return request({\r\n//     url: `${cloud}/jeecg-crm/appCrm/api/getOrderForProcessList`,\r\n//     method: 'get',\r\n//     params\r\n//   })\r\n// }\r\n\r\n// 获取订单进程列表\r\nexport function getOrderProcessList(params) {\r\n  return request({\r\n    url: `${service}/order/getOrderProcessList`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n\r\n// 获取订单进程列表 原药\r\nexport function getOrderProcessListYy(params) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/getOrderProcessList`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n\r\n// // 获取订单进程列表 原药\r\n// export function getOrderProcessListYy(params) {\r\n//   return request({\r\n//     url: `${cloud}/jeecg-crm/appCrm/api/getOrderProcessList`,\r\n//     method: 'get',\r\n//     params\r\n//   })\r\n// }\r\n\r\n// // 获取订单进程列表 原药\r\n// export function getOrderProcessListYy(params) {\r\n//   return request({\r\n//     url: `${cloud}/jeecg-crm/appCrm/api/getOrderProcessList`,\r\n//     method: 'get',\r\n//     params\r\n//   })\r\n// }\r\n\r\n// // 获取订单进程列表 原药\r\n// export function getOrderProcessListYy(params) {\r\n//   return request({\r\n//     url: `${cloud}/jeecg-crm/appCrm/api/getOrderProcessList`,\r\n//     method: 'get',\r\n//     params\r\n//   })\r\n// }\r\n// 确认某个进程或者填写留言\r\nexport function confirmProcess(params) {\r\n  return request({\r\n    url: `${service}/order/confirmProcess`,\r\n    method: 'post',\r\n    data: params\r\n  })\r\n}\r\n// 新增订单进程排产信息\r\nexport function addProcessProduce(params) {\r\n  return request({\r\n    url: `${service}/order/addProcessProduce`,\r\n    method: 'post',\r\n    data: params\r\n  })\r\n}\r\n// 新增订单进程进仓信息\r\nexport function addProcessWarehouse(params) {\r\n  return request({\r\n    url: `${service}/order/addProcessWarehouse`,\r\n    method: 'post',\r\n    data: params\r\n  })\r\n}\r\n// 新增订单进程发货信息\r\nexport function addProcessDelivery(params) {\r\n  return request({\r\n    url: `${service}/order/addProcessDelivery`,\r\n    method: 'post',\r\n    data: params\r\n  })\r\n}\r\n\r\n// 终止订单\r\nexport function stopOrder(params) {\r\n  return request({\r\n    url: `${service}/order/stopOrder`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n\r\n// 获取订单进程排产信息\r\nexport function getProcessProduceDetail(params) {\r\n  return request({\r\n    url: `${service}/order/getProcessProduceDetail`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n\r\n// 获取订单进程进仓信息\r\nexport function getProcessWarehouseDetail(params) {\r\n  return request({\r\n    url: `${service}/order/getProcessWarehouseDetail`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n// 查询订单进程发货信息\r\nexport function getProcessDeliveryDetail(params) {\r\n  return request({\r\n    url: `${service}/order/getProcessDeliveryDetail`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n// 查询订单进程发货信息\r\nexport function updateProduct(data) {\r\n  return request({\r\n    url: `${service}/order/updateProduct`,\r\n    method: 'post',\r\n    data\r\n  })\r\n}\r\n\r\n// 获取原药库数据\r\nexport function getAllTechnicalMaterial(data) {\r\n  return request({\r\n    url: `${service}/commonQuery/getAllTechnicalMaterial`,\r\n    method: 'post',\r\n    data\r\n  })\r\n}\r\n\r\n//获取产品列表---新修改\r\nexport function getDgProductList(data) {\r\n  return request({\r\n    url: `${service}/order/getDgProductList`,\r\n    method: 'post',\r\n    data\r\n  })\r\n}\r\n\r\n// 获取产品详情\r\nexport function getProductById(data) {\r\n  return request({\r\n    url: `${service}/order/getProductById`,\r\n    method: 'post',\r\n    data\r\n  })\r\n}\r\n\r\n\r\nexport function queryCustomerHistoryLibraryPageList(params) {\r\n  return request({\r\n    url: `${cloud}/appPqs/api/queryCustomerHistoryLibraryPageList`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n// 发货单出库明细\r\nexport function selectOrderOutList(params) {\r\n  return request({\r\n    url: `${cloud}/jeecg-crm/appCrm/api/selectOrderOutList`,\r\n    method: 'get',\r\n    params\r\n  })\r\n}\r\n\r\n//根据订单ID查询审批流程（预算订单审批）\r\nexport function getApprovalProcessByOrderId(data) {\r\n  return request({\r\n    url: `${service}/approve/getApprovalProcessByOrderId`,\r\n    method: 'post',\r\n    data\r\n  })\r\n}\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./credictLimitCard.vue?vue&type=style&index=0&id=05107d60&lang=scss&scoped=true&\"","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n  join: function join(separator) {\n    return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n  findIndex: function findIndex(callbackfn /* , that = undefined */) {\n    return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._m(0),_c('div',{staticStyle:{\"padding\":\"0 6px\"}},[_c('table',{staticClass:\"table\"},[_vm._m(1),_c('tbody',{staticClass:\"tbody\"},[_vm._l((_vm.form),function(item,index){return _c('tr',{key:index},[_c('td',[_vm._v(_vm._s(item.itemName))]),_c('td',{staticClass:\"indicator-cell\"},[_c('span',{staticClass:\"indicator-text\"},[_vm._v(_vm._s(item.itemValue))]),(_vm.editable && item.itemCost && item.itemCost.length>0)?_c('van-icon',{staticClass:\"select-icon\",attrs:{\"name\":\"edit\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.openSelector(index)}}}):_vm._e()],1)])}),(_vm.form && _vm.form.length == 0)?_c('tr',[_c('td',{staticClass:\"empty\",attrs:{\"colspan\":\"2\"}},[_vm._v(\"暂无数据\")])]):_vm._e()],2)])]),_c('van-popup',{style:({ height: _vm.selector.height, zIndex: 9999 }),attrs:{\"position\":\"bottom\",\"round\":\"\",\"get-container\":\"#app\"},model:{value:(_vm.selector.show),callback:function ($$v) {_vm.$set(_vm.selector, \"show\", $$v)},expression:\"selector.show\"}},[_c('van-picker',{attrs:{\"show-toolbar\":\"\",\"title\":_vm.selector.title,\"columns\":_vm.selector.columns,\"default-index\":_vm.selector.defaultIndex},on:{\"confirm\":_vm.pickerConfirm,\"cancel\":_vm.pickerCancel}})],1)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h3',{staticClass:\"sectionTitle\"},[_c('i',{staticClass:\"iconfont icon-jibenxinxi\"}),_vm._v(\"产品质量指标\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',{staticClass:\"thead\"},[_c('th',{staticStyle:{\"width\":\"40%\"}},[_vm._v(\" 项目 \")]),_c('th',[_vm._v(\" 指标 \")])])])}]\n\nexport { render, staticRenderFns }","<template>\r\n    <div>\r\n        <!-- 产品质量指标选择表：展示每个指标项及其当前值，可点编辑进行切换 -->\r\n        <h3 class=\"sectionTitle\"><i class=\"iconfont icon-jibenxinxi\"></i>产品质量指标</h3>\r\n        <div style=\"padding: 0 6px;\">\r\n            <!-- 指标表格：左列为项目名称，右列为指标值及可选编辑按钮 -->\r\n            <table class=\"table\">\r\n                <thead>\r\n                    <tr class=\"thead\">\r\n                        <th style=\"width: 40%;\"> 项目 </th>\r\n                        <th> 指标 </th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody class=\"tbody\">\r\n                    <!-- 遍历 form 数组渲染每一行 -->\r\n                    <tr v-for=\"(item, index) in form\" :key=\"index\">\r\n                        <td>{{ item.itemName }}</td>\r\n                        <td class=\"indicator-cell\">\r\n                            <span class=\"indicator-text\">{{ item.itemValue }}</span>\r\n                            <!-- 当该项存在可选成本 itemCost 时，显示编辑图标，点击打开选择器 -->\r\n                            <van-icon\r\n                                v-if=\"editable && item.itemCost && item.itemCost.length>0\"\r\n                                name=\"edit\"\r\n                                class=\"select-icon\"\r\n                                @click.stop=\"openSelector(index)\"\r\n                            />\r\n                        </td>\r\n                    </tr>\r\n                    <!-- 无数据占位行 -->\r\n                    <tr v-if=\"form && form.length == 0\">\r\n                        <td class=\"empty\" colspan=\"2\">暂无数据</td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n        </div>\r\n        <!-- 指标选择器弹窗（底部弹出） -->\r\n        <van-popup v-model=\"selector.show\" position=\"bottom\" round :style=\"{ height: selector.height, zIndex: 9999 }\" get-container=\"#app\">\r\n            <van-picker\r\n                show-toolbar\r\n                :title=\"selector.title\"\r\n                :columns=\"selector.columns\"\r\n                :default-index=\"selector.defaultIndex\"\r\n                @confirm=\"pickerConfirm\"\r\n                @cancel=\"pickerCancel\"\r\n            />\r\n        </van-popup>\r\n    </div>\r\n</template>\r\n<script>\r\n// 组件：产品质量指标表格与选择器\r\n// 接收 props.form（数组），每项推荐结构：\r\n// { itemName: string, itemValue: string, itemCost?: Array<{ costName: string, costPrice?: number }> }\r\nexport default {\r\n    props: {\r\n        form: {\r\n            type: Array,\r\n            default: () => {\r\n                return []\r\n            }\r\n        },\r\n        editable: {\r\n            type: Boolean,\r\n            default: false\r\n        }\r\n    },\r\n    // watch: {\r\n    //     form: {\r\n    //         handler(val) {\r\n    //             // console.log(val, '看看监听到的');\r\n    //             const obj = JSON.parse(JSON.stringify(val));\r\n    //             if (obj && obj.qualityIndicator) {\r\n    //                 this.list = JSON.parse(obj.qualityIndicator)\r\n    //             }\r\n    //         },\r\n    //         deep: true\r\n    //     },\r\n    //     list: {\r\n    //         handler(val) {\r\n    //             // console.log(val, '内部信息的改变');\r\n    //             const obj = JSON.parse(JSON.stringify(val));  // 拷贝\r\n    //             const qualityIndicator = JSON.stringify(obj);\r\n    //             const indexRequire = obj && obj.length && obj.map(item => `${item.itemName}:${item.itemValue}`).join(';');\r\n    //             this.$emit('change', qualityIndicator, indexRequire);\r\n    //         }, deep: true\r\n    //     }\r\n    // },\r\n    data() {\r\n        return {\r\n            selector: {\r\n                show: false,          // 是否展示选择器弹窗\r\n                columns: [],          // van-picker 所需列数据：[{ text, costPrice }]\r\n                rowIndex: null,       // 当前正在编辑的行索引\r\n                defaultIndex: 0,      // 选择器默认选中的列索引\r\n                title: '',            // 选择器标题（项目名）\r\n                height: '50vh'\r\n            }\r\n        }\r\n    },\r\n    methods: {\r\n        /**\r\n         * 打开选择器：根据行索引从 itemCost 生成 columns，并定位默认选中项\r\n         * @param {number} index 行索引\r\n         */\r\n        openSelector(index) {\r\n            if (!this.editable) return\r\n            const item = this.form && this.form[index]\r\n            if (item && Array.isArray(item.itemCost) && item.itemCost.length > 0) {\r\n                // 将 itemCost 转换为 van-picker 可识别的 columns\r\n                const columns = item.itemCost.map(c => ({\r\n                    text: c.costName,\r\n                    costPrice: c.costPrice\r\n                }))\r\n                const current = item.itemValue\r\n                // 根据当前 itemValue 定位默认选中项\r\n                const defIdx = columns.findIndex(n => n.text === current)\r\n                this.selector.columns = columns\r\n                this.selector.rowIndex = index\r\n                this.selector.defaultIndex = defIdx >= 0 ? defIdx : 0\r\n                this.selector.title = item.itemName || '请选择'\r\n                this.selector.show = true\r\n            }\r\n        },\r\n        /**\r\n         * 选择器确认：写回 itemValue 与 costPrice\r\n         * @param {string|Object|Array} value 选中的值（可能为字符串、对象或数组）\r\n         * @param {number|Array} index 选中索引（可能为数字或数组）\r\n         */\r\n        pickerConfirm(value, index) {\r\n            const rowIdx = this.selector.rowIndex\r\n            if (rowIdx === null || rowIdx === undefined) {\r\n                this.selector.show = false\r\n                return\r\n            }\r\n            const item = this.form && this.form[rowIdx]\r\n            if (!item) {\r\n                this.selector.show = false\r\n                return\r\n            }\r\n            // 规范化选中结果\r\n            let selectedName = ''\r\n            let selectedPrice = undefined\r\n            if (value && value.text) {\r\n                selectedName = value.text\r\n                selectedPrice = value.costPrice\r\n            }\r\n            let selectedIndex = Array.isArray(index) ? index[0] : index\r\n            if (selectedName && (selectedIndex === undefined || selectedIndex === null)) {\r\n                selectedIndex = item.itemCost.findIndex(c => c.costName === selectedName)\r\n            }\r\n            // 根据索引或名称获取实际选项\r\n            const picked = item.itemCost[selectedIndex] || item.itemCost.find(c => c.costName === selectedName)\r\n            if (picked) {\r\n                // 更新当前行的显示值与成本价格\r\n                this.$set(item, 'itemValue', picked.costName)\r\n                this.$set(item, 'costPrice', selectedPrice !== undefined ? selectedPrice : picked.costPrice)\r\n            }\r\n            const obj = JSON.parse(JSON.stringify(this.form || []))\r\n            const qualityIndicator = JSON.stringify(obj)\r\n            const indexRequire = obj && obj.length ? obj.map(n => `${n.itemName}:${n.itemValue}`).join(';') : ''\r\n            this.$emit('change', qualityIndicator, indexRequire)\r\n            this.selector.show = false\r\n        },\r\n        /** 选择器取消：仅关闭弹窗 */\r\n        pickerCancel() {\r\n            this.selector.show = false\r\n        }\r\n    },\r\n    created() { },\r\n    computed: {}\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n/* 基础表格样式 */\r\n.table {\r\n    width: 100%;\r\n    border-collapse: collapse;\r\n    font-size: 14px;\r\n    margin-bottom: 10px;\r\n\r\n    .thead {\r\n        background-color: #26bfb2;\r\n\r\n        th {\r\n            text-align: left;\r\n            padding: 6.5px;\r\n\r\n            font-weight: bold;\r\n            color: #fff;\r\n        }\r\n    }\r\n\r\n    .tbody {\r\n        td {\r\n            padding: 0 1.5px;\r\n            border: 1px solid rgb(189, 236, 232);\r\n        }\r\n    }\r\n\r\n    tbody tr:nth-of-type(even) {\r\n        background-color: #fff;\r\n    }\r\n\r\n    tbody tr:nth-of-type(odd) {\r\n        background-color: #fff;\r\n    }\r\n\r\n}\r\n\r\n/* 指标单元格：左右分布，文本与编辑图标对齐 */\r\n.indicator-cell {\r\n    padding: 10px !important;\r\n    display: flex;\r\n    justify-content: space-between;\r\n    align-items: center;\r\n}\r\n\r\n/* 编辑图标样式 */\r\n.select-icon {\r\n    color: #26bfb2;\r\n    font-size: 16px;\r\n    cursor: pointer;\r\n}\r\n\r\n/* 空数据提示行 */\r\n.empty {\r\n    padding: 5px;\r\n    text-align: left;\r\n    line-height: 35px;\r\n}\r\n\r\n/* 标题区域样式 */\r\n.iconfont {\r\n    font-size: 20px;\r\n    margin: 0 10px 0 15px;\r\n    font-weight: normal;\r\n}\r\n\r\n.sectionTitle {\r\n    margin: 10px 0;\r\n    color: #26bfb2;\r\n    line-height: 46px;\r\n    font-size: 16px;\r\n    box-shadow: 1px 1px 4px #ccc;\r\n    box-sizing: border-box;\r\n    width: 100%;\r\n    background-color: #fff;\r\n    display: flex;\r\n\r\n}\r\n\r\n/deep/ .sectionTitle .title-btn {\r\n    color: #26bfb2 !important;\r\n    font-size: 15px;\r\n}\r\n</style>","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./table.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./table.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./table.vue?vue&type=template&id=67d6f788&scoped=true&\"\nimport script from \"./table.vue?vue&type=script&lang=js&\"\nexport * from \"./table.vue?vue&type=script&lang=js&\"\nimport style0 from \"./table.vue?vue&type=style&index=0&id=67d6f788&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"67d6f788\",\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_URL = process.env.VUE_APP_CLOUD_URL;\r\n// 获取到货通知/原料入库列表\r\n\r\n// 新增客户信息\r\nexport function addCustomerInfo(data) {\r\n    return request({\r\n        url: `${service}/customer/info/addCustomerInfo`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n// 通过id获取报价信息\r\nexport function queryById(data) {\r\n    return request({\r\n        url: `${CLOUD_URL}/appPqs/api/queryCustomerHistoryLibraryById?id=${data}`,\r\n        method: 'get'\r\n    })\r\n}\r\n\r\n//修改客户信息\r\nexport function updateCustomerInfo(data) {\r\n    return request({\r\n        url: `${service}/customer/info/updateCustomerInfo`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n//获取客户信息列表\r\nexport function getCustomerInfoList(params) {\r\n    return request({\r\n        url: `${service}/customer/info/getCustomerInfoList`,\r\n        method: 'get',\r\n        params\r\n    })\r\n}\r\n\r\n// 获取所有客户列表-不分页，订单使用\r\nexport function getOrderCustomerList(params) {\r\n    return request({\r\n        url: `${service}/customer/info/getOrderCustomerList`,\r\n        method: 'get',\r\n        params\r\n    })\r\n}\r\n\r\n//获取客户信息详情\r\nexport function getCustomerInfoDetail(params) {\r\n    return request({\r\n        url: `${service}/customer/info/getCustomerInfoDetail`,\r\n        method: 'get',\r\n        params\r\n    })\r\n}\r\n\r\n//删除客户信息\r\nexport function deleteCustomerInfo(params) {\r\n    return request({\r\n        url: `${service}/customer/info/deleteCustomerInfo`,\r\n        method: 'get',\r\n        params\r\n    })\r\n}\r\n// 获取客户统计数量\r\nexport function getCustomerNumber(data) {\r\n    return request({\r\n        url: `${service}/customer/info/getCustomerNumber`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n// 原药：实物、折百信息\r\nexport function logCustomerHistoryLibrary(data) {\r\n    return request({\r\n        url: `${service}/order/logCustomerHistoryLibrary`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n// 根据客户名称模糊查询客户相关信息\r\nexport function getCustomerInfo(data) {\r\n    return request({\r\n        url: `${service}/customer/info/getCustomerInfoByCustomerNameFuzzy`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n// 根据税号进行企业信息核验\r\nexport function getEnterpriseInfo(data) {\r\n    return request({\r\n        url: `${service}/customer/info/getEnterpriseInfo`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}\r\n\r\n// 根据客户名称查询客户授信额度信息\r\nexport function getCustomerCredit(data) {\r\n    return request({\r\n        url: `${service}/customer/info/getCustomerCredit`,\r\n        method: 'post',\r\n        data\r\n    })\r\n}"],"sourceRoot":""}