{"version":3,"sources":["webpack:///./src/views/Program/ProgramDesign.vue?da75","webpack:///./src/views/Program/Wording/WordingPreview.vue?3501","webpack:///./src/hooks/Program/useUploadDraw.ts","webpack:///./src/views/Program/Wording/WordingPreview.vue","webpack:///./src/views/Program/Wording/WordingPreview.vue?6834","webpack:///./src/views/Program/CombinabilitySetting/components/DefaultCombinabilityRuleModal.vue","webpack:///./src/views/Program/CombinabilitySetting/components/DefaultCombinabilityRuleModal.vue?067f","webpack:///./src/views/Program/ProgramDesign.vue","webpack:///./src/views/Program/ProgramDesign.vue?c02a","webpack:///./src/hooks/Program/useBudgetCheck.ts","webpack:///./src/views/Program/CombinabilitySetting/components/DefaultCombinabilityRuleModal.vue?a374","webpack:///./src/views/Program/ProgramDesign.vue?a98c","webpack:///./src/views/Program/Wording/WordingPreview.vue?baea"],"names":["_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","key","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","render","_ctx","_cache","$props","$setup","$data","$options","_component_Breadcrumb","_component_Navbar","_component_a_button","_component_router_view","_component_a_anchor_link","_component_a_anchor","_component_WordingPreview","_component_DefaultCominabilityRuleModal","dataSource","name","isProgramDesign","navArr","activeKey","$event","onClick","handlePreview","default","_","type","handleSaveProgram","handleSubmit","displayDefaultCombinabilityRule","handleResetCombinability","disabled","hasCurrentProgramSaved","saveCombinabilitySetting","togglePosition","args","style","top","scrollTop","isToggle","handleAnchorClick","display","href","title","$store","state","pgmCategory","length","pgmData","businessUnit","selected","offer","item","offerTypeName","precondition","wordingpreviewvisible","visiblePreview","programStatusKey","visible","defaultCominabilityRuleModalVisible","id","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_component_a_modal","_component_a_upload_dragger","_component_a_drawer","width","onCancel","handleClose","footer","activeWording","handleWording","handleInitialWordingDownload","innerHTML","previewHtml","displayUploadWording","handleUploadWording","handleUpdatedWordingDownload","disabledButton","handleCompareWording","fileToDisplay","downloadThisFile","fileUrl","fileName","programStatus","handleDel","onClose","handleCloseUpload","fileList","headers","accept","onReject","handleWrongFileType","handelBeforeUpload","action","baseURL","programId","initVisible","onOk","handleOk","zIndex","selectedType","useUploadDraw","init","store","handleUpload","info","file","status","console","log","message","success","value","error","Authorization","typeMap","0","1","2","props","Boolean","String","setup","context","getParams","lang","urlValidPeriod","params","then","res","allowedType","includes","listItem","document","getElementsByClassName","classList","add","emit","sessionStorage","setItem","JSON","stringify","window","open","location","origin","isShowEdit","acitve","handleDownload","downloadElement","createElement","body","appendChild","click","removeChild","blobDownload","url","image","__exports__","__props","emptyStr","pdfSrc","download","URL","createObjectURL","data","src","frameborder","height","components","Navbar","WordingPreview","DefaultCominabilityRuleModal","route","router","path","isCombinability","customEmit","useEventbus","currentProgramId","currentProgramStatus","useNavBar","getTabStatus","programAllStatus","useBudgetCheck","originPgmData","commit","query","pgmId","program","dispatch","checkFaDate","Object","keys","fa","fa_buy_down","periodArr","eligibility","period","tableCell","tableCellSelect","filter","forEach","ATTR","val","TO","FROM","saveAsync","resolve","reject","programCode","requireNewCode","confirm","content","usingNewCode","Promise","push","setTimeout","reload","catch","e","cancelText","validationMeasure","incentive","undefined","groupTable","tableCol","some","col","indexOf","vehicleLicense","validationInsuranceMeasureTitles","titles","Set","group","has","checkProgramDataChangeEffectComb","changedFlag","newPgmData","originOffer","newOffer","originOfferKeys","newOfferKeys","originPeriod","newPeriod","originPeriodAttrFromToValue","map","newPeriodAttrFromToValue","i","originValue","newValue","originVehicle","vehicle","newVehicle","originVehicleGroup","newVehicleGroup","originVehicleGroupBrandMakeTypeClassValue","join","newVehicleGroupBrandMakeTypeClassValue","j","originVehicleGroupValue","newVehicleGroupValue","originVehicleGroupChildren","children","newVehicleGroupChildren","originVehicleGroupChildrenBrandMakeTypeClassValue","newVehicleGroupChildrenBrandMakeTypeClassValue","k","originVehicleGroupChildrenValue","newVehicleGroupChildrenValue","originCustomer","customer","newCustomer","originCustomerGroup","newCustomerGroup","originCustomerGroupCustomerType","newCustomerGroupCustomerType","originIncentive","newIncentive","originIncentiveGroup","newIncentiveGroup","originIncentiveGroupTableCol","originIncentiveGroupTableCell","newIncentiveGroupTableCol","newIncentiveGroupTableCell","slice","originTableCol","newTableCol","originTableColId","newTableColId","originIncentiveGroupBrandMakeTypeClassValue","newIncentiveGroupBrandMakeTypeClassValue","originIncentiveGroupValue","newIncentiveGroupValue","originIncentiveGroupChildren","newIncentiveGroupChildren","originIncentiveGroupChildrenBrandMakeTypeClassValue","newIncentiveGroupChildrenBrandMakeTypeClassValue","m","originIncentiveGroupChildrenValue","newIncentiveGroupChildrenValue","combinability","parameter","icon","ExclamationCircleOutlined","okText","saveProgram","programNameCN","programName","bgcolor","budgetShowFlag","budgetPeriodFrom","budgetPeriodTo","dealer","every","isCheckoutFa","isCheckoutFaBuyDown","handleScroll","documentElement","link","preventDefault","srcolls","getElementById","scrollIntoView","handleParameter","handleEditWording","addEventListener","pgmCombinability","generateBudget","code","jump","checkBudgetExist","design","to","from"],"mappings":"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","file":"js/chunk-8918fe64.304d08fa.js","sourcesContent":["import { resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, vShow as _vShow, normalizeStyle as _normalizeStyle, withDirectives as _withDirectives, renderList as _renderList, Fragment as _Fragment, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"program-design\" }\nconst _hoisted_2 = { class: \"bg-fff p-l-r-10 m-b-10 header-nav\" }\nconst _hoisted_3 = { class: \"flex-div justify-b\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"Preview\")\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\"Submit\")\nconst _hoisted_8 = { key: 1 }\nconst _hoisted_9 = /*#__PURE__*/_createTextVNode(\"Default Combinability Rule\")\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\"Reset\")\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-zhankai f-r\" }, null, -1)\nconst _hoisted_13 = [\n _hoisted_12\n]\nconst _hoisted_14 = { class: \"position-wrap\" }\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-zhankai f-r cursor-p\" }, null, -1)\nconst _hoisted_16 = [\n _hoisted_15\n]\nconst _hoisted_17 = { key: 0 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Breadcrumb = _resolveComponent(\"Breadcrumb\")!\n const _component_Navbar = _resolveComponent(\"Navbar\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_a_anchor_link = _resolveComponent(\"a-anchor-link\")!\n const _component_a_anchor = _resolveComponent(\"a-anchor\")!\n const _component_WordingPreview = _resolveComponent(\"WordingPreview\")!\n const _component_DefaultCominabilityRuleModal = _resolveComponent(\"DefaultCominabilityRuleModal\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_Breadcrumb, {\n dataSource: [{ name: _ctx.isProgramDesign ? 'Program Design' : 'Combinability Set Up' }]\n }, null, 8, [\"dataSource\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_Navbar, {\n navArr: _ctx.navArr,\n activeKey: _ctx.activeKey,\n \"onUpdate:activeKey\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.activeKey) = $event))\n }, null, 8, [\"navArr\", \"activeKey\"]),\n (_ctx.isProgramDesign)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(_component_a_button, {\n class: \"m-l-10\",\n onClick: _ctx.handlePreview\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"m-l-10\",\n onClick: _ctx.handleSaveProgram\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n class: \"m-l-10\",\n onClick: _ctx.handleSubmit\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]))\n : (_ctx.isCombinability)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createVNode(_component_a_button, {\n class: \"m-l-10\",\n onClick: _ctx.displayDefaultCombinabilityRule\n }, {\n default: _withCtx(() => [\n _hoisted_9\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n class: \"m-l-10\",\n onClick: _ctx.handleResetCombinability,\n disabled: !_ctx.hasCurrentProgramSaved\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"m-l-10\",\n onClick: _ctx.saveCombinabilitySetting,\n disabled: !_ctx.hasCurrentProgramSaved\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createVNode(_component_router_view),\n (_ctx.isProgramDesign)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _withDirectives(_createElementVNode(\"p\", {\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.togglePosition && _ctx.togglePosition(...args))),\n class: \"fixed-icon\",\n style: _normalizeStyle({ top: _ctx.scrollTop > 235 ? 0 : '235px' })\n }, _hoisted_13, 4), [\n [_vShow, _ctx.isToggle]\n ]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_a_anchor, {\n onClick: _ctx.handleAnchorClick,\n style: _normalizeStyle({ display: _ctx.isToggle ? 'none' : 'block' })\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"p\", {\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.togglePosition && _ctx.togglePosition(...args))),\n class: \"expand-icon\"\n }, _hoisted_16),\n _createVNode(_component_a_anchor_link, {\n href: \"#basicInfo\",\n title: \"Basic Information\"\n }),\n _createVNode(_component_a_anchor_link, {\n href: \"#Eligibility\",\n title: \"Eligibility\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_anchor_link, {\n href: \"#Period\",\n title: \"Period\"\n }),\n _createVNode(_component_a_anchor_link, {\n href: \"#Dealer\",\n title: \"Dealer\"\n }),\n _createVNode(_component_a_anchor_link, {\n href: \"#vehicle\",\n title: \"Vehicle\"\n }),\n _createVNode(_component_a_anchor_link, {\n href: \"#local\",\n title: \"Local Registration\"\n })\n ]),\n _: 1\n }),\n _createVNode(_component_a_anchor_link, {\n href: \"#Customer\",\n title: \"Customer\"\n }),\n _createVNode(_component_a_anchor_link, {\n href: \"#Quota\",\n title: \"Quota\"\n }),\n (\n _ctx.$store.state.pgmCategory.length > 0 &&\n _ctx.$store.state.pgmData &&\n _ctx.$store.state.pgmData.businessUnit &&\n _ctx.$store.state.pgmData.businessUnit.selected\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.$store.state.pgmData.offer, (item, key) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: key }, [\n (key === 'fa' && item)\n ? (_openBlock(), _createBlock(_component_a_anchor_link, {\n key: 0,\n href: \"#fa\",\n title: \"F&A\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_anchor_link, {\n href: \"#Financing\",\n title: \"Financing\"\n }),\n _createVNode(_component_a_anchor_link, {\n href: \"#Finance\",\n title: \"FL with Balloon\"\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (key === 'fa_buy_down' && item)\n ? (_openBlock(), _createBlock(_component_a_anchor_link, {\n key: 1,\n href: \"#fa_buy_down\",\n title: \"F&A Buy Down\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_anchor_link, {\n href: \"#Financing\",\n title: \"Financing\"\n }),\n _createVNode(_component_a_anchor_link, {\n href: \"#Finance\",\n title: \"FL with Balloon\"\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (item && key !== 'fa' && key !== 'fa_buy_down')\n ? (_openBlock(), _createBlock(_component_a_anchor_link, {\n key: 2,\n href: `#${key}`,\n title: `${item.offerTypeName} Incentive Offer Group`\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_anchor_link, {\n href: `#${key}precondition`,\n title: \"Pre-condition\"\n }, null, 8, [\"href\"]),\n _createVNode(_component_a_anchor_link, {\n href: `#${key}ranking`,\n title: \"Ranking Criteria\"\n }, null, 8, [\"href\"]),\n _createVNode(_component_a_anchor_link, {\n href: `#${key}incentiveAmount`,\n title: \"Incentive / unit\"\n }, null, 8, [\"href\"]),\n _createVNode(_component_a_anchor_link, {\n href: `#${key}vehicleLicense`,\n title: \"Vehicle License\"\n }, null, 8, [\"href\"]),\n _createVNode(_component_a_anchor_link, {\n href: `#${key}notes`,\n title: \"Notes\"\n }, null, 8, [\"href\"]),\n (item.precondition.length > 0)\n ? (_openBlock(), _createBlock(_component_a_anchor_link, {\n key: 0,\n href: `#${key}formula`,\n title: \"Formula\"\n }, null, 8, [\"href\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_anchor_link, {\n href: `#${key}claimingProcess`,\n title: \"Claiming Process\"\n }, null, 8, [\"href\"]),\n _createVNode(_component_a_anchor_link, {\n href: `#${key}remarks`,\n title: \"Remarks\"\n }, null, 8, [\"href\"]),\n _createVNode(_component_a_anchor_link, {\n href: `#${key}attachment`,\n title: \"Attachment\"\n }, null, 8, [\"href\"])\n ]),\n _: 2\n }, 1032, [\"href\", \"title\"]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"onClick\", \"style\"])\n ], 512), [\n [_vShow, !_ctx.isToggle]\n ])\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.visiblePreview)\n ? (_openBlock(), _createBlock(_component_WordingPreview, {\n key: 1,\n wordingpreviewvisible: _ctx.visiblePreview,\n \"onUpdate:wordingpreviewvisible\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.visiblePreview) = $event)),\n \"program-status\": _ctx.$store.state.pgmData.programStatusKey\n }, null, 8, [\"wordingpreviewvisible\", \"program-status\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.defaultCominabilityRuleModalVisible)\n ? (_openBlock(), _createBlock(_component_DefaultCominabilityRuleModal, {\n key: 0,\n visible: _ctx.defaultCominabilityRuleModalVisible,\n \"onUpdate:visible\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.defaultCominabilityRuleModalVisible) = $event))\n }, null, 8, [\"visible\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = { class: \"p-10 m-t-10\" }\nconst _hoisted_2 = {\n class: \"flex-div m-b-20\",\n style: {\"border-bottom\":\"1px solid #f0f0f0\"}\n}\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"Internal Wording EN\")\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"External Wording EN\")\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"External Wording CN\")\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"span\", { style: {\"flex\":\"1\"} }, null, -1)\nconst _hoisted_7 = { class: \"preview-wrapper\" }\nconst _hoisted_8 = {\n id: \"preview-box\",\n class: \"preview-wrapper--box\"\n}\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"h1\", { class: \"large-font-size p-b-8\" }, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"sign-line\" }),\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"m-l-10\" }, \"Initial Wording\")\n], -1)\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"span\", null, \"Initial Wording generated automatically accroding to Parameters\", -1)\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\"Download Initial Wording\")\nconst _hoisted_12 = [\"innerHTML\"]\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"preview-vertical--line\" }, null, -1)\nconst _hoisted_14 = { class: \"flex-div--vertical\" }\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"h1\", { class: \"large-font-size p-b-8\" }, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"sign-line\" }),\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"m-l-10\" }, \"Updated Wording\")\n], -1)\nconst _hoisted_16 = { class: \"preview-buttons\" }\nconst _hoisted_17 = /*#__PURE__*/_createTextVNode(\"Upload Wording\")\nconst _hoisted_18 = /*#__PURE__*/_createTextVNode(\"Download Wording\")\nconst _hoisted_19 = /*#__PURE__*/_createTextVNode(\"Compare Wording\")\nconst _hoisted_20 = {\n key: 1,\n class: \"view-file\"\n}\nconst _hoisted_21 = /*#__PURE__*/_createTextVNode(\"Close\")\nconst _hoisted_22 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"upload-wrap\" }, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-CloudUpload1 icon-upload\" }),\n /*#__PURE__*/_createElementVNode(\"p\", null, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"ant-upload-hint\" }, \"Drag and drop to upload or\"),\n /*#__PURE__*/_createElementVNode(\"a\", { class: \"m-l-10\" }, \"browse for files\")\n ])\n], -1)\nconst _hoisted_23 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"upload-warning\" }, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-tips\" }),\n /*#__PURE__*/_createElementVNode(\"span\", null, \"Upload will replace the existed file.\")\n], -1)\nconst _hoisted_24 = { class: \"draw-bm\" }\nconst _hoisted_25 = /*#__PURE__*/_createTextVNode(\"Cancel\")\nconst _hoisted_26 = /*#__PURE__*/_createTextVNode(\"Submit\")\nconst _hoisted_27 = /*#__PURE__*/_createTextVNode(\" This will be initialize your edited \")\nconst _hoisted_28 = /*#__PURE__*/_createTextVNode(\", please confirm to continue. \")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n const _component_a_upload_dragger = _resolveComponent(\"a-upload-dragger\")!\n const _component_a_drawer = _resolveComponent(\"a-drawer\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_modal, {\n visible: _ctx.wordingpreviewvisible,\n width: \"75%\",\n onCancel: _ctx.handleClose\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"back\",\n onClick: _ctx.handleClose\n }, {\n default: _withCtx(() => [\n _hoisted_21\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_a_button, {\n class: \"f-l m-b-10 m-r-10\",\n type: _ctx.activeWording === 0 ? 'primary' : 'default',\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.handleWording(0)))\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }, 8, [\"type\"]),\n _createVNode(_component_a_button, {\n class: \"m-r-10 f-l m-b-10\",\n type: _ctx.activeWording === 1 ? 'primary' : 'default',\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.handleWording(1)))\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"type\"]),\n _createVNode(_component_a_button, {\n class: \"f-l m-b-10\",\n type: _ctx.activeWording === 2 ? 'primary' : 'default',\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.handleWording(2)))\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"type\"]),\n _hoisted_6\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n _createElementVNode(\"div\", null, [\n _hoisted_10,\n _createVNode(_component_a_button, {\n onClick: _ctx.handleInitialWordingDownload,\n style: {\"margin-bottom\":\"5px\",\"margin-left\":\"200px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _createElementVNode(\"div\", {\n innerHTML: _ctx.previewHtml,\n id: \"preview-box-com\"\n }, null, 8, _hoisted_12)\n ]),\n _hoisted_13,\n _createElementVNode(\"div\", _hoisted_14, [\n _hoisted_15,\n _createElementVNode(\"div\", _hoisted_16, [\n (_ctx.displayUploadWording())\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n onClick: _ctx.handleUploadWording,\n class: \"m-r-10 f-l m-b-10\"\n }, {\n default: _withCtx(() => [\n _hoisted_17\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_button, {\n onClick: _ctx.handleUpdatedWordingDownload,\n class: \"m-r-10 f-l m-b-10\",\n disabled: _ctx.disabledButton\n }, {\n default: _withCtx(() => [\n _hoisted_18\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"]),\n _createVNode(_component_a_button, {\n onClick: _ctx.handleCompareWording,\n class: \"m-r-10 f-l m-b-10\",\n disabled: _ctx.disabledButton\n }, {\n default: _withCtx(() => [\n _hoisted_19\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"]),\n (_ctx.fileToDisplay.fileName)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [\n _createElementVNode(\"span\", {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.downloadThisFile(_ctx.fileToDisplay.fileUrl))),\n class: \"cursor-p\"\n }, _toDisplayString(_ctx.fileToDisplay.fileName), 1),\n (_ctx.programStatus !== 'Released')\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"font_family icon-guanbi m-l-10 cursor-p\",\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.handleDel && _ctx.handleDel(...args)))\n }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onCancel\"]),\n _createVNode(_component_a_drawer, {\n title: \"Updated Wording\",\n width: 500,\n visible: _ctx.visible,\n onClose: _ctx.handleCloseUpload\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_upload_dragger, {\n fileList: _ctx.fileList,\n \"onUpdate:fileList\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.fileList) = $event)),\n name: \"file\",\n headers: _ctx.headers,\n accept: \".pdf, .docx\",\n onReject: _ctx.handleWrongFileType,\n \"before-upload\": _ctx.handelBeforeUpload,\n action: `${_ctx.baseURL}/pgapi/program/wording/upload_wording?programId=${\n _ctx.$store.state.pgmData.programId\n }&type=${_ctx.activeWording === 0 ? 'Internal' : 'External'}&lang=${\n _ctx.activeWording === 2 ? 'cn' : 'en'\n }`\n }, {\n default: _withCtx(() => [\n _hoisted_22\n ]),\n _: 1\n }, 8, [\"fileList\", \"headers\", \"onReject\", \"before-upload\", \"action\"]),\n _hoisted_23,\n _createElementVNode(\"div\", _hoisted_24, [\n _createVNode(_component_a_button, {\n style: {\"margin-right\":\"8px\"},\n onClick: _ctx.handleCloseUpload\n }, {\n default: _withCtx(() => [\n _hoisted_25\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleCloseUpload\n }, {\n default: _withCtx(() => [\n _hoisted_26\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onClose\"])\n ]),\n _createVNode(_component_a_modal, {\n visible: _ctx.initVisible,\n \"onUpdate:visible\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.initVisible) = $event)),\n title: \"Tips\",\n onOk: _ctx.handleOk,\n zIndex: 1001\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"p\", null, [\n _hoisted_27,\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.selectedType), 1),\n _hoisted_28\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onOk\"])\n ], 64))\n}","import { ref } from \"vue\";\nimport { message } from \"ant-design-vue\";\nimport { FileInfo } from \"@/types\";\nimport { useStore } from \"vuex\";\nconst useUploadDraw = (init: Function) => {\n const store = useStore();\n const visible = ref(false);\n const fileList = ref([]);\n const handleUpload = (info: FileInfo) => {\n if (info.file.status !== \"uploading\") {\n console.log(info.file, info.fileList);\n }\n if (info.file.status === \"done\") {\n // 上传文件成功\n message.success(`${info.file.name} file uploaded successfully`);\n visible.value = true;\n } else if (info.file.status === \"error\") {\n message.error(`${info.file.name} file upload failed.`);\n }\n };\n const headers = {\n Authorization: store.state.Authorization,\n };\n const handleCloseUpload = () => {\n visible.value = false;\n fileList.value = [];\n init();\n };\n return {\n visible,\n fileList,\n handleUpload,\n headers,\n handleCloseUpload,\n };\n};\nexport default useUploadDraw;\n","\nimport { defineComponent, onMounted, ref, computed, nextTick } from \"vue\";\nimport {\n wordingPreview,\n wordingInit,\n getReplacedWordingPdf,\n deleteReplacedWordingPdf,\n downloadDocxPdfWording,\n} from \"@/API/program\";\nimport { useStore } from \"vuex\";\nimport useUploadDraw from \"@/hooks/Program/useUploadDraw\";\nimport { baseURL } from \"@/API\";\nimport { message } from \"ant-design-vue\";\nimport blobDownload from \"@/utils/blobDownload\";\nimport { useRoute } from \"vue-router\";\nimport { downloadFromUrl } from \"@/utils/payment/downloadFile\";\ninterface FileItem {\n uid: string;\n name?: string;\n status?: string;\n response?: string;\n url?: string;\n}\n\ninterface FileInfo {\n file: FileItem;\n fileList: FileItem[];\n}\n\nconst typeMap = {\n 0: \"internal wording_EN\",\n 1: \"external wording_EN\",\n 2: \"external wording_CN\",\n};\nexport default defineComponent({\n name: \"WordingPreview\",\n props: {\n wordingpreviewvisible: Boolean,\n programStatus: {\n type: String,\n default: \"\",\n },\n },\n setup(props, context) {\n const store = useStore();\n const route = useRoute();\n const previewHtml = ref();\n const activeWording = ref(0);\n const fileName = ref(\"\");\n const getParams = () => {\n return {\n programId: store.state.pgmData.programId,\n type: activeWording.value === 0 ? \"Internal\" : \"External\",\n lang: activeWording.value === 2 ? \"cn\" : \"en\",\n };\n };\n const disabledButton = computed(() => {\n return fileName.value === \"\" ? true : false;\n });\n const fileToDisplay = ref({\n fileName: \"\",\n fileUrl: \"\",\n lang: \"\",\n programId: \"\",\n type: \"\",\n urlValidPeriod: \"\",\n });\n const init = () => {\n const params = getParams();\n wordingPreview({ params: params }).then((res) => {\n previewHtml.value = res;\n });\n getReplacedWordingPdf({ params: params }).then((res) => {\n fileName.value = res !== null ? res.fileName : \"\";\n });\n downloadDocxPdfWording({ params: params }).then((res) => {\n if (res) {\n fileToDisplay.value = res;\n } else {\n fileToDisplay.value = {\n fileName: \"\",\n fileUrl: \"\",\n lang: \"\",\n programId: \"\",\n type: \"\",\n urlValidPeriod: \"\",\n };\n }\n });\n };\n const { visible, fileList, headers, handleCloseUpload } =\n useUploadDraw(init);\n const handleUpload = (info: FileInfo) => {\n if (info.file.status !== \"uploading\") {\n console.log(info.file, info.fileList);\n }\n if (info.file.status === \"done\") {\n message.success(`${info.file.name} file uploaded successfully`);\n fileName.value = info.file.name ? info.file.name : \"\";\n } else if (info.file.status === \"error\") {\n message.error(`${info.file.name} file upload failed.`);\n }\n };\n const handleWrongFileType = () => {\n message.error(\"Upload failed. Format must be DOCX or PDF\");\n };\n\n const handelBeforeUpload = (file: any) => {\n fileList.value = [file];\n const allowedType = [\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n \"application/pdf\",\n ];\n if (allowedType.includes(file.type)) {\n return true;\n } else {\n // ant-upload-list-item ant-upload-list-item-error\n message.error(\"Upload failed. Format must be DOCX or PDF\");\n nextTick(() => {\n const listItem = document.getElementsByClassName(\n \"ant-upload-list-item\"\n )[0];\n listItem.classList.add(\"ant-upload-list-item-error\");\n });\n return false;\n }\n };\n\n const handleClose = () => {\n context.emit(\"update:wordingpreviewvisible\", false);\n };\n // const handleEditWording = () => {\n // const params = getParams();\n // sessionStorage.setItem(\"params\", JSON.stringify(params));\n // window.open(`${window.location.origin}/#/wordingedit`);\n // };\n // wording对比\n const handleCompareWording = () => {\n const params = getParams();\n sessionStorage.setItem(\"params\", JSON.stringify(params));\n window.open(`${window.location.origin}/#/wordingcompare`);\n };\n const isShowEdit = computed(() => {\n if (activeWording.value < 3) {\n if (\n activeWording.value === 0 &&\n store.state.pgmData.programStatusKey === \"Saved\"\n ) {\n return true;\n } else if (\n activeWording.value !== 0 &&\n (store.state.pgmData.programStatusKey !== \"SalesrequestCancel\" ||\n store.state.pgmData.programStatusKey !== \"Released\" ||\n store.state.pgmData.programStatusKey !== \"Cancelled\" ||\n store.state.pgmData.programStatusKey !== \"SalesSubmitted\")\n ) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n });\n const handleWording = (acitve: number) => {\n activeWording.value = acitve;\n init();\n };\n const handleDownload = () => {\n const params = getParams();\n getReplacedWordingPdf({ params: params }).then((res) => {\n if (res !== null) {\n const downloadElement = document.createElement(\"a\");\n downloadElement.href = res.fileUrl;\n document.body.appendChild(downloadElement);\n downloadElement.click();\n document.body.removeChild(downloadElement);\n }\n message.success(\"Download request submit successful.\");\n });\n };\n // 点击删除文件名\n const handleDel = () => {\n const params = getParams();\n deleteReplacedWordingPdf({ params: params }).then(() => {\n message.success(\"Delete Successed!\");\n // fileName.value = \"\";\n fileToDisplay.value.fileName = \"\";\n });\n };\n const handleUpdatedWordingDownload = () => {\n const params = getParams();\n blobDownload({\n url: \"/pgapi/program/wording/preview_pdf\",\n params: { ...params, image: false },\n });\n };\n const handleInitialWordingDownload = () => {\n const params = getParams();\n blobDownload({\n url: \"/pgapi/program/wording/preview_original_docx\",\n params: { ...params, image: false },\n });\n };\n\n const initVisible = ref(false);\n const selectedType = computed(() => typeMap[activeWording.value]);\n // const handleInitializeWording = () => {\n // initVisible.value = true;\n // };\n\n const handleOk = () => {\n const params = getParams();\n wordingInit(params).then(() => {\n initVisible.value = false;\n message.success(`${selectedType.value} initialized successfully!`);\n });\n };\n\n const handleUploadWording = () => {\n //TODO\n visible.value = true;\n };\n\n const downloadThisFile = (url: string) => {\n downloadFromUrl(url);\n };\n\n onMounted(() => {\n init();\n });\n\n const displayUploadWording = () => {\n if (activeWording.value === 0) {\n if ([\"Saved\"].includes(props.programStatus)) {\n return true;\n } else {\n return false;\n }\n } else {\n if (\n [\n \"Saved\",\n \"SalesSubmitted\",\n \"Confirmed\",\n \"Submitted\",\n \"Approved\",\n ].includes(props.programStatus)\n ) {\n return true;\n } else {\n return false;\n }\n }\n };\n return {\n previewHtml,\n handleClose,\n // handleEditWording,\n handleCompareWording,\n baseURL,\n headers,\n activeWording,\n handleWording,\n handleCloseUpload,\n handleUpload,\n fileList,\n visible,\n isShowEdit,\n handleDownload,\n fileName,\n handleDel,\n handleUpdatedWordingDownload,\n handleInitialWordingDownload,\n // handleInitializeWording,\n handleOk,\n selectedType,\n initVisible,\n handleUploadWording,\n disabledButton,\n handleWrongFileType,\n handelBeforeUpload,\n fileToDisplay,\n downloadThisFile,\n displayUploadWording,\n };\n },\n});\n","import { render } from \"./WordingPreview.vue?vue&type=template&id=2db47384&ts=true\"\nimport script from \"./WordingPreview.vue?vue&type=script&lang=ts\"\nexport * from \"./WordingPreview.vue?vue&type=script&lang=ts\"\n\nimport \"./WordingPreview.vue?vue&type=style&index=0&id=2db47384&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"default-modal-content\" }\nconst _hoisted_2 = /*#__PURE__*/_createTextVNode(\"Download\")\nconst _hoisted_3 = [\"src\"]\n\nimport { ref } from 'vue';\nimport { viewCombinabilityDocument } from '@/API/program';\nimport blobDownload from '@/utils/blobDownload';\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst emptyStr = ' ';\n\nconst pdfSrc = ref('');\n\nviewCombinabilityDocument({ download: false }).then((res: any) => {\n pdfSrc.value = `${URL.createObjectURL(res.data)}#toolbar=0`;\n});\n\nconst handleDownload = () => {\n blobDownload({ url: '/pgapi/program/combinability/document/view', params: { download: true } });\n};\n\nreturn (_ctx: any,_cache: any) => {\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n\n return (_openBlock(), _createBlock(_component_a_modal, {\n class: \"default-modal\",\n visible: _ctx.visible,\n \"onUpdate:visible\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.visible) = $event)),\n footer: null,\n width: \"900px\",\n title: emptyStr\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_a_button, {\n class: \"m-l-10\",\n onClick: handleDownload\n }, {\n default: _withCtx(() => [\n _hoisted_2\n ]),\n _: 1\n }),\n _createElementVNode(\"iframe\", {\n src: pdfSrc.value,\n frameborder: \"0\",\n width: \"800px\",\n height: \"680px\"\n }, null, 8, _hoisted_3)\n ])\n ]),\n _: 1\n }, 8, [\"visible\"]))\n}\n}\n\n})","import script from \"./DefaultCombinabilityRuleModal.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./DefaultCombinabilityRuleModal.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./DefaultCombinabilityRuleModal.vue?vue&type=style&index=0&id=92ebf1e4&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\nimport { defineComponent, ref, onMounted, provide, watch, reactive, computed, createVNode } from 'vue';\nimport { ExclamationCircleOutlined } from '@ant-design/icons-vue';\nimport { NavbarProps } from '@/API/types';\nimport Navbar from './components/NavigationBar.vue';\nimport WordingPreview from './Wording/WordingPreview.vue';\nimport {\n programTemplate,\n pgapiProgramPost,\n programProgramId,\n isWordingUploadAll,\n resetCombinability,\n storeCombinability\n} from '@/API/program';\nimport { useStore } from 'vuex';\nimport { AutoTableCellProps, AutoTableColProps } from '@/types';\nimport { formatPgmCategory, formatRequestData, getCategory } from '@/utils';\nimport { useRoute, useRouter, onBeforeRouteLeave } from 'vue-router';\nimport { budgetGenerate } from '@/API/program';\nimport useEventbus from '@/hooks/claim/useEventbus';\nimport { message, Modal } from 'ant-design-vue';\nimport { submitProgram } from '@/API/approve';\nimport { findbudgetExist } from '@/API/budget';\nimport { checkBudgetPeriod as checkBudgetPeriodAPI } from '@/API/program';\nimport useNavBar from '@/hooks/Program/useNavBar';\nimport DefaultCominabilityRuleModal from './CombinabilitySetting/components/DefaultCombinabilityRuleModal.vue';\nimport useBudgetCheck from '@/hooks/Program/useBudgetCheck';\nimport { cloneDeep } from 'lodash';\n\nexport default defineComponent({\n components: {\n Navbar,\n WordingPreview,\n DefaultCominabilityRuleModal\n },\n setup() {\n const store = useStore();\n const route = useRoute();\n const router = useRouter();\n const isProgramDesign = computed(() => route.path === '/programdesign/design');\n const isCombinability = computed(() => route.path === '/programdesign/combinabilitysetting');\n\n const { customEmit } = useEventbus();\n\n const currentProgramId = computed(() => store.state.pgmData.programId);\n const currentProgramStatus = computed(() => store.state.pgmData.programStatusKey);\n const hasCurrentProgramSaved = computed(() => currentProgramStatus.value === 'Saved');\n\n // 导航的数据\n const { activeKey, navArr, changeNavStatus, getTabStatus, programAllStatus } = useNavBar();\n useBudgetCheck(programAllStatus);\n // 是否折叠显示\n const isToggle = ref(true);\n const togglePosition = () => {\n isToggle.value = !isToggle.value;\n };\n\n let originPgmData: any = {};\n\n const init = () => {\n // 需要清掉,不然会有上一个program的内容。那个请求两次的问题,再看看\n store.commit('updatePgmData', {});\n if (route.query?.pgmId) {\n return programProgramId({\n params: { programId: route.query.pgmId }\n }).then((res) => {\n // 更新整个Program大数据\n store.commit('updatePgmData', res);\n originPgmData = cloneDeep(res);\n // 因为category的选择放到了business UUIt的option里面了,选了哪个,才能找到对应的category\n getCategory();\n formatPgmCategory();\n store.dispatch('updateCustomerSelected');\n getTabStatus();\n });\n } else {\n return programTemplate().then((res) => {\n // res.customer = []\n store.commit('updatePgmData', res);\n // 因为category的选择放到了business UUIt的option里面了,选了哪个,才能找到对应的category\n getCategory();\n formatPgmCategory();\n store.dispatch('updateCustomerSelected');\n getTabStatus();\n });\n }\n };\n // 选择FA后。 判断对应F/A application date是否存在\n const checkFaDate = () => {\n if (\n (Object.keys(store.state.pgmData.offer).includes('fa') && store.state.pgmData.offer.fa) ||\n (Object.keys(store.state.pgmData.offer).includes('fa_buy_down') && store.state.pgmData.offer.fa_buy_down)\n ) {\n const periodArr = store.state.pgmData.eligibility.period.tableCell;\n const key = store.state.pgmData.eligibility.period.tableCellSelect.filter(\n (item: { display: string }) => item.display === 'F/A application date'\n )[0].id;\n let isCheckFaDate = false;\n let toDate = '';\n let fromDate = '';\n periodArr.forEach((item: any) => {\n if (item.ATTR.val === key && item.TO.val && item.FROM.val) {\n isCheckFaDate = true;\n toDate = item.TO.val;\n fromDate = item.FROM.val;\n }\n });\n if (isCheckFaDate && toDate && fromDate) {\n return true;\n } else {\n message.error('请选择F/A application date类型下的日期范围');\n return false;\n }\n } else {\n return true;\n }\n };\n const usingNewCode = ref(false);\n // 保存通用program\n const saveAsync = async (resolve: Function, reject: Function, type = '') => {\n const data = await pgapiProgramPost(formatRequestData());\n if (type === 'FAoffer') {\n // 更新是否升级状态\n customEmit('updateupgrade');\n }\n const newCode = data.programCode;\n if (data.requireNewCode) {\n Modal.confirm({\n title: 'Note',\n content: data.programCode + ' program code 可用,是否更新项目编号?',\n onOk() {\n pgapiProgramPost(formatRequestData(), {\n params: { usingNewCode: true }\n })\n .then(() => {\n message.success('Save successfully!');\n if (!route.query.pgmId) {\n router.push({\n path: '/programdesign/design',\n query: {\n pgmId: store.state.pgmData.programId\n }\n });\n setTimeout(() => {\n if (type === 'FAoffer') {\n init().then(() => {\n resolve('success');\n });\n } else {\n resolve('success');\n getTabStatus();\n window.location.reload();\n }\n }, 1);\n } else {\n (type ? Promise.resolve() : init()).then(() => {\n getTabStatus();\n resolve('success');\n });\n }\n\n // if (!route.query.pgmId) {\n // router.push({\n // path: '/programdesign/design',\n // query: {\n // pgmId: store.state.pgmData.programId\n // }\n // });\n // setTimeout(() => {\n // if (type === 'FAoffer') {\n // init().then(() => {\n // resolve('success');\n // });\n // } else {\n // resolve('success');\n // getTabStatus();\n // window.location.reload();\n // }\n // }, 1);\n // } else {\n // (type ? Promise.resolve() : init()).then(() => {\n // getTabStatus();\n // resolve('success');\n // });\n // }\n })\n .catch((e) => {\n reject(e);\n });\n },\n cancelText: 'No',\n onCancel() {\n pgapiProgramPost(formatRequestData(), {\n params: { usingNewCode: false }\n })\n .then(() => {\n message.success('Save successfully!');\n getTabStatus();\n resolve('success');\n })\n .catch((e) => {\n reject(e);\n });\n }\n });\n } else {\n message.success('Save successfully!');\n if (!route.query.pgmId) {\n router.push({\n path: '/programdesign/design',\n query: { pgmId: store.state.pgmData.programId }\n });\n setTimeout(() => {\n if (type === 'FAoffer') {\n init().then(() => {\n resolve('success');\n });\n } else {\n resolve('success');\n getTabStatus();\n window.location.reload();\n }\n }, 1);\n } else {\n (type ? Promise.resolve() : init()).then(() => {\n getTabStatus();\n resolve('success');\n });\n }\n }\n };\n\n const saveFAdata = async (resolve: Function, reject: Function) => {\n const data = await pgapiProgramPost(formatRequestData());\n if (data.requireNewCode) {\n Modal.confirm({\n title: 'Note',\n content: data.programCode + ' program code 可用,是否更新项目编号?',\n onOk() {\n pgapiProgramPost(formatRequestData(), {\n params: { usingNewCode: true }\n })\n .then(() => {\n // 更新是否升级状态\n customEmit('updateupgrade');\n message.success('Save successfully!');\n if (!route.query.pgmId) {\n router.push({\n path: '/programdesign/design',\n query: {\n pgmId: store.state.pgmData.programId\n }\n });\n setTimeout(() => {\n init();\n }, 1);\n } else {\n init();\n }\n resolve('success');\n })\n .catch((e) => {\n reject(e);\n });\n },\n cancelText: 'No',\n onCancel() {\n pgapiProgramPost(formatRequestData(), {\n params: { usingNewCode: false }\n })\n .then(() => {\n message.success('Save successfully!');\n resolve('success');\n })\n .catch((e) => {\n reject(e);\n });\n }\n });\n } else {\n message.success('Save successfully!');\n resolve('success');\n if (!route.query.pgmId) {\n router.push({\n path: '/programdesign/design',\n query: { pgmId: store.state.pgmData.programId }\n });\n // 更新code\n setTimeout(() => {\n init();\n }, 1);\n } else {\n init();\n }\n }\n };\n\n // 验证Measure没有选择\n const validationMeasure = (): boolean => {\n if (Object.keys(store.state.pgmData.offer).length > 0) {\n for (const key in store.state.pgmData.offer) {\n if (store.state.pgmData.offer[key].incentive.length > 0) {\n for (const item of store.state.pgmData.offer[key].incentive) {\n // 如果incentive有空组时, 要跳过\n if (item.groupTable !== undefined) {\n for (const val of item.groupTable) {\n if (val.tableCol.some((col: AutoTableColProps) => col.id.indexOf('Undefined') > -1)) {\n return true;\n }\n }\n }\n }\n }\n if (store.state.pgmData.offer[key].precondition.length > 0) {\n for (const item of store.state.pgmData.offer[key].precondition) {\n if (item.tableCol.some((col: AutoTableColProps) => col.id.indexOf('Undefined') > -1)) {\n return true;\n }\n }\n }\n if (store.state.pgmData.offer[key].vehicleLicense.length > 0) {\n for (const item of store.state.pgmData.offer[key].vehicleLicense) {\n if (item.tableCol.some((col: AutoTableColProps) => col.id.indexOf('Undefined') > -1)) {\n return true;\n }\n }\n }\n }\n }\n return false;\n };\n // 校验Insurance total support amount自定义标题\n const validationInsuranceMeasureTitles = (): boolean => {\n if (!Object.keys(store.state.pgmData.offer).length!) {\n return true;\n }\n for (const key in store.state.pgmData.offer) {\n if (!store.state.pgmData.offer[key].incentive.length) {\n continue;\n }\n for (const item of store.state.pgmData.offer[key].incentive) {\n if (item.groupTable === undefined) {\n continue;\n }\n for (const val of item.groupTable) {\n const titles = new Set();\n for (const col of val.tableCol) {\n if (col.group === 'Insurance total support amount') {\n if (!col.display) return false;\n if (!titles.has(col.display)) {\n titles.add(col.display);\n } else {\n return false;\n }\n }\n }\n }\n }\n }\n return true;\n };\n // 验证from, to不能交叉\n const validationFromTo = (): boolean => {\n if (Object.keys(store.state.pgmData.offer).length > 0) {\n for (const key in store.state.pgmData.offer) {\n if (store.state.pgmData.offer[key].precondition.length > 0) {\n for (const item of store.state.pgmData.offer[key].precondition) {\n for (let coli = 0; coli < item.tableCol.length; coli++) {\n let flagFrom = 0;\n if (item.tableCol[coli].id.indexOf('-to') > -1) {\n for (let celli = 0; celli < item.tableCell.length; celli++) {\n if (\n item.tableCell[celli][item.tableCol[coli].id].val &&\n item.tableCell[celli][item.tableCol[coli].id].val <= flagFrom\n ) {\n return true;\n } else {\n flagFrom = item.tableCell[celli][item.tableCol[coli].id].val;\n }\n }\n }\n }\n }\n }\n }\n }\n return false;\n };\n\n const checkProgramDataChangeEffectComb = () => {\n let changedFlag = false;\n\n const newPgmData = store.state.pgmData;\n // console.log('pgmData origin new', originPgmData, newPgmData);\n // * 1. Offer Type 判断\n const originOffer = originPgmData.offer;\n const newOffer = newPgmData.offer;\n const originOfferKeys = Object.keys(originOffer);\n const newOfferKeys = Object.keys(newOffer);\n if (originOfferKeys.length !== newOfferKeys.length) {\n // offer 长度不同\n changedFlag = true;\n } else {\n // 长度相同 但是内容不同\n changedFlag = newOfferKeys.some((key: string) => !originOfferKeys.includes(key));\n }\n\n // * 2. Eligible Period:增行,删行,(Attribute,From,To)的值\n if (changedFlag) return true;\n const originPeriod = originPgmData.eligibility.period.tableCell;\n const newPeriod = newPgmData.eligibility.period.tableCell.filter((item: any) => {\n return item.ATTR.val !== '' || item.FROM.val !== '' || item.TO.val !== '';\n });\n if (originPeriod.length !== newPeriod.length) {\n // period 长度不同\n changedFlag = true;\n } else {\n // 长度相同 但是 attr from to 的内容不同\n const originPeriodAttrFromToValue = originPeriod.map((item: any) => {\n return `${item.ATTR.val} ${item.FROM.val} ${item.TO.val}`;\n });\n const newPeriodAttrFromToValue = newPeriod.map((item: any) => {\n return `${item.ATTR.val} ${item.FROM.val} ${item.TO.val}`;\n });\n for (let i = 0; i < originPeriodAttrFromToValue.length; i++) {\n const originValue = originPeriodAttrFromToValue[i];\n const newValue = newPeriodAttrFromToValue[i];\n if (originValue !== newValue) {\n changedFlag = true;\n break;\n }\n }\n }\n\n // * 3. Eligible Vehicle:增加Group,删Group,新增行 删除行(Brand, Make,Type Class)的值\n if (changedFlag) return true;\n const originVehicle = originPgmData.eligibility.vehicle;\n const newVehicle = newPgmData.eligibility.vehicle;\n // 判断 group 长度是否相等\n if (originVehicle.length !== newVehicle.length) {\n // vehicle group 长度不同\n changedFlag = true;\n } else {\n for (let i = 0; i < originVehicle.length; i++) {\n const originVehicleGroup = originVehicle[i].tableCell;\n // 过滤掉空行\n const newVehicleGroup = newVehicle[i].tableCell.filter((item: any) => {\n return item['Vehicle.brand'].val.length !== 0;\n });\n if (originVehicleGroup.length !== newVehicleGroup.length) {\n // 每个 vehicle group 中的表格数据 长度不同\n changedFlag = true;\n break;\n } else {\n // 长度相同 但是 brand make typeclass 的内容不同\n const originVehicleGroupBrandMakeTypeClassValue = originVehicleGroup.map((item: any) => {\n return `${item['Vehicle.brand'].val.join(' ')} ${item['Vehicle.make'].val.join(' ')} ${item[\n 'Vehicle.typeClass'\n ].val.join(' ')}`;\n });\n const newVehicleGroupBrandMakeTypeClassValue = newVehicleGroup.map((item: any) => {\n return `${item['Vehicle.brand'].val.join(' ')} ${item['Vehicle.make'].val.join(' ')} ${item[\n 'Vehicle.typeClass'\n ].val.join(' ')}`;\n });\n\n for (let j = 0; j < originVehicleGroup.length; j++) {\n const originVehicleGroupValue = originVehicleGroupBrandMakeTypeClassValue[j];\n const newVehicleGroupValue = newVehicleGroupBrandMakeTypeClassValue[j];\n if (originVehicleGroupValue !== newVehicleGroupValue) {\n changedFlag = true;\n break;\n }\n const originVehicleGroupChildren = originVehicleGroup[j].children;\n const newVehicleGroupChildren = newVehicleGroup[j].children;\n if (originVehicleGroupChildren.length !== newVehicleGroupChildren.length) {\n // 每个 vehicle group 中的表格数据 长度不同\n changedFlag = true;\n break;\n } else {\n // 长度相同 但是 brand make typeclass 的内容不同\n const originVehicleGroupChildrenBrandMakeTypeClassValue = originVehicleGroupChildren.map(\n (item: any) => {\n return `${item['Vehicle.brand'].val.join(' ')} ${item['Vehicle.make'].val.join(' ')} ${item[\n 'Vehicle.typeClass'\n ].val.join(' ')}`;\n }\n );\n const newVehicleGroupChildrenBrandMakeTypeClassValue = newVehicleGroupChildren.map((item: any) => {\n return `${item['Vehicle.brand'].val.join(' ')} ${item['Vehicle.make'].val.join(' ')} ${item[\n 'Vehicle.typeClass'\n ].val.join(' ')}`;\n });\n for (let k = 0; k < originVehicleGroupChildrenBrandMakeTypeClassValue.length; k++) {\n const originVehicleGroupChildrenValue = originVehicleGroupChildrenBrandMakeTypeClassValue[k];\n const newVehicleGroupChildrenValue = newVehicleGroupChildrenBrandMakeTypeClassValue[k];\n if (originVehicleGroupChildrenValue !== newVehicleGroupChildrenValue) {\n changedFlag = true;\n break;\n }\n }\n }\n if (changedFlag) break;\n }\n if (changedFlag) break;\n }\n }\n }\n\n // * 4. Customer: Customer Type的值\n if (changedFlag) return true;\n const originCustomer = originPgmData.customer;\n const newCustomer = newPgmData.customer;\n if (originCustomer.length !== newCustomer.length) {\n // customer group 长度不同\n changedFlag = true;\n } else {\n for (let i = 0; i < originCustomer.length; i++) {\n const originCustomerGroup = originCustomer[i].tableCell;\n // 过滤掉空行\n const newCustomerGroup = newCustomer[i].tableCell.filter((item: any) => {\n return (\n item['Customer.list'].val !== '' ||\n item['Customer.standardContent'].val !== '' ||\n item['Customer.type'].val !== ''\n );\n });\n if (originCustomerGroup.length !== newCustomerGroup.length) {\n // 每一个 customer group 的表格行数 长度不同\n changedFlag = true;\n break;\n } else {\n for (let j = 0; j < originCustomerGroup.length; j++) {\n const originCustomerGroupCustomerType = originCustomerGroup[j]['Customer.type'].val;\n const newCustomerGroupCustomerType = newCustomerGroup[j]['Customer.type'].val;\n if (originCustomerGroupCustomerType !== newCustomerGroupCustomerType) {\n changedFlag = true;\n break;\n }\n }\n if (changedFlag) break;\n }\n }\n }\n\n // * 5. (根据offer来的,可能有多个) Incentive/Unit: 增行,删行,增列,删列,(Brand, Make, Type Class)的值\n if (changedFlag) return true;\n // 遍历所选offer\n for (let i = 0; i < originOfferKeys.length; i++) {\n const originIncentive = originOffer[originOfferKeys[i]].incentive;\n const newIncentive = newOffer[newOfferKeys[i]].incentive;\n if (originIncentive.length !== newIncentive.length) {\n // incentive group 数量不同\n changedFlag = true;\n break;\n } else {\n for (let j = 0; j < originIncentive.length; j++) {\n const originIncentiveGroup = originIncentive[j]?.groupTable?.[0]; //? groupTable 什么情况下会有多个?\n const newIncentiveGroup = newIncentive[j]?.groupTable?.[0]; //? groupTable 什么情况下会有多个?\n if (originIncentiveGroup === undefined && newIncentiveGroup === undefined) break;\n if (originIncentiveGroup === undefined && newIncentiveGroup !== undefined) {\n changedFlag = true;\n break;\n }\n if (originIncentiveGroup !== undefined && newIncentiveGroup === undefined) {\n changedFlag = true;\n break;\n }\n\n const originIncentiveGroupTableCol = originIncentiveGroup.tableCol;\n const originIncentiveGroupTableCell = originIncentiveGroup.tableCell;\n const newIncentiveGroupTableCol = newIncentiveGroup.tableCol;\n // ? 除去最后一行默认添加的空行 可能会出问题,需要考虑新的方式\n let newIncentiveGroupTableCell = [];\n // offer 是 sssc 的情况不需要处理\n if (originOfferKeys[i] === 'sssc') {\n newIncentiveGroupTableCell = newIncentiveGroup.tableCell;\n } else {\n newIncentiveGroupTableCell = newIncentiveGroup.tableCell.slice(0, newIncentiveGroup.tableCell.length - 1);\n }\n\n // 判断列\n if (originIncentiveGroupTableCol.length !== newIncentiveGroupTableCol.length) {\n // 判断列数是否相同\n changedFlag = true;\n break;\n } else {\n // 列数相同,判断列名、顺序是否相同\n const originTableCol = originIncentiveGroupTableCol.map((item: any) => item.id);\n const newTableCol = newIncentiveGroupTableCol.map((item: any) => item.id);\n for (let k = 0; k < originTableCol.length; k++) {\n const originTableColId = originTableCol[k];\n const newTableColId = newTableCol[k];\n if (originTableColId !== newTableColId) {\n changedFlag = true;\n break;\n }\n }\n }\n // 判断行\n if (originIncentiveGroupTableCell.length !== newIncentiveGroupTableCell.length) {\n // 行数是否相同\n changedFlag = true;\n break;\n } else {\n // 长度相同 但是 brand make typeclass 的内容不同\n const originIncentiveGroupBrandMakeTypeClassValue = originIncentiveGroupTableCell.map((item: any) => {\n return `${item['Vehicle.brand']?.val?.join(' ')} ${item['Vehicle.make']?.val?.join(' ')} ${item[\n 'Vehicle.typeClass'\n ]?.val?.join(' ')}`;\n });\n const newIncentiveGroupBrandMakeTypeClassValue = newIncentiveGroupTableCell.map((item: any) => {\n return `${item['Vehicle.brand']?.val?.join(' ')} ${item['Vehicle.make']?.val?.join(' ')} ${item[\n 'Vehicle.typeClass'\n ]?.val?.join(' ')}`;\n });\n\n for (let k = 0; k < originIncentiveGroupTableCell.length; k++) {\n const originIncentiveGroupValue = originIncentiveGroupBrandMakeTypeClassValue[k];\n const newIncentiveGroupValue = newIncentiveGroupBrandMakeTypeClassValue[k];\n if (originIncentiveGroupValue !== newIncentiveGroupValue) {\n changedFlag = true;\n break;\n }\n const originIncentiveGroupChildren = originIncentiveGroupTableCell[k].children;\n const newIncentiveGroupChildren = newIncentiveGroupTableCell[k].children;\n if (originIncentiveGroupChildren && newIncentiveGroupChildren) {\n if (originIncentiveGroupChildren.length !== newIncentiveGroupChildren.length) {\n // 每个 vehicle group 中的表格数据 长度不同\n changedFlag = true;\n break;\n } else {\n //children 长度相同 但是 brand make typeclass 的内容不同\n const originIncentiveGroupChildrenBrandMakeTypeClassValue = originIncentiveGroupChildren.map(\n (item: any) => {\n return `${item['Vehicle.brand']?.val?.join(' ')} ${item['Vehicle.make']?.val?.join(' ')} ${item[\n 'Vehicle.typeClass'\n ]?.val?.join(' ')}`;\n }\n );\n const newIncentiveGroupChildrenBrandMakeTypeClassValue = newIncentiveGroupChildren.map(\n (item: any) => {\n return `${item['Vehicle.brand']?.val?.join(' ')} ${item['Vehicle.make']?.val?.join(' ')} ${item[\n 'Vehicle.typeClass'\n ]?.val?.join(' ')}`;\n }\n );\n if (originIncentiveGroupChildrenBrandMakeTypeClassValue) {\n for (let m = 0; m < originIncentiveGroupChildrenBrandMakeTypeClassValue.length; m++) {\n const originIncentiveGroupChildrenValue = originIncentiveGroupChildrenBrandMakeTypeClassValue[m];\n const newIncentiveGroupChildrenValue = newIncentiveGroupChildrenBrandMakeTypeClassValue[m];\n if (originIncentiveGroupChildrenValue !== newIncentiveGroupChildrenValue) {\n changedFlag = true;\n break;\n }\n }\n }\n }\n } else if (!(!originIncentiveGroupChildren && !newIncentiveGroupChildren)) {\n changedFlag = true;\n break;\n }\n if (changedFlag) break;\n }\n if (changedFlag) break;\n }\n }\n if (changedFlag) break;\n }\n }\n\n console.log('changedFlag', changedFlag);\n return changedFlag;\n };\n\n const handleSaveProgram = () => {\n // 项目未保存状态,直接保存\n if (!hasCurrentProgramSaved.value) {\n saveProgram();\n return;\n }\n // 针对Program Status为Saved的项目,当Combinability Status & Parameter Status均为Draft时,designer在Design页面点击Save按钮,不弹出提示。\n if (programAllStatus.value.combinability === 'Draft' && programAllStatus.value.parameter === 'Draft') {\n saveProgram();\n return;\n }\n // 当Combinability Status 或 Parameter Status不为Draft时,desigenr在Deisgn页面点击Save按钮,需校验\n if (checkProgramDataChangeEffectComb()) {\n Modal.confirm({\n title: 'Tips',\n icon: createVNode(ExclamationCircleOutlined),\n content:\n 'Your current change points may affect the combinability/parameter that has been saved, please check!',\n okText: 'OK',\n cancelText: 'Cancel',\n onOk: () => {\n saveProgram();\n }\n });\n } else {\n saveProgram();\n }\n };\n\n // 监听,更新组件数据到父组件\n const saveProgram: Function = (): Promise => {\n return new Promise((resolve, reject) => {\n // 项目名称\n if (!store.state.pgmData.programNameCN) {\n message.error('项目名称(中文)不能为空!');\n return;\n }\n // 项目英文名\n if (!store.state.pgmData.programName) {\n message.error('Please input Program Name!');\n return;\n }\n customEmit('updateperiod');\n // period有没有报红的\n if (\n store.state.pgmData.eligibility.period.tableCell.some((item: AutoTableCellProps) => item.bgcolor === true)\n ) {\n message.error('Please amend period!');\n return;\n }\n\n // Budget period 必填\n customEmit('updateBudgetPeriod');\n if (\n store.state.pgmData.budgetShowFlag &&\n (!store.state.pgmData.budgetPeriodFrom || !store.state.pgmData.budgetPeriodTo)\n ) {\n message.error('Please amend Budget Period!');\n return;\n }\n //\n customEmit('updatedealer');\n // Dealer一定要选择一个\n if (\n store.state.pgmData.eligibility.dealer.tableCell.every(\n (item: AutoTableCellProps) => item['Dealer.dealerType'].val.length === 0\n )\n ) {\n message.error('Please amend Dealer!');\n return;\n }\n // 验证from, to不能交叉\n // if (validationFromTo()) {\n // message.error('From or To is Error!')\n // return\n // }\n // 判断Measure列表头有没有选择\n if (validationMeasure()) {\n message.error('Please select the Measure');\n return;\n }\n if (!validationInsuranceMeasureTitles()) {\n return;\n }\n customEmit('updatevehicle');\n customEmit('updatecalculator');\n customEmit('updatecustomer');\n customEmit('updatequota');\n customEmit('updateattachement');\n if (!checkFaDate()) {\n return;\n } else {\n customEmit('updatefa');\n }\n const isCheckoutFa = Object.keys(store.state.pgmData.offer).includes('fa');\n const isCheckoutFaBuyDown = Object.keys(store.state.pgmData.offer).includes('fa_buy_down');\n if (isCheckoutFa || isCheckoutFaBuyDown) {\n setTimeout(() => {\n saveAsync(resolve, reject, 'FAoffer');\n }, 1000);\n } else {\n setTimeout(() => {\n saveAsync(resolve, reject);\n }, 1000);\n }\n });\n };\n\n // 注入方法 子组件使用\n provide('updataprogram', saveProgram);\n\n // 滚动条\n const scrollTop = ref();\n // 全局监听滚动条\n const handleScroll = () => {\n scrollTop.value = document.documentElement.scrollTop;\n };\n // 悬浮导航\n const handleAnchorClick = (e: MouseEvent, link: { title: string; href: string }) => {\n // 阻止点击的默认事件修改路由\n e.preventDefault();\n const srcolls = document.getElementById(link.href) as HTMLElement;\n // 滚动时\n srcolls.scrollIntoView(true);\n };\n\n const handleParameter = () => {\n router.push({\n path: '/parametersetup',\n query: {\n pgmId: store.state.pgmData.programId,\n type: 'button'\n }\n });\n };\n\n // preview\n const visiblePreview = ref(false);\n const handlePreview = () => {\n sessionStorage.setItem('previewPgmId', store.state.pgmData.programId);\n visiblePreview.value = true;\n };\n\n const handleEditWording = () => {\n window.open(`${window.location.origin}/#/wordingedit`);\n };\n // wording对比\n const handleCompareWording = () => {\n window.open(`${window.location.origin}/#/wordingcompare`);\n };\n\n const handleSubmit = () => {\n const params = {\n program: [{ id: store.state.pgmData.programId }]\n };\n Modal.confirm({\n title: '提示',\n content: 'Submit for Controlling Approve?',\n onOk() {\n isWordingUploadAll({ programId: store.state.pgmData.programId })\n .then((res) => {\n if (res) {\n return saveProgram();\n } else {\n message.error('Submit failed. Please upload updated wording for internal/external wording');\n return Promise.reject();\n }\n })\n .then(() => {\n return submitProgram(params);\n })\n .then(() => {\n message.success('Submit successfully!');\n });\n },\n onCancel() {\n console.log('Cancel');\n }\n });\n };\n onMounted(() => {\n init();\n // 全局监听scroll-top\n window.addEventListener('scroll', handleScroll);\n });\n\n const defaultCominabilityRuleModalVisible = ref(false);\n const displayDefaultCombinabilityRule = () => {\n defaultCominabilityRuleModalVisible.value = true;\n };\n\n const handleResetCombinability = () => {\n Modal.confirm({\n title: 'Are you sure you want to reset program combinability to default value?',\n okText: 'Yes',\n cancelText: 'No',\n onOk() {\n resetCombinability({ programId: currentProgramId.value }).then((res: any) => {\n store.commit('updatePgmCombinability', res);\n store.commit('updateCombinabilityResetKey');\n message.success('Reset successfully!');\n });\n }\n });\n };\n\n const saveCombinabilitySetting = () => {\n storeCombinability(store.state.pgmCombinability).then(() => {\n getTabStatus();\n message.success('Save successfully!');\n });\n };\n return {\n navArr,\n scrollTop,\n handleAnchorClick,\n saveProgram,\n isToggle,\n togglePosition,\n handleParameter,\n handlePreview,\n visiblePreview,\n handleSubmit,\n handleEditWording,\n handleCompareWording,\n activeKey,\n handleSaveProgram,\n isProgramDesign,\n isCombinability,\n hasCurrentProgramSaved,\n defaultCominabilityRuleModalVisible,\n displayDefaultCombinabilityRule,\n handleResetCombinability,\n saveCombinabilitySetting\n };\n }\n});\n","import { render } from \"./ProgramDesign.vue?vue&type=template&id=7e92cd15&ts=true\"\nimport script from \"./ProgramDesign.vue?vue&type=script&lang=ts\"\nexport * from \"./ProgramDesign.vue?vue&type=script&lang=ts\"\n\nimport \"./ProgramDesign.vue?vue&type=style&index=0&id=7e92cd15&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { useStore } from 'vuex';\nimport { useRouter, onBeforeRouteLeave } from 'vue-router';\nimport { findbudgetExist } from '@/API/budget';\nimport { budgetGenerate } from '@/API/program';\nimport { message } from 'ant-design-vue';\n\nconst useBudgetCheck = (programAllStatus: any) => {\n const store = useStore();\n const router = useRouter();\n\n const generateBudget = () => {\n budgetGenerate(store.state.pgmData.programId).then((res: any) => {\n if (res.code === '0') {\n router.push({\n path: '/budgetinput',\n query: {\n pgmId: store.state.pgmData.programId,\n jump: 'true'\n }\n });\n }\n });\n };\n\n const checkBudgetExist = () => {\n findbudgetExist(store.state.pgmData.programId).then((res) => {\n if (!res) {\n if (programAllStatus.value.design !== 'Saved') {\n message.error('Program must be Saved status!');\n return;\n }\n generateBudget();\n } else {\n router.push({\n path: '/budgetinput',\n query: {\n pgmId: store.state.pgmData.programId,\n jump: 'true'\n }\n });\n }\n });\n };\n\n onBeforeRouteLeave((to, from) => {\n if (to.path === '/budgetinput' && to.query?.jump !== 'true') {\n checkBudgetExist();\n return false;\n }\n });\n};\n\nexport default useBudgetCheck;\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/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/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./DefaultCombinabilityRuleModal.vue?vue&type=style&index=0&id=92ebf1e4&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/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/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ProgramDesign.vue?vue&type=style&index=0&id=7e92cd15&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/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/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WordingPreview.vue?vue&type=style&index=0&id=2db47384&lang=scss\""],"sourceRoot":""}