{"version":3,"sources":["webpack:///./src/views/Planning/components/Upload.vue?a1c0","webpack:///./src/views/Planning/components/EditableView.vue?895c","webpack:///./src/views/Planning/index.vue?6f29","webpack:///./src/assets/images/rv/upload.svg","webpack:///./src/views/Planning/DataPreparation.vue?2c85","webpack:///./src/views/Planning/BasicSetting.vue?e9bd","webpack:///./src/views/Planning/PlanningSimulation/Release.vue?bb18","webpack:///./src/assets/images/closing/start.png","webpack:///./src/views/Planning/directive/clickOutside.ts","webpack:///./src/views/Planning/FinalView.vue?e29a","webpack:///./src/views/Planning/FinalView/tableSecond.vue?632b","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/CurrentYear.vue?e0da","webpack:///./src/views/Planning/components/TagSelector.vue?dca8","webpack:///./src/views/Planning/PlanningSimulation/Adjustment.vue?2721","webpack:///./src/views/Planning/components/MuiltYearPicker.vue?8e5d","webpack:///./src/assets/images/closing sync ^\\.\\/.*\\.png$","webpack:///./src/views/Planning/FinalView/tableFirst.vue?de64","webpack:///./src/views/Planning/index.vue?af14","webpack:///./src/assets/images/closing/upload.png","webpack:///./src/assets/images/closing/checkbox.png","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/CurrentYear/Allocation.vue?86a5","webpack:///./src/assets/images/closing/success.png","webpack:///./src/views/Planning/PlanningSimulation/CentralRegion.vue?1ddb","webpack:///./src/assets/images/closing/loading.png","webpack:///./src/views/Planning/PlanningSimulation/Fleet.vue?2d2d","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/CurrentYear/Calculation.vue?53e8","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/FeatureYear.vue?fa40","webpack:///./src/assets/images/closing/error.png","webpack:///./src/utils/closing/isExcel.ts","webpack:///./src/views/Planning/FinalView/tableThird.vue?59cd","webpack:///./src/assets/images/closing/warn.png","webpack:///./src/views/Planning/DataPreparation.vue?2cde","webpack:///./src/views/Planning/PlanningSimulation.vue?7e92","webpack:///./src/views/Planning/components/ExpandMonthTable.vue?7b7b","webpack:///./src/views/Planning/index.vue?b9b5","webpack:///./src/views/Planning/type.ts","webpack:///./src/views/Planning/BasicSetting.vue?fc64","webpack:///./src/views/Planning/components/MuiltYearPicker.vue?dbc6","webpack:///./src/views/Planning/components/MuiltYearPicker.vue","webpack:///./src/views/Planning/components/MuiltYearPicker.vue?4d3a","webpack:///./src/views/Planning/components/Upload.vue?4c77","webpack:///./src/views/Planning/components/Upload.vue","webpack:///./src/views/Planning/components/Upload.vue?49e7","webpack:///./src/views/Planning/BasicSetting.vue","webpack:///./src/views/Planning/BasicSetting.vue?93de","webpack:///./src/views/Planning/DataPreparation.vue?ae4a","webpack:///./src/views/Planning/DataPreparation.vue","webpack:///./src/views/Planning/DataPreparation.vue?9b22","webpack:///./src/views/Planning/PlanningSimulation.vue?aee9","webpack:///./src/views/Planning/components/TagSelector.vue?4ee7","webpack:///./src/views/Planning/components/TagSelector.vue","webpack:///./src/views/Planning/components/TagSelector.vue?5ca6","webpack:///./src/views/Planning/PlanningSimulation/CentralRegion.vue?9794","webpack:///./src/views/Planning/PlanningSimulation/CentralRegion.vue","webpack:///./src/views/Planning/PlanningSimulation/CentralRegion.vue?88c1","webpack:///./src/views/Planning/PlanningSimulation/Fleet.vue?a574","webpack:///./src/utils/planning/spreadJsCustom.ts","webpack:///./src/views/Planning/PlanningSimulation/Fleet.vue","webpack:///./src/views/Planning/PlanningSimulation/Fleet.vue?2c64","webpack:///./src/views/Planning/PlanningSimulation/Adjustment.vue?1a5a","webpack:///./src/hooks/planning/useCheckTreeData.ts","webpack:///./src/views/Planning/components/EditableView.vue?47db","webpack:///./src/views/Planning/components/EditableView.vue","webpack:///./src/views/Planning/components/EditableView.vue?a3c6","webpack:///./src/hooks/planning/useTableTreeDataKey.ts","webpack:///./src/hooks/planning/useTableTreeDataLevel.ts","webpack:///./src/hooks/planning/useExpandTableTreeData.ts","webpack:///./src/hooks/planning/useTreeDataRelation.ts","webpack:///./src/views/Planning/PlanningSimulation/Adjustment.vue","webpack:///./src/views/Planning/PlanningSimulation/Adjustment.vue?beb3","webpack:///./src/views/Planning/PlanningSimulation/Release.vue?b629","webpack:///./src/views/Planning/PlanningSimulation/Release.vue","webpack:///./src/views/Planning/PlanningSimulation/Release.vue?ab70","webpack:///./src/views/Planning/PlanningSimulation/DealerStock.vue?2337","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/FeatureYear.vue?043d","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/FeatureYear.vue","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/FeatureYear.vue?eb51","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/CurrentYear.vue?074d","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/CurrentYear/Calculation.vue?16d5","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/CurrentYear/Calculation.vue","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/CurrentYear/Calculation.vue?4bec","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/CurrentYear/Allocation.vue?346c","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/CurrentYear/Allocation.vue","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/CurrentYear/Allocation.vue?4882","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/CurrentYear.vue","webpack:///./src/views/Planning/PlanningSimulation/DealerStock/CurrentYear.vue?9b0a","webpack:///./src/views/Planning/PlanningSimulation/DealerStock.vue","webpack:///./src/views/Planning/PlanningSimulation/DealerStock.vue?8b6b","webpack:///./src/views/Planning/PlanningSimulation.vue","webpack:///./src/views/Planning/PlanningSimulation.vue?49e0","webpack:///./src/views/Planning/FinalView.vue?6aca","webpack:///./src/views/Planning/FinalView/tableFirst.vue?d694","webpack:///./src/views/Planning/components/ExpandMonthTable.vue?1958","webpack:///./src/views/Planning/components/ExpandMonthTable.vue","webpack:///./src/views/Planning/components/ExpandMonthTable.vue?83fa","webpack:///./src/views/Planning/FinalView/tableFirst.vue","webpack:///./src/views/Planning/FinalView/tableFirst.vue?a919","webpack:///./src/views/Planning/FinalView/tableSecond.vue?fde7","webpack:///./src/views/Planning/FinalView/tableSecond.vue","webpack:///./src/views/Planning/FinalView/tableSecond.vue?773b","webpack:///./src/views/Planning/FinalView/tableThird.vue?dd59","webpack:///./src/views/Planning/FinalView/tableThird.vue","webpack:///./src/views/Planning/FinalView/tableThird.vue?f347","webpack:///./src/views/Planning/FinalView.vue","webpack:///./src/views/Planning/FinalView.vue?f22e","webpack:///./src/views/Planning/index.vue","webpack:///./src/views/Planning/index.vue?597a"],"names":["module","exports","mounted","el","binding","documentHandler","e","contains","target","value","__vueClickOutside__","document","addEventListener","unmounted","removeEventListener","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","Error","code","keys","Object","resolve","blobToString","blob","Promise","reader","FileReader","readAsBinaryString","onload","ret","result","split","v","charCodeAt","toString","toUpperCase","padStart","join","isExcel","file","len","name","length","slice","flag","_withScopeId","n","_hoisted_1","class","_hoisted_2","render","_ctx","_cache","$props","$setup","$data","$options","_component_Breadcrumb","_component_Basic_Setting","_component_a_tab_pane","_component_Data_Preparation","_component_planning_simulation","_component_Final_View","_component_a_tabs","dataSource","breadcrumbData","type","activeKey","stateStep","$event","default","$btnPermissions","key","StateStep","BasicSetting","disabled","enableStateStep","tab","ref","onSimulation","handleClickSimulation","_","Preparation","PlanningSimulation","stepSecondText","Reporting","PlanningSimulationTab","CbuWsCategory","AdjReleaseViewType","AdjReleaseInputViewType","DealerStockViewType","AdjReleaseInputType","FcInputType","AdjReleaseType","_hoisted_3","style","_hoisted_4","_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","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_component_year_picker","_component_a_select_option","_component_a_select","_component_muilt_year_picker","_component_a_tooltip","_component_a_table","_component_a_button","_component_upload","_component_a_input","_component_a_modal","currentYear","onPanelChange","handleChangeYear","allowClear","allInfo","item","onClick","handleCreatePlanning","createInfo","planningName","placeholder","scenarioOptions","option","kufriMonth","getPopupContainer","triggerNode","parentNode","body","kufriOptions","createYears","disabledYear","columns","tableColumns","list","scroll","x","y","pagination","rowKey","record","handleToDataPreparation","kufri","create","createTime","action","lockStatus","placement","title","handleLockPlanning","uploadStatus","handleClickFile","handleRemovePlanning","make","handleExportFm","simulation1","simulationList","handleCreateSimulation","simulation2","simulation3","show","showUploadDrawer","onUpload","handleUpload","handleDownloadTemplate","visible","modalShow","onOk","handleSimulationModalOk","onCancel","handleSimulationModalCancle","parentId","options","baseOptions","simulationDescripe","maxlength","role","focusable","width","height","fill","viewBox","d","cellspacing","_directive_clickOutside","yearPickerPanelStyle","selectedYearValue","year","index","unselectable","deleteSelectedYearValue","toPrevYearPickerPanel","args","yearRangeText","toNextYearPickerPanel","yearPanelData","rowData","row","yearData","selected","startYear","clickYearData","size","toSelectYearValue","showYearPickerPanel","closeYearPickerPanel","openYearPickerPanel","deleteYearValue","directives","clickOutside","props","Array","Number","String","maxNum","Function","setup","ctx","yearPickerPanel","left","right","top","bottom","Math","floor","box","getBoundingClientRect","offsetHeight","assign","years","filter","emit","i","j","push","includes","undefined","sort","__exports__","src","position","borderTop","padding","background","textAlign","zIndex","_component_a_upload_dragger","_component_a_progress","_component_a_drawer","closable","bodyStyle","paddingTop","onClose","handleClose","$slots","listType","showUploadList","customRequest","uploadRequest","percent","loading","uploadLoading","uploadFlag","Boolean","_props","showUpload","source","reject","dataIndex","slots","customRender","customHeaderCell","border","customCell","align","components","YearPicker","MuiltYearPicker","Upload","emits","store","currentRow","uploadMake","currentUploadMake","currentUploadYear","currentPlanningYear","currentPlanningId","makeKey","kufriKey","planningId","planningIdKey","scenario","scenarioKey","scenarioId","scenarioIdKey","stateStepKey","simulationYear","simulationYearKey","typePlanningOrSimulation","typePlanningOrSimulationKey","createMonth","createMonthKey","currentKufri","currentKufriKey","planningYear","planningYearKey","FmYears","CBU","PBP","VAN","initData","params","activeStatus","_scenarioResult","data","tableData","getPlanningList","_params","format","_FmList","_result","forEach","stamp","Date","createAt","getFullYear","m","getMonth","getDate","nowYear","_currentYear","parseInt","message","error","_item","_postData","scenrioName","then","res","_list","basicInfoVOS","failPlanngingYear","text","success","_kufris","methodsGetAllInfo","farmatCurrentYear","content","confirm","okText","cancelText","createYear","_formData","FormData","append","fileIsExcel","onUploadProgress","progressEvent","lengthComputable","loaded","total","response","JSON","parse","timer","cycle","commit","clearInterval","setInterval","label","postData","basePlanningId","_component_a_col","_component_a_row","lastestKufri","handleCalculate","kufriInfos","kufriInfo","version","span","counts","handleExportKufri","handleShowUploadDrawer","WSVOLUME","WSLLP","volumeData","resultMsg","llfData","handleExport","exportable","uploadDrawerTitle","uploadCbuWsCategory","uploadDataIndex","init","kufriList","Map","status","llp","volume","category","count","set","planning_id","get","round","_component_tag_selector","_component_central_region","_component_fleet","_component_DealerStock","_component_adjustment","_component_release","mode","kufris","vlaue","handleSearch","totalStatData","ws","sdPercent","rt","sd","typeStatTabletColumns","typeStatData","column","fn","active","typeStatColumnActive","titleName","GentralRegion","Fleet","fcInputTypes","onSaveData","getStatData","UC","FP","FlootPlan","Bidding","DsAdj","SpecialAdj","Released","_component_a_checkable_tag","getValue","checked","isChecked","onChange","handleChange","getTitle","tag","changeValue","indexOf","splice","_component_a_checkbox","_component_spread_js_table","brands","selectedBrands","expandModel","expandRows","TagSelector","SpreadJsTable","kufriVersion","actualStatus","actualStatusMap","replace","tableSize","reduce","rows","level","getCrInfo","makeData","vehicle","brand","annual","finalPoint","monthEn","parentRow","typeClassChildren","children","typeClass","typeClassData","typeClassRow","modelChildren","model","impactModelData","impactModelRow","childrenRow","locked","fixed","formatter","backColor","cellPadding","month","monthes","deepClone","kufriVersionValue","planningIdValue","immediate","brandList","handleSave","cellRender","onValueChanged","handleValueChanged","onClipboardPasting","handleClipboardPasting","onRangeChanged","handleRangeChanged","imageSrc","tip","eventHandlers","tipElement","showTip","container","this","createElement","boxShadow","paddingLeft","paddingRight","fontSize","insertBefore","textContent","spanStyle","hideTip","removeChild","paint","w","h","context","save","image","Image","drawImage","restore","getHitInfo","cellStyle","cellRect","col","sheetArea","processMouseMove","hitInfo","sheet","getParent","getHost","processMouseLeave","processMouseDown","processMouseUp","Spread","Sheets","CellTypes","ColumnHeader","typeId","handleGetProposalData","proposalData","impactCode","editable","originValue","impactModel","headerStyle","cellButtons","caption","buttonBackColor","imageType","ButtonImageType","custom","cell","columnName","wsVolume","editStarting","event","cancel","editEnded","editingText","suspendPaint","getCell","childRow","resumePaint","newValue","oldValue","RangeChangedAction","clear","rowCount","colCount","pasteData","cellRange","editedTypeClassRows","visiableRowIndex","rowOutlines","isCollapsed","parseFloat","isNaN","dataInfoId","planningTypeId","wsLlp","rtLlp","rtVolume","budget","impactName","msrp","topicCode","adjustmentNo","controllingPoint","releasePoint","buPoint","submitPoint","typeIdValue","showSaveBtn","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","_hoisted_51","_hoisted_52","_hoisted_53","_hoisted_54","_hoisted_55","_hoisted_56","_hoisted_57","_hoisted_58","_component_a_radio","_component_a_radio_group","statData","afterClosingStatTableColumns","afterClosingStatData","topicStatTableColumns","topicStatData","adjustments","handleAddAdjustment","afterClosingSelectedBrands","getAfterClosingReport","afterClosingViewType","viewTypes","afterClosingExpandModel","afterClosingTableColumns","afterClosingTableData","afterClosingExpandedRowKeys","onExpand","handleAfterClosingExpand","tableHeaderSize","afterClosingActualStatus","adjustment","topic","topics","inputType","handleChangeInputType","Allocation","Input","amount","handleChangeAmount","avgSI","handleAllocation","inputViewType","handleChangeInputViewType","inputViewTypes","viewType","handleChangeBrand","tableColumn","expandedRowKeys","handleExpand","rowCheckbox","monthCheckStatus","initCheckStateData","childrenKey","checkStates","indeterminate","parent","dataValue","checkChildren","c","checkState","checkParent","parentData","parentCheckState","childrenData","change","_directive_click_outside","handleClick","inEditting","onKeyup","handleClickOutSide","valueProp","attrsValue","formator","requried","attrs","useModel","inputComponent","focus","setId","setLevel","expand","view","getAllExpandRowKeys","expandAllRowKeys","queue","shift","expanded","expandValue","getParentRealtion","relation","parentRelation","p","parents","t","WsWolume","WsLLP","AvgSI","Amount","dataTableColumnRender","onClickOutside","originFinalPoint","wsAmount","times","div","parentFunc","parentRecord","childrenFunc","childrenRecords","originWsAmount","EditableView","dataTableCheckboxColumnRender","checkStateFunc","checkboxComponent","changeFunc","useExpandTableTreeData","afterClosingDataTableColumnRender","unshift","statTableColumnRender","inited","adjustmentIndex","dataRef","useTableTreeDataKey","useTableTreeDataLevel","expandModelRef","useTreeDataRelation","useCheckTreeData","reportByTopicAndAdjustment","afterClosingStatColumns","topicStatColumns","colInfoList","colType","colName","rowList","colList","colValue","Adjustment","getArInfo","topicName","getNewArInfo","handleChangeViewType","checkedCells","plus","isZero","allocationAmount","allocationType","detailList","headerId","moment","AdjReleaseViewTypeValue","recordCheckState","avgSiValue","AdjustmentDataInfos","Release","_component_FeatureYear","_component_CurrentYear","onHandleUpdateData","handleUpdateData","currentYearTableData","onHandleSearchByTargetId","handleSearchByTargrtId","handleChangeRadio","monthesInput","editing","onFocus","handleFocus","onBlur","handleBlur","handleClickInput","toFixed","expandIconIndex","number","selectedRows","copyTableData","monthNumber","cloneTableData","child","methodsGetBrands","Set","ele","querySelector","querySelectorAll","scrollLeft","rowSelection","selectedRowKeys","selecteds","onSelect","console","log","onSelectAll","changeRows","columnTitle","adjustmentStatus","adjAvgSi","_component_Calculation","_component_Allocation","typeOptions","handleChangePlanningName","planningList","nextYear","handleChangeNextYear","yearList","finalKufri","handleClear","_component_a_table_column","_component_a_table_column_group","viewHeight","seasons","season","handleExpandCol","field","marchDisabled","juneDisabled","septemberDisabled","decemberDisabled","handleClickCell","number2Fixed","defaultPlanningId","expandStatus","isShow","canExpand","slot","computedFilterExpand","methodFormat","replaceAll","handleSaveAvgSi","request","months","openingBalance","stockAdjustment","originAdjAvgSi","documentElement","clientHeight","substring","kufriYear","val","getCheckboxProps","marchCheckbox","handleCheck","juneCheckbox","septemberCheckbox","decemberCheckbox","computedFilterChildren","marchIds","juneIds","septemberIds","decemberIds","marchDealerStockList","juneDealerStockList","septemberDealerStockList","decemberDealerStockList","marchData","juneData","septemberData","decemberData","marchLlpWsSum","juneLlpWsSum","septemberLlpWsSum","decemberLlpWsSum","selectedRowsTemp","all","march","monthWsLlp","ids","dealerStockList","june","september","december","defaultChecked","allIndex","absAmount","Calculation","calculationRef","allocationRef","monthWsLlps","some","nextYearInfo","targetId","FeatureYear","CurrentYear","isFutureYear","formatNumber","avgSi","movement","dsTarget","llpPercentage","yearValue","date","generateKufirVersions","begin","end","versions","endMonth","isAfter","add","CentralRegion","DealerStock","yearPlanningIdMap","typeStatTableColumnRender","className","formatedNumber","arr","totalWsVolume","totalRtVolume","cr","totalCr","totalAvgSi","fleetUC","totalFc","fp","totalFp","bidding","totalBidding","dsAdj","totalDlr","specialAdj","totalSpec","release","totalRel","totalAmount","getPlanningYearInfo","from","kufriVersionStart","KufriVersionEnd","getFcInputType","typeName","getKufriAndYear","_component_tableFirst","_component_tableSecond","_component_tableThird","handleSaveFinalVersion","_component_ExpandMonthTable","$attrs","columnsLoop","click","titleWidth","handleClickSeason","condition","columnsData","isMonth","formatVolume","rowName","ExpandMonthTable","structureParentOptions","structureParent","handleStructureChange","structureChildrenOptions","structureChildren","handleStructureChildrenChange","brandOptions","handleBrandChange","getStructureChildrenOptions","grandson","itemName","structureTree","brandName","isCheckBrand","reportIdList","tempStructure","fetchGetStructure","monthOptions","chooseMonths","handleChangeMonth","extractTree","arrs","childs","attrArr","attrList","isArray","getObj","obj","hasChild","isShowBak","expandStatusBak","childIds","changeColnums","methodClick","currentEle","callback","grandSon","formatClomun","methodFormatList","cells","monthList","tableFirst","tableSecond","tableThird","kufriVersionEnd","Symbol","DataPreparation","FinalView","s","stateStepLine","dataPreShow"],"mappings":"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","file":"js/chunk-7730e9ba.393fa2b0.js","sourcesContent":["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!./Upload.vue?vue&type=style&index=0&id=2ae34704&lang=scss&scoped=true\"","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!./EditableView.vue?vue&type=style&index=0&id=3b3f6b9e&lang=scss&scoped=true\"","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!./index.vue?vue&type=style&index=0&id=12b64537&lang=scss\"","module.exports = __webpack_public_path__ + \"img/upload.e4734716.svg\";","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!./DataPreparation.vue?vue&type=style&index=1&id=776ddd97&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!./BasicSetting.vue?vue&type=style&index=0&id=1669039d&lang=scss&scoped=true\"","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!./Release.vue?vue&type=style&index=0&id=1acb57c8&lang=scss&scoped=true\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAA0VXHyAAACA0lEQVQ4EZVTu4paURRd9wFaZgqntPGdIgQM6S20EQki+gH5Aov0EpsQSED8AP0AsbHRQotEEobMMMykcHykUgiSIlaKr+vJXTs5l0wTMge2R7drrbv23ncbHy6uXxqGem9b9iM84ByPzkoBr4yPF9c/nz1JnNm29QA64Arg6uvdynaJHlkpBcMwcDgcMJlMJKgai8UkXLD3EMsyIVxmSNRnuVyiXC7D5/MJiflOpwPHcVCpVBAOhzX09/356lZtt1uJ0WikksmkarVaarfb3Yt2uy3/zedzD08u+EHwer1WpVJJEagFh8Oh9505CufzecGSQ65JHyxhPB67NdnIZrNirdFoSCmv37zFZrORXC6Xg9/vF6wu2xOYTqcIhUJS6+l0EtEfzwtof3eQTqflN0nRaFSae09A5P844QTYMA3gVP51xAEBkUgEdOHWBrded85HnH9p48W5Qrfb9USJoQt9vMFy1vv9XkaWyWRQLBYRj8fhTgWmaYpgr9cTIQpohyLAmgmq1WooFAoCTqVSMnM20LIsDAYD1Ot1sLn6haKI54CWAoEAms0mqtUq+v0+gsGgCC8WC3Hnjlgw2j5v49PljXr6OPJ3Thyw1tlsJnn2h7b1kzX4ZjSD7TinlbsYsg+0xK7TciKRkNBgfWsMl4lcmyt5e/ftnbscZxr0PzfJ5P4CZZdcEhWAz24AAAAASUVORK5CYII=\"","import type { DirectiveBinding } from 'vue'\n\nexport default {\n mounted(el: HTMLElement & {__vueClickOutside__: (...param: any) => any}, binding: DirectiveBinding) {\n function documentHandler (e: any) {\n if (el.contains(e.target)) {\n return false;\n }\n binding.value(e)\n }\n el.__vueClickOutside__ = documentHandler;\n document.addEventListener('click', documentHandler)\n },\n unmounted (el: any) {\n document.removeEventListener('click', el.__vueClickOutside__)\n delete el.__vueClickOutside__;\n }\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!./FinalView.vue?vue&type=style&index=0&id=d11222b0&lang=scss&scoped=true\"","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!./tableSecond.vue?vue&type=style&index=0&id=2b664a3a&lang=scss&scoped=true\"","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!./CurrentYear.vue?vue&type=style&index=0&id=c1b7fc86&lang=scss&scoped=true\"","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!./TagSelector.vue?vue&type=style&index=0&id=0a2a1b70&lang=scss&scoped=true\"","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!./Adjustment.vue?vue&type=style&index=0&id=584adfb9&lang=scss&scoped=true\"","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!./MuiltYearPicker.vue?vue&type=style&index=0&id=c343add8&lang=scss&scoped=true\"","var map = {\n\t\"./checkbox.png\": \"813b\",\n\t\"./error.png\": \"c59c\",\n\t\"./loading.png\": \"aba9\",\n\t\"./start.png\": \"27a4\",\n\t\"./success.png\": \"9989\",\n\t\"./upload.png\": \"7e8f\",\n\t\"./warn.png\": \"cfc6\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"73333\";","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!./tableFirst.vue?vue&type=style&index=0&id=0719039e&lang=scss&scoped=true\"","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!./index.vue?vue&type=style&index=1&id=12b64537&lang=scss&scoped=true\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAJwSURBVDhPnZU7b+JAFEbz2yhDA0IRSgUVEoKGIqLiB6A0UEAi+kiI0KEEUaQLCDbiaUSyi1gcHMJzedmQkOZb30tQbC+wqy2OjGe+OZ47Y8ZHvcEYxdojCqW6nvInxvZdqLnvLRGyssJRSXhCfzjGr+kME2bOV7pnJl+/N/16qH08mbKw2ZZw9E21L5crrNdr5uPjg9ner1YrKIrCaPuNOVHqotZoboQ0aNuh5e3tDZIk4ebmBg8PD1gsFnh/f9+ZfZZeVeGPzxnuEJJsNBohFovBbDbD4XCgXq/vlYo6oVoyhbaQbDabIRKJwGq1wmQy4fj4GE6nE8VikcvX5olNyXuEJLu8vITb7UYoFILL5eKr3++Hz+fj8rV5wiBc6jqprIuLC9ze3uL+/h5nZ2e4urpiUTQaRTab1eUJsaMRKgYhbVK/32dxo9FgYTwe55nTuk6nU14WLXqhsvwjsMUo3JUhDEJlZ4j4V2HbKKTyKpUKSqUSl7xFFEXekLu7O85QGwl6vR4ymQwvAe2BTiirQuqgnQ2Hw5BlmSHBcDhEq9VCp9PhGVIbQe+kx+NBtVrFfD5H+/lFI5QVfmIwGEQgEGDJ38jlcjg5OUGhUOAHtTs6ocyh8/NzeL1e1Go1CIJwkFQqBYvFgnK5rJ8hHT2LhczreH19zf8Mm82G09PTvdjtdpbRi0+V0difzxKqG6HAQlrYbreLfD6PZDKJRCJxkHQ6zW8AzY7G6oTz+YKfQlCANoiWYDAY6NZNy2Qy4TzJ6NoSpU3JJeER3dc+BuohOxjtgNoPoWb6wxGemu3NAcufgGpDPcoF5P+Tr0/ACr8BIXCA3uKBMAYAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAACYElEQVRYCe1XvWsUQRT/vbnjNIFzL3ZCYp8q/glaJoV6uTJYmGCwME0MfoBEVFCJH7ESErQICJLg7pURbWJnihQpLNKkSVBEcHcJqDnijW9m3cXLXpzd49aAZOF2d96+936/9zFzPIK67G/doNoUIE9C4piWZXUjfAJoCbJwBZXOTdLgqK0y+NGsMJv7pa9AoS+vI5cMTrTIrEYVq+YGbZIG2Z6FlP0Km+C4H4O0H+rJHDyMQZHA9ga4HCKqedaRh+DqGWJxv4k/5fvxfkDgP86A4w7jrbRMfZVNBhx/knfXc2z5tolA3qSQ+rvj3oKsT/LBtsNH7kOTfXsJ2O4djvyGBpW4hIr1+t8RsL27/H9yPQCkKVRKMyZw9b09GXC8+3y2X9WARK9Qtq4lAW8PAcd7wOATv8Hfo8s6x/WXSQmYd4GUAlVvBB9kIebU8R9F4KB1HM6dxin6EdP7i8BMoOo9Rl0+w5q/DGerN/JV9ae528f1mshFXgxgoPgl+p7wxdwDRJ85Su4veQLYWeFsXOZFL+r1sQCDakCujDPFtYSYDWpmAuXSPdjud7aa5l8HZ+NpgwdBIygX3zXIUizMJVDOKl1P+FC5GGsuEje541+kwIupJiOgSah9Lc4zkZ/aC2EOg9btmMeUguQElOPBI3PIYYgz8QbHSxdSYjVVN/fAbrOzpXluyIVYOXbrJVyny0DoNMVBE5rs9WyNwF7eWpAfEBBqONCZ08NCCzlsxSTE0oOJGhTVRbXZYE7Uq+xu4WimEWhp34dTEYxJhT7e1y+jcmQXP2eaS66weDJW2L8An32ypgTmnzYAAAAASUVORK5CYII=\"","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!./Allocation.vue?vue&type=style&index=0&id=9a70a1b0&lang=scss&scoped=true\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAA0VXHyAAABb0lEQVQ4EcVSPS9EURA9c3ffPn6DoPWRCLE/QZQiJILYRqVRiUI0GoWIUqUTWUpEp/AHVuwWPlrhF2h239e9Zq697731qHeauXfm3HNn5gzQb6M/C2g0PLy/zUKZGZvX9ITRsUdUq9FvfJHg+nIYcXQPRR0Y82wfEE1CG8WxGpZqrTxJL8FNfQpx3ALRLoKwngfCK69y/AQlbwSLax8up9wBUnYUX/CvO4XHAlK4Q0nt2eoE27WMwPZMCZNcuWTqfe+Afz9FOzi3rQm2QECYBvSrS6Te9xZgaB7tZNvGZC5uuBwop8D8oeKdAcRDwxG3dAhNKyD9lYe4c9aCQZMbnbCJMN7iX4gn/8D3fcRBVplVhGXtWkYgOmszAL+yDpgEnWgTYTSEILp1YKuEyCnYAoEsCak5LvnYAh3CeSEWGWUXcgvVuwcCll0QORVpHurLz3s1ztUN2g+WNz4dp/gigUTdKltl+C7z+WeVBd5f+wZ9RIKsdMK+CQAAAABJRU5ErkJggg==\"","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!./CentralRegion.vue?vue&type=style&index=0&id=e31f8850&lang=scss&scoped=true\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAA0VXHyAAABWElEQVQ4EWNgGGjAiM0B////Z3358qUxkDbMvcNmK8DMsJdXVmhZvyzjd3T1GAa8fftW9ufPn7uACr8B8fmo6+w2T38xyv77/5/RXZQ5bpqpwBp0Q+B8oK16T58+/f/s2bNUuCCUEX707TyGte//F5//aoouB+aDnA3UfPHFixdJWBUABcMOv1kov/X9j8LH/zkx1AA1WgBtPoMhgSagvv3d15Rjb5Nhwkwwxr9//wyArrgI4+OiJdn+P/7wl8EZJg83ACZAiOZiZvj95z8DC0wd3AAmJqYLjIyMBjAJXPTjnwwKQE3HYPJwA8TFxc8CBbmwxQBMcdbJN5Pf/mZmfccrtAAmhkID04AMKBqxxUTd2dddQhvf/S8/+84XWRNGQgKlhT9//iwGeucPMFAvgBQD2fpAipudnd1VWFj4CV4DQJKgNAFKyqCYAfFB4QPyItCg3yD+4AIAz9qUhJjtFDIAAAAASUVORK5CYII=\"","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!./Fleet.vue?vue&type=style&index=0&id=03e2d672&lang=scss&scoped=true\"","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!./Calculation.vue?vue&type=style&index=0&id=4d2479ac&lang=scss&scoped=true\"","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!./FeatureYear.vue?vue&type=style&index=0&id=7f379b45&lang=scss&scoped=true\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAA0VXHyAAABm0lEQVQ4EcVSuU7DQBCd2V3bpOSQqKBFEAlx9YDERwQkWq6S4ydApEFCAlEhhPgHCqCj4EgKrho6BC0k9u4wE3udhKPGxXp25s3bNwfAf3/4mwDaWwjen9w4gRqVOIK77RpQ17i4H3/H/yB4W13ps1Q/RcBPALpLE7BIQCpAPd9Z3qu2krQRvK8vDyc2rhLhRi2xx63AyOgSIm1rDPu7y7vPPqa8IbI5+YiT16yrn4WgIh8zhAH7LoRY1AnWx3ICqZnlWH75xEDQiwFc8avTBYOjOsSbAKMBUSWlCdYTGG84xBFw9CD3T+cqHaDm0dAxASpl1dKHTc5TLN1lzb2Ue64gDTZPVMSC+D1q+n6zcgJFVAHEIQGJbFZ0CBZXgGjWKbdT0GYqJcCijDW1AfISZM6vj66D656LuYnKBRMfkNQEaAjGrK71RCYsyTgF6wlyBbIkOoAZHtWWVuFkHVwjWYAJUsy+aRmj7ELrQrXtgYCzXTji6h3Lvxcft2KQW1GQB7o3D14avuz4QSB+v8qNyfBd+vPXKmc8//j7Aikpr7msybZwAAAAAElFTkSuQmCC\"","const blobToString = async (blob: File) => {\n return new Promise(resolve => {\n const reader = new FileReader()\n reader.readAsBinaryString(blob)\n reader.onload = function () {\n const ret = (reader.result as string).split('')\n .map((v: string) => v.charCodeAt(0))\n .map((v: number) => v.toString(16).toUpperCase())\n .map((v: string) => v.padStart(2, '0'))\n .join('')\n resolve(ret)\n }\n })\n}\nconst isExcel = async (file: File) => {\n \n if (file) {\n const len = file.name.split('.').length\n const name = file.name.split('.')[len - 1]\n if (name !== 'xlsx' && name !== 'xls') {\n return false\n }\n }\n // 16进制的转换\n const result = await blobToString((file as any).slice(0, 8))\n const flag = (result === 'D0CF11E0A1B11AE1') || (result === '504B030414000600') || (result === '504B030414000808')\n return flag\n}\nexport default isExcel\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!./tableThird.vue?vue&type=style&index=0&id=95bf00ae&lang=scss&scoped=true\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAA0VXHyAAABSUlEQVQ4EcWSMU4DMRBFn7ObFRwCKgogAgWRgo4mN6AJkei4Qk6BuAMFCjScgAMgBFGgCFDQwR0IEGK+nbWXEJY2Xtljz/z5/jtjmPcwfwmwt1R5Zpsvtnw8oc8KPdPg8zd+hsCesaTESwGHmoM8oSZbIeXAtLjPfd5MEdgum4wFsHT4oPsTSEYLwzEJy2aflxCLBF72Ez0lnyj53AMyGrJVna/yc1skh6yyEX6nEpj8PxuJD8kuYNjR3I2Yiaqhx+bOgmBEXfIfI7h8M4jFFSYtx/nIjdbsP0yhIOVOctenwFZ3WUZTPqipkP3gKwjUZzkXdF87BEWYaBYqXSdcOydYD4tBV1V7QZM3tShTNVwx37mOZI7YcCS6euiAi8U2BmD+Fk51Hkv+g/dXWNN+UV/T7PEasM7OEDhnfMquM264+pQ8ZR+f6/INUF5UE1E6crcAAAAASUVORK5CYII=\"","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!./DataPreparation.vue?vue&type=style&index=0&id=776ddd97&lang=scss&scoped=true\"","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!./PlanningSimulation.vue?vue&type=style&index=0&id=3c3244f6&lang=scss&scoped=true\"","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!./ExpandMonthTable.vue?vue&type=style&index=0&id=0b6f99ca&lang=scss&scoped=true\"","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-12b64537\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"planning-container d-f flex-d-c\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"d-f justify-c\" }, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"m-r-5 font_family icon-homepage-icon\" }),\n /*#__PURE__*/_createTextVNode(\"Homepage \")\n], -1))\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_Basic_Setting = _resolveComponent(\"Basic-Setting\")!\n const _component_a_tab_pane = _resolveComponent(\"a-tab-pane\")!\n const _component_Data_Preparation = _resolveComponent(\"Data-Preparation\")!\n const _component_planning_simulation = _resolveComponent(\"planning-simulation\")!\n const _component_Final_View = _resolveComponent(\"Final-View\")!\n const _component_a_tabs = _resolveComponent(\"a-tabs\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Breadcrumb, {\n dataSource: _ctx.breadcrumbData,\n class: \"breadcrumb-planning\"\n }, null, 8, [\"dataSource\"]),\n _createVNode(_component_a_tabs, {\n type: \"card\",\n activeKey: _ctx.stateStep,\n \"onUpdate:activeKey\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.stateStep) = $event)),\n class: \"tabs\"\n }, {\n default: _withCtx(() => [\n (_ctx.$btnPermissions('PC0047'))\n ? (_openBlock(), _createBlock(_component_a_tab_pane, {\n key: _ctx.StateStep.BasicSetting,\n disabled: !_ctx.enableStateStep(_ctx.StateStep.BasicSetting),\n class: \"c-333\"\n }, {\n tab: _withCtx(() => [\n _hoisted_2\n ]),\n default: _withCtx(() => [\n _createVNode(_component_Basic_Setting, {\n ref: \"basicSetting\",\n onSimulation: _ctx.handleClickSimulation\n }, null, 8, [\"onSimulation\"])\n ]),\n _: 1\n }, 8, [\"disabled\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('PC0052'))\n ? (_openBlock(), _createBlock(_component_a_tab_pane, {\n key: _ctx.StateStep.Preparation,\n disabled: !_ctx.enableStateStep(_ctx.StateStep.Preparation),\n tab: \"Data Preparation\",\n class: \"c-333\"\n }, {\n default: _withCtx(() => [\n (_ctx.stateStep === _ctx.StateStep.Preparation)\n ? (_openBlock(), _createBlock(_component_Data_Preparation, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"disabled\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('PC0059'))\n ? (_openBlock(), _createBlock(_component_a_tab_pane, {\n key: _ctx.StateStep.PlanningSimulation,\n disabled: !_ctx.enableStateStep(_ctx.StateStep.Preparation),\n tab: _ctx.stepSecondText\n }, {\n default: _withCtx(() => [\n (_ctx.stateStep === _ctx.StateStep.PlanningSimulation)\n ? (_openBlock(), _createBlock(_component_planning_simulation, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"disabled\", \"tab\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('PC0108'))\n ? (_openBlock(), _createBlock(_component_a_tab_pane, {\n key: _ctx.StateStep.Reporting,\n disabled: !_ctx.enableStateStep(_ctx.StateStep.Preparation),\n tab: \"Reporting\"\n }, {\n default: _withCtx(() => [\n (_ctx.stateStep === _ctx.StateStep.Reporting)\n ? (_openBlock(), _createBlock(_component_Final_View, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"disabled\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"activeKey\"])\n ]))\n}","export enum StateStep {\n BasicSetting = 'BasicSetting',\n Preparation = 'Preparation',\n PlanningSimulation = 'PlanningSimulation',\n Reporting = 'Reporting'\n}\n\ninterface PlanningSimulationStatDataItem {\n totalAmount: string;\n totalAvgSi: string;\n}\nexport interface PlanningSimulationStatData {\n totalRtVolume: string | null;\n totalWsVolume: string | null;\n totalBidding: PlanningSimulationStatDataItem | null;\n totalCr: PlanningSimulationStatDataItem | null;\n totalDlr: PlanningSimulationStatDataItem | null;\n totalFc: PlanningSimulationStatDataItem | null;\n totalFp: PlanningSimulationStatDataItem | null;\n totalRel: PlanningSimulationStatDataItem | null;\n totalSpec: PlanningSimulationStatDataItem | null;\n}\n\nexport enum PlanningSimulationTab {\n GentralRegion = 'cr',\n Fleet = \"fleet\",\n UC = \"uc\",\n FP = \"fp\",\n Bidding = \"bidding\",\n DsAdj = \"dsAdj\",\n SpecialAdj = \"specialAdj\",\n Released = \"release\"\n}\n\nexport interface HomePageInfo {\n name: string;\n code: string;\n list: {\n planningName?: string;\n kufriMonth?: string;\n createYears: string;\n }[];\n createInfo: {\n planningName: undefined;\n kufriMonth: undefined;\n kufriOptions: string[];\n createYears: number[];\n make: string;\n };\n}\n\nexport enum CbuWsCategory {\n WSLLP = 'WSLLP',\n WSVOLUME = 'WSVOLUME'\n}\n\nexport type Month = '01' | '02' | '03' | '04' | '05' | '06' | '07' | '08' | '09' | '10' | '11' | '12'\n\nexport type MonthEn = 'january' | 'february' | 'march' | 'april' | 'may' | 'june' | 'july' | 'august' | 'september' | 'october' | 'november' | 'december'\n\nexport interface CentralRegionInfoData {\n finalPoint: number;\n}\n\nexport type CentralRegionData = {\n vehicle: string;\n brand: string;\n annual?: CentralRegionInfoData;\n children?: CentralRegionData[];\n} & Partial>\n\nexport type CentralRegionSpreadJsData = {\n level: number;\n vehicle: string;\n brand: string;\n annual?: string;\n parentRow?: number;\n childrenRow?: number[];\n} & Partial>\n\nexport type FleetInfoData = {\n id?: number;\n originValue?: number|string;\n finalPoint: number|string;\n editable?: boolean;\n}\n\nexport type FleetData = {\n make: string;\n brand: string;\n typeClass: string;\n impactCode: string;\n impactModel: string;\n annual: FleetInfoData;\n children?: FleetData[];\n} & Partial>\n\nexport type FleetSpreadJsData = {\n level: number;\n vehicle: string;\n brand: string;\n impactCode?: string;\n impactModel?: string;\n typeClass?: string;\n annual: FleetInfoData;\n parentRow?: number;\n childrenRow?: number[];\n} & Record\n\nexport type GentralRegionData = {\n vehicle: string;\n fy?: string;\n children?: GentralRegionData[];\n} & Partial>\n\nexport enum AdjReleaseViewType {\n WsWolume = 'WS Volume',\n WsLLP = 'WS LLP',\n AvgSI = 'Avg.SI%',\n Amount = 'Amount w/o VAT'\n}\n\nexport enum AdjReleaseInputViewType {\n AvgSI = 'Avg.SI%',\n Amount = 'Amount'\n}\n\nexport enum DealerStockViewType {\n WsWolume = 'WS Volumne',\n WsLLP = 'WS LLP',\n AvgSI = 'Avg.SI%',\n Amount = 'Amount w/o VAT'\n}\n\nexport enum AdjReleaseInputType {\n Allocation = 'Allocation',\n Input = 'Input'\n}\n\nexport type AdjAfterClosingData = {\n vehicle: string;\n annual?: string;\n children?: AdjAfterClosingData[];\n} & Partial>\n\nexport type ReleaseData = {\n vehicle: string;\n annual?: string;\n children?: ReleaseData[];\n} & Partial>\n\nexport interface FcInputTypeData {\n typeName: string;\n typeId: number;\n}\n\nexport interface FcInputDataParam {\n id: number;\n actualStatus: boolean;\n finalPoint: number | null;\n impactCode: string;\n impactName: string;\n kufriVersion: string;\n month: string;\n planningId: number;\n planningTypeId: number;\n year: string;\n wsLlp: number;\n rtLlp: number;\n wsVolume: number;\n rtVolume: number;\n budget: number | null;\n typeClass: string;\n brand: string;\n msrp: number;\n topicCode: string | null;\n adjustmentNo: string | null;\n controllingPoint: number | null;\n releasePoint: number | null;\n buPoint: number | null;\n submitPoint: number | null;\n}\n\nexport enum FcInputType {\n Fleet = 'Fleet',\n UC = 'UC',\n FlootPlan = 'Floot Plan',\n Bidding = 'Bidding'\n}\n\nexport interface TopicData {\n code: string;\n name: string;\n}\n\nexport enum AdjReleaseType {\n Adjustment = 'Adjustment',\n Release = 'Release'\n}\n\nexport interface AdjStatResponseData {\n colInfoList: { colName: string; colType: 'year' | 'afterClosing' | 'topic'}[];\n rowList: {\n rowName: string;\n colList: {colName: string; colValue: string}[];\n }[];\n}\n\nexport interface AdjAfterClosingResponseData {\n children: AdjAfterClosingData[];\n}\n\nexport interface AdjLabelResponseData {\n id: number;\n adjustmentNo: string;\n}\n\nexport interface AdjustmentDataInfo {\n wsVolume: string | number;\n wsLlp: string | number;\n finalPoint: string | number;\n wsAmount: string | number;\n}\n\nexport type AdjustmentData = {\n vehicle: string;\n brand: string;\n typeClass?: string;\n impactCode?: string;\n annual?: string;\n children?: AdjustmentData[];\n} & Partial>\n\nexport interface AdjustmentInfoResponse {\n headerId: number;\n planningTypeId: number;\n adjustmentNo: string;\n topicName: string;\n topicCode: number;\n children: AdjustmentData[];\n}\n\nexport interface AdjustmentDetailDataParam {\n actualStatus: boolean;\n adjustmentNo: string;\n brand: string;\n finalPoint: number | null;\n impactCode: string;\n impactName: string;\n kufriVersion: string;\n month: string;\n msrp: number;\n planningId: number;\n planningTypeId: number;\n rtLlp?: number;\n rtVolume?: number;\n topicCode: number;\n topicName: string;\n typeClass: string;\n wsLlp?: number;\n wsVolume?: number;\n year: string;\n wsAmount?: number | null;\n}\n\nexport interface WsDataNumberInfo {\n planning_id: number;\n category: 'WS LLP' | 'WS VOLUME';\n count: number;\n}\n\nexport interface PlanningYearData {\n createAt: number;\n createMonth: string;\n createYear: string;\n currentKufri: string;\n id: number;\n kufriMonth: string;\n lockStatus: boolean;\n make: string;\n name: string;\n parentId: null | number;\n planningName: string;\n planningStatus: string;\n scenarioId: number;\n year: string;\n}\n\nexport interface KufriInfo {\n version: string;\n counts: number;\n createAt: number;\n}","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, withCtx as _withCtx, createBlock as _createBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1669039d\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"closing-year bg-fff\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"mr-12\" }, \"Current Year\", -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"upload\",\n style: {\"text-align\":\"right\",\"margin-right\":\"12px\"}\n}, [\n /*#__PURE__*/_createTextVNode(\"*\"),\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-shangchuan ml-4 mr-4\" }),\n /*#__PURE__*/_createTextVNode(\"Upload %FM of LLP after planning finalized\")\n], -1))\nconst _hoisted_4 = { class: \"basic-setting-container\" }\nconst _hoisted_5 = { class: \"make-container\" }\nconst _hoisted_6 = { class: \"planning-content\" }\nconst _hoisted_7 = { class: \"create-card\" }\nconst _hoisted_8 = { style: {\"height\":\"24px\",\"margin-bottom\":\"12px\"} }\nconst _hoisted_9 = { class: \"make\" }\nconst _hoisted_10 = [\"onClick\"]\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-a-buttonadd-icon\" }, null, -1))\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\" Create \")\nconst _hoisted_13 = [\n _hoisted_11,\n _hoisted_12\n]\nconst _hoisted_14 = {\n class: \"mb-8\",\n style: {\"height\":\"24px\"}\n}\nconst _hoisted_15 = {\n class: \"mb-8\",\n style: {\"height\":\"24px\"}\n}\nconst _hoisted_16 = { class: \"table\" }\nconst _hoisted_17 = { class: \"bg-f8f8f8 pl-20\" }\nconst _hoisted_18 = { style: {\"display\":\"inline-block\",\"width\":\"160px\",\"margin-right\":\"20px\"} }\nconst _hoisted_19 = [\"onClick\"]\nconst _hoisted_20 = { class: \"bg-f8f8f8\" }\nconst _hoisted_21 = { class: \"bg-f8f8f8\" }\nconst _hoisted_22 = { class: \"bg-fff pl-20\" }\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Lock\", -1))\nconst _hoisted_24 = [\"onClick\"]\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Unlock\", -1))\nconst _hoisted_26 = [\"onClick\"]\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Upload\", -1))\nconst _hoisted_28 = [\"onClick\"]\nconst _hoisted_29 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Delete\", -1))\nconst _hoisted_30 = [\"onClick\"]\nconst _hoisted_31 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Export\", -1))\nconst _hoisted_32 = [\"onClick\"]\nconst _hoisted_33 = [\"onClick\"]\nconst _hoisted_34 = [\"onClick\"]\nconst _hoisted_35 = [\"onClick\"]\nconst _hoisted_36 = [\"onClick\"]\nconst _hoisted_37 = [\"onClick\"]\nconst _hoisted_38 = [\"onClick\"]\nconst _hoisted_39 = { class: \"download-button-wrapper\" }\nconst _hoisted_40 = /*#__PURE__*/_createTextVNode(\"Download Template\")\nconst _hoisted_41 = { style: {\"display\":\"flex\"} }\nconst _hoisted_42 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { style: {\"display\":\"inline-block\",\"width\":\"90px\"} }, \"Base\", -1))\nconst _hoisted_43 = { style: {\"display\":\"flex\",\"margin-top\":\"12px\"} }\nconst _hoisted_44 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { style: {\"display\":\"inline-block\",\"width\":\"90px\"} }, \"Descripition\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_year_picker = _resolveComponent(\"year-picker\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_muilt_year_picker = _resolveComponent(\"muilt-year-picker\")!\n const _component_a_tooltip = _resolveComponent(\"a-tooltip\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_upload = _resolveComponent(\"upload\")!\n const _component_a_input = _resolveComponent(\"a-input\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _hoisted_2,\n _createVNode(_component_year_picker, {\n value: _ctx.currentYear,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.currentYear) = $event)),\n onPanelChange: _ctx.handleChangeYear,\n allowClear: false\n }, null, 8, [\"value\", \"onPanelChange\"])\n ]),\n _hoisted_3\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.allInfo, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"mark-item bg-fff\",\n key: item.name\n }, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(item.name), 1),\n (_ctx.$btnPermissions(item.code))\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n type: \"primary\",\n class: \"create-btn\",\n style: {\"float\":\"right\",\"width\":\"80px\"},\n onClick: ($event: any) => (_ctx.handleCreatePlanning(item.name))\n }, _hoisted_13, 8, _hoisted_10))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_a_select, {\n value: item.createInfo.planningName,\n \"onUpdate:value\": ($event: any) => ((item.createInfo.planningName) = $event),\n placeholder: \"Select Scenario\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.scenarioOptions, (option) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: option.name,\n key: option.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(option.name), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"value\", \"onUpdate:value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(_component_a_select, {\n value: item.createInfo.kufriMonth,\n \"onUpdate:value\": ($event: any) => ((item.createInfo.kufriMonth) = $event),\n placeholder: \"Select Kufri\",\n getPopupContainer: \n triggerNode => {\n return triggerNode.parentNode || _ctx.document.body;\n }\n \n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(item.createInfo.kufriOptions, (option) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: option,\n key: option\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(option), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"value\", \"onUpdate:value\", \"getPopupContainer\"])\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_muilt_year_picker, {\n value: item.createInfo.createYears,\n \"onUpdate:value\": ($event: any) => ((item.createInfo.createYears) = $event),\n \"max-num\": 5,\n placeholder: 'Select Planning Year',\n \"disabled-year\": _ctx.disabledYear\n }, null, 8, [\"value\", \"onUpdate:value\", \"disabled-year\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createVNode(_component_a_table, {\n columns: _ctx.tableColumns,\n \"data-source\": item.list,\n scroll: {x: '80%', y: 'calc(100% - 24px)'},\n pagination: false,\n rowKey: \"id\"\n }, {\n name: _withCtx(({record}) => [\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(record.name), 1),\n _createElementVNode(\"span\", {\n class: \"c-default cursor-pointer planningName\",\n onClick: ($event: any) => (_ctx.handleToDataPreparation(record))\n }, _toDisplayString(record.planningName), 9, _hoisted_19)\n ])\n ]),\n kufri: _withCtx(({record}) => [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"span\", null, _toDisplayString(record.kufriMonth), 1)\n ])\n ]),\n create: _withCtx(({record}) => [\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"span\", null, _toDisplayString(record.createTime), 1)\n ])\n ]),\n action: _withCtx(({record}) => [\n _createElementVNode(\"div\", _hoisted_22, [\n (!record.lockStatus)\n ? (_openBlock(), _createBlock(_component_a_tooltip, {\n key: 0,\n placement: \"bottom\"\n }, {\n title: _withCtx(() => [\n _hoisted_23\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"i\", {\n class: \"font_family icon-active-icon mr-8 cursor-pointer c-default\",\n onClick: ($event: any) => (_ctx.handleLockPlanning(record, record.id, record.lockStatus, record.planningName))\n }, null, 8, _hoisted_24)\n ]),\n _: 2\n }, 1024))\n : (_openBlock(), _createBlock(_component_a_tooltip, {\n key: 1,\n placement: \"bottom\"\n }, {\n title: _withCtx(() => [\n _hoisted_25\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"i\", {\n class: \"font_family icon-inactive-icon mr-8 cursor-pointer\",\n onClick: ($event: any) => (_ctx.handleLockPlanning(record, record.id, record.lockStatus, record.planningName))\n }, null, 8, _hoisted_26)\n ]),\n _: 2\n }, 1024)),\n _createVNode(_component_a_tooltip, { placement: \"bottom\" }, {\n title: _withCtx(() => [\n _hoisted_27\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"font_family icon-shangchuan mr-8 cursor-pointer\", {' c-default': !record.uploadStatus}]),\n onClick: ($event: any) => (_ctx.handleClickFile(record))\n }, null, 10, _hoisted_28)\n ]),\n _: 2\n }, 1024),\n _createVNode(_component_a_tooltip, { placement: \"bottom\" }, {\n title: _withCtx(() => [\n _hoisted_29\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"i\", {\n class: \"font_family icon-delete1 mr-8 cursor-pointer\",\n onClick: ($event: any) => (_ctx.handleRemovePlanning(record.id, record.make, record.planningName))\n }, null, 8, _hoisted_30)\n ]),\n _: 2\n }, 1024),\n _createVNode(_component_a_tooltip, { placement: \"bottom\" }, {\n title: _withCtx(() => [\n _hoisted_31\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"i\", {\n class: \"font_family icon-a-Exportexecl cursor-pointer\",\n onClick: ($event: any) => (_ctx.handleExportFm(record))\n }, null, 8, _hoisted_32)\n ]),\n _: 2\n }, 1024)\n ])\n ]),\n simulation1: _withCtx(({record}) => [\n _createElementVNode(\"div\", null, [\n (record.simulationList && record.simulationList[0])\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n onClick: ($event: any) => (_ctx.handleToDataPreparation(record.simulationList[0], 'simulation')),\n class: \"c-default cursor-pointer planningName\"\n }, _toDisplayString(record.simulationList[0].planningName), 9, _hoisted_33))\n : (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n onClick: ($event: any) => (_ctx.handleCreateSimulation(record)),\n class: \"cursor-pointer c-default\"\n }, \"+\", 8, _hoisted_34))\n ])\n ]),\n simulation2: _withCtx(({record}) => [\n _createElementVNode(\"div\", null, [\n (record.simulationList && record.simulationList[1])\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n onClick: ($event: any) => (_ctx.handleToDataPreparation(record.simulationList[1], 'simulation')),\n class: \"c-default cursor-pointer planningName\"\n }, _toDisplayString(record.simulationList[1].planningName), 9, _hoisted_35))\n : (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n onClick: ($event: any) => (_ctx.handleCreateSimulation(record)),\n class: \"cursor-pointer c-default\"\n }, \"+\", 8, _hoisted_36))\n ])\n ]),\n simulation3: _withCtx(({record}) => [\n _createElementVNode(\"div\", null, [\n (record.simulationList && record.simulationList[2])\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n onClick: ($event: any) => (_ctx.handleToDataPreparation(record.simulationList[2], 'simulation')),\n class: \"c-default cursor-pointer planningName\"\n }, _toDisplayString(record.simulationList[2].planningName), 9, _hoisted_37))\n : (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n onClick: ($event: any) => (_ctx.handleCreateSimulation(record)),\n class: \"cursor-pointer c-default\"\n }, \"+\", 8, _hoisted_38))\n ])\n ]),\n _: 2\n }, 1032, [\"columns\", \"data-source\", \"scroll\"])\n ])\n ])\n ]))\n }), 128))\n ])\n ]),\n _createVNode(_component_upload, {\n title: \"Upload % FM\",\n show: _ctx.showUploadDrawer,\n \"onUpdate:show\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.showUploadDrawer) = $event)),\n onUpload: _ctx.handleUpload\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_39, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleDownloadTemplate\n }, {\n default: _withCtx(() => [\n _hoisted_40\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _: 1\n }, 8, [\"show\", \"onUpload\"]),\n _createVNode(_component_a_modal, {\n visible: _ctx.modalShow,\n \"onUpdate:visible\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.modalShow) = $event)),\n title: \"Create Simulation\",\n onOk: _ctx.handleSimulationModalOk,\n onCancel: _ctx.handleSimulationModalCancle\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_41, [\n _hoisted_42,\n _createVNode(_component_a_select, {\n value: _ctx.parentId,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.parentId) = $event)),\n style: {\"width\":\"200px\"},\n options: _ctx.baseOptions,\n placeholder: \"Please Select\"\n }, null, 8, [\"value\", \"options\"])\n ]),\n _createElementVNode(\"div\", _hoisted_43, [\n _hoisted_44,\n _createVNode(_component_a_input, {\n value: _ctx.simulationDescripe,\n \"onUpdate:value\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.simulationDescripe) = $event)),\n type: \"text\",\n placeholder: \"Descripition\",\n style: {\"width\":\"200px\"},\n maxlength: \"60\"\n }, null, 8, [\"value\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onOk\", \"onCancel\"])\n ], 64))\n}","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, vShow as _vShow, normalizeStyle as _normalizeStyle, resolveDirective as _resolveDirective, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c343add8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"ant-calendar-date-panel-wrapper\",\n ref: \"yearPickerPanel\"\n}\nconst _hoisted_2 = { class: \"ant-select ant-select-multiple\" }\nconst _hoisted_3 = { class: \"ant-select-selector\" }\nconst _hoisted_4 = { class: \"ant-select-selection-overflow\" }\nconst _hoisted_5 = { class: \"ant-select-selection-item\" }\nconst _hoisted_6 = { class: \"ant-select-selection-item-content\" }\nconst _hoisted_7 = [\"onClick\"]\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", {\n role: \"img\",\n \"aria-label\": \"close\",\n class: \"anticon anticon-close\"\n}, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n focusable: \"false\",\n class: \"\",\n \"data-icon\": \"close\",\n width: \"1em\",\n height: \"1em\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n viewBox: \"64 64 896 896\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\" })\n ])\n], -1))\nconst _hoisted_9 = [\n _hoisted_8\n]\nconst _hoisted_10 = { class: \"ant-calendar-header\" }\nconst _hoisted_11 = { class: \"ant-calendar-year-panel\" }\nconst _hoisted_12 = { class: \"ant-calendar-year-panel-header\" }\nconst _hoisted_13 = {\n class: \"ant-calendar-year-panel-decade-select\",\n role: \"button\",\n title: \"Choose a decade\"\n}\nconst _hoisted_14 = { class: \"ant-calendar-year-panel-decade-select-content\" }\nconst _hoisted_15 = { class: \"ant-calendar-year-panel-body\" }\nconst _hoisted_16 = {\n class: \"ant-calendar-year-panel-table\",\n cellspacing: \"0\",\n role: \"grid\"\n}\nconst _hoisted_17 = { class: \"ant-calendar-year-panel-tbody\" }\nconst _hoisted_18 = [\"title\", \"onClick\"]\nconst _hoisted_19 = { class: \"ant-calendar-year-panel-year\" }\nconst _hoisted_20 = { class: \"ant-calendar-year-panel-footer\" }\nconst _hoisted_21 = /*#__PURE__*/_createTextVNode(\"OK\")\nconst _hoisted_22 = { class: \"ant-select ant-select-multiple\" }\nconst _hoisted_23 = { class: \"ant-select-selection-overflow\" }\nconst _hoisted_24 = { class: \"ant-select-selection-item\" }\nconst _hoisted_25 = { class: \"ant-select-selection-item-content\" }\nconst _hoisted_26 = [\"onClick\"]\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", {\n role: \"img\",\n \"aria-label\": \"close\",\n class: \"anticon anticon-close\"\n}, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n focusable: \"false\",\n class: \"\",\n \"data-icon\": \"close\",\n width: \"1em\",\n height: \"1em\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n viewBox: \"64 64 896 896\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\" })\n ])\n], -1))\nconst _hoisted_28 = [\n _hoisted_27\n]\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 _directive_clickOutside = _resolveDirective(\"clickOutside\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", {\n class: \"ant-calendar-date-panel\",\n style: _normalizeStyle(_ctx.yearPickerPanelStyle)\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.selectedYearValue, (year, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"ant-select-selection-overflow-item\",\n key: index\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(year), 1),\n _createElementVNode(\"span\", {\n class: \"ant-select-selection-item-remove\",\n unselectable: \"on\",\n \"aria-hidden\": \"true\",\n style: {\"user-select\":\"none\"},\n onClick: _withModifiers(($event: any) => (_ctx.deleteSelectedYearValue(year)), [\"stop\"])\n }, _hoisted_9, 8, _hoisted_7)\n ])\n ]))\n }), 128))\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"a\", {\n class: \"ant-calendar-year-panel-prev-decade-btn\",\n role: \"button\",\n title: \"Last decade\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.toPrevYearPickerPanel && _ctx.toPrevYearPickerPanel(...args)), [\"stop\"]))\n }),\n _createElementVNode(\"a\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.yearRangeText), 1)\n ]),\n _createElementVNode(\"a\", {\n class: \"ant-calendar-year-panel-next-decade-btn\",\n role: \"button\",\n title: \"Next decade\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.toNextYearPickerPanel && _ctx.toNextYearPickerPanel(...args)), [\"stop\"]))\n })\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"table\", _hoisted_16, [\n _createElementVNode(\"tbody\", _hoisted_17, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.yearPanelData, (rowData, row) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n role: \"row\",\n key: row\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(rowData, (yearData, index) => {\n return (_openBlock(), _createElementBlock(\"td\", {\n key: index,\n role: \"gridcell\",\n title: yearData.year,\n class: _normalizeClass({'ant-calendar-year-panel-cell': true,\n 'ant-calendar-year-panel-selected-cell': yearData.selected && yearData.year != _ctx.startYear && yearData.year != _ctx.startYear + 11, \n 'ant-calendar-year-panel-last-decade-cell': row === 0 && index === 0,\n 'ant-calendar-year-panel-next-decade-cell': row === _ctx.yearPanelData.length - 1 && index === rowData.length - 1,\n 'ant-calendar-year-panel-disabled-cell': !(row === 0 && index === 0) && !(row === _ctx.yearPanelData.length - 1 && index === rowData.length - 1)\n && _ctx.disabledYear && _ctx.disabledYear(yearData.year)}),\n onClick: _withModifiers(($event: any) => (_ctx.clickYearData(yearData)), [\"stop\"])\n }, [\n _createElementVNode(\"a\", _hoisted_19, _toDisplayString(yearData.year), 1)\n ], 10, _hoisted_18))\n }), 128))\n ]))\n }), 128))\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_20, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n size: \"small\",\n onClick: _ctx.toSelectYearValue\n }, {\n default: _withCtx(() => [\n _hoisted_21\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ])\n ])\n ], 4)), [\n [_vShow, _ctx.showYearPickerPanel],\n [_directive_clickOutside, _ctx.closeYearPickerPanel]\n ]),\n _createElementVNode(\"div\", _hoisted_22, [\n _createElementVNode(\"div\", {\n class: \"ant-select-selector\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.openYearPickerPanel && _ctx.openYearPickerPanel(...args)), [\"stop\"]))\n }, [\n _withDirectives(_createElementVNode(\"span\", { class: \"placeholder\" }, _toDisplayString(_ctx.placeholder), 513), [\n [_vShow, _ctx.value.length === 0]\n ]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_23, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.value, (year, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"ant-select-selection-overflow-item\",\n key: index\n }, [\n _createElementVNode(\"span\", _hoisted_24, [\n _createElementVNode(\"span\", _hoisted_25, _toDisplayString(year), 1),\n _createElementVNode(\"span\", {\n class: \"ant-select-selection-item-remove\",\n unselectable: \"on\",\n \"aria-hidden\": \"true\",\n style: {\"user-select\":\"none\"},\n onClick: _withModifiers(($event: any) => (_ctx.deleteYearValue(year)), [\"stop\"])\n }, _hoisted_28, 8, _hoisted_26)\n ])\n ]))\n }), 128))\n ], 512), [\n [_vShow, _ctx.value.length]\n ])\n ])\n ])\n ], 512))\n}","\nimport { defineComponent, ref, computed, reactive } from 'vue'\nimport type { PropType } from 'vue'\nimport moment from 'moment'\nimport clickOutside from '@/views/Planning/directive/clickOutside'\nexport default defineComponent({\n directives: {\n clickOutside\n },\n props: {\n value: {\n type: Array as PropType,\n default: () => []\n },\n currentYear: {\n type: Number,\n default: moment().year()\n },\n placeholder: {\n type: String,\n default: '' \n },\n maxNum: {\n type: Number,\n },\n disabledYear: {\n type: Function as PropType<(date: number) => boolean>\n }\n },\n setup(props, ctx) {\n const yearPickerPanel = ref()\n const yearPickerPanelStyle = reactive({\n left: 'auto',\n right: 'auto',\n top: 'auto',\n bottom: 'auto'\n })\n\n const showYearPickerPanel = ref(false)\n\n const startYear = ref(Math.floor(props.currentYear / 10) * 10 - 1)\n const selectedYearValue = ref([])\n\n const openYearPickerPanel = () => {\n if (yearPickerPanel.value) {\n const box = yearPickerPanel.value.getBoundingClientRect()\n\n if (box.top + 370 > document.body.offsetHeight) {\n yearPickerPanelStyle.top = 'auto'\n yearPickerPanelStyle.bottom = '0'\n yearPickerPanelStyle.left = '0'\n } else {\n yearPickerPanelStyle.top = '0'\n yearPickerPanelStyle.bottom = 'auto'\n yearPickerPanelStyle.left = '0'\n }\n }\n selectedYearValue.value = Object.assign([], props.value)\n startYear.value = Math.floor(props.currentYear / 10) * 10 - 1\n showYearPickerPanel.value = true\n }\n\n const closeYearPickerPanel = () => {\n showYearPickerPanel.value = false\n }\n\n const deleteYearValue = (year: number) => {\n const years = props.value.filter((item) => item != year)\n ctx.emit('update:value', years)\n }\n\n const toPrevYearPickerPanel = () => {\n startYear.value -= 10\n }\n\n const toNextYearPickerPanel = () => {\n startYear.value += 10\n }\n\n const yearRangeText = computed(() => {\n return `${startYear.value + 1}-${startYear.value + 10}`\n })\n\n const yearPanelData = computed(() => {\n const yearData: {year: number; selected: boolean}[][] = []\n let year = startYear.value\n for (let i = 0; i < 4; i++) {\n const rowData = []\n for (let j = 0; j < 3; j++) {\n rowData.push({\n year: year + j,\n selected: selectedYearValue.value.includes(year + j)\n })\n }\n yearData.push(rowData)\n year += 3\n }\n return yearData\n })\n\n const clickYearData = (yearData: {year: number; selected: boolean}) => {\n if (yearData.year === startYear.value) {\n toPrevYearPickerPanel()\n } else if (yearData.year === startYear.value + 11) {\n toNextYearPickerPanel()\n } else {\n if (yearData.selected) {\n selectedYearValue.value = selectedYearValue.value.filter((item) => item != yearData.year)\n } else {\n if (props.maxNum !== undefined && selectedYearValue.value.length === props.maxNum) {\n return\n }\n if (props.disabledYear && props.disabledYear(yearData.year)) {\n return false\n } \n const years = selectedYearValue.value\n years.push(yearData.year)\n years.sort()\n selectedYearValue.value = years\n }\n }\n }\n\n const deleteSelectedYearValue = (year: number) => {\n selectedYearValue.value = selectedYearValue.value.filter((item) => item != year)\n }\n\n const toSelectYearValue = () => {\n ctx.emit('update:value', Object.assign([], selectedYearValue.value))\n closeYearPickerPanel()\n }\n\n return {\n yearPickerPanel,\n yearPickerPanelStyle,\n showYearPickerPanel,\n startYear,\n selectedYearValue,\n openYearPickerPanel,\n closeYearPickerPanel,\n deleteYearValue,\n yearRangeText,\n yearPanelData,\n toPrevYearPickerPanel,\n toNextYearPickerPanel,\n clickYearData,\n deleteSelectedYearValue,\n toSelectYearValue\n }\n }\n})\n","import { render } from \"./MuiltYearPicker.vue?vue&type=template&id=c343add8&scoped=true&ts=true\"\nimport script from \"./MuiltYearPicker.vue?vue&type=script&lang=ts\"\nexport * from \"./MuiltYearPicker.vue?vue&type=script&lang=ts\"\n\nimport \"./MuiltYearPicker.vue?vue&type=style&index=0&id=c343add8&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-c343add8\"]])\n\nexport default __exports__","import { renderSlot as _renderSlot, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/images/rv/upload.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2ae34704\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"upload-com\" }\nconst _hoisted_2 = /*#__PURE__*/_createTextVNode(\"下载\")\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", { src: _imports_0 }, null, -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"upload-text\" }, [\n /*#__PURE__*/_createTextVNode(\" Drag and drop to upload or \"),\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"blue-word\" }, \" browse for files\")\n], -1))\nconst _hoisted_5 = { key: 1 }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"File Upload\", -1))\nconst _hoisted_7 = { style: {\n position: 'absolute',\n right: 0,\n bottom: 0,\n width: '100%',\n borderTop: '1px solid #e9e9e9',\n padding: '10px 16px',\n background: '#fff',\n textAlign: 'right',\n zIndex: 1,\n } }\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"Upload\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_upload_dragger = _resolveComponent(\"a-upload-dragger\")!\n const _component_a_progress = _resolveComponent(\"a-progress\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_drawer = _resolveComponent(\"a-drawer\")!\n\n return (_openBlock(), _createBlock(_component_a_drawer, {\n title: _ctx.title,\n closable: true,\n visible: _ctx.show,\n width: \"30%\",\n bodyStyle: {paddingTop: '5px'},\n onClose: _ctx.handleClose\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _renderSlot(_ctx.$slots, \"default\", {}, () => [\n _hoisted_2\n ], true),\n (_ctx.showUpload)\n ? (_openBlock(), _createBlock(_component_a_upload_dragger, {\n key: 0,\n listType: \"picture-card\",\n showUploadList: false,\n customRequest: _ctx.uploadRequest\n }, {\n default: _withCtx(() => [\n _hoisted_3,\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"customRequest\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _hoisted_6,\n _createVNode(_component_a_progress, { percent: _ctx.percent }, null, 8, [\"percent\"])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleUpload,\n loading: _ctx.uploadLoading,\n disabled: _ctx.uploadFlag\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n }, 8, [\"onClick\", \"loading\", \"disabled\"])\n ])\n ]),\n _: 3\n }, 8, [\"title\", \"visible\", \"onClose\"]))\n}","\nimport { defineComponent, ref } from \"vue\"\nexport default defineComponent({\n props: {\n show: {\n default: false,\n type: Boolean\n },\n title: {\n default: '',\n type: String\n }\n },\n setup(_props, {emit}) {\n const showUpload = ref(true)\n const percent = ref(0)\n const uploadFlag = ref(true)\n const file = ref()\n const uploadLoading = ref(false)\n const handleClose = () => {\n showUpload.value = true\n file.value = undefined\n uploadFlag.value = false\n percent.value = 0\n emit('update:show', false)\n }\n const uploadRequest = (source: any) => {\n showUpload.value = false\n if (source.file) {\n uploadFlag.value = false\n } else {\n uploadFlag.value = true\n }\n file.value = source.file\n }\n const handleUpload = async() => {\n try {\n uploadLoading.value = true\n await new Promise((resolve, reject) => {\n emit('upload', file.value, resolve, reject, {\n percent\n })\n })\n } catch (e) {\n showUpload.value = true\n uploadFlag.value = true\n percent.value = 0\n } finally {\n uploadFlag.value = true\n uploadLoading.value = false\n }\n }\n return {\n handleClose,\n uploadRequest,\n handleUpload,\n showUpload,\n uploadFlag,\n percent,\n uploadLoading\n }\n }\n})\n","import { render } from \"./Upload.vue?vue&type=template&id=2ae34704&scoped=true&ts=true\"\nimport script from \"./Upload.vue?vue&type=script&lang=ts\"\nexport * from \"./Upload.vue?vue&type=script&lang=ts\"\n\nimport \"./Upload.vue?vue&type=style&index=0&id=2ae34704&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-2ae34704\"]])\n\nexport default __exports__","\nimport moment from 'moment'\nimport type { Moment } from 'moment'\nimport { defineComponent, onMounted, ref, inject } from 'vue'\nimport type { Ref } from 'vue'\nimport { HomePageInfo } from '@/views/Planning/type'\nimport { getScenrioList, getKufriList, getPlanningYear, removePlanning, lockPlanning, createPlanning, uploadPlanningFm, downloadFmWsTemplate, getQueryDataNumber, exportFmWs, getBaseList, saveSimulation, initProcess } from '@/API/planning'\nimport YearPicker from '@/views/Payment/components/YearPicker.vue'\nimport MuiltYearPicker from '@/views/Planning/components/MuiltYearPicker.vue'\nimport Upload from '@/views/Planning/components/Upload.vue'\nimport { StateStep } from '@/views/Planning/type'\nimport { makeKey, kufriKey, planningIdKey, scenarioKey, scenarioIdKey, stateStepKey, simulationYearKey, typePlanningOrSimulationKey,createMonthKey, currentKufriKey, planningYearKey } from '@/views/Planning/index.vue'\nimport { Modal, message } from 'ant-design-vue'\nimport { downloadFromStream } from '@/utils/payment/downloadFile'\nimport isExcel from \"@/utils/closing/isExcel\"\nimport { useStore } from 'vuex'\nconst columns = [\n {\n title: 'Planning Scenario',\n dataIndex: 'planningName',\n key: 'planningName',\n width: 500,\n slots: { customRender: 'name' }\n },\n {\n title: 'Kufri',\n dataIndex: 'kufriMonth',\n key: 'kufriMonth',\n slots: { customRender: 'kufri' },\n width: 90\n },\n {\n title: 'Create Time',\n dataIndex: 'createTime',\n key: 'createTime',\n slots: { customRender: 'create' },\n width: 110\n },\n {\n title: 'Operation',\n key: 'action',\n slots: { customRender: 'action' },\n width: 120\n },\n {\n title: '',\n key: 'simulation1',\n width: 20,\n customHeaderCell: () => {\n return {\n style: {\n border: '0px !important'\n }\n }\n },\n customCell: () => {\n return {\n style: {\n border: '0px !important',\n 'backgroundColor': '#FFF !important'\n }\n }\n }\n },\n {\n title: '',\n key: 'simulation1',\n slots: { customRender: 'simulation1' },\n width: 160,\n align: 'left',\n customCell: () => {\n return {\n style: {\n 'padding-left': '20px !important',\n 'backgroundColor': '#FFF !important'\n }\n }\n }\n },\n {\n title: 'Simulation',\n key: 'simulation2',\n slots: { customRender: 'simulation2' },\n width: 160,\n customHeaderCell: () => {\n return {\n style: {\n 'text-align': 'center'\n }\n }\n },\n customCell: () => {\n return {\n style: {\n 'padding-left': '20px !important',\n 'backgroundColor': '#FFF !important'\n }\n }\n }\n },\n {\n title: '',\n key: 'simulation3',\n slots: { customRender: 'simulation3' },\n width: 160,\n customCell: () => {\n return {\n style: {\n 'padding-left': '20px !important',\n 'backgroundColor': '#FFF !important'\n }\n }\n }\n },\n]\nconst data = [\n {\n planningName: 'DBP',\n kufriMonth: '2021K08',\n createTime: '2021.08.28'\n }\n]\nexport default defineComponent({\n components: {\n YearPicker,\n MuiltYearPicker,\n Upload\n },\n emits: [\n 'simulation'\n ],\n setup(props, ctx) {\n const store = useStore()\n const currentYear = ref(moment())\n const scenarioOptions = ref([])\n const kufriOptions = ref([])\n const showUploadDrawer = ref(false)\n \n const currentRow = ref({})\n const uploadMake = ref('')\n const currentUploadMake = ref('')\n const currentUploadYear = ref('') \n const currentPlanningYear = ref('')\n const currentPlanningId = ref('')\n const make = inject>(makeKey) as Ref\n const kufri = inject>(kufriKey) as Ref\n const planningId = inject>(planningIdKey) as Ref\n const scenario = inject>(scenarioKey) as Ref\n const scenarioId = inject>(scenarioIdKey) as Ref\n const stateStep = inject>(stateStepKey) as Ref\n const simulationYear = inject>(simulationYearKey) as Ref\n const typePlanningOrSimulation = inject>(typePlanningOrSimulationKey) as Ref\n const createMonth = inject>(createMonthKey) as Ref\n const currentKufri = inject>(currentKufriKey) as Ref\n const planningYear = inject>(planningYearKey) as Ref\n\n const FmYears = ref({\n CBU: [],\n PBP: [],\n VAN: []\n })\n\n const parentId = ref(null)\n const baseOptions = ref()\n const modalShow = ref(false)\n const simulationDescripe = ref('')\n\n const initData = async () => {\n const params = {\n activeStatus: true\n }\n const _scenarioResult = await getScenrioList(params)\n scenarioOptions.value = _scenarioResult.data\n }\n initData()\n const allInfo = ref([\n {\n name: 'CBU',\n list: [],\n code: 'PC0048',\n createInfo: {\n planningName: undefined,\n kufriMonth: undefined,\n kufriOptions: [],\n createYears: [],\n make: ''\n }\n },\n {\n name: 'PBP',\n list: [],\n code: 'PC0049',\n createInfo: {\n planningName: undefined,\n kufriMonth: undefined,\n kufriOptions: [],\n createYears: [],\n make: ''\n }\n },\n {\n name: 'VAN',\n list: [],\n code: 'PC0050',\n createInfo: {\n planningName: undefined,\n kufriMonth: undefined,\n kufriOptions: [],\n createYears: [],\n make: ''\n }\n },\n // {\n // name: 'DENZA',\n // list: [],\n // code: 'PC0051',\n // createInfo: {\n // planningName: undefined,\n // kufriMonth: undefined,\n // kufriOptions: [],\n // createYears: [],\n // make: ''\n // }\n // }\n ])\n const tableColumns = ref(columns)\n const tableData = ref(data)\n const getPlanningList = async (type: string) => {\n const _params = {\n make: type,\n currentYear: currentYear.value.format('YYYY')\n }\n const _FmList = await getQueryDataNumber({make: type})\n FmYears.value[type] = _FmList.data?.map((item: any) => item.year)\n const _result = await getPlanningYear(_params)\n _result.data.forEach((item: any) => {\n const stamp = new Date(item.createAt)\n const y = stamp.getFullYear()\n const m = stamp.getMonth() > 8 ? stamp.getMonth() + 1 : `0${stamp.getMonth() + 1}`\n const d = stamp.getDate() > 9 ? stamp.getDate() : '0' + stamp.getDate()\n item.createTime = `${y}.${m}.${d}`\n if (FmYears.value[type].includes(item.year)) {\n item.uploadStatus = true\n } else {\n item.uploadStatus = false\n }\n })\n return _result.data\n }\n const handleCreatePlanning = (type: string) => {\n const nowYear = new Date().getFullYear()\n const _currentYear = parseInt(currentYear.value.format('YYYY'))\n if (_currentYear < nowYear) {\n return message.error('Current year does not allow creation.')\n }\n\n const _item = allInfo.value.filter((item: any) => {\n return item.name === type\n })\n const _postData: any = {\n scenrioName: _item[0].createInfo.planningName,\n createYears: (_item[0].createInfo.createYears || []).join(','),\n make: type,\n kufriMonth: _item[0].createInfo.kufriMonth,\n currentYear: currentYear.value.format('YYYY')\n }\n if (!_postData.scenrioName) {\n return message.error('Please select Scenrio')\n }\n if (!_postData.kufriMonth) {\n return message.error('Please select Kufri')\n }\n if (!_postData.createYears) {\n return message.error('Please select Planning Year')\n }\n createPlanning(_postData).then(async (res) => {\n const _list = res.basicInfoVOS\n _list.forEach((item: any) => {\n const stamp = new Date(item.createAt)\n const y = stamp.getFullYear()\n const m = stamp.getMonth() + 1\n const d = stamp.getDate()\n item.createTime = `${y}.${m}.${d}`\n if (FmYears.value[type].includes(item.year)) {\n item.uploadStatus = true\n } else {\n item.uploadStatus = false\n }\n })\n if (res.failPlanngingYear?.length > 0) {\n const text = `${res.failPlanngingYear.join(',')} already exits, cannot be created repeatedly`\n message.error(text)\n } else {\n message.success('Create Success')\n }\n const _kufris = await getKufriList({make: type})\n allInfo.value.forEach((item: any) => {\n if (item.name === type) {\n item.list = _list\n item.createInfo = {\n planningName: undefined,\n kufriMonth: undefined,\n createYears: [],\n kufriOptions: _kufris.data\n }\n }\n })\n })\n }\n\n const methodsGetAllInfo = (flag: boolean) => {\n allInfo.value.forEach(async (item: any) => {\n if (item.name === 'CBU') {\n item.list = await getPlanningList('CBU')\n if (flag) {\n const res = await getKufriList({make: 'CBU'})\n item.createInfo.kufriOptions = res.data\n }\n }\n if (item.name === 'PBP') {\n item.list = await getPlanningList('PBP')\n if (flag) {\n const res = await getKufriList({make: 'PBP'})\n item.createInfo.kufriOptions = res.data\n }\n }\n if (item.name === 'VAN') {\n item.list = await getPlanningList('VAN')\n if (flag) {\n const res = await getKufriList({make: 'VAN'})\n item.createInfo.kufriOptions = res.data\n }\n }\n if (item.name === 'DENZA') {\n item.list = await getPlanningList('DENZA')\n if (flag) {\n const res = await getKufriList({make: 'DENZA'})\n item.createInfo.kufriOptions = res.data\n }\n }\n })\n }\n\n const farmatCurrentYear = ref(new Date().getFullYear().toString())\n const handleChangeYear = (year: any) => {\n methodsGetAllInfo(false)\n farmatCurrentYear.value = year.format('YYYY')\n }\n\n const handleLockPlanning = (record: any, id: number, lockStatus: boolean, planningName: string) => {\n const content: string = lockStatus ? `Unlock ${planningName}?` : `Lock ${planningName}?`\n Modal.confirm({\n title: 'Tips',\n content: content,\n okText: 'Confirm',\n onOk() {\n const text: string = lockStatus ? `Confirm Unlock` : `Confirm Lock`\n Modal.confirm({\n title: 'Tips',\n content: text,\n okText: 'Confirm',\n onOk() {\n const _postData = {\n planningId: id,\n lockStatus: !lockStatus\n }\n lockPlanning(_postData).then(() => {\n record.lockStatus = !record.lockStatus\n })\n },\n cancelText: 'Cancel',\n })\n },\n cancelText: 'Cancel',\n })\n }\n\n const handleClickFile = (record: any) => {\n showUploadDrawer.value = true\n currentPlanningId.value = record.id\n currentUploadMake.value = record.make\n currentUploadYear.value = record.createYear\n currentPlanningYear.value = record.year\n currentRow.value = record\n uploadMake.value = record.make\n planningYear.value = record.year\n }\n\n const handleDownloadTemplate = async() => {\n const data = await downloadFmWsTemplate(currentPlanningId.value)\n downloadFromStream(data)\n }\n\n const handleUpload = async (file: File, resolve: (value: unknown) => void, reject: (reason?: unknown) => void, options: any) => {\n const _formData = new FormData()\n _formData.append('file', file)\n try {\n const fileIsExcel = await isExcel(file)\n if (!fileIsExcel) {\n message.error('file type error')\n throw 'file type error'\n }\n const response = await uploadPlanningFm(_formData, currentUploadMake.value, currentPlanningYear.value, {\n onUploadProgress: (progressEvent: any) => {\n if (progressEvent.lengthComputable) {\n const percent = ((progressEvent.loaded / progressEvent.total) * 100) | 0\n options.percent.value = percent\n }\n }\n })\n if (response.data.size === 0) {\n const _FmList = await getQueryDataNumber({make: uploadMake.value})\n const FmYears = _FmList.data?.map((item: any) => item.year)\n allInfo.value.filter((item: any) => item.name === uploadMake.value)[0].list.forEach((row: any) => {\n if (FmYears.includes(row.year)) {\n row.uploadStatus = true\n } else {\n row.uploadStatus = false\n }\n })\n message.success('Upload Success.')\n resolve(null)\n return \n }\n if (response.data.type === 'application/json') {\n const result = JSON.parse(await response.data.text())\n if (result.code !== '0') {\n throw result.message\n }\n resolve(null)\n } else {\n downloadFromStream(response)\n throw 'Upload File Error'\n }\n } catch (error) {\n reject(error)\n message.error(error)\n }\n \n }\n\n const handleExportFm = async (record: any) => {\n if (!record.uploadStatus) {\n return message.error('No Data.')\n }\n // const _params = {\n // make: record.make,\n // year: record.createYear\n // }\n const data = await exportFmWs(record.make, record.year)\n downloadFromStream(data)\n }\n\n const handleRemovePlanning = (planningId: number, make: string, planningName: string) => {\n Modal.confirm({\n title: 'Tips',\n content: `Delete ${planningName} and Clear all related data?`,\n okText: 'Confirm',\n onOk() {\n Modal.confirm({\n title: 'Tips',\n content: 'Confirm Delete',\n okText: 'Confirm',\n onOk() {\n const _postData = planningId\n removePlanning(_postData).then(async () => {\n const _list = await getPlanningList(make)\n allInfo.value.forEach((item: any) => {\n if (item.name === make) {\n item.list = _list\n }\n })\n })\n },\n cancelText: 'Cancel',\n })\n },\n cancelText: 'Cancel',\n })\n }\n\n let id: number\n let timer: any = null\n const cycle = async () => {\n const res: any = await initProcess({planningId: id})\n store.commit('updateSpinning', true)\n if (res.data) {\n store.commit('updateSpinning', false)\n stateStep.value = StateStep.PlanningSimulation\n ctx.emit('simulation', 'simulation')\n clearInterval(timer)\n }\n }\n\n const handleToDataPreparation = (record: any, type = 'planning') => {\n id = record.id\n make.value = record.make\n kufri.value = record.kufriMonth\n planningId.value = record.id\n scenario.value = record.planningName\n scenarioId.value = record.scenarioId\n simulationYear.value = record.year\n planningYear.value = record.year\n typePlanningOrSimulation.value = type\n createMonth.value = record.createMonth\n currentKufri.value = record.currentKufri\n if (type === 'simulation') {\n cycle()\n timer = setInterval(cycle, 5000) \n } else {\n stateStep.value = StateStep.Preparation\n }\n }\n\n const handleCreateSimulation = async (record: any) => {\n modalShow.value = true\n currentRow.value = record\n const res: any = await getBaseList({planningId: record.id})\n baseOptions.value = res.data.map((item: any) => {\n return {\n value: item.id,\n label: item.planningName\n }\n })\n }\n\n const handleSimulationModalOk = () => {\n if (!parentId.value) {\n return message.error('Please Select Base.')\n }\n if (!simulationDescripe.value) {\n return message.error('Please Input Descripition.')\n }\n const postData = {\n basePlanningId: currentRow.value.id,\n currentYear: currentRow.value.createYear,\n make: currentRow.value.make,\n parentId: parentId.value,\n planningName: simulationDescripe.value,\n scenrioName: currentRow.value.name\n }\n const make = currentRow.value.make\n saveSimulation(postData).then(async (res: any) => {\n message.success('Create Success.')\n modalShow.value = false\n const list = await getPlanningList(make)\n for (let i = 0; i < allInfo.value.length;i ++) {\n if (allInfo.value[i].name === make) {\n allInfo.value[i].list = list\n }\n }\n })\n }\n\n const handleSimulationModalCancle = () => {\n parentId.value = null\n simulationDescripe.value = ''\n }\n\n onMounted(() => {\n methodsGetAllInfo(true)\n })\n\n const disabledYear = (year: number) => {\n return year < moment().year()\n }\n\n return {\n currentYear,\n farmatCurrentYear,\n scenarioOptions,\n kufriOptions,\n allInfo,\n tableColumns,\n tableData,\n showUploadDrawer,\n currentUploadMake,\n currentUploadYear, \n currentPlanningYear,\n currentPlanningId,\n\n baseOptions,\n modalShow,\n parentId,\n simulationDescripe,\n\n handleChangeYear,\n handleCreatePlanning,\n handleLockPlanning,\n handleClickFile,\n handleDownloadTemplate,\n handleUpload,\n handleRemovePlanning,\n handleExportFm,\n handleToDataPreparation,\n disabledYear,\n\n handleCreateSimulation,\n handleSimulationModalOk,\n handleSimulationModalCancle\n }\n }\n})\n","import { render } from \"./BasicSetting.vue?vue&type=template&id=1669039d&scoped=true&ts=true\"\nimport script from \"./BasicSetting.vue?vue&type=script&lang=ts\"\nexport * from \"./BasicSetting.vue?vue&type=script&lang=ts\"\n\nimport \"./BasicSetting.vue?vue&type=style&index=0&id=1669039d&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-1669039d\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-776ddd97\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"container\" }\nconst _hoisted_2 = { class: \"d-f m-8 justify-b\" }\nconst _hoisted_3 = { class: \"kufir-selector\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \"Kufri\", -1))\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"Calculate\")\nconst _hoisted_6 = { class: \"kufri-interface\" }\nconst _hoisted_7 = { class: \"title\" }\nconst _hoisted_8 = { class: \"year\" }\nconst _hoisted_9 = /*#__PURE__*/_createTextVNode(\" Kufri Interface \")\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"type-name\" }, \"WS volume and WS LLP\")\n], -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"type-name\" }, \"RT volume and RT LLP\")\n], -1))\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"type-name\" }, \"DS volume and DS LLP\")\n], -1))\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_15 = { class: \"error-tip success\" }\nconst _hoisted_16 = [\"src\"]\nconst _hoisted_17 = { class: \"error-tip success\" }\nconst _hoisted_18 = [\"src\"]\nconst _hoisted_19 = { class: \"error-tip success\" }\nconst _hoisted_20 = [\"src\"]\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_22 = { class: \"create-time\" }\nconst _hoisted_23 = { class: \"create-time\" }\nconst _hoisted_24 = { class: \"create-time\" }\nconst _hoisted_25 = /*#__PURE__*/_createTextVNode(\"Export\")\nconst _hoisted_26 = /*#__PURE__*/_createTextVNode(\"Export\")\nconst _hoisted_27 = /*#__PURE__*/_createTextVNode(\"Export\")\nconst _hoisted_28 = { class: \"title\" }\nconst _hoisted_29 = { class: \"year\" }\nconst _hoisted_30 = /*#__PURE__*/_createTextVNode(\" Maintain Impact Data \")\nconst _hoisted_31 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_32 = /*#__PURE__*/_createTextVNode(\"Upload\")\nconst _hoisted_33 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Upload WS Volume\", -1))\nconst _hoisted_34 = /*#__PURE__*/_createTextVNode(\"Upload\")\nconst _hoisted_35 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Upload WS LLP\", -1))\nconst _hoisted_36 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_37 = [\"src\"]\nconst _hoisted_38 = [\"src\"]\nconst _hoisted_39 = /*#__PURE__*/_createTextVNode(\"Export\")\nconst _hoisted_40 = /*#__PURE__*/_createTextVNode(\"Export\")\nconst _hoisted_41 = { class: \"download-button-wrapper\" }\nconst _hoisted_42 = /*#__PURE__*/_createTextVNode(\"Download Template\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_col = _resolveComponent(\"a-col\")!\n const _component_a_row = _resolveComponent(\"a-row\")!\n const _component_upload = _resolveComponent(\"upload\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createVNode(_component_a_select, {\n disabled: true,\n value: _ctx.lastestKufri,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.lastestKufri) = $event))\n }, null, 8, [\"value\"])\n ]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleCalculate\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _createElementVNode(\"ul\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.kufriInfos, (kufriInfo) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: kufriInfo.version\n }, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"b\", _hoisted_8, _toDisplayString(_ctx.planningYear), 1),\n _hoisted_9\n ]),\n _createVNode(_component_a_row, { type: \"flex\" }, {\n default: _withCtx(() => [\n _createVNode(_component_a_col, { span: 6 }, {\n default: _withCtx(() => [\n _hoisted_10,\n _hoisted_11,\n _hoisted_12,\n _hoisted_13\n ]),\n _: 1\n }),\n _createVNode(_component_a_col, { span: 10 }, {\n default: _withCtx(() => [\n _hoisted_14,\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"img\", {\n class: \"icon-state\",\n src: require(`@/assets/images/closing/success.png`)\n }, null, 8, _hoisted_16),\n _createElementVNode(\"span\", null, \"Upload Successful; \" + _toDisplayString(kufriInfo.counts) + \" Data\", 1)\n ]),\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"img\", {\n class: \"icon-state\",\n src: require(`@/assets/images/closing/success.png`)\n }, null, 8, _hoisted_18),\n _createElementVNode(\"span\", null, \"Upload Successful; \" + _toDisplayString(kufriInfo.counts) + \" Data\", 1)\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"img\", {\n class: \"icon-state\",\n src: require(`@/assets/images/closing/success.png`)\n }, null, 8, _hoisted_20),\n _createElementVNode(\"span\", null, \"Upload Successful; \" + _toDisplayString(kufriInfo.counts) + \" Data\", 1)\n ])\n ]),\n _: 2\n }, 1024),\n _createVNode(_component_a_col, { span: 6 }, {\n default: _withCtx(() => [\n _hoisted_21,\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(kufriInfo.createAt), 1)\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"span\", _hoisted_23, _toDisplayString(kufriInfo.createAt), 1)\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"span\", _hoisted_24, _toDisplayString(kufriInfo.createAt), 1)\n ])\n ]),\n _: 2\n }, 1024),\n _createVNode(_component_a_col, {\n span: 2,\n style: {\"text-align\":\"center\"}\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_button, {\n type: \"link\",\n size: \"small\",\n onClick: ($event: any) => (_ctx.handleExportKufri(kufriInfo.version, 'WS'))\n }, {\n default: _withCtx(() => [\n _hoisted_25\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_button, {\n type: \"link\",\n size: \"small\",\n onClick: ($event: any) => (_ctx.handleExportKufri(kufriInfo.version, 'RT'))\n }, {\n default: _withCtx(() => [\n _hoisted_26\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_button, {\n type: \"link\",\n size: \"small\",\n onClick: ($event: any) => (_ctx.handleExportKufri(kufriInfo.version, 'DS'))\n }, {\n default: _withCtx(() => [\n _hoisted_27\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ])\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1024)\n ]))\n }), 128)),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.data, (item, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: item.id\n }, [\n _createElementVNode(\"div\", _hoisted_28, [\n _createElementVNode(\"b\", _hoisted_29, _toDisplayString(item.year), 1),\n _hoisted_30\n ]),\n _createVNode(_component_a_row, { type: \"flex\" }, {\n default: _withCtx(() => [\n _createVNode(_component_a_col, { span: 6 }, {\n default: _withCtx(() => [\n _hoisted_31,\n _createElementVNode(\"div\", null, [\n (_ctx.$btnPermissions('P-DP01'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"link\",\n size: \"small\",\n class: \"upload-btn\",\n onClick: ($event: any) => (_ctx.handleShowUploadDrawer(_ctx.CbuWsCategory.WSVOLUME, index))\n }, {\n default: _withCtx(() => [\n _hoisted_32\n ]),\n _: 2\n }, 1032, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n _hoisted_33\n ]),\n _createElementVNode(\"div\", null, [\n (_ctx.$btnPermissions('P-DP01'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"link\",\n size: \"small\",\n class: \"upload-btn\",\n onClick: ($event: any) => (_ctx.handleShowUploadDrawer(_ctx.CbuWsCategory.WSLLP, index))\n }, {\n default: _withCtx(() => [\n _hoisted_34\n ]),\n _: 2\n }, 1032, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n _hoisted_35\n ])\n ]),\n _: 2\n }, 1024),\n _createVNode(_component_a_col, { span: 16 }, {\n default: _withCtx(() => [\n _hoisted_36,\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"error-tip\", {'success': item.volumeData.result === 'success', 'error': item.volumeData.result === 'error'}])\n }, [\n (item.volumeData.result !== 'none')\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"icon-state\",\n src: require(`@/assets/images/closing/${item.volumeData.result}.png`)\n }, null, 8, _hoisted_37))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", null, _toDisplayString(item.volumeData.resultMsg), 1)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"error-tip\", {'success': item.llfData.result === 'success', 'error': item.llfData.result === 'error'}])\n }, [\n (item.llfData.result !== 'none')\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"icon-state\",\n src: require(`@/assets/images/closing/${item.llfData.result}.png`)\n }, null, 8, _hoisted_38))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", null, _toDisplayString(item.llfData.resultMsg), 1)\n ], 2)\n ]),\n _: 2\n }, 1024),\n _createVNode(_component_a_col, {\n span: 2,\n style: {\"text-align\":\"center\"}\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n (_ctx.$btnPermissions('P-DP02'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"link\",\n size: \"small\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.handleExport(_ctx.CbuWsCategory.WSVOLUME))),\n disabled: !item.volumeData.exportable\n }, {\n default: _withCtx(() => [\n _hoisted_39\n ]),\n _: 2\n }, 1032, [\"disabled\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", null, [\n (_ctx.$btnPermissions('P-DP02'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"link\",\n size: \"small\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.handleExport(_ctx.CbuWsCategory.WSLLP))),\n disabled: !item.llfData.exportable\n }, {\n default: _withCtx(() => [\n _hoisted_40\n ]),\n _: 2\n }, 1032, [\"disabled\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1024)\n ]))\n }), 128))\n ])\n ]),\n _createVNode(_component_upload, {\n class: \"planning-datepreparation-upload\",\n title: _ctx.uploadDrawerTitle,\n show: _ctx.showUploadDrawer,\n \"onUpdate:show\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.showUploadDrawer) = $event)),\n onUpload: _ctx.handleUpload\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_41, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleDownloadTemplate\n }, {\n default: _withCtx(() => [\n _hoisted_42\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _: 1\n }, 8, [\"title\", \"show\", \"onUpload\"])\n ], 64))\n}","\nimport { defineComponent, ref, inject, h } from 'vue'\nimport type { Ref } from 'vue'\nimport moment from 'moment'\nimport Upload from '@/views/Planning/components/Upload.vue'\nimport { makeKey, kufriKey, planningIdKey, stateStepKey, scenarioIdKey, typePlanningOrSimulationKey, simulationYearKey, planningYearKey } from '@/views/Planning/index.vue'\nimport { StateStep, CbuWsCategory, KufriInfo } from '@/views/Planning/type'\nimport { message } from 'ant-design-vue'\nimport { downloadFromStream } from '@/utils/payment/downloadFile'\nimport isExcel from \"@/utils/closing/isExcel\"\nimport {\n getPlanningYear as getPlanningYearAPI,\n getKufriList as getKufriListAPI,\n importCbuWs as importCbuWsAPI,\n exportCbuWs as exportCbuWsAPI,\n downloadCbuWsTemplate as downloadCbuWsTemplateAPI,\n getCbuWsUploadInfo as getCbuWsUploadInfoAPI,\n kufriInfo as kufriInfoAPI,\n exportKufri as exportKufriAPI\n} from '@/API/planning'\nimport Decimal from '@/utils/closing/decimal'\n\ninterface PlanningYearData {\n year: string;\n id: number;\n}\ninterface UploadResultInfo {\n result: 'none' | 'success' | 'error';\n resultMsg: string;\n exportable: boolean;\n}\n\nexport default defineComponent({\n components: {\n Upload\n },\n setup() {\n const make = inject>(makeKey) as Ref\n const kufriMonth = inject>(kufriKey) as Ref\n const planningId = inject>(planningIdKey) as Ref\n const scenarioId = inject>(scenarioIdKey) as Ref\n const stateStep = inject>(stateStepKey)\n const simulationYear = inject>(simulationYearKey) as Ref\n const typePlanningOrSimulation = inject>(typePlanningOrSimulationKey) as Ref\n const planningYear = inject>(planningYearKey) as Ref\n let uploadCbuWsCategory = CbuWsCategory.WSVOLUME\n let uploadDataIndex: number | undefined = undefined\n\n const showUploadDrawer = ref(false)\n const uploadDrawerTitle = ref('')\n\n const data = ref<(PlanningYearData & { volumeData: UploadResultInfo; llfData: UploadResultInfo })[]>([])\n\n const lastestKufri = ref('')\n\n const kufriInfos = ref<(Omit & {counts: string; createAt: string})[]>([])\n\n const init = async () => {\n if (typePlanningOrSimulation.value === 'simulation') {\n data.value = [{\n year: simulationYear.value,\n id: planningId.value,\n volumeData: {\n result: 'none',\n resultMsg: '',\n exportable: false\n },\n llfData: {\n result: 'none',\n resultMsg: '',\n exportable: false\n }\n }]\n } else {\n data.value = ((await getPlanningYearAPI({\n make: make.value,\n scenarioId: scenarioId.value,\n kufriMonth: kufriMonth.value\n })).data as PlanningYearData[])?.map(item => {\n return {\n year: item.year,\n id: item.id,\n volumeData: {\n result: 'none',\n resultMsg: '',\n exportable: false\n },\n llfData: {\n result: 'none',\n resultMsg: '',\n exportable: false\n }\n }\n })\n }\n const {data: kufriList} = await getKufriListAPI({make: make.value})\n if (kufriList) {\n lastestKufri.value = kufriList[0] < kufriMonth.value ? kufriList[0] : kufriMonth.value\n }\n\n const uploadStatus = new Map();\n (await getCbuWsUploadInfoAPI(make.value, lastestKufri.value)).forEach(item => {\n const status = {\n llp: false,\n volume: false\n }\n switch (item.category) {\n case 'WS LLP':\n if (item.count > 0) {\n status.llp = true\n }\n break\n case 'WS VOLUME':\n if (item.count > 0) {\n status.volume = true\n }\n break\n }\n uploadStatus.set(item.planning_id, status)\n })\n\n data.value.forEach(item => {\n const status = uploadStatus.get(item.id)\n if (status?.llp) {\n item.llfData.result = 'success'\n item.llfData.resultMsg = 'Upload Successful'\n item.llfData.exportable = true\n }\n if (status?.volume) {\n item.volumeData.result = 'success'\n item.volumeData.resultMsg = 'Upload Successful'\n item.volumeData.exportable = true\n }\n })\n\n kufriInfos.value = (await kufriInfoAPI(planningId.value)).filter(item => item.version === lastestKufri.value)\n .map(item => {\n return {\n ...item,\n counts: new Decimal(item.counts).round(0),\n createAt: moment(item.createAt).format('YYYY.MM.DD HH:mm')\n }\n })\n }\n\n const handleShowUploadDrawer = (category: CbuWsCategory, index: number) => {\n switch (category) {\n case CbuWsCategory.WSVOLUME:\n uploadDrawerTitle.value = 'Upload WS Volume'\n break\n case CbuWsCategory.WSLLP:\n uploadDrawerTitle.value = 'Upload WS LLP'\n }\n uploadCbuWsCategory = category\n uploadDataIndex = index\n showUploadDrawer.value = true\n }\n\n const handleCalculate = () => {\n if (stateStep) {\n stateStep.value = StateStep.PlanningSimulation\n }\n }\n\n const handleExport = async (category: CbuWsCategory) => {\n const data = await exportCbuWsAPI(planningId.value, category)\n downloadFromStream(data)\n }\n\n const handleDownloadTemplate = async() => {\n const data = await downloadCbuWsTemplateAPI(uploadCbuWsCategory)\n downloadFromStream(data)\n }\n\n const handleUpload = async (file: File, resolve: (value: unknown) => void, reject: (reason?: unknown) => void, options: any) => {\n if (uploadDataIndex === undefined) {\n return\n }\n const params = new FormData()\n params.append('file', file)\n try {\n const fileIsExcel = await isExcel(file)\n if (!fileIsExcel) {\n message.error('file type error')\n throw 'file type error'\n }\n const response = await importCbuWsAPI(make.value, data.value[uploadDataIndex].year, data.value[uploadDataIndex].id, uploadCbuWsCategory, lastestKufri.value, params, {\n onUploadProgress: (progressEvent: any) => {\n if (progressEvent.lengthComputable) {\n const percent = ((progressEvent.loaded / progressEvent.total) * 100) | 0\n options.percent.value = percent\n }\n }\n })\n if (response.data.size === 0) {\n resolve(null)\n if (uploadCbuWsCategory === CbuWsCategory.WSVOLUME) {\n data.value[uploadDataIndex].volumeData.result = 'success'\n data.value[uploadDataIndex].volumeData.resultMsg = 'Upload Successful'\n data.value[uploadDataIndex].volumeData.exportable = true\n } else {\n data.value[uploadDataIndex].llfData.result = 'success'\n data.value[uploadDataIndex].llfData.resultMsg = 'Upload Successful'\n data.value[uploadDataIndex].llfData.exportable = true\n }\n } else if (response.data.type === 'application/json') {\n const result = JSON.parse(await response.data.text())\n if (result.code !== '0') {\n throw result.message\n }\n } else {\n downloadFromStream(response)\n throw 'Upload File Error'\n }\n } catch (e) {\n reject(e)\n if (uploadCbuWsCategory === CbuWsCategory.WSVOLUME) {\n data.value[uploadDataIndex].volumeData.result = 'error'\n data.value[uploadDataIndex].volumeData.resultMsg = 'Upload Failure'\n } else {\n data.value[uploadDataIndex].llfData.result = 'error'\n data.value[uploadDataIndex].llfData.resultMsg = 'Upload Failure'\n }\n }\n }\n\n const handleExportKufri = async (version: string, type: 'RT'|'WS'|'DS') => {\n const res = await exportKufriAPI(make.value, version, planningYear.value, type)\n downloadFromStream(res)\n }\n\n init()\n\n return {\n planningYear,\n data,\n CbuWsCategory,\n uploadDrawerTitle,\n showUploadDrawer,\n handleShowUploadDrawer,\n handleUpload,\n handleCalculate,\n lastestKufri,\n handleDownloadTemplate,\n handleExport,\n kufriInfos,\n handleExportKufri\n }\n }\n})\n","import { render } from \"./DataPreparation.vue?vue&type=template&id=776ddd97&scoped=true&ts=true\"\nimport script from \"./DataPreparation.vue?vue&type=script&lang=ts\"\nexport * from \"./DataPreparation.vue?vue&type=script&lang=ts\"\n\nimport \"./DataPreparation.vue?vue&type=style&index=0&id=776ddd97&lang=scss&scoped=true\"\nimport \"./DataPreparation.vue?vue&type=style&index=1&id=776ddd97&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],['__scopeId',\"data-v-776ddd97\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createSlots as _createSlots, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3c3244f6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"tab-content-container\" }\nconst _hoisted_2 = { class: \"header-bar\" }\nconst _hoisted_3 = { class: \"kufri-selector-container\" }\nconst _hoisted_4 = { class: \"stat-container\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", null, \"Overview\", -1))\nconst _hoisted_6 = { class: \"stat-content\" }\nconst _hoisted_7 = { class: \"stat-wrapper\" }\nconst _hoisted_8 = { class: \"total-stat-table\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \"WS\", -1))\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \"Total SD%\", -1))\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \"RT\", -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \"Total SD\", -1))\nconst _hoisted_13 = { class: \"detail-container\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_tag_selector = _resolveComponent(\"tag-selector\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_central_region = _resolveComponent(\"central-region\")!\n const _component_a_tab_pane = _resolveComponent(\"a-tab-pane\")!\n const _component_fleet = _resolveComponent(\"fleet\")!\n const _component_DealerStock = _resolveComponent(\"DealerStock\")!\n const _component_adjustment = _resolveComponent(\"adjustment\")!\n const _component_release = _resolveComponent(\"release\")!\n const _component_a_tabs = _resolveComponent(\"a-tabs\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_tag_selector, {\n class: \"year-selector\",\n mode: \"single\",\n \"data-source\": _ctx.years,\n value: _ctx.year,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.year) = $event))\n }, null, 8, [\"data-source\", \"value\"]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_a_select, {\n value: _ctx.kufri,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.kufri) = $event))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.kufris, (version) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n key: version,\n vlaue: version\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(version), 1)\n ]),\n _: 2\n }, 1032, [\"vlaue\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\"]),\n _createElementVNode(\"span\", {\n class: \"sync-btn font_family icon-shuaxin\",\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.handleSearch && _ctx.handleSearch(...args)))\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"table\", _hoisted_8, [\n _createElementVNode(\"caption\", null, _toDisplayString(_ctx.scenario), 1),\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _hoisted_9,\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.totalStatData.ws), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _hoisted_10,\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.totalStatData.sdPercent) + \"%\", 1)\n ])\n ]),\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _hoisted_11,\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.totalStatData.rt), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _hoisted_12,\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.totalStatData.sd), 1)\n ])\n ])\n ]),\n _createVNode(_component_a_table, {\n class: \"data-table\",\n pagination: false,\n columns: _ctx.typeStatTabletColumns,\n \"data-source\": _ctx.typeStatData,\n rowKey: (record, index) => index\n }, _createSlots({ _: 2 }, [\n _renderList(_ctx.typeStatTabletColumns, (column) => {\n return {\n name: column.dataIndex,\n fn: _withCtx(() => [\n _createElementVNode(\"span\", {\n class: _normalizeClass({active: _ctx.typeStatColumnActive(column.dataIndex)})\n }, _toDisplayString(column.titleName), 3)\n ])\n }\n })\n ]), 1032, [\"columns\", \"data-source\", \"rowKey\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_a_tabs, {\n class: \"sub-tabs\",\n activeKey: _ctx.activeKey,\n \"onUpdate:activeKey\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.activeKey) = $event))\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_component_a_tab_pane, {\n tab: \"Central & Region (C+R)\",\n key: _ctx.PlanningSimulationTab.GentralRegion\n }, {\n default: _withCtx(() => [\n (_ctx.activeKey === _ctx.PlanningSimulationTab.GentralRegion)\n ? (_openBlock(), _createBlock(_component_central_region, {\n key: 0,\n year: _ctx.year,\n \"kufri-version\": _ctx.kufri,\n \"planning-id\": _ctx.planningId\n }, null, 8, [\"year\", \"kufri-version\", \"planning-id\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })),\n (_openBlock(), _createBlock(_component_a_tab_pane, {\n tab: \"Fleet\",\n key: _ctx.PlanningSimulationTab.Fleet\n }, {\n default: _withCtx(() => [\n (_ctx.activeKey === _ctx.PlanningSimulationTab.Fleet)\n ? (_openBlock(), _createBlock(_component_fleet, {\n key: 0,\n year: _ctx.year,\n \"kufri-version\": _ctx.kufri,\n \"planning-id\": _ctx.planningId,\n type: _ctx.FcInputType.Fleet,\n \"type-id\": _ctx.fcInputTypes[_ctx.FcInputType.Fleet],\n onSaveData: _ctx.getStatData\n }, null, 8, [\"year\", \"kufri-version\", \"planning-id\", \"type\", \"type-id\", \"onSaveData\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })),\n (_openBlock(), _createBlock(_component_a_tab_pane, {\n tab: \"Used Car (UC)\",\n key: _ctx.PlanningSimulationTab.UC\n }, {\n default: _withCtx(() => [\n (_ctx.activeKey === _ctx.PlanningSimulationTab.UC)\n ? (_openBlock(), _createBlock(_component_fleet, {\n key: 0,\n year: _ctx.year,\n \"kufri-version\": _ctx.kufri,\n \"planning-id\": _ctx.planningId,\n type: _ctx.FcInputType.UC,\n \"type-id\": _ctx.fcInputTypes[_ctx.FcInputType.UC],\n onSaveData: _ctx.getStatData\n }, null, 8, [\"year\", \"kufri-version\", \"planning-id\", \"type\", \"type-id\", \"onSaveData\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })),\n (_openBlock(), _createBlock(_component_a_tab_pane, {\n tab: \"Floor Plan (FP)\",\n key: _ctx.PlanningSimulationTab.FP\n }, {\n default: _withCtx(() => [\n (_ctx.activeKey === _ctx.PlanningSimulationTab.FP)\n ? (_openBlock(), _createBlock(_component_fleet, {\n key: 0,\n year: _ctx.year,\n \"kufri-version\": _ctx.kufri,\n \"planning-id\": _ctx.planningId,\n type: _ctx.FcInputType.FlootPlan,\n \"type-id\": _ctx.fcInputTypes[_ctx.FcInputType.FlootPlan],\n onSaveData: _ctx.getStatData\n }, null, 8, [\"year\", \"kufri-version\", \"planning-id\", \"type\", \"type-id\", \"onSaveData\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })),\n (_openBlock(), _createBlock(_component_a_tab_pane, {\n tab: \"Bidding\",\n key: _ctx.PlanningSimulationTab.Bidding\n }, {\n default: _withCtx(() => [\n (_ctx.activeKey === _ctx.PlanningSimulationTab.Bidding)\n ? (_openBlock(), _createBlock(_component_fleet, {\n key: 0,\n year: _ctx.year,\n \"kufri-version\": _ctx.kufri,\n \"planning-id\": _ctx.planningId,\n type: _ctx.FcInputType.Bidding,\n \"type-id\": _ctx.fcInputTypes[_ctx.FcInputType.Bidding],\n onSaveData: _ctx.getStatData\n }, null, 8, [\"year\", \"kufri-version\", \"planning-id\", \"type\", \"type-id\", \"onSaveData\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })),\n (_ctx.make !== 'VAN')\n ? (_openBlock(), _createBlock(_component_a_tab_pane, {\n tab: \"Dealer Stock Adj. (DS Adj.)\",\n key: _ctx.PlanningSimulationTab.DsAdj\n }, {\n default: _withCtx(() => [\n (_ctx.activeKey === _ctx.PlanningSimulationTab.DsAdj)\n ? (_openBlock(), _createBlock(_component_DealerStock, {\n key: 0,\n year: _ctx.year,\n \"kufri-version\": _ctx.kufri,\n \"planning-id\": _ctx.planningId,\n onSaveData: _ctx.getStatData\n }, null, 8, [\"year\", \"kufri-version\", \"planning-id\", \"onSaveData\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_openBlock(), _createBlock(_component_a_tab_pane, {\n tab: \"Special Adj.\",\n key: _ctx.PlanningSimulationTab.SpecialAdj\n }, {\n default: _withCtx(() => [\n (_ctx.activeKey === _ctx.PlanningSimulationTab.SpecialAdj)\n ? (_openBlock(), _createBlock(_component_adjustment, {\n key: 0,\n year: _ctx.year,\n \"kufri-version\": _ctx.kufri,\n \"planning-id\": _ctx.planningId,\n onSaveData: _ctx.getStatData\n }, null, 8, [\"year\", \"kufri-version\", \"planning-id\", \"onSaveData\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })),\n (_openBlock(), _createBlock(_component_a_tab_pane, {\n tab: \"Release\",\n key: _ctx.PlanningSimulationTab.Released\n }, {\n default: _withCtx(() => [\n (_ctx.activeKey === _ctx.PlanningSimulationTab.Released)\n ? (_openBlock(), _createBlock(_component_release, {\n key: 0,\n year: _ctx.year,\n \"kufri-version\": _ctx.kufri,\n \"planning-id\": _ctx.planningId,\n onSaveData: _ctx.getStatData\n }, null, 8, [\"year\", \"kufri-version\", \"planning-id\", \"onSaveData\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n ]),\n _: 1\n }, 8, [\"activeKey\"])\n ])\n ]))\n}","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0a2a1b70\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"tag-selector-container\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_checkable_tag = _resolveComponent(\"a-checkable-tag\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.dataSource, (data) => {\n return (_openBlock(), _createBlock(_component_a_checkable_tag, {\n key: _ctx.getValue(data),\n checked: _ctx.isChecked(data),\n onChange: () => _ctx.handleChange(data)\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"default\", {\n text: _ctx.getTitle(data)\n }, () => [\n _createTextVNode(_toDisplayString(_ctx.getTitle(data)), 1)\n ], true)\n ]),\n _: 2\n }, 1032, [\"checked\", \"onChange\"]))\n }), 128))\n ]))\n}","\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\ninterface OptionConf {\n title?: string;\n value?: string;\n}\n\nexport default defineComponent({\n props: {\n mode: {\n type: String as PropType<'single'|'multi'>,\n default: 'single'\n },\n dataSource: {\n type: Array as PropType,\n default: () => []\n },\n value: {\n type: [Array, String] as PropType\n },\n options: {\n type: Object as PropType\n }\n },\n emits: [\n 'update:value',\n 'change'\n ],\n setup(props, {emit}) {\n const getTitle = (tag: unknown) => {\n if (props.options?.title) {\n return (tag as Record)[props.options?.title] as string\n } else {\n return tag as string\n }\n }\n\n const getValue = (tag: unknown) => {\n if (props.options?.value) {\n return (tag as Record)[props.options?.value] as string\n } else {\n return tag as string\n }\n }\n\n const handleChange = (tag: unknown) => {\n const changeValue = getValue(tag)\n if (props.mode === 'single') {\n emit('update:value', changeValue)\n emit('change', changeValue)\n } else {\n const value = props.value !== undefined ? [...props.value] : []\n const index = value.indexOf(changeValue)\n if (index === -1) {\n value.push(changeValue)\n emit('update:value', value)\n emit('change', value)\n } else {\n value.splice(index, 1)\n emit('update:value', value)\n emit('change', value)\n }\n }\n }\n\n const isChecked = (tag: unknown) => {\n const value = getValue(tag)\n if (props.mode === 'single') {\n return props.value === value\n } else {\n return props.value?.includes(value)\n }\n }\n\n return {\n handleChange,\n isChecked,\n getTitle,\n getValue\n }\n }\n})\n","import { render } from \"./TagSelector.vue?vue&type=template&id=0a2a1b70&scoped=true&ts=true\"\nimport script from \"./TagSelector.vue?vue&type=script&lang=ts\"\nexport * from \"./TagSelector.vue?vue&type=script&lang=ts\"\n\nimport \"./TagSelector.vue?vue&type=style&index=0&id=0a2a1b70&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-0a2a1b70\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, normalizeStyle as _normalizeStyle, createVNode as _createVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e31f8850\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"sub-tab-content-container\" }\nconst _hoisted_2 = { class: \"content-wrapper\" }\nconst _hoisted_3 = { class: \"search-panel\" }\nconst _hoisted_4 = { class: \"btn-container\" }\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"Expand to Model\")\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"Export\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_tag_selector = _resolveComponent(\"tag-selector\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_spread_js_table = _resolveComponent(\"spread-js-table\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_tag_selector, {\n class: \"brand-selector\",\n mode: \"multi\",\n \"data-source\": _ctx.brands,\n value: _ctx.selectedBrands,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedBrands) = $event)),\n onChange: _ctx.handleSearch,\n style: _normalizeStyle({'grid-template-columns': `repeat(${_ctx.brands.length}, 1fr)`})\n }, null, 8, [\"data-source\", \"value\", \"onChange\", \"style\"]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_a_checkbox, {\n class: \"expand-model-checkbox\",\n checked: _ctx.expandModel,\n \"onUpdate:checked\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.expandModel) = $event))\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"checked\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleExport\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _createVNode(_component_spread_js_table, {\n id: \"spreadjs-table\",\n \"frozen-row-count\": 1,\n columns: _ctx.tableColumns,\n \"data-source\": _ctx.tableData,\n \"expand-rows\": _ctx.expandRows\n }, null, 8, [\"columns\", \"data-source\", \"expand-rows\"])\n ])\n ]))\n}","\nimport { defineComponent, ref, computed, watch } from 'vue'\nimport TagSelector from '@/views/Planning/components/TagSelector.vue'\nimport deepClone from '@/utils/deepClone'\nimport type {\n CentralRegionData,\n CentralRegionSpreadJsData\n} from '@/views/Planning/type'\nimport { elementSize } from '@/utils'\nimport { downloadFromStream } from '@/utils/payment/downloadFile'\nimport { monthes, monthesEn, monthEnToNumber } from '@/utils/planning'\nimport {\n getCrBrandList as getCrBrandListAPI,\n getCrInfo as getCrInfoAPI,\n exportCr as exportCrAPI\n} from '@/API/planning'\nimport SpreadJsTable from '@/views/Planning/components/SpreadJsTable.vue'\nimport type { Columns } from '@/views/Planning/components/SpreadJsTable.vue'\nimport { FormatPercentage } from '@/views/Planning/components/SpreadJsTable.vue'\n\nconst rowKey = 'key'\n\nexport default defineComponent({\n components: {\n TagSelector,\n SpreadJsTable\n },\n props: {\n year: {\n type: String,\n },\n kufriVersion: {\n type: String,\n },\n planningId: {\n type: Number,\n }\n },\n setup(props) {\n // 品牌列表\n const brands = ref([])\n // 选中品牌\n const selectedBrands = ref([])\n\n // 表格展开状态\n const expandModel = ref(false)\n\n // 表格数据\n const tableData = ref([])\n\n const actualStatus = computed(() => {\n const actualStatusMap = new Map(monthes.map((item: string) => [item, false]))\n if (props.kufriVersion) {\n const kufriMonth = props.kufriVersion.replace('K', '')\n if (kufriMonth) {\n for (let i = 0; i < 12; i++) {\n if (`${props.year}${monthes[i]}` < kufriMonth) {\n actualStatusMap.set(monthes[i], true)\n }\n }\n }\n }\n return actualStatusMap\n })\n\n const tableColumns = ref([])\n\n // 表格Dom大小\n const tableSize = elementSize('.fleet-table')\n\n const expandRows = computed(() => {\n if (expandModel.value) {\n return tableData.value.reduce((rows: number[], item, index) => {\n if (item.level === 0 || item.level === 1) {\n rows.push(index)\n }\n return rows\n }, [])\n } else {\n return [0]\n }\n })\n\n // 查询表格数据\n const getCrInfo = async () => {\n if (!props.planningId || !props.kufriVersion) {\n return\n }\n\n let data: CentralRegionData[] = []\n if (selectedBrands.value.length) {\n data = await getCrInfoAPI(selectedBrands.value, props.planningId, props.kufriVersion)\n }\n\n tableData.value = []\n data.forEach((make: CentralRegionData) => {\n const makeData = {\n level: 0,\n vehicle: make.vehicle,\n brand: make.brand,\n annual: make.annual?.finalPoint ?? '',\n ...monthesEn.reduce((result, monthEn: string) => {\n result[monthEn] = make[monthEn].finalPoint ?? ''\n return result\n }, {}),\n } as CentralRegionSpreadJsData\n tableData.value.push(makeData)\n const parentRow = tableData.value.length - 1\n const typeClassChildren: number[] = []\n make.children?.forEach((typeClass: CentralRegionData) => {\n const typeClassData = {\n level: 1,\n vehicle: typeClass.vehicle,\n brand: typeClass.brand,\n annual: typeClass.annual?.finalPoint ?? '',\n ...monthesEn.reduce((result, monthEn: string) => {\n result[monthEn] = typeClass[monthEn].finalPoint ?? ''\n return result\n }, {}),\n parentRow: parentRow\n } as CentralRegionSpreadJsData\n tableData.value.push(typeClassData)\n const typeClassRow = tableData.value.length - 1\n typeClassChildren.push(typeClassRow)\n const modelChildren: number[] = []\n typeClass.children?.forEach((model: CentralRegionData) => {\n const impactModelData = {\n level: 2,\n vehicle: model.vehicle,\n brand: model.brand,\n annual: model.annual?.finalPoint ?? '',\n ...monthesEn.reduce((result, monthEn: string) => {\n result[monthEn] = model[monthEn]?.finalPoint ?? ''\n return result\n }, {}),\n parentRow: typeClassRow\n } as CentralRegionSpreadJsData\n tableData.value.push(impactModelData)\n const impactModelRow = tableData.value.length - 1\n modelChildren.push(impactModelRow)\n })\n typeClassData.childrenRow = modelChildren\n })\n makeData.childrenRow = typeClassChildren\n })\n\n tableColumns.value = [\n {\n title: '',\n children: [\n {\n title: 'Vehicle',\n dataIndex: 'vehicle',\n width: 340,\n align: 'left',\n locked: true,\n fixed: 'left',\n },\n {\n title: '',\n dataIndex: 'brand',\n width: 60,\n locked: true,\n fixed: 'left'\n }\n ]\n },\n {\n title: '',\n children: [\n {\n title: `${props.year}FY`,\n dataIndex: 'annual',\n align: 'right',\n width: 90,\n formatter: new FormatPercentage(),\n locked: true,\n style: {\n backColor: '#CCCCCC',\n cellPadding: '0 5'\n },\n fixed: 'left'\n }\n ]\n },\n // 月份列\n ...monthesEn.map((month, index, monthes) => {\n return {\n title: actualStatus.value.get(monthEnToNumber(month) as string) ? 'Actual' : 'Forecast',\n children: [\n {\n title: `${props.year}-${monthEnToNumber(month)}`,\n dataIndex: month,\n align: 'right' as const,\n width: 90,\n formatter: new FormatPercentage(),\n locked: true,\n style: {\n backColor: '#CCCCCC',\n cellPadding: '0 5'\n }\n }\n ]\n }\n })\n ]\n }\n\n const init = () => {\n if (!props.planningId || !props.kufriVersion) {\n return\n }\n // 获取品牌列表\n getCrBrandListAPI(props.planningId, props.kufriVersion).then((data: string[]) => {\n brands.value = data\n selectedBrands.value = deepClone(data)\n }).then(() => {\n getCrInfo()\n })\n }\n\n watch([() => props.kufriVersion, () => props.planningId], ([kufriVersionValue, planningIdValue]) => {\n if (kufriVersionValue && planningIdValue) {\n init()\n }\n }, {\n immediate: true\n })\n\n const handleSearch = () => {\n getCrInfo()\n }\n\n const handleExport = async () => {\n const postData = {\n brandList: selectedBrands.value,\n planningId: props.planningId,\n kufriVersion: props.kufriVersion\n }\n const res = await exportCrAPI(postData)\n downloadFromStream(res)\n }\n\n return {\n brands,\n selectedBrands,\n expandModel,\n handleSearch,\n tableColumns,\n expandRows,\n monthes,\n rowKey,\n tableData,\n actualStatus,\n tableSize,\n handleExport\n }\n }\n})\n","import { render } from \"./CentralRegion.vue?vue&type=template&id=e31f8850&scoped=true&ts=true\"\nimport script from \"./CentralRegion.vue?vue&type=script&lang=ts\"\nexport * from \"./CentralRegion.vue?vue&type=script&lang=ts\"\n\nimport \"./CentralRegion.vue?vue&type=style&index=0&id=e31f8850&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-e31f8850\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, normalizeStyle as _normalizeStyle, createVNode as _createVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-03e2d672\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"sub-tab-content-container\" }\nconst _hoisted_2 = { class: \"content-wrapper\" }\nconst _hoisted_3 = { class: \"search-panel\" }\nconst _hoisted_4 = { class: \"btn-container\" }\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"Expand to Model\")\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"Export\")\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\"Save\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_tag_selector = _resolveComponent(\"tag-selector\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_spread_js_table = _resolveComponent(\"spread-js-table\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_tag_selector, {\n class: \"brand-selector\",\n mode: \"multi\",\n \"data-source\": _ctx.brands,\n value: _ctx.selectedBrands,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedBrands) = $event)),\n onChange: _ctx.handleSearch,\n style: _normalizeStyle({'grid-template-columns': `repeat(${_ctx.brands.length}, 1fr)`})\n }, null, 8, [\"data-source\", \"value\", \"onChange\", \"style\"]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_a_checkbox, {\n class: \"expand-model-checkbox\",\n checked: _ctx.expandModel,\n \"onUpdate:checked\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.expandModel) = $event))\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"checked\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleExport,\n style: {\"margin-right\":\"12px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n (_ctx.showSaveBtn)\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"primary\",\n onClick: _ctx.handleSave\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createVNode(_component_spread_js_table, {\n id: \"spreadjs-table\",\n columns: _ctx.tableColumns,\n \"data-source\": _ctx.tableData,\n \"cell-render\": _ctx.cellRender,\n \"expand-rows\": _ctx.expandRows,\n \"frozen-row-count\": 1,\n onValueChanged: _ctx.handleValueChanged,\n onClipboardPasting: _ctx.handleClipboardPasting,\n onRangeChanged: _ctx.handleRangeChanged\n }, null, 8, [\"columns\", \"data-source\", \"cell-render\", \"expand-rows\", \"onValueChanged\", \"onClipboardPasting\", \"onRangeChanged\"])\n ])\n ]))\n}","import GC from '@grapecity/spread-sheets'\n\nexport interface EventHandlers {\n processMouseDown?: () => void;\n processMouseUp?: () => void;\n}\n\nexport class ImageButtomColumnHeader extends GC.Spread.Sheets.CellTypes.ColumnHeader {\n private imageSrc = ''\n private tipElement: HTMLElement | null = null\n private tip: string | undefined = undefined\n private eventHandlers: EventHandlers | undefined = undefined\n\n constructor(imageSrc: string, tip?: string, eventHandlers?: EventHandlers) {\n super()\n this.imageSrc = imageSrc\n this.tip = tip\n this.eventHandlers = eventHandlers\n }\n\n private showTip(container: HTMLElement, top: number, left: number, tip: string) {\n if (!this.tipElement) {\n const span = document.createElement('span')\n span.style.position = 'absolute'\n span.style.background = '#EEEEEE'\n span.style.border = '1px solid black'\n span.style.boxShadow = '5px 5px 5px rgba(0,0,0,0.4)'\n span.style.paddingLeft = '5px'\n span.style.paddingRight = '5px'\n span.style.fontSize = '14px'\n container.insertBefore(span, null)\n this.tipElement = span\n }\n const tipElement = this.tipElement\n tipElement.textContent = tip\n const spanStyle = tipElement.style\n spanStyle.top = top + 'px'\n spanStyle.left = left + 'px'\n }\n \n private hideTip(container: HTMLElement) {\n if (this.tipElement) {\n container.removeChild(this.tipElement)\n this.tipElement = null\n }\n }\n\n paint(ctx: CanvasRenderingContext2D, value: any, x: number, y: number, w: number, h: number, style: GC.Spread.Sheets.Style, context?: any) {\n super.paint(ctx, value, x, y, w, h, style, context)\n ctx.save();\n const image = new Image()\n image.src = this.imageSrc\n ctx.textAlign = 'center'\n ctx.drawImage(image, x + 5, y + (h - 14) / 2, 14, 14)\n ctx.restore()\n }\n\n getHitInfo(x: number, y: number, cellStyle: GC.Spread.Sheets.Style, cellRect: GC.Spread.Sheets.Rect, context?: any): GC.Spread.Sheets.IHitTestCellTypeHitInfo {\n return {x: x, y: y, row: context.row, col: context.col, cellRect: cellRect, sheetArea: context.sheetArea}\n }\n\n processMouseMove(hitInfo: GC.Spread.Sheets.IHitTestCellTypeHitInfo): boolean {\n const sheet = (hitInfo as {sheet: any}).sheet\n if (this.tip) {\n this.showTip(sheet.getParent().getHost(), (hitInfo.y || 0), (hitInfo.x || 0) + 10, this.tip)\n }\n return true\n }\n\n processMouseLeave(hitInfo: GC.Spread.Sheets.IHitTestCellTypeHitInfo): boolean {\n const sheet = (hitInfo as {sheet: any}).sheet\n this.hideTip(sheet.getParent().getHost())\n return true\n }\n\n processMouseDown(hitInfo: GC.Spread.Sheets.IHitTestCellTypeHitInfo): boolean {\n const sheet = (hitInfo as {sheet: any}).sheet\n this.hideTip(sheet.getParent().getHost())\n if (this.eventHandlers?.processMouseDown) {\n this.eventHandlers.processMouseDown()\n }\n return true\n }\n\n processMouseUp(hitInfo: GC.Spread.Sheets.IHitTestCellTypeHitInfo): boolean {\n const sheet = (hitInfo as {sheet: any}).sheet\n this.hideTip(sheet.getParent().getHost())\n if (this.eventHandlers?.processMouseUp) {\n this.eventHandlers.processMouseUp()\n }\n return true\n }\n}","\nimport { defineComponent, ref, computed, watch } from 'vue'\nimport type { PropType } from 'vue'\nimport { Modal } from 'ant-design-vue'\nimport { message } from 'ant-design-vue'\nimport TagSelector from '@/views/Planning/components/TagSelector.vue'\nimport deepClone from '@/utils/deepClone'\nimport { downloadFromStream } from '@/utils/payment/downloadFile'\nimport type { FleetData, FcInputDataParam, FleetSpreadJsData } from '@/views/Planning/type'\nimport { FcInputType } from '@/views/Planning/type'\nimport { elementSize } from '@/utils'\nimport { monthes, monthesEn, monthEnToNumber } from '@/utils/planning'\nimport {\n getFcInputBrandList as getFcInputBrandListAPI,\n getFcInputData as getFcInputDataAPI,\n saveFcInputData as saveFcInputDataAPI,\n getFcInputProposalData as getFcInputProposalDataAPI,\n exportFcInput as exportFcInputAPI\n} from '@/API/planning'\nimport { btnPermissions } from '@/utils'\nimport SpreadJsTable from '@/views/Planning/components/SpreadJsTable.vue'\nimport type { Columns } from '@/views/Planning/components/SpreadJsTable.vue'\nimport { FormatPercentage } from '@/views/Planning/components/SpreadJsTable.vue'\nimport { ImageButtomColumnHeader } from '@/utils/planning/spreadJsCustom'\nimport GC from '@grapecity/spread-sheets'\n\nconst rowKey = 'key'\n\nexport default defineComponent({\n components: {\n TagSelector,\n SpreadJsTable\n },\n props: {\n year: {\n type: String,\n },\n kufriVersion: {\n type: String,\n },\n planningId: {\n type: Number,\n },\n type: {\n type: String as PropType\n },\n typeId: {\n type: Number\n }\n },\n emits: [\n 'save-data',\n 'edit-staring'\n ],\n setup(props, context) {\n // 品牌列表\n const brands = ref([])\n // 选中品牌\n const selectedBrands = ref([])\n\n // 表格展开状态\n const expandModel = ref(false)\n\n // 表格数据\n const tableData = ref([])\n\n const actualStatus = computed(() => {\n const actualStatusMap = new Map(monthes.map((item: string) => [item, false]))\n if (props.kufriVersion) {\n const kufriMonth = props.kufriVersion.replace('K', '')\n if (kufriMonth) {\n for (let i = 0; i < 12; i++) {\n if (`${props.year}${monthes[i]}` < kufriMonth) {\n actualStatusMap.set(monthes[i], true)\n }\n }\n }\n }\n return actualStatusMap\n })\n\n const tableColumns = ref([])\n\n // 表格Dom大小\n const tableSize = elementSize('.fleet-table')\n\n const expandRows = computed(() => {\n if (expandModel.value) {\n return tableData.value.reduce((rows: number[], item, index) => {\n if (item.level === 0 || item.level === 1) {\n rows.push(index)\n }\n return rows\n }, [])\n } else {\n return [0]\n }\n })\n\n const handleGetProposalData = async (month: string) => {\n const proposalData = await getFcInputProposalDataAPI(props.planningId as number, monthEnToNumber(month) as string, props.typeId as number,\n props.kufriVersion as string)\n tableData.value.forEach((item: FleetSpreadJsData) => {\n let key = ''\n if (item.level === 0 || item.level === 1) {\n key = item.vehicle\n } else {\n key = `${item.brand}-${item.impactCode}`\n }\n const finalPoint = proposalData?.[key] ?? ''\n item[month].finalPoint = finalPoint\n item[month].editable = true\n })\n }\n\n // 查询表格数据\n const getCrInfo = async () => {\n if (!props.planningId || !props.kufriVersion || !props.typeId) {\n return\n }\n\n let data: FleetData[] = []\n if (selectedBrands.value.length) {\n data = await getFcInputDataAPI(selectedBrands.value, props.planningId, props.kufriVersion, props.typeId)\n }\n\n tableData.value = []\n data.forEach((make: FleetData) => {\n const makeData = {\n level: 0,\n vehicle: make.make,\n brand: '',\n annual: make.annual,\n ...monthesEn.reduce((result, monthEn: string) => {\n result[monthEn] = {\n ...make[monthEn] ?? { finalPoint: '' },\n editable: true\n }\n result[monthEn].finalPoint = result[monthEn].finalPoint ?? ''\n result[monthEn].originValue = result[monthEn].finalPoint\n return result\n }, {}),\n } as FleetSpreadJsData\n tableData.value.push(makeData)\n const parentRow = tableData.value.length - 1\n const typeClassChildren: number[] = []\n make.children?.forEach((typeClass: FleetData) => {\n const typeClassData = {\n level: 1,\n vehicle: typeClass.typeClass,\n brand: typeClass.brand,\n annual: typeClass.annual,\n typeClass: typeClass.typeClass,\n ...monthesEn.reduce((result, monthEn: string) => {\n result[monthEn] = {\n ...typeClass[monthEn] ?? { finalPoint: '' },\n editable: true\n }\n result[monthEn].finalPoint = result[monthEn].finalPoint ?? ''\n result[monthEn].originValue = result[monthEn].finalPoint\n return result\n }, {}),\n parentRow: parentRow\n } as FleetSpreadJsData\n tableData.value.push(typeClassData)\n const typeClassRow = tableData.value.length - 1\n typeClassChildren.push(typeClassRow)\n const modelChildren: number[] = []\n typeClass.children?.forEach((model: FleetData) => {\n const impactModelData = {\n level: 2,\n vehicle: model.impactModel,\n brand: model.brand,\n annual: model.annual?.finalPoint ? model.annual : { finalPoint: '' },\n impactCode: model.impactCode,\n impactModel: model.impactModel,\n ...monthesEn.reduce((result, monthEn: string) => {\n result[monthEn] = {\n ...model[monthEn] ?? { finalPoint: '' },\n editable: true\n }\n result[monthEn].finalPoint = result[monthEn].finalPoint ?? ''\n result[monthEn].originValue = result[monthEn].finalPoint\n return result\n }, {}),\n parentRow: typeClassRow\n } as FleetSpreadJsData\n tableData.value.push(impactModelData)\n const impactModelRow = tableData.value.length - 1\n modelChildren.push(impactModelRow)\n })\n typeClassData.childrenRow = modelChildren\n })\n makeData.childrenRow = typeClassChildren\n })\n\n tableColumns.value = [\n {\n title: '',\n headerStyle: [FcInputType.Fleet, FcInputType.UC].includes(props.type as FcInputType) ? {\n cellButtons: [\n {\n caption: 'Click to take proposal data ',\n buttonBackColor: '#E6E6E6',\n width: 400,\n imageType: GC.Spread.Sheets.ButtonImageType.custom,\n imageSrc: 'data:image/png;base64,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'\n }\n ]\n } : undefined,\n children: [\n {\n title: 'Vehicle',\n dataIndex: 'vehicle',\n width: 340,\n align: 'left',\n locked: true,\n fixed: 'left',\n },\n {\n title: '',\n dataIndex: 'brand',\n width: 60,\n locked: true,\n fixed: 'left'\n }\n ]\n },\n {\n title: '',\n children: [\n {\n title: `${props.year}FY`,\n dataIndex: 'annual.finalPoint',\n align: 'right',\n width: 90,\n formatter: new FormatPercentage(),\n locked: true,\n style: {\n backColor: '#CCCCCC',\n cellPadding: '0 5'\n },\n fixed: 'left'\n }\n ]\n },\n // 月份列\n ...monthesEn.map((month, index, monthes) => {\n return {\n title: actualStatus.value.get(monthEnToNumber(month) as string) ? 'Actual' : 'Forecast',\n customRender: !actualStatus.value.get(monthEnToNumber(month) as string) && [FcInputType.Fleet, FcInputType.UC].includes(props.type as FcInputType) ? new ImageButtomColumnHeader('data:image/png;base64,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', 'Take proposal data.', {\n processMouseUp() {\n Modal.confirm({\n title: 'Tips',\n content: 'Note that take propose will overwrite existing data.',\n okText: 'Confirm',\n onOk() {\n handleGetProposalData(month)\n },\n cancelText: 'Cancel'\n })\n\n }\n }) : undefined,\n children: [\n {\n title: `${props.year}-${monthEnToNumber(month)}`,\n dataIndex: `${month}.finalPoint`,\n align: 'right' as const,\n width: 90,\n formatter: new FormatPercentage(),\n locked: actualStatus.value.get(monthEnToNumber(month) as string),\n style: actualStatus.value.get(monthEnToNumber(month) as string) ? {\n backColor: '#CCCCCC',\n cellPadding: '0 5'\n } : {\n cellPadding: '0 5'\n },\n }\n ]\n }\n })\n ]\n }\n\n const cellRender = (row: number, column: string, cell: GC.Spread.Sheets.CellRange) => {\n const rowData = tableData.value?.[row]\n if (!rowData) {\n return\n }\n if (rowData.level === 0 && column !== 'vehicle' && column !== 'brand') {\n cell.backColor('#CCCCCC')\n cell.locked(true)\n } else {\n let columnName: string|undefined = undefined\n if (column.indexOf('finalPoint')) {\n columnName = column.replace('.finalPoint', '')\n }\n if (columnName && rowData[columnName]) {\n if (columnName !== 'annual' && !actualStatus.value.get(monthEnToNumber(columnName) as string)) { // Forecast列\n if (!rowData[columnName].finalPoint && rowData[columnName].wsVolume) {\n cell.backColor('#FFFFCC')\n }\n }\n }\n }\n }\n\n const editStarting = (event: any, data: any) => {\n const columns = [undefined, undefined, undefined, ...monthesEn]\n const rowData = tableData.value?.[data.row]\n if (!rowData) {\n return\n }\n const column = columns?.[data.col]\n if (column) {\n if (!rowData[column].editable) {\n data.cancel = true\n }\n }\n }\n\n const editEnded = (event: any, data: any) => {\n const columns = [undefined, undefined, undefined, ...monthesEn]\n const rowData = tableData.value?.[data.row]\n if (!rowData || data.editingText === null) {\n return\n }\n data.sheet.suspendPaint()\n data.sheet.getCell(data.row, data.col).backColor('#FFFFFF')\n const column = columns?.[data.col]\n if (rowData.level === 1) {\n if (column) {\n rowData.childrenRow?.forEach((childRow: number) => {\n tableData.value[childRow][column].finalPoint = data.editingText\n tableData.value[childRow][column].editable = false\n data.sheet.getCell(childRow, data.col).backColor('#FFFFFF')\n })\n }\n } else if (rowData.level === 2) {\n if (column) {\n if (rowData.parentRow) {\n tableData.value[rowData.parentRow][column].finalPoint = ''\n tableData.value[rowData.parentRow][column].editable = false\n data.sheet.getCell(rowData.parentRow, data.col).backColor('#FFFFFF')\n }\n }\n }\n data.sheet.resumePaint()\n }\n\n const handleValueChanged = (event: any, data: any) => {\n \n const columns = [undefined, undefined, undefined, ...monthesEn]\n const rowData = tableData.value?.[data.row]\n if (!rowData || (data.newValue ?? '') === data.oldValue) {\n return\n }\n data.sheet.suspendPaint()\n data.sheet.getCell(data.row, data.col).backColor('#FFFFFF')\n const column = columns?.[data.col]\n if (rowData.level === 1) {\n if (column) {\n rowData.childrenRow?.forEach((childRow: number) => {\n tableData.value[childRow][column].finalPoint = data.newValue\n tableData.value[childRow][column].editable = false\n data.sheet.getCell(childRow, data.col).backColor('#FFFFFF')\n })\n }\n } else if (rowData.level === 2) {\n if (column) {\n if (rowData.parentRow) {\n tableData.value[rowData.parentRow][column].finalPoint = ''\n tableData.value[rowData.parentRow][column].editable = false\n data.sheet.getCell(rowData.parentRow, data.col).backColor('#FFFFFF')\n }\n }\n }\n data.sheet.resumePaint()\n }\n\n const handleRangeChanged = (event: any, data: any) => {\n if (data.action === GC.Spread.Sheets.RangeChangedAction.clear) {\n const columns = [undefined, undefined, undefined, ...monthesEn]\n data.sheet.suspendPaint()\n for (let row = data.row; row < data.row + data.rowCount; row++) {\n for (let col = data.col; col < data.col + data.colCount; col++) {\n const rowData = tableData.value?.[row]\n if (!rowData || data.oldValue === '') {\n continue\n }\n data.sheet.getCell(row, col).backColor('#FFFFFF')\n const column = columns?.[col]\n if (rowData.level === 1) {\n if (column) {\n rowData.childrenRow?.forEach((childRow: number) => {\n tableData.value[childRow][column].finalPoint = ''\n tableData.value[childRow][column].editable = false\n data.sheet.getCell(childRow, data.col).backColor('#FFFFFF')\n })\n }\n } else if (rowData.level === 2) {\n if (column) {\n if (rowData.parentRow) {\n tableData.value[rowData.parentRow][column].finalPoint = ''\n tableData.value[rowData.parentRow][column].editable = false\n data.sheet.getCell(rowData.parentRow, col).backColor('#FFFFFF')\n }\n }\n }\n }\n }\n data.sheet.resumePaint()\n }\n }\n\n const handleClipboardPasting = (event: any, data: any) => {\n const columns = [undefined, undefined, undefined, ...monthesEn]\n const pasteData = data.pasteData.text.replace(/\\r\\n$/, '').split('\\r\\n').map((item: string) => item.split('\\t'))\n const { row, rowCount, col, colCount } = data.cellRange\n data.sheet.suspendPaint()\n const editedTypeClassRows = []\n for (let i = 0, visiableRowIndex = 0; i < rowCount; i++) {\n if (!data.sheet.rowOutlines.isCollapsed(row + i)) {\n const rowData = tableData.value[row + i]\n if (rowData.level === 1) {\n editedTypeClassRows.push(row + i)\n }\n if (editedTypeClassRows.includes(rowData.parentRow)) {\n continue\n }\n for (let j = 0; j < colCount; j++) {\n const column = columns[col + j]\n if (!column) {\n continue\n }\n if (actualStatus.value.get(monthEnToNumber(column) as string)) {\n continue\n }\n // if (!rowData[column].editable) {\n // continue\n // }\n let finalPoint = pasteData[visiableRowIndex][j]\n if (finalPoint !== '') {\n if (finalPoint[finalPoint.length - 1] === '%') {\n finalPoint = parseFloat(finalPoint.replace('%', ''))\n } else {\n finalPoint = parseFloat(finalPoint) * 100\n }\n finalPoint = isNaN(finalPoint) ? '' : finalPoint.toString()\n }\n rowData[column].finalPoint = finalPoint\n data.sheet.getCell(row + i, col + j).backColor('#FFFFFF')\n if (rowData.level === 1) {\n rowData.childrenRow?.forEach((childRow: number) => {\n tableData.value[childRow][column].finalPoint = finalPoint\n tableData.value[childRow][column].editable = false\n data.sheet.getCell(childRow, col + j).backColor('#FFFFFF')\n })\n } else if (rowData.level === 2) {\n if (rowData.parentRow) {\n tableData.value[rowData.parentRow][column].finalPoint = ''\n tableData.value[rowData.parentRow][column].editable = false\n }\n }\n }\n visiableRowIndex++\n }\n }\n data.cancel = true\n data.sheet.resumePaint()\n }\n\n const init = () => {\n if (!props.planningId || !props.kufriVersion || !props.typeId) {\n return\n }\n // 获取品牌列表\n getFcInputBrandListAPI(props.planningId, props.kufriVersion, props.typeId).then((data: string[]) => {\n brands.value = data\n selectedBrands.value = deepClone(data)\n }).then(() => {\n getCrInfo()\n })\n }\n\n const handleSave = async () => {\n const data = [] as FcInputDataParam[]\n tableData.value.forEach(item => {\n if (item.level === 2) {\n monthesEn.forEach((monthEn: string) => {\n if (item[monthEn].finalPoint !== item[monthEn].originValue) {\n data.push({\n id: item[monthEn].dataInfoId,\n planningId: props.planningId as number,\n planningTypeId: props.typeId as number,\n kufriVersion: props.kufriVersion as string,\n year: props.year as string,\n month: monthEnToNumber(monthEn, true) as string,\n wsLlp: item[monthEn].wsLlp,\n rtLlp: item[monthEn].rtLlp,\n wsVolume: item[monthEn].wsVolume,\n rtVolume: item[monthEn].rtVolume,\n budget: item[monthEn].budget,\n impactCode: item.impactCode as string,\n impactName: item.impactModel as string,\n typeClass: tableData.value[item.parentRow as number].typeClass as string,\n brand: item.brand,\n msrp: item[monthEn].msrp,\n topicCode: item[monthEn].topicCode,\n adjustmentNo: item[monthEn].adjustmentNo,\n controllingPoint: item[monthEn].controllingPoint,\n releasePoint: item[monthEn].releasePoint,\n buPoint: item[monthEn].buPoint,\n submitPoint: item[monthEn].submitPoint,\n finalPoint: item[monthEn].finalPoint !== '' ? parseFloat(item[monthEn].finalPoint) : null,\n actualStatus: actualStatus.value.get(monthEnToNumber(monthEn) as string) as boolean\n })\n }\n })\n }\n })\n if (data.length) {\n await saveFcInputDataAPI(data)\n message.success('Save successful')\n context.emit('save-data')\n getCrInfo()\n }\n }\n\n watch([() => props.kufriVersion, () => props.planningId, () => props.typeId], ([kufriVersionValue, planningIdValue, typeIdValue]) => {\n if (kufriVersionValue && planningIdValue && typeIdValue) {\n init()\n }\n }, {\n immediate: true\n })\n\n const handleSearch = () => {\n getCrInfo()\n }\n\n const showSaveBtn = computed(() => {\n switch (props.type) {\n case FcInputType.Fleet:\n return btnPermissions('P-PS01')\n case FcInputType.UC:\n return btnPermissions('P-PS02')\n case FcInputType.FlootPlan:\n return btnPermissions('P-PS03')\n case FcInputType.Bidding:\n return btnPermissions('P-PS04')\n }\n return false\n })\n\n const handleExport = async () => {\n const postData = {\n brandList: selectedBrands.value,\n planningId: props.planningId,\n kufriVersion: props.kufriVersion,\n planningTypeId: props.typeId\n }\n const res = await exportFcInputAPI(postData)\n downloadFromStream(res)\n }\n\n return {\n brands,\n selectedBrands,\n expandModel,\n handleSearch,\n tableColumns,\n monthes,\n rowKey,\n tableData,\n tableSize,\n handleGetProposalData,\n handleSave,\n showSaveBtn,\n FcInputType,\n expandRows,\n cellRender,\n editEnded,\n editStarting,\n handleExport,\n handleValueChanged,\n handleRangeChanged,\n handleClipboardPasting\n }\n }\n})\n","import { render } from \"./Fleet.vue?vue&type=template&id=03e2d672&scoped=true&ts=true\"\nimport script from \"./Fleet.vue?vue&type=script&lang=ts\"\nexport * from \"./Fleet.vue?vue&type=script&lang=ts\"\n\nimport \"./Fleet.vue?vue&type=style&index=0&id=03e2d672&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-03e2d672\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, renderList as _renderList, Fragment as _Fragment, withCtx as _withCtx, createBlock as _createBlock, createSlots as _createSlots, vShow as _vShow, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-584adfb9\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"sub-tab-content-container\" }\nconst _hoisted_2 = { class: \"content-wrapper\" }\nconst _hoisted_3 = { class: \"stat-container\" }\nconst _hoisted_4 = { class: \"total-stat-table\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \"SD%\", -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \"SD\", -1))\nconst _hoisted_7 = { class: \"tab-title-wrapper\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"tab-title\" }, \"Adj. After Closing\", -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-tianjia11\" }, null, -1))\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\"Add \")\nconst _hoisted_11 = [\n _hoisted_9,\n _hoisted_10\n]\nconst _hoisted_12 = { class: \"sub-tab-content-container\" }\nconst _hoisted_13 = { class: \"control-panel\" }\nconst _hoisted_14 = { class: \"row brand-selector-wrapper\" }\nconst _hoisted_15 = { class: \"align-right\" }\nconst _hoisted_16 = /*#__PURE__*/_createTextVNode(\"Expand to Model\")\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"title\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"status-wrapper\" }),\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"month-wrapper\" }, \"Vehicle\")\n], -1))\nconst _hoisted_18 = { class: \"title month\" }\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status-wrapper bold\" }, null, -1))\nconst _hoisted_20 = { class: \"month-wrapper bold\" }\nconst _hoisted_21 = { class: \"title month\" }\nconst _hoisted_22 = { class: \"status-wrapper\" }\nconst _hoisted_23 = { class: \"month-wrapper\" }\nconst _hoisted_24 = { class: \"tab-title-wrapper\" }\nconst _hoisted_25 = { class: \"tab-title\" }\nconst _hoisted_26 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-tianjia11\" }, null, -1))\nconst _hoisted_27 = /*#__PURE__*/_createTextVNode(\"Add \")\nconst _hoisted_28 = [\n _hoisted_26,\n _hoisted_27\n]\nconst _hoisted_29 = { class: \"sub-tab-content-container\" }\nconst _hoisted_30 = { class: \"control-panel\" }\nconst _hoisted_31 = { class: \"row\" }\nconst _hoisted_32 = { class: \"name-wrapper\" }\nconst _hoisted_33 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \"Name\", -1))\nconst _hoisted_34 = { class: \"topic-wrapper\" }\nconst _hoisted_35 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \"Topic\", -1))\nconst _hoisted_36 = { class: \"allocation-ctrl\" }\nconst _hoisted_37 = /*#__PURE__*/_createTextVNode(\"Confirm\")\nconst _hoisted_38 = { class: \"align-right\" }\nconst _hoisted_39 = /*#__PURE__*/_createTextVNode(\"Expand to Model\")\nconst _hoisted_40 = /*#__PURE__*/_createTextVNode(\"Export\")\nconst _hoisted_41 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_42 = { class: \"row brand-selector-wrapper\" }\nconst _hoisted_43 = { class: \"title\" }\nconst _hoisted_44 = {\n key: 0,\n class: \"checkbox-wrapper\"\n}\nconst _hoisted_45 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status-wrapper\" }, null, -1))\nconst _hoisted_46 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"month-wrapper\" }, null, -1))\nconst _hoisted_47 = { class: \"title\" }\nconst _hoisted_48 = {\n key: 0,\n class: \"checkbox-wrapper\"\n}\nconst _hoisted_49 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status-wrapper\" }, null, -1))\nconst _hoisted_50 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"month-wrapper\" }, \"Vehicle\", -1))\nconst _hoisted_51 = { class: \"title month\" }\nconst _hoisted_52 = {\n key: 0,\n class: \"checkbox-wrapper\"\n}\nconst _hoisted_53 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status-wrapper bold\" }, null, -1))\nconst _hoisted_54 = { class: \"month-wrapper bold\" }\nconst _hoisted_55 = { class: \"title month\" }\nconst _hoisted_56 = {\n key: 0,\n class: \"checkbox-wrapper\"\n}\nconst _hoisted_57 = { class: \"status-wrapper\" }\nconst _hoisted_58 = { class: \"month-wrapper\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_tag_selector = _resolveComponent(\"tag-selector\")!\n const _component_a_radio = _resolveComponent(\"a-radio\")!\n const _component_a_radio_group = _resolveComponent(\"a-radio-group\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_tab_pane = _resolveComponent(\"a-tab-pane\")!\n const _component_a_input = _resolveComponent(\"a-input\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_tabs = _resolveComponent(\"a-tabs\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"table\", _hoisted_4, [\n _createElementVNode(\"caption\", null, _toDisplayString(_ctx.year), 1),\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _hoisted_5,\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.statData.sdPercent), 1)\n ])\n ]),\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _hoisted_6,\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.statData.sd), 1)\n ])\n ])\n ]),\n _createVNode(_component_a_table, {\n class: \"data-table after-closing-stat-table\",\n pagination: false,\n columns: _ctx.afterClosingStatTableColumns,\n \"data-source\": _ctx.afterClosingStatData,\n rowKey: (record, index) => index\n }, null, 8, [\"columns\", \"data-source\", \"rowKey\"]),\n _createVNode(_component_a_table, {\n class: \"data-table topic-stat-table\",\n pagination: false,\n columns: _ctx.topicStatTableColumns,\n \"data-source\": _ctx.topicStatData,\n rowKey: (record, index) => index\n }, null, 8, [\"columns\", \"data-source\", \"rowKey\"])\n ]),\n _createVNode(_component_a_tabs, {\n type: \"card\",\n class: \"sub-tabs adjument-tabs\",\n activeKey: _ctx.activeKey,\n \"onUpdate:activeKey\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.activeKey) = $event))\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_component_a_tab_pane, { key: -1 }, {\n tab: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_7, [\n _hoisted_8,\n (_ctx.adjustments.length === 0)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: \"add-btn\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.handleAddAdjustment && _ctx.handleAddAdjustment(...args)), [\"stop\"]))\n }, _hoisted_11))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_tag_selector, {\n class: \"brand-selector\",\n mode: \"multi\",\n \"data-source\": _ctx.brands,\n value: _ctx.afterClosingSelectedBrands,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.afterClosingSelectedBrands) = $event)),\n onChange: _ctx.getAfterClosingReport,\n style: _normalizeStyle({'grid-template-columns': `repeat(${_ctx.brands.length}, 1fr)`})\n }, null, 8, [\"data-source\", \"value\", \"onChange\", \"style\"]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(_component_a_radio_group, {\n value: _ctx.afterClosingViewType,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.afterClosingViewType) = $event))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.viewTypes, (item) => {\n return (_openBlock(), _createBlock(_component_a_radio, {\n key: item,\n value: item,\n style: {\"font-size\":\"12px\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\"]),\n _createVNode(_component_a_checkbox, {\n class: \"expand-model-checkbox\",\n checked: _ctx.afterClosingExpandModel,\n \"onUpdate:checked\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.afterClosingExpandModel) = $event))\n }, {\n default: _withCtx(() => [\n _hoisted_16\n ]),\n _: 1\n }, 8, [\"checked\"])\n ])\n ])\n ]),\n _createVNode(_component_a_table, {\n class: \"data-table release-table\",\n pagination: false,\n columns: _ctx.afterClosingTableColumns,\n \"data-source\": _ctx.afterClosingTableData,\n \"expanded-row-keys\": _ctx.afterClosingExpandedRowKeys,\n onExpand: _ctx.handleAfterClosingExpand,\n scroll: { y: _ctx.tableSize.height - _ctx.tableHeaderSize.height, x: 1900 },\n rowKey: _ctx.rowKey\n }, _createSlots({\n vehicle: _withCtx(() => [\n _hoisted_17\n ]),\n annual: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_18, [\n _hoisted_19,\n _createElementVNode(\"div\", _hoisted_20, _toDisplayString(_ctx.year) + \"FY\", 1)\n ])\n ]),\n _: 2\n }, [\n _renderList(_ctx.monthes, (month) => {\n return {\n name: month,\n fn: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"div\", _hoisted_22, _toDisplayString(_ctx.afterClosingActualStatus.get(month) ? 'Actual' : 'Forecast'), 1),\n _createElementVNode(\"div\", _hoisted_23, _toDisplayString(_ctx.year) + \"-\" + _toDisplayString(month), 1)\n ])\n ])\n }\n })\n ]), 1032, [\"columns\", \"data-source\", \"expanded-row-keys\", \"onExpand\", \"scroll\", \"rowKey\"])\n ])\n ]),\n _: 1\n })),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.adjustments, (adjustment, index) => {\n return (_openBlock(), _createBlock(_component_a_tab_pane, { key: index }, {\n tab: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_24, [\n _createElementVNode(\"span\", _hoisted_25, _toDisplayString(adjustment.adjustmentNo), 1),\n (_ctx.adjustments.length < 10 && index === _ctx.adjustments.length - 1)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: \"add-btn\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.handleAddAdjustment && _ctx.handleAddAdjustment(...args)), [\"stop\"]))\n }, _hoisted_28))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_29, [\n _createElementVNode(\"div\", _hoisted_30, [\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"div\", _hoisted_32, [\n _hoisted_33,\n _createVNode(_component_a_input, {\n placeholder: \"/input name\",\n value: adjustment.name,\n \"onUpdate:value\": ($event: any) => ((adjustment.name) = $event)\n }, null, 8, [\"value\", \"onUpdate:value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_34, [\n _hoisted_35,\n _createVNode(_component_a_select, {\n allowClear: true,\n value: adjustment.topic,\n \"onUpdate:value\": ($event: any) => ((adjustment.topic) = $event)\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.topics, (option) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: option.code,\n key: option.code\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(option.name), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"value\", \"onUpdate:value\"])\n ]),\n _createVNode(_component_a_select, {\n class: \"input-type-selector\",\n value: adjustment.inputType,\n \"onUpdate:value\": ($event: any) => ((adjustment.inputType) = $event),\n onChange: ($event: any) => (_ctx.handleChangeInputType(index))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select_option, {\n value: _ctx.AdjReleaseInputType.Allocation\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.AdjReleaseInputType.Allocation), 1)\n ]),\n _: 1\n }, 8, [\"value\"]),\n _createVNode(_component_a_select_option, {\n value: _ctx.AdjReleaseInputType.Input\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.AdjReleaseInputType.Input), 1)\n ]),\n _: 1\n }, 8, [\"value\"])\n ]),\n _: 2\n }, 1032, [\"value\", \"onUpdate:value\", \"onChange\"]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_36, [\n _createVNode(_component_a_input, {\n class: \"amount-input\",\n value: adjustment.amount,\n \"onUpdate:value\": ($event: any) => ((adjustment.amount) = $event),\n onChange: ($event: any) => (_ctx.handleChangeAmount(index))\n }, null, 8, [\"value\", \"onUpdate:value\", \"onChange\"]),\n _createVNode(_component_a_input, {\n class: \"avgSI-input\",\n value: adjustment.avgSI,\n \"onUpdate:value\": ($event: any) => ((adjustment.avgSI) = $event),\n disabled: \"\"\n }, null, 8, [\"value\", \"onUpdate:value\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: ($event: any) => (_ctx.handleAllocation(index))\n }, {\n default: _withCtx(() => [\n _hoisted_37\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ], 512), [\n [_vShow, adjustment.inputType === _ctx.AdjReleaseInputType.Allocation]\n ]),\n _withDirectives(_createElementVNode(\"div\", null, [\n _createVNode(_component_a_radio_group, {\n value: adjustment.inputViewType,\n \"onUpdate:value\": ($event: any) => ((adjustment.inputViewType) = $event),\n onChange: ($event: any) => (_ctx.handleChangeInputViewType(index))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.inputViewTypes, (inputViewType) => {\n return (_openBlock(), _createBlock(_component_a_radio, {\n key: inputViewType,\n value: inputViewType,\n style: {\"font-size\":\"12px\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(inputViewType), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"value\", \"onUpdate:value\", \"onChange\"])\n ], 512), [\n [_vShow, adjustment.inputType === _ctx.AdjReleaseInputType.Input]\n ]),\n _createElementVNode(\"div\", _hoisted_38, [\n _createVNode(_component_a_radio_group, {\n value: adjustment.viewType,\n \"onUpdate:value\": ($event: any) => ((adjustment.viewType) = $event)\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.viewTypes, (item) => {\n return (_openBlock(), _createBlock(_component_a_radio, {\n key: item,\n value: item,\n style: {\"font-size\":\"12px\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"value\", \"onUpdate:value\"]),\n _createVNode(_component_a_checkbox, {\n class: \"expand-model-checkbox\",\n checked: adjustment.expandModel,\n \"onUpdate:checked\": ($event: any) => ((adjustment.expandModel) = $event)\n }, {\n default: _withCtx(() => [\n _hoisted_39\n ]),\n _: 2\n }, 1032, [\"checked\", \"onUpdate:checked\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleExport,\n style: {\"margin-right\":\"12px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_40\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n (_ctx.$btnPermissions('P-PS05'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"primary\",\n class: \"save-btn\",\n onClick: ($event: any) => (_ctx.handleSave(index))\n }, {\n default: _withCtx(() => [\n _hoisted_41\n ]),\n _: 2\n }, 1032, [\"onClick\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_42, [\n _createVNode(_component_tag_selector, {\n class: \"brand-selector\",\n mode: \"multi\",\n \"data-source\": _ctx.brands,\n value: adjustment.selectedBrands,\n \"onUpdate:value\": ($event: any) => ((adjustment.selectedBrands) = $event),\n onChange: ($event: any) => (_ctx.handleChangeBrand(index)),\n style: _normalizeStyle({'grid-template-columns': `repeat(${_ctx.brands.length}, 1fr)`})\n }, null, 8, [\"data-source\", \"value\", \"onUpdate:value\", \"onChange\", \"style\"])\n ])\n ]),\n _createVNode(_component_a_table, {\n class: \"data-table release-table\",\n pagination: false,\n columns: _ctx.tableColumn(index),\n \"data-source\": adjustment.data,\n \"expanded-row-keys\": adjustment.expandedRowKeys,\n onExpand: adjustment.handleExpand,\n \"expand-icon-column-index\": adjustment.inputType === _ctx.AdjReleaseInputType.Allocation ? 1 : 0,\n scroll: { y: _ctx.tableSize.height - _ctx.tableHeaderSize.height - 60, x: 1900 },\n rowKey: _ctx.rowKey\n }, _createSlots({\n rowCheckbox: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_43, [\n (adjustment.inputType === _ctx.AdjReleaseInputType.Allocation)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_44))\n : _createCommentVNode(\"\", true),\n _hoisted_45,\n _hoisted_46\n ])\n ]),\n vehicle: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_47, [\n (adjustment.inputType === _ctx.AdjReleaseInputType.Allocation)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_48))\n : _createCommentVNode(\"\", true),\n _hoisted_49,\n _hoisted_50\n ])\n ]),\n annual: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_51, [\n (adjustment.inputType === _ctx.AdjReleaseInputType.Allocation)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_52))\n : _createCommentVNode(\"\", true),\n _hoisted_53,\n _createElementVNode(\"div\", _hoisted_54, _toDisplayString(_ctx.year) + \"FY\", 1)\n ])\n ]),\n _: 2\n }, [\n _renderList(_ctx.monthes, (month) => {\n return {\n name: month,\n fn: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_55, [\n (adjustment.inputType === _ctx.AdjReleaseInputType.Allocation)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_56, [\n _createVNode(_component_a_checkbox, {\n checked: adjustment.monthCheckStatus[month],\n \"onUpdate:checked\": ($event: any) => ((adjustment.monthCheckStatus[month]) = $event),\n disabled: _ctx.actualStatus.get(month)\n }, null, 8, [\"checked\", \"onUpdate:checked\", \"disabled\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_57, _toDisplayString(_ctx.actualStatus.get(month) ? 'Actual' : 'Forecast'), 1),\n _createElementVNode(\"div\", _hoisted_58, _toDisplayString(_ctx.year) + \"-\" + _toDisplayString(month), 1)\n ])\n ])\n }\n })\n ]), 1032, [\"columns\", \"data-source\", \"expanded-row-keys\", \"onExpand\", \"expand-icon-column-index\", \"scroll\", \"rowKey\"])\n ])\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"activeKey\"])\n ])\n ]))\n}","import type { Ref } from 'vue'\nimport { watch, ref } from 'vue'\n\ntype Data = Partial>\n\nexport interface CheckState {\n checked: boolean;\n indeterminate: boolean;\n} \n\nfunction initCheckStateData(data: T[], childrenKey = 'children', checkStates: Map) {\n data.forEach(item => {\n checkStates.set(item, {\n checked: false,\n indeterminate: false\n })\n if ((item[childrenKey] as T[])?.length) {\n initCheckStateData(item[childrenKey] as T[], childrenKey, checkStates)\n }\n })\n return checkStates\n}\n\nexport default function(data: Ref, parent: (c: T) => T | null, children: (c: T) => T[] | null, childrenKey = 'children') {\n const checkStates = ref(new Map())\n\n watch(data, (dataValue) => {\n checkStates.value = initCheckStateData(dataValue, childrenKey, new Map())\n }, {\n immediate: true\n })\n\n const checkChildren = (c: T, checked: boolean) => {\n children(c)?.forEach(item => {\n const checkState = checkStates.value.get(item)\n if (checkState) {\n checkState.checked = checked\n }\n checkChildren(item, checked)\n })\n }\n\n const checkParent = (c: T, checked: boolean) => {\n const parentData: T | null = parent(c)\n if (!parentData) {\n return\n }\n const parentCheckState = checkStates.value.get(parentData)\n if (!parentCheckState) {\n return\n }\n parentCheckState.indeterminate = true\n if (parentData) {\n let checkedChildrenNum = 0\n const childrenData = children(parentData)\n if (childrenData) {\n childrenData?.forEach(item => {\n const checkState = checkStates.value.get(item)\n if (checkState && checkState.checked) {\n checkedChildrenNum++\n }\n })\n parentCheckState.indeterminate = checkedChildrenNum > 0 && checkedChildrenNum < childrenData.length\n\n parentCheckState.checked = checkedChildrenNum === childrenData.length\n }\n checkParent(parentData, checked)\n }\n }\n\n return {\n checkState(c: T) {\n return checkStates.value.get(c)\n },\n change(c: T) {\n const checkState = checkStates.value.get(c)\n if (!checkState) {\n return\n }\n checkChildren(c, checkState.checked)\n checkParent(c, checkState.checked)\n }\n }\n}","import { toDisplayString as _toDisplayString, vShow as _vShow, toHandlerKey as _toHandlerKey, createElementVNode as _createElementVNode, withDirectives as _withDirectives, resolveComponent as _resolveComponent, withKeys as _withKeys, mergeProps as _mergeProps, createVNode as _createVNode, normalizeClass as _normalizeClass, resolveDirective as _resolveDirective, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_input = _resolveComponent(\"a-input\")!\n const _directive_click_outside = _resolveDirective(\"click-outside\")!\n\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"editable-view\", {disabled: _ctx.disabled}])\n }, [\n _withDirectives(_createElementVNode(\"span\", {\n [_toHandlerKey(_ctx.event)]: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.handleClick && _ctx.handleClick(...args)))\n }, _toDisplayString(_ctx.text), 17), [\n [_vShow, !_ctx.inEditting]\n ]),\n _withDirectives(_createVNode(_component_a_input, _mergeProps({\n ref: \"inputComponent\",\n onKeyup: _withKeys(_ctx.handleClickOutSide, [\"enter\"]),\n value: _ctx.valueProp,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.valueProp) = $event))\n }, _ctx.attrsValue), null, 16, [\"onKeyup\", \"value\"]), [\n [_vShow, _ctx.inEditting]\n ])\n ], 2)), [\n [_directive_click_outside, _ctx.handleClickOutSide]\n ])\n}","\nimport { computed, defineComponent, ref, nextTick } from 'vue'\nimport type { PropType } from 'vue'\nimport useModel from '@/hooks/useModel'\nimport clickOutside from '@/views/Planning/directive/clickOutside'\n\nexport default defineComponent({\n props: {\n value: {\n type: String,\n default: ''\n },\n event: {\n type: String as PropType<'click'|'dblclick'>,\n default: 'click'\n },\n formator: {\n type: Function as PropType<(text: string) => string >,\n requried: false,\n default: null,\n },\n disabled: {\n type: Boolean,\n default: false\n }\n },\n directives: {\n clickOutside\n },\n emits: [\n 'click-outside',\n 'update:value'\n ],\n setup(props, {emit, attrs}) {\n const valueProp = useModel(props, 'value')\n const inEditting = ref(false)\n const inputComponent = ref()\n\n const handleClick = () => {\n if (!props.disabled) {\n inEditting.value = true\n nextTick(() => {\n inputComponent.value?.focus()\n })\n }\n }\n\n const handleClickOutSide = (event: Event) => {\n if (inEditting.value) {\n inEditting.value = false\n emit('click-outside', event)\n }\n }\n\n const text = computed(() => {\n if (props.formator) {\n return props.formator(props.value)\n } else {\n return props.value\n }\n })\n\n const attrsValue = computed(() => {\n return Object.assign({}, attrs, {class: undefined})\n })\n\n return {\n inputComponent,\n handleClick,\n handleClickOutSide,\n valueProp,\n inEditting,\n text,\n attrsValue\n }\n }\n})\n","import { render } from \"./EditableView.vue?vue&type=template&id=3b3f6b9e&scoped=true&ts=true\"\nimport script from \"./EditableView.vue?vue&type=script&lang=ts\"\nexport * from \"./EditableView.vue?vue&type=script&lang=ts\"\n\nimport \"./EditableView.vue?vue&type=style&index=0&id=3b3f6b9e&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-3b3f6b9e\"]])\n\nexport default __exports__","import type { Ref } from 'vue'\n\ntype Data = Partial>\n\nexport default function(data: Ref, childrenKey = 'children', key = 'key'): Ref {\n let id = 1\n const setId = (data: T[]) => {\n data.forEach((item: T) => {\n (item[key] as number) = id\n id++\n if (item[childrenKey] && (item[childrenKey] as T[]).length) {\n setId(item[childrenKey] as T[])\n }\n })\n }\n setId(data.value)\n return data\n}","import { watch } from 'vue'\nimport type { Ref } from 'vue'\n\ntype Data = Partial>\n\nexport default function(data: Ref, childrenKey = 'children', key = 'level') {\n const setLevel = (data: T[], level = 1) => {\n data.forEach((item: T) => {\n (item[key] as number) = level\n if (item[childrenKey] && (item[childrenKey] as T[]).length) {\n setLevel(item[childrenKey] as T[], level + 1)\n }\n })\n }\n\n watch(data, () => {\n setLevel(data.value)\n }, {\n immediate: true\n })\n}","import type { Ref } from 'vue'\nimport { ref, watch } from 'vue'\n\ntype Data = Partial>\n\nexport default function(data: Ref, expand: Ref, childrenKey = 'children', key = 'key', view = '') {\n const expandedRowKeys = ref<(number|string)[]>([])\n\n const getAllExpandRowKeys = () => {\n const expandAllRowKeys = []\n const queue = [...data.value]\n while (queue.length) {\n const item = queue.shift()\n if (item && (item[childrenKey] as T[])?.length) {\n if (item[key]) {\n expandAllRowKeys.push(item[key])\n }\n queue.push(...item[childrenKey] as T[])\n }\n }\n return expandAllRowKeys\n }\n\n \n const handleExpand = (expanded: boolean, record: T) => {\n if (expanded) {\n expandedRowKeys.value.push(record[key] as string|number)\n } else {\n const index = expandedRowKeys.value.indexOf(record[key] as string|number)\n if (index !== -1) {\n expandedRowKeys.value.splice(index, 1)\n }\n }\n }\n\n watch([data, expand], ([_dataValue, expandValue]) => {\n if (expandValue) {\n expandedRowKeys.value = getAllExpandRowKeys() as (string|number)[]\n } else {\n expandedRowKeys.value = data.value.length ? [data.value[0][key] as string|number] : []\n if (view === 'finalView') {\n expandedRowKeys.value = []\n }\n }\n }, {\n immediate: true\n })\n\n return {\n expandedRowKeys,\n handleExpand\n }\n}","import type { Ref } from 'vue'\nimport { computed } from 'vue'\n\ntype Data = Partial>\n\nfunction getParentRealtion(data: T[], parent: T | null, childrenKey = 'children', relation: Map) {\n data.forEach(item => {\n relation.set(item, parent)\n if ((item[childrenKey] as T[])?.length) {\n getParentRealtion(item[childrenKey] as T[], item, childrenKey, relation)\n }\n })\n}\n\nexport default function(data: Ref, childrenKey = 'children') {\n\n const parentRelation = computed(() => { \n const relation = new Map()\n getParentRealtion(data.value, null, childrenKey, relation)\n return relation\n })\n\n return {\n children(p: T) {\n return (p[childrenKey] as T[])?.length ? p[childrenKey] as T[] : null\n },\n parent(c: T) {\n return parentRelation.value.get(c) ?? null\n },\n parents(c: T) {\n const parents = []\n let t = this.parent(c)\n while (t) {\n parents.push(t)\n t = this.parent(c)\n }\n\n return parents\n }\n }\n}","\nimport { defineComponent, ref, computed, h, resolveComponent, watch, reactive, toRef } from 'vue'\nimport type { Ref } from 'vue'\nimport TagSelector from '@/views/Planning/components/TagSelector.vue'\nimport { AdjReleaseViewType, AdjReleaseInputViewType, AdjReleaseInputType, AdjReleaseType } from '@/views/Planning/type'\nimport type { Month, ReleaseData, TopicData, AdjAfterClosingData, AdjustmentDataInfo, AdjustmentData, AdjustmentDetailDataParam } from '@/views/Planning/type'\nimport Decimal from '@/utils/closing/decimal'\nimport { elementSize } from '@/utils'\nimport { downloadFromStream } from '@/utils/payment/downloadFile'\nimport useCheckTreeData from '@/hooks/planning/useCheckTreeData'\nimport type { CheckState } from '@/hooks/planning/useCheckTreeData'\nimport EditableView from '@/views/Planning/components/EditableView.vue'\nimport useTableTreeDataKey from '@/hooks/planning/useTableTreeDataKey'\nimport useTableTreeDataLevel from '@/hooks/planning/useTableTreeDataLevel'\nimport useExpandTableTreeData from '@/hooks/planning/useExpandTableTreeData'\nimport useTreeDataRelation from '@/hooks/planning/useTreeDataRelation'\nimport deepClone from '@/utils/deepClone'\nimport { monthes, monthesEn, monthNumberToEn, monthEnToNumber, forEachRecursive, numberSubWithPrecision } from '@/utils/planning'\nimport {\n getArTopicList as getArTopicListAPI,\n getArBrandList as getArBrandListAPI,\n reportByTopicAndAdjustment as reportByTopicAndAdjustmentAPI,\n getAfterClosingReport as getAfterClosingReportAPI,\n getAdjLabelList as getAdjLabelListAPI,\n getAdjustmentInfo as getAdjustmentInfoAPI,\n addAdjustmnetLabel as addAdjustmnetLabelAPI,\n newAdjustmentData as newAdjustmentDataAPI,\n saveAdjustmentData as saveAdjustmentDataAPI,\n exportAjustment as exportAjustmentAPI\n} from '@/API/planning'\nimport moment from 'moment'\nimport { message } from 'ant-design-vue'\n\nconst rowKey = 'key'\n\ninterface AdjustmentTotalStatData {\n sdPercent?: string;\n sd?: string;\n}\n\ninterface Adjustments {\n id?: number;\n planningTypeId?: number;\n adjustmentNo: string;\n name?: string;\n topic?: string;\n selectedBrands: string[];\n inputType: AdjReleaseInputType;\n inputViewType: AdjReleaseInputViewType;\n viewType: AdjReleaseViewType;\n amount: string;\n avgSI: string;\n expandModel?: boolean;\n inited: boolean;\n data?: AdjustmentData[];\n monthCheckStatus: Record;\n expandedRowKeys?: Ref<(number|string)[]>;\n handleExpand?: (expand: boolean, v: AdjustmentData) => void;\n parent?: (c: AdjustmentData) => AdjustmentData | null;\n children?: (c: AdjustmentData) => AdjustmentData[] | null;\n checkState?: (c: AdjustmentData) => CheckState | undefined;\n change?: (c: AdjustmentData) => void;\n}\n\nexport default defineComponent({\n components: {\n TagSelector,\n },\n props: {\n year: {\n type: String,\n },\n kufriVersion: {\n type: String,\n },\n planningId: {\n type: Number,\n }\n },\n emits: [\n 'save-data'\n ],\n setup(props, context) {\n const statData = reactive({\n sdPercent: '0.00',\n sd: '0'\n })\n const adjustments = ref([])\n const activeKey = ref(-1)\n // topic列表\n const topics = ref([])\n // 品牌列表\n const brands = ref([])\n // After Closing选中品牌\n const afterClosingSelectedBrands = ref([])\n\n const afterClosingStatTableColumns = ref([])\n const afterClosingStatData = ref[]>([])\n\n const topicStatTableColumns = ref([])\n const topicStatData = ref[]>([])\n\n const viewTypes = [AdjReleaseViewType.WsWolume, AdjReleaseViewType.WsLLP, AdjReleaseViewType.AvgSI, AdjReleaseViewType.Amount]\n const inputViewTypes = [AdjReleaseInputViewType.AvgSI, AdjReleaseInputViewType.Amount]\n\n const afterClosingViewType = ref(AdjReleaseViewType.WsWolume)\n\n const actualStatus = computed(() => {\n const actualStatusMap = reactive(new Map(monthes.map((item: string) => [item, false])))\n if (props.kufriVersion) {\n const kufriMonth = props.kufriVersion.replace('K', '')\n if (kufriMonth) {\n for (let i = 0; i < 12; i++) {\n if (`${props.year}${monthes[i]}` < kufriMonth) {\n actualStatusMap.set(monthes[i], true)\n }\n }\n }\n }\n return actualStatusMap\n })\n\n const dataTableColumnRender = (index: number, column: string) => {\n return ({ record }: {record: AdjustmentData}) => {\n if (adjustments.value[index].inputType === AdjReleaseInputType.Input &&\n column !== 'annual' &&\n (([2, 3].includes((record as AdjustmentData & {level: number}).level) &&\n adjustments.value[index].viewType === AdjReleaseViewType.AvgSI &&\n adjustments.value[index].inputViewType === AdjReleaseInputViewType.AvgSI) ||\n ((record as AdjustmentData & {level: number}).level === 3) && \n adjustments.value[index].viewType === AdjReleaseViewType.Amount &&\n adjustments.value[index].inputViewType === AdjReleaseInputViewType.Amount) &&\n !actualStatus.value.get(monthEnToNumber(column) as string)) {\n const props: Record = {\n class: 'editable-cell',\n disabled: !record[column].editable,\n onClickOutside: () => {\n if (adjustments.value[index].viewType == AdjReleaseViewType.AvgSI) {\n if (record[column].finalPoint !== record[column].originFinalPoint) {\n if ((record as AdjustmentData & {level: number}).level === 3) { // 修改impactModel层级后typeClass层级不能修改\n record[column].wsAmount = new Decimal(record[column].wsLlp).times(record[column].finalPoint).div(100).round(15, false)\n const parentFunc = adjustments.value[index].parent\n const parentRecord = parentFunc ? parentFunc(record) : null\n if (parentRecord && parentRecord[column]) {\n parentRecord[column].editable = false\n }\n } else { // 修改typeClass层级后impactModel层级不能修改\n record[column].wsAmount = new Decimal(record[column].wsLlp).times(record[column].finalPoint).div(100).round(15, false)\n const childrenFunc = adjustments.value[index].children\n const childrenRecords = childrenFunc ? childrenFunc(record) : null\n childrenRecords?.forEach((item) => {\n item[column].finalPoint = record[column].finalPoint\n item[column].wsAmount = new Decimal(item[column].wsLlp).times(item[column].finalPoint).div(100).round(15, false)\n item[column].editable = false\n })\n }\n }\n } else {\n if (record[column].wsAmount !== record[column].originWsAmount) {\n if ((record as AdjustmentData & {level: number}).level === 3) { // 修改impactModel层级后typeClass层级不能修改\n record[column].finalPoint = record[column].wsLlp ? new Decimal(record[column].wsAmount).div(record[column].wsLlp).times(100).round(15, false) : '0'\n const parentFunc = adjustments.value[index].parent\n const parentRecord = parentFunc ? parentFunc(record) : null\n if (parentRecord && parentRecord[column]) {\n parentRecord[column].editable = false\n }\n } else { // 修改typeClass层级后impactModel层级不能修改\n record[column].finalPoint = record[column].wsLlp ? new Decimal(record[column].wsAmount).div(record[column].wsLlp).times(100).round(15, false) : '0'\n const childrenFunc = adjustments.value[index].children\n const childrenRecords = childrenFunc ? childrenFunc(record) : null\n childrenRecords?.forEach((item) => {\n item[column].finalPoint = record[column].finalPoint\n item[column].wsAmount = new Decimal(item[column].wsLlp).times(item[column].finalPoint).div(100).round(15, false)\n item[column].editable = false\n })\n }\n }\n }\n },\n value: adjustments.value[index].viewType == AdjReleaseViewType.AvgSI ? record[column].finalPoint : record[column].wsAmount,\n 'onUpdate:value': (value: string) => {\n if (adjustments.value[index].viewType == AdjReleaseViewType.AvgSI) {\n record[column].finalPoint = numberSubWithPrecision(value, 15)\n } else {\n record[column].wsAmount = numberSubWithPrecision(value, 15)\n }\n },\n formator: (value: string) => {\n if (adjustments.value[index].viewType == AdjReleaseViewType.AvgSI) {\n return value === '' ? '' : `${new Decimal(value).round(2)}%`\n } else {\n return value === '' ? '' : new Decimal(value).round(0)\n }\n } \n }\n return h(EditableView, props)\n }\n\n let text = ''\n if (record[column]) {\n switch (adjustments.value[index].viewType) {\n case AdjReleaseViewType.WsWolume:\n text = record[column].wsVolume !== null ? new Decimal(record[column].wsVolume).round(0) : ''\n break\n case AdjReleaseViewType.WsLLP:\n text = record[column].wsLlp !== null ? new Decimal(record[column].wsLlp).round(0) : ''\n break\n case AdjReleaseViewType.AvgSI:\n text = record[column].finalPoint !== '' ? `${new Decimal(record[column].finalPoint ?? '').round(2)}%` : ''\n break\n case AdjReleaseViewType.Amount:\n text = record[column].wsAmount !== '' ? new Decimal(record[column].wsAmount ?? '').round(0) : ''\n break\n }\n }\n return h('span', text)\n }\n }\n\n const dataTableCheckboxColumnRender = (index: number) => {\n return ({ record }: {record: AdjustmentData}) => {\n const checkStateFunc = adjustments.value?.[index]?.checkState\n const checkState = checkStateFunc ? checkStateFunc(record) : undefined\n const checkboxComponent = resolveComponent('a-checkbox')\n return h(checkboxComponent, checkState ? {\n checked: checkState.checked,\n 'onUpdate:checked': (value: boolean) => {\n checkState.checked = value\n },\n indeterminate: checkState.indeterminate,\n onChange: (checked: boolean) => {\n const changeFunc = adjustments.value?.[index]?.change\n if (changeFunc) {\n changeFunc(record)\n }\n }\n }: null)\n }\n }\n\n const afterClosingTableData = ref([])\n const afterClosingExpandModel = ref(false)\n\n // After Closing表格展开\n const {expandedRowKeys: afterClosingExpandedRowKeys, handleExpand: handleAfterClosingExpand} = useExpandTableTreeData(afterClosingTableData, afterClosingExpandModel)\n\n // After Closing月份Actual/Plan状态\n const afterClosingActualStatus = computed(() => {\n const actualStatusMap = reactive(new Map(monthes.map((item: string) => [item, false])))\n if (props.kufriVersion) {\n const kufriMonth = props.kufriVersion.replace('K', '')\n if (kufriMonth) {\n for (let i = 0; i < 12; i++) {\n if (`${props.year}${monthes[i]}` < kufriMonth) {\n actualStatusMap.set(monthes[i], true)\n }\n }\n }\n }\n return actualStatusMap\n })\n\n \n const afterClosingDataTableColumnRender = (column: string) => {\n return ({ record }: {record: ReleaseData}) => {\n let text = ''\n if (record[column]) {\n switch (afterClosingViewType.value) {\n case AdjReleaseViewType.WsWolume:\n text = record[column].wsVolume !== null ? new Decimal(record[column].wsVolume).round(0) : ''\n break\n case AdjReleaseViewType.WsLLP:\n text = record[column].wsLlp !== null ? new Decimal(record[column].wsLlp).round(0) : ''\n break\n case AdjReleaseViewType.AvgSI:\n text = record[column].finalPoint !== null ? `${new Decimal(record[column].finalPoint ?? '').round(2)}%` : ''\n break\n case AdjReleaseViewType.Amount:\n text = record[column].wsAmount !== null ? new Decimal(record[column].wsAmount ?? '').round(0) : ''\n break\n }\n }\n return h('span', text)\n }\n }\n\n const afterClosingTableColumns = [\n {\n slots: { title: 'vehicle' },\n dataIndex: 'vehicle',\n width: 350,\n fixed: true,\n },\n {\n dataIndex: 'brand',\n width: 60,\n fixed: true,\n },\n {\n slots: { title: 'annual' },\n dataIndex: 'annual',\n align: 'right',\n width: 130,\n fixed: true,\n customRender: afterClosingDataTableColumnRender('annual')\n },\n ...monthes.map((month, index) => {\n return {\n slots: { title: month },\n dataIndex: month,\n align: 'right',\n width: index === monthes.length - 1 ? 130 : 110,\n customRender: afterClosingDataTableColumnRender(monthNumberToEn(month) as string)\n }\n })\n ]\n\n const tableColumn = computed(() => {\n return (index: number) => {\n const columns = [\n {\n slots: { title: 'vehicle' },\n dataIndex: 'vehicle',\n width: 350,\n fixed: 'left'\n },\n {\n dataIndex: 'brand',\n width: 60,\n fixed: 'left'\n },\n {\n slots: { title: 'annual' },\n dataIndex: 'annual',\n align: 'right',\n width: 130,\n fixed: 'left',\n customRender: dataTableColumnRender(index, 'annual')\n },\n ...monthes.map((month, i) => {\n return {\n slots: { title: month },\n dataIndex: month,\n align: 'right',\n width: i === monthes.length ? 130 : 110,\n customRender: dataTableColumnRender(index, monthNumberToEn(month) as string)\n }\n })\n ]\n\n if (adjustments.value[index].inputType === AdjReleaseInputType.Allocation) {\n columns.unshift({\n slots: { title: 'rowCheckbox' },\n dataIndex: 'annual',\n align: 'center',\n width: 50,\n fixed: 'left',\n customRender: dataTableCheckboxColumnRender(index)\n })\n }\n\n return columns\n }\n })\n \n const statTableColumnRender = ({ text, index }: { text: string; index: number}) => {\n return h('span', index === 0 ? `${new Decimal(text).round(2)}%` : new Decimal(text).round(0))\n }\n\n const tableSize = elementSize('.release-table')\n\n const tableHeaderSize = elementSize('.release-table .ant-table-thead')\n\n const handleAddAdjustment = async () => {\n const data = await addAdjustmnetLabelAPI(props.planningId as number, props.kufriVersion as string, adjustments.value.map(item => item.adjustmentNo))\n adjustments.value.push({\n planningTypeId: data[0].planningTypeId,\n adjustmentNo: data[0].adjustmentNo,\n name: '',\n selectedBrands: deepClone(brands.value),\n inputType: AdjReleaseInputType.Allocation,\n inputViewType: AdjReleaseInputViewType.Amount,\n viewType: AdjReleaseViewType.WsLLP,\n amount: '',\n avgSI: '',\n expandModel: false,\n data: data[0].children,\n monthCheckStatus: monthes.reduce((status, month) => {\n status[month] = false\n return status\n }, {}) as Record,\n inited: true\n })\n\n const adjustmentIndex = adjustments.value.length - 1\n forEachRecursive(adjustments.value[adjustmentIndex].data as AdjustmentData[], item => {\n monthesEn.forEach(month => {\n if (item[month]) {\n item[month].finalPoint = item[month].finalPoint === null ? '' : item[month].finalPoint.toString()\n item[month].originFinalPoint = item[month].finalPoint\n item[month].wsAmount = item[month].wsAmount === null ? '' : item[month].wsAmount.toString()\n item[month].originWsAmount = item[month].wsAmount\n item[month].editable = true\n } else {\n item[month] = {\n finalPoint: '',\n originFinalPoint: '',\n wsAmount: '',\n originWsAmount: '',\n wsLlp: null,\n wsVolume: null,\n editable: true\n }\n }\n })\n })\n const dataRef = toRef(adjustments.value[adjustmentIndex], 'data') as Ref\n useTableTreeDataKey(dataRef)\n useTableTreeDataLevel(dataRef)\n const expandModelRef = toRef(adjustments.value[adjustmentIndex], 'expandModel') as Ref\n const { expandedRowKeys, handleExpand } = useExpandTableTreeData(dataRef, expandModelRef)\n adjustments.value[adjustmentIndex].expandedRowKeys = expandedRowKeys as any\n adjustments.value[adjustmentIndex].handleExpand = handleExpand\n const { parent, children } = useTreeDataRelation(dataRef)\n adjustments.value[adjustmentIndex].parent = parent\n adjustments.value[adjustmentIndex].children = children\n const { checkState, change } = useCheckTreeData(dataRef, parent, children)\n adjustments.value[adjustmentIndex].checkState = checkState\n adjustments.value[adjustmentIndex].change = change\n \n activeKey.value = adjustments.value.length - 1\n }\n\n const getAfterClosingReport = async () => {\n if (!props.planningId) {\n return\n }\n if (afterClosingSelectedBrands.value.length) {\n afterClosingTableData.value = (await getAfterClosingReportAPI(props.planningId, afterClosingSelectedBrands.value))[0].children\n useTableTreeDataKey(afterClosingTableData)\n } else {\n afterClosingTableData.value = []\n }\n }\n \n const reportByTopicAndAdjustment = async () => {\n if (!props.planningId || !props.kufriVersion) {\n return\n }\n const data = await reportByTopicAndAdjustmentAPI(props.planningId, props.kufriVersion)\n afterClosingStatTableColumns.value = []\n topicStatTableColumns.value = []\n const afterClosingStatColumns: string[] = []\n const topicStatColumns: string[] = []\n data.colInfoList?.forEach(col => {\n switch (col.colType) {\n case 'afterClosing':\n afterClosingStatColumns.push(col.colName)\n afterClosingStatTableColumns.value.push({\n title: col.colName,\n dataIndex: col.colName,\n width: 150,\n align: 'right',\n customRender: statTableColumnRender\n })\n break;\n case 'topic':\n topicStatColumns.push(col.colName)\n topicStatTableColumns.value.push({\n title: col.colName,\n dataIndex: col.colName,\n // width: 100,\n align: 'right',\n customRender: statTableColumnRender\n })\n break;\n }\n })\n afterClosingStatData.value = []\n topicStatData.value = []\n data.rowList.forEach((row, index) => {\n afterClosingStatData.value[index] = {}\n topicStatData.value[index] = {}\n row.colList.forEach(data => {\n if (data.colName === props.year) {\n if (index === 0) {\n statData.sdPercent = `${new Decimal(data.colValue).round(2)}%`\n } else {\n statData.sd = new Decimal(data.colValue).round(0)\n }\n }\n else if (afterClosingStatColumns.includes(data.colName)) {\n if (index === 0) {\n afterClosingStatData.value[index][data.colName] = data.colValue\n } else {\n afterClosingStatData.value[index][data.colName] = data.colValue\n }\n } else {\n if (index === 0) {\n topicStatData.value[index][data.colName] = data.colValue\n } else {\n topicStatData.value[index][data.colName] = data.colValue\n }\n }\n })\n })\n }\n\n const init = () => {\n if (!props.planningId || !props.kufriVersion) {\n return\n }\n activeKey.value = -1\n getArTopicListAPI(props.planningId as number).then(data => {\n topics.value = data\n })\n getArBrandListAPI(props.planningId, props.kufriVersion, AdjReleaseType.Adjustment).then(data => {\n brands.value = data\n afterClosingSelectedBrands.value = deepClone(data)\n }).then(() => {\n getAfterClosingReport()\n getAdjLabelListAPI(props.planningId as number, props.kufriVersion as string).then(data => {\n adjustments.value = data ? data.map(item => {\n return {\n id: item.id,\n adjustmentNo: item.adjustmentNo,\n name: '',\n selectedBrands: deepClone(brands.value),\n inputType: AdjReleaseInputType.Allocation,\n inputViewType: AdjReleaseInputViewType.Amount,\n viewType: AdjReleaseViewType.WsLLP,\n amount: '',\n avgSI: '',\n expandModel: false,\n monthCheckStatus: monthes.reduce((status, month) => {\n status[month] = false\n return status\n }, {}) as Record,\n inited: false\n }\n }) : []\n })\n })\n reportByTopicAndAdjustment()\n }\n\n const getArInfo = async (adjustmentIndex: number) => {\n if (adjustments.value[adjustmentIndex].selectedBrands.length) {\n const data = await getAdjustmentInfoAPI(adjustments.value[adjustmentIndex].selectedBrands, adjustments.value[adjustmentIndex].id as number)\n adjustments.value[adjustmentIndex].name = data.topicName\n adjustments.value[adjustmentIndex].topic = data.topicCode ? data.topicCode.toString() : undefined\n adjustments.value[adjustmentIndex].data = data.children\n forEachRecursive(adjustments.value[adjustmentIndex].data as AdjustmentData[], item => {\n monthesEn.forEach(month => {\n if (item[month]) {\n item[month].finalPoint = item[month].finalPoint === null ? '' : item[month].finalPoint.toString()\n item[month].originFinalPoint = item[month].finalPoint\n item[month].wsAmount = item[month].wsAmount === null ? '' : item[month].wsAmount.toString()\n item[month].originWsAmount = item[month].wsAmount\n item[month].editable = true\n } else {\n item[month] = {\n finalPoint: '',\n originFinalPoint: '',\n wsAmount: '',\n originWsAmount: '',\n wsLlp: null,\n wsVolume: null,\n editable: true\n }\n }\n })\n })\n const dataRef = toRef(adjustments.value[adjustmentIndex], 'data') as Ref\n useTableTreeDataKey(dataRef)\n } else {\n adjustments.value[adjustmentIndex].data = []\n }\n }\n\n const getNewArInfo = async (adjustmentIndex: number) => {\n if (adjustments.value[adjustmentIndex].selectedBrands.length) {\n const data = await newAdjustmentDataAPI(adjustments.value[adjustmentIndex].selectedBrands, props.planningId as number,\n props.kufriVersion as string, adjustments.value[adjustmentIndex].adjustmentNo)\n adjustments.value[adjustmentIndex].data = data[0].children\n forEachRecursive(adjustments.value[adjustmentIndex].data as AdjustmentData[], item => {\n monthesEn.forEach(month => {\n if (item[month]) {\n item[month].finalPoint = item[month].finalPoint === null ? '' : item[month].finalPoint.toString()\n item[month].originFinalPoint = item[month].finalPoint\n item[month].wsAmount = item[month].wsAmount === null ? '' : item[month].wsAmount.toString()\n item[month].originWsAmount = item[month].wsAmount\n item[month].editable = true\n } else {\n item[month] = {\n finalPoint: '',\n originFinalPoint: '',\n wsAmount: '',\n originWsAmount: '',\n wsLlp: null,\n wsVolume: null,\n editable: true\n }\n }\n })\n })\n const dataRef = toRef(adjustments.value[adjustmentIndex], 'data') as Ref\n useTableTreeDataKey(dataRef)\n } else {\n adjustments.value[adjustmentIndex].data = []\n }\n }\n\n const handleChangeBrand = (adjustmentIndex: number) => {\n if (adjustments.value[adjustmentIndex].id) {\n getArInfo(adjustmentIndex)\n } else {\n getNewArInfo(adjustmentIndex)\n }\n }\n\n const handleChangeInputType = (adjustmentIndex: number) => {\n adjustments.value[adjustmentIndex].amount = ''\n adjustments.value[adjustmentIndex].avgSI = ''\n forEachRecursive(adjustments.value[adjustmentIndex].data as AdjustmentData[], item => {\n monthesEn.forEach(month => {\n if (item[month]) {\n item[month].finalPoint = item[month].originFinalPoint\n item[month].wsAmount = item[month].originWsAmount\n }\n })\n })\n if (adjustments.value[adjustmentIndex].inputType === AdjReleaseInputType.Allocation) {\n adjustments.value[adjustmentIndex].viewType = AdjReleaseViewType.WsLLP\n } else {\n adjustments.value[adjustmentIndex].viewType = AdjReleaseViewType.Amount\n adjustments.value[adjustmentIndex].inputViewType = AdjReleaseInputViewType.Amount\n }\n }\n\n const handleChangeViewType = (adjustmentIndex: number) => {\n if (adjustments.value[adjustmentIndex].viewType === AdjReleaseViewType.AvgSI) {\n adjustments.value[adjustmentIndex].inputViewType = AdjReleaseInputViewType.AvgSI\n } else if (adjustments.value[adjustmentIndex].viewType === AdjReleaseViewType.Amount) {\n adjustments.value[adjustmentIndex].inputViewType = AdjReleaseInputViewType.Amount\n }\n }\n\n const handleChangeInputViewType = (adjustmentIndex: number) => {\n if (adjustments.value[adjustmentIndex].inputViewType === AdjReleaseInputViewType.AvgSI) {\n adjustments.value[adjustmentIndex].viewType = AdjReleaseViewType.AvgSI\n } else if (adjustments.value[adjustmentIndex].inputViewType === AdjReleaseInputViewType.Amount) {\n adjustments.value[adjustmentIndex].viewType = AdjReleaseViewType.Amount\n }\n }\n\n const handleAllocation = (adjustmentIndex: number) => {\n if (adjustments.value[adjustmentIndex].amount === '') {\n message.error('Please input amount')\n return\n }\n let llp = new Decimal(0)\n const checkedCells: AdjustmentDataInfo[] = []\n forEachRecursive(adjustments.value[adjustmentIndex].data as AdjustmentData[], item => {\n const checkStateFunc = adjustments.value[adjustmentIndex]?.checkState\n const checkState = checkStateFunc ? checkStateFunc(item)?.checked : false\n monthesEn.forEach(month => {\n if (item[month]) {\n item[month].finalPoint = item[month].originFinalPoint\n item[month].wsAmount = item[month].originWsAmount\n }\n if (checkState && adjustments.value[adjustmentIndex].monthCheckStatus[monthEnToNumber(month) as Month]) {\n if ((item as AdjustmentData & {level: number}).level === 3) {\n llp = llp.plus(item[month]?.wsLlp)\n }\n checkedCells.push(item[month])\n }\n })\n })\n const avgSI = llp.isZero() ? new Decimal(0) : new Decimal(adjustments.value[adjustmentIndex].amount as string).div(llp)\n adjustments.value[adjustmentIndex].avgSI = `${avgSI.times(100).round(2)}%`\n checkedCells.forEach(item => {\n item.finalPoint = avgSI.times(100).round(15, false)\n item.wsAmount = new Decimal(item.wsLlp).times(avgSI).round(15, false)\n })\n }\n\n const handleChangeAmount = (adjustmentIndex: number) => {\n adjustments.value[adjustmentIndex].amount = numberSubWithPrecision(adjustments.value[adjustmentIndex].amount, 2, 13, true)\n }\n\n const handleSave = async (adjustmentIndex: number) => {\n if (!adjustments.value[adjustmentIndex].name) {\n message.error('Please input name')\n return\n }\n if (!adjustments.value[adjustmentIndex].topic) {\n message.error('Please select topic')\n return\n }\n if (adjustments.value[adjustmentIndex].id) {\n const AdjustmentDataInfos: {\n id: number;\n planningId?: number;\n planningTypeId?: number;\n kufriVersion?: string;\n year?: string;\n month?: string;\n brand?: string;\n finalPoint: number;\n typeClass?: string;\n impactCode?: string;\n impactName?: string;\n actualStatus?: boolean;\n topicName?: string;\n topicCode?: number;\n adjustmentNo?: string;\n wsAmount?: number | null;\n }[] = []\n forEachRecursive(adjustments.value[adjustmentIndex].data as AdjustmentData[], item => {\n if ((item as AdjustmentData & {level: number}).level === 3) {\n monthesEn.forEach(month => {\n if (item[month] && item[month].finalPoint !== item[month].originFinalPoint) {\n AdjustmentDataInfos.push({\n id: item[month].dataInfoId,\n planningId: props.planningId,\n planningTypeId: adjustments.value[adjustmentIndex].planningTypeId,\n kufriVersion: props.kufriVersion,\n year: props.year,\n month: monthEnToNumber(month, true),\n brand: item.brand,\n typeClass: item.typeClass,\n impactCode: item.impactCode,\n impactName: item.vehicle,\n actualStatus: actualStatus.value.get(monthEnToNumber(month) as string),\n topicName: adjustments.value[adjustmentIndex].name,\n topicCode: parseInt(adjustments.value[adjustmentIndex].topic as string),\n adjustmentNo: adjustments.value[adjustmentIndex].adjustmentNo,\n finalPoint: parseFloat(item[month].finalPoint),\n wsAmount: item[month].wsAmount === '' ? null : parseFloat(item[month].wsAmount)\n })\n }\n })\n }\n })\n await saveAdjustmentDataAPI({\n allocationAmount: adjustments.value[adjustmentIndex].inputType === AdjReleaseInputType.Allocation ?\n parseFloat(adjustments.value[adjustmentIndex].amount) : undefined,\n allocationType: adjustments.value[adjustmentIndex].inputType === AdjReleaseInputType.Input ? 0 : 1,\n detailList: AdjustmentDataInfos,\n id: adjustments.value[adjustmentIndex].id,\n topicCode: parseInt(adjustments.value[adjustmentIndex].topic as string),\n topicName: adjustments.value[adjustmentIndex].name\n })\n } else {\n const AdjustmentDataInfos: AdjustmentDetailDataParam[] = []\n forEachRecursive(adjustments.value[adjustmentIndex].data as AdjustmentData[], item => {\n if ((item as AdjustmentData & {level: number}).level === 3) {\n monthesEn.forEach(month => {\n if (item[month]) {\n AdjustmentDataInfos.push({\n planningId: props.planningId as number,\n planningTypeId: adjustments.value[adjustmentIndex].planningTypeId as number,\n actualStatus: actualStatus.value.get(monthEnToNumber(month) as string) as boolean,\n adjustmentNo: adjustments.value[adjustmentIndex].adjustmentNo,\n brand: item.brand,\n finalPoint: item[month].finalPoint === '' ? null : parseFloat(item[month].finalPoint),\n impactCode: item.impactCode as string,\n impactName: item.vehicle,\n kufriVersion: props.kufriVersion as string,\n month: monthEnToNumber(month, true) as string,\n msrp: item[month].msrp,\n rtLlp: item[month].rtLlp,\n rtVolume: item[month].rtVolume,\n topicCode: parseInt(adjustments.value[adjustmentIndex].topic as string),\n topicName: adjustments.value[adjustmentIndex].name as string,\n typeClass: item.typeClass as string, \n wsLlp: item[month].wsLlp,\n wsVolume: item[month].wsVolume,\n year: props.year as string,\n wsAmount: item[month].wsAmount === '' ? null : parseFloat(item[month].wsAmount)\n })\n }\n })\n }\n })\n const id = await saveAdjustmentDataAPI({\n adjustmentNo: adjustments.value[adjustmentIndex].adjustmentNo,\n allocationAmount: adjustments.value[adjustmentIndex].inputType === AdjReleaseInputType.Allocation ?\n parseFloat(adjustments.value[adjustmentIndex].amount) : undefined,\n allocationType: adjustments.value[adjustmentIndex].inputType === AdjReleaseInputType.Input ? 0 : 1,\n detailList: AdjustmentDataInfos,\n kufriVersion: props.kufriVersion,\n planningId: props.planningId,\n planningTypeId: adjustments.value[adjustmentIndex].planningTypeId,\n topicCode: parseInt(adjustments.value[adjustmentIndex].topic as string),\n topicName: adjustments.value[adjustmentIndex].name,\n year: props.year\n })\n adjustments.value[adjustmentIndex].id = id\n }\n message.success('Save successful')\n context.emit('save-data')\n getArInfo(adjustmentIndex)\n reportByTopicAndAdjustment()\n }\n\n const headerId = ref(-1)\n\n watch(activeKey, async (adjustmentIndex: number) => {\n if (adjustmentIndex === -1) {\n return\n }\n headerId.value = adjustmentIndex\n if (adjustments.value[adjustmentIndex].inited === false) {\n if (adjustments.value[adjustmentIndex].id) {\n await getArInfo(adjustmentIndex)\n }\n adjustments.value[adjustmentIndex].inited = true\n const dataRef = toRef(adjustments.value[adjustmentIndex], 'data') as Ref\n useTableTreeDataLevel(dataRef)\n const expandModelRef = toRef(adjustments.value[adjustmentIndex], 'expandModel') as Ref\n const { expandedRowKeys, handleExpand } = useExpandTableTreeData(dataRef, expandModelRef)\n adjustments.value[adjustmentIndex].expandedRowKeys = expandedRowKeys as any\n adjustments.value[adjustmentIndex].handleExpand = handleExpand\n const { parent, children } = useTreeDataRelation(dataRef)\n adjustments.value[adjustmentIndex].parent = parent\n adjustments.value[adjustmentIndex].children = children\n const { checkState, change } = useCheckTreeData(dataRef, parent, children)\n adjustments.value[adjustmentIndex].checkState = checkState\n adjustments.value[adjustmentIndex].change = change\n }\n }, {\n immediate: true\n })\n\n watch([() => props.kufriVersion, () => props.planningId], ([kufriVersionValue, planningIdValue]) => {\n if (kufriVersionValue && planningIdValue) {\n init()\n }\n }, {\n immediate: true\n })\n\n const handleExport = async () => {\n const postData = {\n brandList: afterClosingSelectedBrands.value,\n headerId: adjustments.value[headerId.value].id\n }\n const res = await exportAjustmentAPI(postData)\n downloadFromStream(res)\n }\n\n return {\n statData,\n brands,\n afterClosingSelectedBrands,\n afterClosingStatTableColumns,\n topicStatTableColumns,\n afterClosingStatData,\n topicStatData,\n activeKey,\n rowKey,\n moment,\n afterClosingTableColumns,\n afterClosingTableData,\n afterClosingExpandModel,\n afterClosingExpandedRowKeys,\n handleAfterClosingExpand,\n afterClosingActualStatus,\n actualStatus,\n adjustments,\n topics,\n viewTypes,\n inputViewTypes,\n afterClosingViewType,\n AdjReleaseInputType,\n monthes,\n tableColumn,\n tableSize,\n tableHeaderSize,\n handleAddAdjustment,\n getAfterClosingReport,\n handleChangeAmount,\n handleChangeBrand,\n handleChangeInputType,\n handleChangeViewType,\n handleChangeInputViewType,\n handleAllocation,\n handleSave,\n handleExport\n }\n }\n})\n","import { render } from \"./Adjustment.vue?vue&type=template&id=584adfb9&scoped=true&ts=true\"\nimport script from \"./Adjustment.vue?vue&type=script&lang=ts\"\nexport * from \"./Adjustment.vue?vue&type=script&lang=ts\"\n\nimport \"./Adjustment.vue?vue&type=style&index=0&id=584adfb9&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-584adfb9\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, vShow as _vShow, withDirectives as _withDirectives, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createSlots as _createSlots, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1acb57c8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"sub-tab-content-container\" }\nconst _hoisted_2 = { class: \"content-wrapper\" }\nconst _hoisted_3 = { class: \"control-panel\" }\nconst _hoisted_4 = { class: \"row\" }\nconst _hoisted_5 = { class: \"name-wrapper\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \"Name\", -1))\nconst _hoisted_7 = { class: \"allocation-ctrl\" }\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"Confirm\")\nconst _hoisted_9 = { class: \"align-right\" }\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\"Expand to Model\")\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\"Export\")\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_13 = { class: \"row brand-selector-wrapper\" }\nconst _hoisted_14 = { class: \"title\" }\nconst _hoisted_15 = {\n key: 0,\n class: \"checkbox-wrapper\"\n}\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status-wrapper\" }, null, -1))\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"month-wrapper\" }, null, -1))\nconst _hoisted_18 = { class: \"title\" }\nconst _hoisted_19 = {\n key: 0,\n class: \"checkbox-wrapper\"\n}\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status-wrapper\" }, null, -1))\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"month-wrapper\" }, \"Vehicle\", -1))\nconst _hoisted_22 = { class: \"title month\" }\nconst _hoisted_23 = {\n key: 0,\n class: \"checkbox-wrapper\"\n}\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status-wrapper bold\" }, null, -1))\nconst _hoisted_25 = { class: \"month-wrapper bold\" }\nconst _hoisted_26 = { class: \"title month\" }\nconst _hoisted_27 = {\n key: 0,\n class: \"checkbox-wrapper\"\n}\nconst _hoisted_28 = { class: \"status-wrapper\" }\nconst _hoisted_29 = { class: \"month-wrapper\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_input = _resolveComponent(\"a-input\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_radio = _resolveComponent(\"a-radio\")!\n const _component_a_radio_group = _resolveComponent(\"a-radio-group\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_tag_selector = _resolveComponent(\"tag-selector\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n _createVNode(_component_a_input, {\n placeholder: \"/input name\",\n value: _ctx.name,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.name) = $event))\n }, null, 8, [\"value\"])\n ]),\n _createVNode(_component_a_select, {\n class: \"input-type-selector\",\n value: _ctx.inputType,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.inputType) = $event)),\n onChange: _ctx.handleChangeInputType\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select_option, {\n value: _ctx.AdjReleaseInputType.Allocation\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.AdjReleaseInputType.Allocation), 1)\n ]),\n _: 1\n }, 8, [\"value\"]),\n _createVNode(_component_a_select_option, {\n value: _ctx.AdjReleaseInputType.Input\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.AdjReleaseInputType.Input), 1)\n ]),\n _: 1\n }, 8, [\"value\"])\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_a_input, {\n class: \"amount-input\",\n value: _ctx.amount,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.amount) = $event)),\n onChange: _ctx.handleChangeAmount\n }, null, 8, [\"value\", \"onChange\"]),\n _createVNode(_component_a_input, {\n class: \"avgSI-input\",\n value: _ctx.avgSI,\n \"onUpdate:value\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.avgSI) = $event)),\n disabled: \"\"\n }, null, 8, [\"value\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleAllocation\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ], 512), [\n [_vShow, _ctx.inputType === _ctx.AdjReleaseInputType.Allocation]\n ]),\n _withDirectives(_createElementVNode(\"div\", null, [\n _createVNode(_component_a_radio_group, {\n value: _ctx.inputViewType,\n \"onUpdate:value\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.inputViewType) = $event)),\n onChange: _ctx.handleChangeInputViewType\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.inputViewTypes, (item) => {\n return (_openBlock(), _createBlock(_component_a_radio, {\n key: item,\n value: item,\n style: {\"font-size\":\"12px\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"])\n ], 512), [\n [_vShow, _ctx.inputType === _ctx.AdjReleaseInputType.Input]\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_a_radio_group, {\n value: _ctx.viewType,\n \"onUpdate:value\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.viewType) = $event))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.viewTypes, (item) => {\n return (_openBlock(), _createBlock(_component_a_radio, {\n key: item,\n value: item,\n style: {\"font-size\":\"12px\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\"]),\n _createVNode(_component_a_checkbox, {\n class: \"expand-model-checkbox\",\n checked: _ctx.expandModel,\n \"onUpdate:checked\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.expandModel) = $event))\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }, 8, [\"checked\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleExport,\n style: {\"margin-right\":\"12px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n (_ctx.$btnPermissions('P-PS06'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"primary\",\n class: \"save-btn\",\n onClick: _ctx.handleSave\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_tag_selector, {\n class: \"brand-selector\",\n mode: \"multi\",\n \"data-source\": _ctx.brands,\n value: _ctx.selectedBrands,\n \"onUpdate:value\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.selectedBrands) = $event)),\n onChange: _ctx.getArInfo,\n style: _normalizeStyle({'grid-template-columns': `repeat(${_ctx.brands.length}, 1fr)`})\n }, null, 8, [\"data-source\", \"value\", \"onChange\", \"style\"])\n ])\n ]),\n _createVNode(_component_a_table, {\n class: \"data-table release-table\",\n pagination: false,\n columns: _ctx.tableColumns,\n \"data-source\": _ctx.tableData,\n \"expanded-row-keys\": _ctx.expandedRowKeys,\n onExpand: _ctx.handleExpand,\n \"expand-icon-column-index\": _ctx.inputType === _ctx.AdjReleaseInputType.Allocation ? 1 : 0,\n scroll: { y: _ctx.tableSize.height - _ctx.tableHeaderSize.height - 5, x: 1900 },\n rowKey: _ctx.rowKey\n }, _createSlots({\n rowCheckbox: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_14, [\n (_ctx.inputType === _ctx.AdjReleaseInputType.Allocation)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15))\n : _createCommentVNode(\"\", true),\n _hoisted_16,\n _hoisted_17\n ])\n ]),\n vehicle: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_18, [\n (_ctx.inputType === _ctx.AdjReleaseInputType.Allocation)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19))\n : _createCommentVNode(\"\", true),\n _hoisted_20,\n _hoisted_21\n ])\n ]),\n annual: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_22, [\n (_ctx.inputType === _ctx.AdjReleaseInputType.Allocation)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_23))\n : _createCommentVNode(\"\", true),\n _hoisted_24,\n _createElementVNode(\"div\", _hoisted_25, _toDisplayString(_ctx.year) + \"FY\", 1)\n ])\n ]),\n _: 2\n }, [\n _renderList(_ctx.monthes, (month) => {\n return {\n name: month,\n fn: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_26, [\n (_ctx.inputType === _ctx.AdjReleaseInputType.Allocation)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_27, [\n _createVNode(_component_a_checkbox, {\n checked: _ctx.monthCheckStatus[month],\n \"onUpdate:checked\": ($event: any) => ((_ctx.monthCheckStatus[month]) = $event),\n disabled: _ctx.actualStatus.get(month)\n }, null, 8, [\"checked\", \"onUpdate:checked\", \"disabled\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_28, _toDisplayString(_ctx.actualStatus.get(month) ? 'Actual' : 'Forecast'), 1),\n _createElementVNode(\"div\", _hoisted_29, _toDisplayString(_ctx.year) + \"-\" + _toDisplayString(month), 1)\n ])\n ])\n }\n })\n ]), 1032, [\"columns\", \"data-source\", \"expanded-row-keys\", \"onExpand\", \"expand-icon-column-index\", \"scroll\", \"rowKey\"])\n ])\n ]))\n}","\nimport { defineComponent, ref, computed, h, resolveComponent, watch, reactive } from 'vue'\nimport TagSelector from '@/views/Planning/components/TagSelector.vue'\nimport { AdjReleaseType, AdjReleaseViewType, AdjReleaseInputViewType, AdjReleaseInputType } from '@/views/Planning/type'\nimport type { Month, TopicData, AdjustmentData, AdjustmentDataInfo } from '@/views/Planning/type'\nimport Decimal from '@/utils/closing/decimal'\nimport { downloadFromStream } from '@/utils/payment/downloadFile'\nimport { elementSize } from '@/utils'\nimport EditableView from '@/views/Planning/components/EditableView.vue' \nimport deepClone from '@/utils/deepClone'\nimport useTableTreeDataKey from '@/hooks/planning/useTableTreeDataKey'\nimport useTableTreeDataLevel from '@/hooks/planning/useTableTreeDataLevel'\nimport useExpandTableTreeData from '@/hooks/planning/useExpandTableTreeData'\nimport useTreeDataRelation from '@/hooks/planning/useTreeDataRelation'\nimport useCheckTreeData from '@/hooks/planning/useCheckTreeData'\nimport { monthes, monthesEn, monthNumberToEn, monthEnToNumber, forEachRecursive, numberSubWithPrecision } from '@/utils/planning'\nimport moment from 'moment'\nimport { message } from 'ant-design-vue'\nimport {\n getArTopicList as getArTopicListAPI,\n getArBrandList as getArBrandListAPI,\n getReleaseInfo as getReleaseInfoAPI,\n saveAdjustmentData as saveAdjustmentDataAPI,\n exportRelease as exportReleaseAPI\n} from '@/API/planning'\n\nconst rowKey = 'key'\n\nexport default defineComponent({\n components: {\n TagSelector,\n },\n props: {\n year: {\n type: String,\n },\n kufriVersion: {\n type: String,\n },\n planningId: {\n type: Number,\n }\n },\n emits: [\n 'save-data'\n ],\n setup(props, context) {\n let id: number | undefined = undefined\n\n const name = ref('')\n interface Topic {\n id: number;\n name: string;\n }\n const topics = ref([])\n const topic = ref()\n let planningTypeId = 0\n\n const AdjReleaseViewTypeValue = ref(AdjReleaseViewType)\n\n const viewTypes = [AdjReleaseViewType.WsWolume, AdjReleaseViewType.WsLLP, AdjReleaseViewType.AvgSI, AdjReleaseViewType.Amount]\n const inputViewTypes = [AdjReleaseInputViewType.AvgSI, AdjReleaseInputViewType.Amount]\n const viewType = ref(AdjReleaseViewType.WsLLP)\n const inputViewType = ref(AdjReleaseInputViewType.Amount)\n const inputType = ref(AdjReleaseInputType.Allocation)\n\n const amount = ref('')\n const avgSI = ref('')\n\n const expandModel = ref(false)\n\n // 品牌列表\n const brands = ref([])\n const selectedBrands = ref([])\n\n const tableData = ref([])\n\n const monthCheckStatus = reactive(monthes.reduce((status, month) => {\n status[month] = false\n return status\n }, {}) as Record)\n\n const actualStatus = computed(() => {\n const actualStatusMap = reactive(new Map(monthes.map((item: string) => [item, false])))\n if (props.kufriVersion) {\n const kufriMonth = props.kufriVersion.replace('K', '')\n if (kufriMonth) {\n for (let i = 0; i < 12; i++) {\n if (`${props.year}${monthes[i]}` < kufriMonth) {\n actualStatusMap.set(monthes[i], true)\n }\n }\n }\n }\n return actualStatusMap\n })\n\n useTableTreeDataLevel(tableData)\n const { expandedRowKeys, handleExpand } = useExpandTableTreeData(tableData, expandModel)\n const { parent, children } = useTreeDataRelation(tableData)\n const { checkState, change } = useCheckTreeData(tableData, parent, children)\n\n const dataTableColumnRender = (column: string) => {\n return ({ record }: {record: AdjustmentData}) => {\n if (inputType.value === AdjReleaseInputType.Input &&\n column !== 'annual' &&\n (([2, 3].includes((record as AdjustmentData & {level: number}).level) &&\n viewType.value === AdjReleaseViewType.AvgSI &&\n inputViewType.value === AdjReleaseInputViewType.AvgSI) ||\n ((record as AdjustmentData & {level: number}).level === 3 &&\n viewType.value === AdjReleaseViewType.Amount &&\n inputViewType.value === AdjReleaseInputViewType.Amount)) &&\n !actualStatus.value.get(monthEnToNumber(column) as string)) {\n const props: Record = {\n class: 'editable-cell',\n disabled: !record[column].editable,\n onClickOutside: () => {\n if (viewType.value == AdjReleaseViewType.AvgSI) {\n if (record[column].finalPoint !== record[column].originFinalPoint) {\n if ((record as AdjustmentData & {level: number}).level === 3) { // 修改impactModel层级后typeClass层级不能修改\n record[column].wsAmount = new Decimal(record[column].wsLlp).times(record[column].finalPoint).div(100).round(15, false)\n const parentRecord = parent(record)\n if (parentRecord && parentRecord[column]) {\n parentRecord[column].editable = false\n }\n } else { // 修改typeClass层级后impactModel层级不能修改\n record[column].wsAmount = new Decimal(record[column].wsLlp).times(record[column].finalPoint).div(100).round(15, false)\n const childrenRecords = children(record)\n childrenRecords?.forEach((item) => {\n item[column].finalPoint = record[column].finalPoint\n item[column].wsAmount = new Decimal(item[column].wsLlp).times(item[column].finalPoint).div(100).round(15, false)\n item[column].editable = false\n })\n }\n }\n } else {\n if (record[column].wsAmount !== record[column].originWsAmount) {\n if ((record as AdjustmentData & {level: number}).level === 3) { // 修改impactModel层级后typeClass层级不能修改\n record[column].finalPoint = record[column].wsLlp ? new Decimal(record[column].wsAmount).div(record[column].wsLlp).times(100).round(15, false) : '0'\n const parentRecord = parent(record)\n if (parentRecord && parentRecord[column]) {\n parentRecord[column].editable = false\n }\n } else { // 修改typeClass层级后impactModel层级不能修改\n record[column].finalPoint = record[column].wsLlp ? new Decimal(record[column].wsAmount).div(record[column].wsLlp).times(100).round(15, false) : '0'\n const childrenRecords = children(record)\n childrenRecords?.forEach((item) => {\n item[column].finalPoint = record[column].finalPoint\n item[column].wsAmount = new Decimal(item[column].wsLlp).times(item[column].finalPoint).div(100).round(15, false)\n item[column].editable = false\n })\n }\n }\n }\n },\n value: viewType.value == AdjReleaseViewType.AvgSI ? record[column].finalPoint : record[column].wsAmount,\n 'onUpdate:value': (value: string) => {\n if (viewType.value == AdjReleaseViewType.AvgSI) {\n record[column].finalPoint = numberSubWithPrecision(value, 15)\n } else {\n record[column].wsAmount = numberSubWithPrecision(value, 15)\n }\n },\n formator: (value: string) => {\n if (viewType.value == AdjReleaseViewType.AvgSI) {\n return value === '' ? '' : `${new Decimal(value).round(2)}%`\n } else {\n return value === '' ? '' : new Decimal(value).round(0)\n }\n } \n }\n return h(EditableView, props)\n }\n\n let text = ''\n if (record[column]) {\n switch (viewType.value) {\n case AdjReleaseViewType.WsWolume:\n text = record[column].wsVolume !== null ? new Decimal(record[column].wsVolume).round(0) : ''\n break\n case AdjReleaseViewType.WsLLP:\n text = record[column].wsLlp !== null ? new Decimal(record[column].wsLlp).round(0) : ''\n break\n case AdjReleaseViewType.AvgSI:\n text = record[column].finalPoint !== '' ? `${new Decimal(record[column].finalPoint ?? '').round(2)}%` : ''\n break\n case AdjReleaseViewType.Amount:\n text = record[column].wsAmount !== '' ? new Decimal(record[column].wsAmount ?? '').round(0) : ''\n break\n }\n }\n return h('span', text)\n }\n }\n\n\n const dataTableCheckboxColumnRender = ({ record }: {record: AdjustmentData}) => {\n const recordCheckState = checkState ? checkState(record) : undefined\n const checkboxComponent = resolveComponent('a-checkbox')\n return h(checkboxComponent, recordCheckState ? {\n checked: recordCheckState.checked,\n 'onUpdate:checked': (value: boolean) => {\n recordCheckState.checked = value\n },\n indeterminate: recordCheckState.indeterminate,\n onChange: (checked: boolean) => {\n change(record)\n }\n }: null)\n }\n\n const tableColumns = computed(() => {\n const columns = [\n {\n slots: { title: 'vehicle' },\n dataIndex: 'vehicle',\n width: 350,\n fixed: 'left'\n },\n {\n dataIndex: 'brand',\n width: 60,\n fixed: 'left'\n },\n {\n slots: { title: 'annual' },\n dataIndex: 'annual',\n align: 'right',\n width: 130,\n fixed: 'left',\n customRender: dataTableColumnRender('annual')\n },\n ...monthes.map((month, index, monthes) => {\n return {\n slots: { title: month },\n dataIndex: month,\n align: 'right',\n width: index === monthes.length - 1 ? 130 : 110,\n customRender: dataTableColumnRender(monthNumberToEn(month) as string)\n }\n })\n ]\n\n if (inputType.value === AdjReleaseInputType.Allocation) {\n columns.unshift({\n slots: { title: 'rowCheckbox' },\n dataIndex: 'annual',\n align: 'center',\n width: 50,\n fixed: 'left',\n customRender: dataTableCheckboxColumnRender\n })\n }\n\n return columns\n })\n\n const handleChangeInputType = (adjustmentIndex: number) => {\n amount.value = ''\n avgSI.value = ''\n forEachRecursive(tableData.value as AdjustmentData[], item => {\n monthesEn.forEach(month => {\n if (item[month]) {\n item[month].finalPoint = item[month].originFinalPoint\n item[month].wsAmount = item[month].originWsAmount\n }\n })\n })\n if (inputType.value === AdjReleaseInputType.Allocation) {\n viewType.value = AdjReleaseViewType.WsLLP\n } else {\n viewType.value = AdjReleaseViewType.Amount\n inputViewType.value = AdjReleaseInputViewType.Amount\n }\n }\n\n const handleChangeViewType = () => {\n if (viewType.value === AdjReleaseViewType.AvgSI) {\n inputViewType.value = AdjReleaseInputViewType.AvgSI\n } else if (viewType.value === AdjReleaseViewType.Amount) {\n inputViewType.value = AdjReleaseInputViewType.Amount\n }\n }\n\n const handleChangeInputViewType = () => {\n if (inputViewType.value === AdjReleaseInputViewType.AvgSI) {\n viewType.value = AdjReleaseViewType.AvgSI\n } else if (inputViewType.value === AdjReleaseInputViewType.Amount) {\n viewType.value = AdjReleaseViewType.Amount\n }\n }\n\n const handleAllocation = () => {\n if (amount.value === '') {\n message.error('Please input amount')\n return\n }\n let llp = new Decimal(0)\n const checkedCells: AdjustmentDataInfo[] = []\n forEachRecursive(tableData.value as AdjustmentData[], item => {\n const recordCheckState = checkState(item)?.checked\n monthesEn.forEach(month => {\n if (item[month]) {\n item[month].finalPoint = item[month].originFinalPoint\n item[month].wsAmount = item[month].originWsAmount\n }\n if (recordCheckState && monthCheckStatus[monthEnToNumber(month) as Month]) {\n if ((item as AdjustmentData & {level: number}).level === 3) {\n llp = llp.plus(item[month]?.wsLlp)\n }\n checkedCells.push(item[month])\n }\n })\n })\n const avgSiValue = llp.isZero() ? new Decimal(0) : new Decimal(amount.value).div(llp)\n avgSI.value = `${avgSiValue.times(100).round(2)}%`\n checkedCells.forEach(item => {\n item.finalPoint = avgSiValue.times(100).round(15, false)\n item.wsAmount = new Decimal(item.wsLlp).times(avgSiValue).round(15, false)\n })\n }\n\n const getArInfo = async () => {\n if (selectedBrands.value.length) {\n const data = await getReleaseInfoAPI(selectedBrands.value, props.planningId as number, props.kufriVersion as string)\n id = data?.headerId\n name.value = data.topicName ?? ''\n topic.value = data.topicCode ? data.topicCode.toString() : undefined\n planningTypeId = data.planningTypeId\n tableData.value = data.children\n forEachRecursive(tableData.value as AdjustmentData[], item => {\n monthesEn.forEach(month => {\n if (item[month]) {\n item[month].finalPoint = item[month].finalPoint === null ? '' : item[month].finalPoint.toString()\n item[month].originFinalPoint = item[month].finalPoint\n item[month].wsAmount = item[month].wsAmount === null ? '' : item[month].wsAmount.toString()\n item[month].originWsAmount = item[month].wsAmount\n item[month].editable = true\n } else {\n item[month] = {\n finalPoint: '',\n originFinalPoint: '',\n wsAmount: '',\n originWsAmount: '',\n wsVolume: null,\n wsLlp: null,\n editable: true\n }\n }\n })\n })\n useTableTreeDataKey(tableData)\n } else {\n tableData.value = []\n }\n }\n\n const handleChangeAmount = () => {\n amount.value = numberSubWithPrecision(amount.value, 2, 13, true)\n }\n\n const handleSave = async () => {\n if (name.value === '') {\n message.error('Please input name')\n return\n }\n // if (!topic.value) {\n // message.error('Please select topic')\n // return\n // }\n const AdjustmentDataInfos: {\n id: number;\n planningId?: number;\n planningTypeId?: number;\n kufriVersion?: string;\n year?: string;\n month?: string;\n brand?: string;\n typeClass?: string;\n impactCode?: string;\n impactName?: string;\n actualStatus?: boolean;\n finalPoint: number;\n wsAmount: number;\n }[] = []\n forEachRecursive(tableData.value as AdjustmentData[], item => {\n if ((item as AdjustmentData & {level: number}).level === 3) {\n monthesEn.forEach(month => {\n if (item[month] && item[month].finalPoint !== item[month].originFinalPoint) {\n AdjustmentDataInfos.push({\n id: item[month].dataInfoId,\n planningId: props.planningId,\n planningTypeId,\n kufriVersion: props.kufriVersion,\n year: props.year,\n month: monthEnToNumber(month, true),\n brand: item.brand,\n typeClass: item.typeClass,\n impactCode: item.impactCode,\n impactName: item.vehicle,\n actualStatus: actualStatus.value.get(monthEnToNumber(month) as string),\n finalPoint: parseFloat(item[month].finalPoint),\n wsAmount: parseFloat(item[month].wsAmount)\n })\n }\n })\n }\n })\n await saveAdjustmentDataAPI({\n allocationAmount: inputType.value === AdjReleaseInputType.Allocation ?\n parseFloat(amount.value) : undefined,\n allocationType: inputType.value === AdjReleaseInputType.Input ? 0 : 1,\n detailList: AdjustmentDataInfos,\n id,\n topicCode: parseInt(topic.value ?? ''),\n topicName: name.value\n })\n message.success('Save successful')\n context.emit('save-data')\n getArInfo()\n }\n\n const init = () => {\n if (!props.planningId || !props.kufriVersion) {\n return\n }\n\n getArTopicListAPI(props.planningId as number).then(data => {\n topics.value = data\n })\n getArBrandListAPI(props.planningId, props.kufriVersion, AdjReleaseType.Release).then(data => {\n brands.value = data\n selectedBrands.value = deepClone(data)\n }).then(() => {\n getArInfo()\n })\n }\n\n watch([() => props.kufriVersion, () => props.planningId], ([kufriVersionValue, planningIdValue]) => {\n if (kufriVersionValue && planningIdValue) {\n init()\n }\n }, {\n immediate: true\n })\n\n const tableSize = elementSize('.release-table')\n\n const tableHeaderSize = elementSize('.release-table .ant-table-thead')\n\n const handleExport = async () => {\n const postData = {\n brandList: selectedBrands.value,\n planningId: props.planningId,\n kufriVersion: props.kufriVersion\n }\n const res = await exportReleaseAPI(postData)\n downloadFromStream(res)\n }\n \n return {\n AdjReleaseViewTypeValue,\n moment,\n name,\n topics,\n topic,\n brands,\n selectedBrands,\n amount,\n avgSI,\n viewTypes,\n inputViewTypes,\n viewType,\n inputViewType,\n AdjReleaseInputType,\n inputType,\n expandModel,\n monthes,\n rowKey,\n tableColumns,\n monthCheckStatus,\n tableData,\n actualStatus,\n getArInfo,\n expandedRowKeys,\n handleExpand,\n handleChangeInputType,\n handleChangeViewType,\n handleChangeInputViewType,\n handleAllocation,\n handleChangeAmount,\n handleSave,\n tableSize,\n tableHeaderSize,\n handleExport\n }\n }\n})\n","import { render } from \"./Release.vue?vue&type=template&id=1acb57c8&scoped=true&ts=true\"\nimport script from \"./Release.vue?vue&type=script&lang=ts\"\nexport * from \"./Release.vue?vue&type=script&lang=ts\"\n\nimport \"./Release.vue?vue&type=style&index=0&id=1acb57c8&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-1acb57c8\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_FeatureYear = _resolveComponent(\"FeatureYear\")!\n const _component_CurrentYear = _resolveComponent(\"CurrentYear\")!\n\n return (_ctx.isFutureYear)\n ? (_openBlock(), _createBlock(_component_FeatureYear, {\n key: 0,\n kufriVersion: _ctx.kufriVersion,\n planningId: _ctx.planningId,\n onHandleUpdateData: _ctx.handleUpdateData,\n year: _ctx.year,\n \"kufri-version\": _ctx.kufriVersion\n }, null, 8, [\"kufriVersion\", \"planningId\", \"onHandleUpdateData\", \"year\", \"kufri-version\"]))\n : (_openBlock(), _createBlock(_component_CurrentYear, {\n key: 1,\n tableData: _ctx.currentYearTableData,\n onHandleUpdateData: _ctx.handleUpdateData,\n onHandleSearchByTargetId: _ctx.handleSearchByTargrtId,\n year: _ctx.year,\n \"kufri-version\": _ctx.kufriVersion,\n planningId: _ctx.planningId\n }, null, 8, [\"tableData\", \"onHandleUpdateData\", \"onHandleSearchByTargetId\", \"year\", \"kufri-version\", \"planningId\"]))\n}","import { resolveComponent as _resolveComponent, normalizeStyle as _normalizeStyle, createVNode as _createVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createSlots as _createSlots, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7f379b45\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"sub-tab-content-container\" }\nconst _hoisted_2 = { class: \"content-wrapper\" }\nconst _hoisted_3 = { class: \"control-panel\" }\nconst _hoisted_4 = { class: \"row\" }\nconst _hoisted_5 = { class: \"align-right\" }\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"Expand Model\")\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\"Export\")\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_9 = { style: {\"width\":\"1430px\",\"overflow\":\"hidden\"} }\nconst _hoisted_10 = { class: \"input-area scroll-content\" }\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"empty\" }, null, -1))\nconst _hoisted_12 = { style: {\"overfolow\":\"hidden\",\"display\":\"inline-flex\",\"width\":\"calc(100% - 530px)\"} }\nconst _hoisted_13 = [\"onClick\"]\nconst _hoisted_14 = { key: 0 }\nconst _hoisted_15 = { key: 1 }\nconst _hoisted_16 = { key: 1 }\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"title\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"status-wrapper\" }),\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"month-wrapper\" })\n], -1))\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"title\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"status-wrapper\" }),\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"month-wrapper\" }, \"Vehicle\")\n], -1))\nconst _hoisted_19 = { class: \"title month\" }\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status-wrapper bold\" }, null, -1))\nconst _hoisted_21 = { class: \"month-wrapper bold\" }\nconst _hoisted_22 = { class: \"title month\" }\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"status-wrapper\" }, \"Forecast\", -1))\nconst _hoisted_24 = { class: \"month-wrapper\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_tag_selector = _resolveComponent(\"tag-selector\")!\n const _component_a_radio = _resolveComponent(\"a-radio\")!\n const _component_a_radio_group = _resolveComponent(\"a-radio-group\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_input = _resolveComponent(\"a-input\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_tag_selector, {\n class: \"brand-selector\",\n mode: \"multi\",\n \"data-source\": _ctx.brands,\n value: _ctx.selectedBrands,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedBrands) = $event)),\n onChange: _ctx.handleChangeBrand,\n style: _normalizeStyle({'grid-template-columns': `repeat(${_ctx.brands.length}, 1fr)`})\n }, null, 8, [\"data-source\", \"value\", \"onChange\", \"style\"])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_radio_group, {\n value: _ctx.viewType,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.viewType) = $event)),\n onChange: _ctx.handleChangeRadio\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.viewTypes, (item) => {\n return (_openBlock(), _createBlock(_component_a_radio, {\n key: item,\n value: item,\n style: {\"font-size\":\"12px\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"])\n ]),\n _createVNode(_component_a_checkbox, {\n class: \"expand-model-checkbox\",\n checked: _ctx.expandModel,\n \"onUpdate:checked\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.expandModel) = $event))\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"checked\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"save-btn\",\n onClick: _ctx.handleExport\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"save-btn\",\n onClick: _ctx.handleSave\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _hoisted_11,\n _createElementVNode(\"div\", _hoisted_12, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.monthesInput, (month) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: month,\n class: \"input-month\"\n }, [\n (!month.editing)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n onClick: ($event: any) => (_ctx.handleClickInput($event, month))\n }, [\n (!month.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, \"Input\"))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_15, _toDisplayString(month.value.toFixed(2)) + \"%\", 1))\n ], 8, _hoisted_13))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n _createVNode(_component_a_input, {\n value: month.value,\n \"onUpdate:value\": ($event: any) => ((month.value) = $event),\n onFocus: ($event: any) => (_ctx.handleFocus(month)),\n onBlur: ($event: any) => (_ctx.handleBlur(month))\n }, null, 8, [\"value\", \"onUpdate:value\", \"onFocus\", \"onBlur\"])\n ]))\n ]))\n }), 128))\n ])\n ])\n ]),\n _createVNode(_component_a_table, {\n class: \"data-table dlr-table\",\n pagination: false,\n columns: _ctx.tableColumns,\n \"data-source\": _ctx.tableData,\n \"expanded-row-keys\": _ctx.expandedRowKeys,\n \"expand-icon-column-index\": _ctx.expandIconIndex,\n onExpand: _ctx.handleExpand,\n scroll: { y: _ctx.tableSize.height - _ctx.tableHeaderSize.height - 5, x: 960 },\n rowKey: _ctx.rowKey\n }, _createSlots({\n rowCheckbox: _withCtx(() => [\n _hoisted_17\n ]),\n vehicle: _withCtx(() => [\n _hoisted_18\n ]),\n annual: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_19, [\n _hoisted_20,\n _createElementVNode(\"div\", _hoisted_21, _toDisplayString(_ctx.year) + \"FY\", 1)\n ])\n ]),\n _: 2\n }, [\n _renderList(_ctx.monthes, (month) => {\n return {\n name: month,\n fn: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_22, [\n _hoisted_23,\n _createElementVNode(\"div\", _hoisted_24, _toDisplayString(_ctx.year + '-' + _ctx.moment().month(parseInt(month) - 1).format('MM')), 1)\n ])\n ])\n }\n })\n ]), 1032, [\"columns\", \"data-source\", \"expanded-row-keys\", \"expand-icon-column-index\", \"onExpand\", \"scroll\", \"rowKey\"])\n ])\n ]))\n}","\nimport { defineComponent, ref, computed, h, resolveComponent, watch, reactive, onMounted, nextTick, Ref, inject } from 'vue'\nimport TagSelector from '@/views/Planning/components/TagSelector.vue'\nimport { AdjReleaseType, DealerStockViewType, AdjReleaseInputType } from '@/views/Planning/type'\nimport type { Month, TopicData, AdjustmentData, AdjustmentDataInfo } from '@/views/Planning/type'\nimport Decimal from '@/utils/closing/decimal'\nimport { elementSize } from '@/utils'\nimport EditableView from '@/views/Planning/components/EditableView.vue' \nimport deepClone from '@/utils/deepClone'\nimport useTableTreeDataKey from '@/hooks/planning/useTableTreeDataKey'\nimport useTableTreeDataLevel from '@/hooks/planning/useTableTreeDataLevel'\nimport useExpandTableTreeData from '@/hooks/planning/useExpandTableTreeData'\nimport useTreeDataRelation from '@/hooks/planning/useTreeDataRelation'\nimport useCheckTreeData from '@/hooks/planning/useCheckTreeData'\nimport { monthes, monthesEn, monthNumberToEn, monthEnToNumber, forEachRecursive, numberSubWithPrecision } from '@/utils/planning'\nimport moment from 'moment'\nimport { message } from 'ant-design-vue'\nimport {\n getArBrandList as getArBrandListAPI,\n getReleaseInfo as getReleaseInfoAPI,\n saveAdjustmentData as saveAdjustmentDataAPI,\n getfutureDealerStock, saveAvgSi, featureExport\n} from '@/API/planning'\nimport { kufriKey, planningIdKey } from '@/views/Planning/index.vue'\nimport { downloadFromStream } from '@/utils/payment/downloadFile'\n\nconst rowKey = 'key'\n\nexport default defineComponent({\n components: {\n TagSelector,\n },\n props: {\n year: {\n type: String,\n },\n kufriVersion: {\n type: String,\n },\n planningId: {\n type: Number,\n }\n },\n setup(props) {\n const kufriMonth = inject>(kufriKey) as Ref\n // const defaultPlanningId = inject>(planningIdKey) as Ref\n const monthesInput = ref([\n {\n label: 'january',\n value: null,\n editing: false,\n number: 1\n },\n {\n label: 'february',\n value: null,\n editing: false,\n number: 2\n },\n {\n label: 'march',\n value: null,\n editing: false,\n number: 3\n },\n {\n label: 'april',\n value: null,\n editing: false,\n number: 4\n },\n {\n label: 'may',\n value: null,\n editing: false,\n number: 5\n },\n {\n label: 'june',\n value: null,\n editing: false,\n number: 6\n },\n {\n label: 'july',\n value: null,\n editing: false,\n number: 7\n },\n {\n label: 'august',\n value: null,\n editing: false,\n number: 8\n },\n {\n label: 'september',\n value: null,\n editing: false,\n number: 9\n },\n {\n label: 'october',\n value: null,\n editing: false,\n number: 10\n },\n {\n label: 'november',\n value: null,\n editing: false,\n number: 11\n },\n {\n label: 'december',\n value: null,\n editing: false,\n number: 12\n }\n ])\n let id: number | undefined = undefined\n\n const viewTypes = ref([DealerStockViewType.WsWolume, DealerStockViewType.WsLLP, DealerStockViewType.AvgSI, DealerStockViewType.Amount])\n const viewType = ref(DealerStockViewType.WsLLP) \n const inputType = ref(AdjReleaseInputType.Allocation)\n\n const amount = ref('')\n const avgSI = ref('')\n\n const selectedRows = ref([])\n\n const expandModel = ref(false)\n\n // 品牌列表\n const brands = ref([])\n const selectedBrands = ref([])\n\n const tableData = ref([])\n let copyTableData: any[] = []\n\n const actualStatus = computed(() => {\n const actualStatusMap = reactive(new Map(monthes.map((item: string) => [item, false])))\n tableData.value?.forEach((make: AdjustmentData) => {\n make.children?.forEach((typeClass: AdjustmentData) => {\n typeClass.children?.forEach((model: AdjustmentData) => {\n monthesEn.forEach((monthEn: string) => {\n if (model[monthEn]?.actualStatus !== undefined) {\n const monthNumber = monthEnToNumber(monthEn)\n if (monthNumber) {\n actualStatusMap.set(monthNumber, model[monthEn]?.actualStatus)\n }\n }\n })\n })\n })\n })\n return actualStatusMap\n })\n\n useTableTreeDataLevel(tableData)\n const { expandedRowKeys, handleExpand } = useExpandTableTreeData(tableData, expandModel)\n const { parent, children } = useTreeDataRelation(tableData)\n const { checkState, change } = useCheckTreeData(tableData, parent, children)\n\n const dataTableColumnRender = (column: string) => {\n return ({ record }: {record: AdjustmentData}) => {\n if (inputType.value === AdjReleaseInputType.Input &&\n column !== 'annual' &&\n (([2, 3].includes((record as AdjustmentData & {level: number}).level) &&\n viewType.value === DealerStockViewType.AvgSI) ||\n ((record as AdjustmentData & {level: number}).level === 3 &&\n viewType.value === DealerStockViewType.Amount))) {\n \n const props: Record = {\n disabled: true,\n value: viewType.value == DealerStockViewType.AvgSI ? record[column].finalPoint : record[column].wsAmount,\n 'onUpdate:value': (value: string) => {\n if (viewType.value == DealerStockViewType.AvgSI) {\n record[column].finalPoint = value\n } else {\n record[column].wsAmount = value\n }\n },\n formator: (value: string) => {\n if (viewType.value == DealerStockViewType.AvgSI) {\n return `${new Decimal(value).round(2)}%`\n } else {\n return new Decimal(value).round(2)\n }\n } \n }\n return h(EditableView, props)\n }\n let text = ''\n if (record[column]) {\n switch (viewType.value) {\n case DealerStockViewType.WsWolume:\n text = record[column].wsVolume !== null ? new Decimal(record[column].wsVolume).round(0) : ''\n break\n case DealerStockViewType.WsLLP:\n text = record[column].wsLlp !== null ? new Decimal(record[column].wsLlp).round(0) : ''\n break\n case DealerStockViewType.AvgSI:\n text = record[column].finalPoint !== '' ? `${new Decimal(record[column].finalPoint ?? '').round(2)}%` : ''\n break\n case DealerStockViewType.Amount:\n text = record[column].wsAmount !== '' ? new Decimal(record[column].wsAmount ?? '').round(0) : ''\n break\n }\n }\n return h('span', text)\n }\n }\n \n const dataTableCheckboxColumnRender = ({ record }: {record: AdjustmentData}) => {\n const recordCheckState = checkState ? checkState(record) : undefined\n const checkboxComponent = resolveComponent('a-checkbox')\n return h(checkboxComponent, recordCheckState ? {\n checked: recordCheckState.checked,\n 'onUpdate:checked': (value: boolean) => {\n recordCheckState.checked = value\n },\n indeterminate: recordCheckState.indeterminate,\n onChange: (checked: boolean) => {\n change(record)\n }\n }: null)\n }\n\n const tableColumns = computed(() => {\n const columns = [\n {\n slots: { title: 'rowCheckbox' },\n dataIndex: 'annual',\n align: 'center',\n width: 50,\n customRender: dataTableCheckboxColumnRender\n },\n {\n slots: { title: 'vehicle' },\n dataIndex: 'vehicle',\n width: 300,\n },\n {\n dataIndex: 'brand',\n width: 60\n },\n {\n slots: { title: 'annual' },\n dataIndex: 'annual',\n align: 'right',\n width: 120,\n customRender: dataTableColumnRender('annual')\n },\n ...monthes.map((month, index, monthes) => {\n return {\n slots: { title: month },\n dataIndex: month,\n align: 'right',\n width: index === monthes.length - 1 ? 120 : 100,\n customRender: dataTableColumnRender(monthNumberToEn(month) as string)\n }\n })\n ]\n\n return columns\n })\n\n const handleChangeBrand = () => {\n const cloneTableData = deepClone(copyTableData[0].children)\n cloneTableData.forEach((row: any, index: any) => {\n if (row.children && row.children.length > 0) {\n row.children = row.children.filter((child: any) => {\n return selectedBrands.value.includes(child.brand)\n })\n }\n })\n\n for (let i = cloneTableData.length - 1; i >= 0;i--) {\n if (!cloneTableData[i].children || cloneTableData[i].children.length === 0) {\n cloneTableData.splice(i, 1);\n }\n }\n \n tableData.value[0].children = cloneTableData\n }\n\n const methodsGetBrands = (tableData: any[]) => {\n const brandList: string[] = []\n forEachRecursive(tableData as any[], item => {\n brandList.push(item.brand)\n })\n brands.value = [...new Set(brandList)].filter(item => item)\n selectedBrands.value = brands.value\n }\n\n const getArInfo = async () => {\n const params = {\n planningId: props.planningId as number,\n kufriVersion: props.kufriVersion as string\n }\n const data = await getfutureDealerStock(params)\n id = data?.headerId\n tableData.value = data.data\n methodsGetBrands(tableData.value) \n forEachRecursive(tableData.value as any[], item => {\n monthesEn.forEach(month => {\n if (item[month]) {\n item[month].finalPoint = item[month].finalPoint === null ? '' : item[month].finalPoint.toString()\n item[month].originFinalPoint = item[month].finalPoint\n item[month].wsAmount = item[month].wsAmount === null ? '' : item[month].wsAmount.toString()\n item[month].originWsAmount = item[month].wsAmount\n item[month].editable = true\n }\n })\n })\n useTableTreeDataKey(tableData)\n copyTableData = deepClone(tableData.value)\n nextTick(() => {\n const ele: any | null = document.querySelector(`.dlr-table .ant-table-body`)\n const title: any | null = document.querySelectorAll(`.scroll-content`)\n ele.addEventListener('scroll', function(e: any) {\n title[0].style.left = `-${e.target.scrollLeft}px`\n })\n })\n }\n\n const expandIconIndex = ref(1)\n\n const handleChangeRadio = (e: any) => {\n const newValue = e.target.value\n const ele: any | null = document.querySelector('.empty')\n }\n\n // 点击单元格可编辑 item:单元格数据 record:整行数据\n const handleClickInput = (e: any, month: any) => {\n month.editing = true\n nextTick(()=>{\n const ele: any | null = document.querySelector('.input-area input')\n if (ele) {\n ele.focus()\n }\n })\n }\n\n const handleFocus = (month: any) => {\n if (month.value === null) {\n return\n }\n }\n\n const handleBlur = (month: any) => {\n if (month.value === null) {\n month.editing = false\n return\n }\n month.value = month.value * 1\n month.editing = false\n if (selectedRows.value.length > 0) {\n selectedRows.value.forEach((row: any) => {\n row[month.label].finalPoint = month.value\n })\n }\n }\n \n\n const rowSelection = {\n onChange: (selectedRowKeys: (string | number)[], selecteds: any[]) => {\n selectedRows.value = selecteds\n // handleCheck()\n },\n onSelect: (record: any, selected: boolean, selectedRows: any[]) => {\n console.log(record, selected, selectedRows);\n },\n onSelectAll: (selected: boolean, selectedRows: any[], changeRows: any[]) => {\n console.log(selected, selectedRows, changeRows);\n },\n columnTitle: ' '\n }\n\n const handleSave = async () => {\n const checkedCells: any[] = []\n forEachRecursive(tableData.value as AdjustmentData[], item => {\n const recordCheckState = checkState(item)?.checked\n monthesInput.value.forEach(month => {\n if (month.value && recordCheckState) {\n if (!item[month.label]) {\n item[month.label] = {\n planningId: props.planningId,\n kufriVersion: kufriMonth.value,\n brand: item.brand,\n typeClass: item.typeClass,\n year: props.year,\n impactName: item.vehicle,\n month: month.number,\n impactCode: item.impactCode,\n adjustmentStatus: false,\n actualStatus: false\n }\n } \n item[month.label].finalPoint = month.value\n if (!item.children) {\n checkedCells.push(item[month.label])\n }\n }\n })\n })\n const data = checkedCells.map(item => {\n if (item.dataInfoId) {\n return {\n id: item.dataInfoId,\n adjAvgSi: item.finalPoint\n }\n } else {\n item.adjAvgSi = item.finalPoint\n delete item.finalPoint\n return item\n }\n \n })\n saveAvgSi(data).then(res => {\n message.success('Save Success')\n getArInfo()\n })\n }\n\n const init = () => {\n if (!props.planningId || !props.kufriVersion) {\n return\n }\n getArInfo()\n // getArBrandListAPI(props.planningId, props.kufriVersion, AdjReleaseType.Release).then(data => {\n // brands.value = data\n // selectedBrands.value = deepClone(data)\n // }).then(() => {\n // getArInfo()\n // })\n }\n\n // watch([() => props.kufriVersion, () => props.planningId], ([kufriVersionValue, planningIdValue]) => {\n // if (kufriVersionValue && planningIdValue) {\n // init()\n // }\n // }, {\n // immediate: true\n // })\n const handleExport = async () => {\n const postData = {\n planningId: props.planningId,\n kufriVersion: props.kufriVersion\n }\n const res = await featureExport(postData)\n downloadFromStream(res)\n }\n\n onMounted(() => {\n init()\n })\n\n const tableSize = elementSize('.dlr-table')\n\n const tableHeaderSize = elementSize('.dlr-table .ant-table-thead')\n \n return {\n monthesInput,\n moment,\n name,\n brands,\n selectedBrands,\n amount,\n avgSI,\n viewTypes,\n viewType,\n AdjReleaseInputType,\n inputType,\n expandModel,\n monthes,\n rowKey,\n tableColumns,\n tableData,\n actualStatus,\n getArInfo,\n expandedRowKeys,\n handleExpand,\n handleSave,\n handleClickInput,\n handleFocus,\n handleBlur,\n handleChangeRadio,\n handleChangeBrand,\n tableSize,\n tableHeaderSize,\n expandIconIndex,\n rowSelection,\n selectedRows,\n handleExport\n }\n }\n})\n","import { render } from \"./FeatureYear.vue?vue&type=template&id=7f379b45&scoped=true&ts=true\"\nimport script from \"./FeatureYear.vue?vue&type=script&lang=ts\"\nexport * from \"./FeatureYear.vue?vue&type=script&lang=ts\"\n\nimport \"./FeatureYear.vue?vue&type=style&index=0&id=7f379b45&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-7f379b45\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, vShow as _vShow, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c1b7fc86\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"sub-tab-content-container\" }\nconst _hoisted_2 = { class: \"content-wrapper\" }\nconst _hoisted_3 = { class: \"control-panel\" }\nconst _hoisted_4 = { class: \"row\" }\nconst _hoisted_5 = { style: {\"display\":\"flex\",\"align-items\":\"center\"} }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Planning Senario:\", -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Planning Year:\", -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Final Kufri:\", -1))\nconst _hoisted_9 = /*#__PURE__*/_createTextVNode(\"Confirm\")\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\"Export\")\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\"Clear\")\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_13 = { class: \"table\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_tag_selector = _resolveComponent(\"tag-selector\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_Calculation = _resolveComponent(\"Calculation\")!\n const _component_Allocation = _resolveComponent(\"Allocation\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_tag_selector, {\n class: \"type-selector\",\n mode: \"single\",\n \"data-source\": _ctx.typeOptions,\n value: _ctx.type,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.type) = $event))\n }, null, 8, [\"data-source\", \"value\"]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n _createVNode(_component_a_select, {\n value: _ctx.planningName,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.planningName) = $event)),\n onChange: _ctx.handleChangePlanningName\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.planningList, (version) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n key: version,\n vlaue: version\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(version), 1)\n ]),\n _: 2\n }, 1032, [\"vlaue\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"]),\n _hoisted_7,\n _createVNode(_component_a_select, {\n value: _ctx.nextYear,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.nextYear) = $event)),\n disabled: !_ctx.planningName,\n onChange: _ctx.handleChangeNextYear\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.yearList, (version) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n key: version,\n vlaue: version\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(version), 1)\n ]),\n _: 2\n }, 1032, [\"vlaue\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"disabled\", \"onChange\"]),\n _hoisted_8,\n _createVNode(_component_a_select, {\n value: _ctx.finalKufri,\n \"onUpdate:value\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.finalKufri) = $event)),\n disabled: !_ctx.planningName && !_ctx.nextYear\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.kufriList, (version) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n key: version,\n vlaue: version\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(version), 1)\n ]),\n _: 2\n }, 1032, [\"vlaue\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"disabled\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"save-btn\",\n onClick: _ctx.handleSearch,\n style: {\"margin-left\":\"12px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_9\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ], 512), [\n [_vShow, _ctx.make === 'PBP']\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"save-btn\",\n onClick: _ctx.handleExport,\n style: {\"margin-left\":\"12px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n (_ctx.type === 'Dealer Stock Adjustment Allocation')\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n class: \"save-btn\",\n onClick: _ctx.handleClear\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"save-btn\",\n onClick: _ctx.handleSave,\n style: {\"margin-left\":\"12px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n (_ctx.type === 'Dealer Stock Adjustment Calculation')\n ? (_openBlock(), _createBlock(_component_Calculation, {\n key: 0,\n tableData: _ctx.tableData,\n ref: \"calculationRef\",\n year: _ctx.year,\n \"kufri-version\": _ctx.kufriVersion\n }, null, 8, [\"tableData\", \"year\", \"kufri-version\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.type === 'Dealer Stock Adjustment Allocation')\n ? (_openBlock(), _createBlock(_component_Allocation, {\n key: 1,\n tableData: _ctx.tableData,\n ref: \"allocationRef\",\n year: _ctx.year,\n \"kufri-version\": _ctx.kufriVersion\n }, null, 8, [\"tableData\", \"year\", \"kufri-version\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createCommentVNode as _createCommentVNode, createBlock as _createBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4d2479ac\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"title\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = [\"onClick\"]\nconst _hoisted_4 = [\"onClick\"]\nconst _hoisted_5 = [\"onClick\"]\nconst _hoisted_6 = { key: 1 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_table_column = _resolveComponent(\"a-table-column\")!\n const _component_a_table_column_group = _resolveComponent(\"a-table-column-group\")!\n const _component_a_input = _resolveComponent(\"a-input\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n\n return (_openBlock(), _createBlock(_component_a_table, {\n pagination: false,\n dataSource: _ctx.tableData,\n class: \"data-table dlr-table\",\n scroll: { y: _ctx.viewHeight - 200, x: 960 },\n rowKey: \"id\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_table_column_group, {\n title: _ctx.year-1 + '-12',\n align: \"right\",\n fixed: _ctx.make != 'PBP'\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_table_column, {\n title: \"Type Class\",\n key: \"typeClass\",\n width: 90,\n dataIndex: \"typeClass\",\n align: \"left\"\n }),\n _createVNode(_component_a_table_column, {\n title: \"Model\",\n key: \"model\",\n width: 220,\n dataIndex: \"model\",\n align: \"left\"\n }),\n _createVNode(_component_a_table_column, {\n title: \"Brand\",\n key: \"brand\",\n width: 80,\n dataIndex: \"brand\",\n align: \"left\"\n }),\n _createVNode(_component_a_table_column, {\n title: \"DS Opening Balance\",\n key: \"openingBalance\",\n width: 150,\n dataIndex: \"openingBalance\",\n align: \"right\"\n })\n ]),\n _: 1\n }, 8, [\"title\", \"fixed\"]),\n _createVNode(_component_a_table_column, {\n width: 20,\n class: \"bg-fff\"\n }),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.seasons, (season, index) => {\n return (_openBlock(), _createBlock(_component_a_table_column_group, {\n title: season.title,\n align: \"center\",\n key: season.title\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_component_a_table_column, {\n key: season.children[0].dataIndex,\n width: season.children[0].width,\n dataIndex: season.children[0].dataIndex,\n align: \"right\",\n class: \"bg-f8f8f8\"\n }, {\n title: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"span\", null, _toDisplayString(season.children[0].title), 1),\n (season.children[0].canExpand)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, [\n (season.children[0].expandStatus)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n onClick: ($event: any) => (_ctx.handleExpandCol(season.children[0], season)),\n class: \"expand-icon\"\n }, \"-\", 8, _hoisted_3))\n : (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n onClick: ($event: any) => (_ctx.handleExpandCol(season.children[0], season)),\n class: \"expand-icon\"\n }, \"+\", 8, _hoisted_4))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _: 2\n }, 1032, [\"width\", \"dataIndex\"])),\n (season.children[1].isShow)\n ? (_openBlock(), _createBlock(_component_a_table_column, {\n title: season.children[1].title,\n key: season.children[1].dataIndex,\n width: season.children[1].width,\n dataIndex: season.children[1].dataIndex,\n align: \"right\",\n class: \"bg-f8f8f8\"\n }, null, 8, [\"title\", \"width\", \"dataIndex\"]))\n : _createCommentVNode(\"\", true),\n (season.children[2].isShow)\n ? (_openBlock(), _createBlock(_component_a_table_column, {\n title: season.children[2].title,\n key: season.children[2].dataIndex,\n width: season.children[2].width,\n dataIndex: season.children[2].dataIndex,\n align: \"right\",\n class: \"input-cell\"\n }, {\n default: _withCtx(({ record }) => [\n (!record[season.field].editing)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"cell\",\n onClick: ($event: any) => (_ctx.handleClickCell(record, season.field))\n }, _toDisplayString(_ctx.number2Fixed(record[season.field].adjAvgSi)), 9, _hoisted_5))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (season.field === 'march')\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 0,\n class: _normalizeClass([\"input-adj\", {'bg-E0EAEE': !record.model}]),\n type: \"number\",\n value: record[season.field].adjAvgSi,\n \"onUpdate:value\": ($event: any) => ((record[season.field].adjAvgSi) = $event),\n disabled: !record.model || _ctx.marchDisabled,\n onBlur: ($event: any) => (_ctx.handleBlur(record, season.field)),\n onFocus: ($event: any) => (_ctx.handleFocus(record, season.field))\n }, null, 8, [\"class\", \"value\", \"onUpdate:value\", \"disabled\", \"onBlur\", \"onFocus\"]))\n : (season.field === 'june')\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 1,\n class: _normalizeClass([\"input-adj\", {'bg-E0EAEE': !record.model}]),\n type: \"number\",\n value: record[season.field].adjAvgSi,\n \"onUpdate:value\": ($event: any) => ((record[season.field].adjAvgSi) = $event),\n disabled: !record.model || _ctx.juneDisabled,\n onBlur: ($event: any) => (_ctx.handleBlur(record, season.field)),\n onFocus: ($event: any) => (_ctx.handleFocus(record, season.field))\n }, null, 8, [\"class\", \"value\", \"onUpdate:value\", \"disabled\", \"onBlur\", \"onFocus\"]))\n : (season.field === 'september')\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 2,\n class: _normalizeClass([\"input-adj\", {'bg-E0EAEE': !record.model}]),\n type: \"number\",\n value: record[season.field].adjAvgSi,\n \"onUpdate:value\": ($event: any) => ((record[season.field].adjAvgSi) = $event),\n disabled: !record.model || _ctx.septemberDisabled,\n onBlur: ($event: any) => (_ctx.handleBlur(record, season.field)),\n onFocus: ($event: any) => (_ctx.handleFocus(record, season.field))\n }, null, 8, [\"class\", \"value\", \"onUpdate:value\", \"disabled\", \"onBlur\", \"onFocus\"]))\n : (_openBlock(), _createBlock(_component_a_input, {\n key: 3,\n class: _normalizeClass([\"input-adj\", {'bg-E0EAEE': !record.model}]),\n type: \"number\",\n value: record[season.field].adjAvgSi,\n \"onUpdate:value\": ($event: any) => ((record[season.field].adjAvgSi) = $event),\n disabled: !record.model || _ctx.decemberDisabled,\n onBlur: ($event: any) => (_ctx.handleBlur(record, season.field)),\n onFocus: ($event: any) => (_ctx.handleFocus(record, season.field))\n }, null, 8, [\"class\", \"value\", \"onUpdate:value\", \"disabled\", \"onBlur\", \"onFocus\"]))\n ]))\n ]),\n _: 2\n }, 1032, [\"title\", \"width\", \"dataIndex\"]))\n : _createCommentVNode(\"\", true),\n (_openBlock(), _createBlock(_component_a_table_column, {\n title: season.children[3].title,\n key: season.children[3].dataIndex,\n width: season.children[3].width,\n dataIndex: season.children[3].dataIndex,\n align: \"right\",\n class: \"bg-f8f8f8\"\n }, null, 8, [\"title\", \"width\", \"dataIndex\"])),\n (index != 3)\n ? (_openBlock(), _createBlock(_component_a_table_column, {\n key: 2,\n class: \"bg-fff\",\n width: 20,\n style: {\"background\":\"#FFF !important\"}\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1032, [\"title\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"dataSource\", \"scroll\"]))\n}","\nimport { defineComponent, ref, reactive, h, inject, watch, computed, Ref, nextTick } from 'vue'\nimport { elementSize } from '@/utils'\nimport { makeKey, kufriKey, planningIdKey } from '@/views/Planning/index.vue'\n\nexport default defineComponent({\n props: {\n tableData: {\n type: Array\n },\n year: {\n type: String,\n default: '2021'\n },\n kufriVersion: {\n type: String,\n default: ''\n }\n },\n setup(props) {\n const make = inject>(makeKey) as Ref\n const kufriMonth = inject>(kufriKey) as Ref\n const defaultPlanningId = inject>(planningIdKey) as Ref\n \n const handleExpandCol = (child: any, season: any) => {\n child.expandStatus = !child.expandStatus\n season.children[1].isShow = !season.children[1].isShow\n season.children[2].isShow = !season.children[2].isShow\n }\n\n let seasons\n\n if (make.value === 'PBP') {\n seasons = ref([\n {\n title: props.year + '-12',\n field: 'december',\n slots: { \n title: `titleQ4`\n },\n children: [\n {\n title: 'DS Target',\n dataIndex: `december.dsTarget`,\n key: `december.dsTarget`,\n expandStatus: false,\n canExpand: true,\n isShow: true,\n width: 80\n },\n {\n title: 'Avg.SI%',\n dataIndex: `december.avgSi`,\n key: `december.avgSi`,\n isShow: false,\n width: 80,\n },\n {\n title: 'Adj. Avg.SI%',\n dataIndex: `december.adjAvgSi`,\n key: `december.adjAvgSi`,\n isShow: false,\n width: 100\n },\n {\n title: 'Movement',\n dataIndex: `december.movement`,\n isShow: true,\n key: `december.movement`,\n width: 120,\n }\n ]\n }\n ])\n } else {\n seasons = ref([\n {\n title: props.year + '-03',\n field: 'march',\n slot: 'q1',\n children: [\n {\n title: 'DS Target',\n dataIndex: `march.dsTarget`,\n key: `march.dsTarget`,\n width: 80,\n expandStatus: false,\n canExpand: true,\n isShow: true\n },\n {\n title: 'Avg.SI%',\n dataIndex: `march.avgSi`,\n key: `march.avgSi`,\n width: 80,\n isShow: false\n },\n {\n title: 'Adj. Avg.SI%',\n dataIndex: `march.adjAvgSi`,\n key: `march.adjAvgSi`,\n width: 100,\n isShow: false\n },\n {\n title: 'Movement',\n dataIndex: `march.movement`,\n key: `march.movement`,\n width: 120,\n isShow: true\n }\n ]\n },\n {\n title: props.year + '-06',\n field: 'june',\n slots: { \n title: `titleQ2`\n },\n children: [\n {\n title: 'DS Target',\n dataIndex: `june.dsTarget`,\n key: `june.dsTarget`,\n expandStatus: false,\n canExpand: true,\n isShow: true,\n width: 80\n },\n {\n title: 'Avg.SI%',\n dataIndex: `june.avgSi`,\n key: `june.avgSi`,\n isShow: false,\n width: 80,\n },\n {\n title: 'Adj. Avg.SI%',\n dataIndex: `june.adjAvgSi`,\n key: `june.adjAvgSi`,\n isShow: false,\n width: 100\n },\n {\n title: 'Movement',\n dataIndex: `june.movement`,\n isShow: true,\n key: `june.movement`,\n width: 120,\n }\n ]\n },\n {\n title: props.year + '-09',\n field: 'september',\n slots: { \n title: `titleQ3`\n },\n children: [\n {\n title: 'DS Target',\n dataIndex: `september.dsTarget`,\n key: `september.dsTarget`,\n expandStatus: false,\n canExpand: true,\n isShow: true,\n width: 80\n },\n {\n title: 'Avg.SI%',\n dataIndex: `september.avgSi`,\n key: `september.avgSi`,\n isShow: false,\n width: 80,\n },\n {\n title: 'Adj. Avg.SI%',\n dataIndex: `september.adjAvgSi`,\n key: `september.adjAvgSi`,\n isShow: false,\n width: 100\n },\n {\n title: 'Movement',\n dataIndex: `september.movement`,\n isShow: true,\n key: `september.movement`,\n width: 120,\n }\n ]\n },\n {\n title: props.year + '-12',\n field: 'december',\n slots: { \n title: `titleQ4`\n },\n children: [\n {\n title: 'DS Target',\n dataIndex: `december.dsTarget`,\n key: `december.dsTarget`,\n expandStatus: false,\n canExpand: true,\n isShow: true,\n width: 80\n },\n {\n title: 'Avg.SI%',\n dataIndex: `december.avgSi`,\n key: `december.avgSi`,\n isShow: false,\n width: 80,\n },\n {\n title: 'Adj. Avg.SI%',\n dataIndex: `december.adjAvgSi`,\n key: `december.adjAvgSi`,\n isShow: false,\n width: 100\n },\n {\n title: 'Movement',\n dataIndex: `december.movement`,\n isShow: true,\n key: `december.movement`,\n width: 120,\n }\n ]\n }\n ])\n }\n\n const computedFilterExpand = computed(() => {\n return (children: any) => {\n return children.filter((child: any) => {\n return child.isShow\n })\n }\n })\n\n let marchDisabled = false\n let juneDisabled = false \n let septemberDisabled = false \n let decemberDisabled = false\n\n const methodFormat = (value: any) => {\n if (value === 0) {\n return 0\n } else {\n return Number(value.replaceAll(',', ''))\n }\n }\n\n const handleSaveAvgSi = () => {\n const request: any[] = []\n const months = ['march', 'june', 'september', 'december']\n props.tableData?.forEach((row: any) => {\n console.log(row)\n for (const key in row) {\n if (months.includes(key)) {\n let item: any = {}\n if (row[key].id) {\n item.adjAvgSi = row[key].adjAvgSi !== '' && row[key].adjAvgSi !== null ? parseFloat(row[key].adjAvgSi) : null\n item.id = row[key].id\n } else {\n item = {\n planningId: defaultPlanningId.value,\n kufriVersion: props.kufriVersion,\n brand: row.brand,\n typeClass: row.typeClass,\n year: props.year,\n impactName: row.model,\n month: key === 'march' ? 3 : key === 'june' ? 6 : key === 'september' ? 9 : 12,\n impactCode: row.impactCode,\n adjAvgSi: row[key].adjAvgSi !== '' && row[key].adjAvgSi !== null ? parseFloat(row[key].adjAvgSi) : null,\n adjustmentStatus: false,\n actualStatus: key === 'march' ? marchDisabled : key === 'june' ? juneDisabled : key === 'september' ? septemberDisabled : decemberDisabled,\n openingBalance: methodFormat(row.openingBalance ?? 0),\n allocationAmount: methodFormat(row.stockAdjustment ?? 0)\n }\n }\n console.log(item.adjAvgSi)\n console.log(row[key].originAdjAvgSi)\n if (item.adjAvgSi !== row[key].originAdjAvgSi) {\n request.push(item)\n } \n }\n }\n })\n return request\n }\n\n const handleBlur = (record: any, field: string) => {\n record[field].editing = false\n }\n\n const handleFocus = (record: any, field: string) => {\n // if (!record[field].adjAvgSi) {\n // return\n // }\n // record[field].adjAvgSi = Number(record[field].adjAvgSi)\n }\n\n const viewHeight = document.documentElement.clientHeight\n\n const month = parseInt(props.kufriVersion.substring(props.kufriVersion.length - 2))\n \n const kufriYear = parseInt(props.kufriVersion)\n\n if (kufriYear > parseInt(props.year)) {\n marchDisabled = true\n juneDisabled = true\n septemberDisabled = true\n decemberDisabled = true\n } else if (kufriYear == parseInt(props.year)) {\n if (month <= 3) {\n marchDisabled = false\n juneDisabled = false\n septemberDisabled = false\n decemberDisabled = false\n } else if (month > 3 && month <= 6) {\n marchDisabled = true\n juneDisabled = false\n septemberDisabled = false\n decemberDisabled = false\n } else if (month > 6 && month <= 9) {\n marchDisabled = true\n juneDisabled = true\n septemberDisabled = false\n decemberDisabled = false\n } else if (month > 9) {\n marchDisabled = true\n juneDisabled = true\n septemberDisabled = true\n decemberDisabled = false\n }\n } else {\n marchDisabled = false\n juneDisabled = false\n septemberDisabled = false\n decemberDisabled = false\n }\n\n const handleClickCell = (record: any, month: string) => {\n if (month === 'march' && marchDisabled) {\n return\n } else if (month === 'june' && juneDisabled) {\n return\n } else if (month === 'september' && septemberDisabled) {\n return\n } else if (month === 'december' && decemberDisabled) {\n return\n }\n record[month].editing = true\n nextTick(()=>{\n const ele: any | null = document.querySelector('.data-table input')\n if (ele) {\n ele.focus()\n }\n })\n }\n\n const number2Fixed = computed(() => {\n return (val: any) => {\n if (val || val == 0) {\n // val = val.replaceAll(',', '')\n return Number(val).toFixed(2) + '%'\n }\n return ''\n }\n })\n \n \n return {\n computedFilterExpand,\n handleExpandCol,\n seasons,\n viewHeight,\n handleSaveAvgSi,\n handleBlur, \n handleClickCell,\n handleFocus,\n make,\n marchDisabled,\n juneDisabled,\n septemberDisabled,\n decemberDisabled,\n number2Fixed\n }\n }\n})\n","import { render } from \"./Calculation.vue?vue&type=template&id=4d2479ac&scoped=true&ts=true\"\nimport script from \"./Calculation.vue?vue&type=script&lang=ts\"\nexport * from \"./Calculation.vue?vue&type=script&lang=ts\"\n\nimport \"./Calculation.vue?vue&type=style&index=0&id=4d2479ac&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-4d2479ac\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9a70a1b0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"check-div\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"DS Adjustment\", -1))\nconst _hoisted_3 = { class: \"check-div\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"DS Adjustment\", -1))\nconst _hoisted_5 = { class: \"check-div\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"DS Adjustment\", -1))\nconst _hoisted_7 = { class: \"check-div\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"DS Adjustment\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_table_column = _resolveComponent(\"a-table-column\")!\n const _component_a_table_column_group = _resolveComponent(\"a-table-column-group\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n\n return (_openBlock(), _createBlock(_component_a_table, {\n class: \"data-table\",\n \"data-source\": _ctx.tableData,\n \"row-selection\": {selectedRowKeys: _ctx.selectedRowKeys, onChange: _ctx.onChange, getCheckboxProps: _ctx.getCheckboxProps, onSelect: _ctx.onSelect, columnTitle: ' ' },\n scroll: { y: _ctx.viewHeight - 240, x: 960 },\n pagination: false,\n rowKey: \"id\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_table_column_group, {\n title: \"Opening\",\n align: \"right\",\n fixed: _ctx.make != 'PBP'\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_table_column, {\n title: \"Brand\",\n key: \"brand\",\n width: 60,\n dataIndex: \"brand\",\n align: \"left\"\n }),\n _createVNode(_component_a_table_column, {\n title: \"Type Class\",\n key: \"typeClass\",\n width: 90,\n dataIndex: \"typeClass\",\n align: \"left\"\n }),\n _createVNode(_component_a_table_column, {\n title: \"Model\",\n key: \"model\",\n width: 220,\n dataIndex: \"model\",\n align: \"left\"\n }),\n _createVNode(_component_a_table_column, {\n title: \"Allocation Amount\",\n key: \"dob\",\n width: 150,\n dataIndex: \"stockAdjustment\",\n align: \"right\"\n })\n ]),\n _: 1\n }, 8, [\"fixed\"]),\n (_ctx.make != 'PBP')\n ? (_openBlock(), _createBlock(_component_a_table_column, {\n key: 0,\n width: 10,\n class: \"block\",\n style: {\"background\":\"#FFF !important\"}\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.make != 'PBP')\n ? (_openBlock(), _createBlock(_component_a_table_column_group, {\n key: 1,\n title: _ctx.year + '-03',\n align: \"center\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_table_column, {\n title: \"Allocation Amount\",\n key: \"march.stockAdjustment\",\n width: 100,\n dataIndex: \"march.stockAdjustment\",\n align: \"right\",\n class: \"dark-cell\"\n }),\n _createVNode(_component_a_table_column_group, { align: \"center\" }, {\n title: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_a_checkbox, {\n checked: _ctx.marchCheckbox,\n \"onUpdate:checked\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.marchCheckbox) = $event)),\n onChange: _ctx.handleCheck\n }, null, 8, [\"checked\", \"onChange\"]),\n _hoisted_2\n ])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_table_column, {\n title: \"Abs. Amount\",\n key: \"march.absAmount\",\n width: 90,\n dataIndex: \"march.absAmount\",\n align: \"right\",\n class: \"dark-cell\"\n }),\n _createVNode(_component_a_table_column, {\n title: \"% of LLP\",\n key: \"march.llpPercentage\",\n width: 70,\n dataIndex: \"march.llpPercentage\",\n align: \"right\",\n class: \"dark-cell\"\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"title\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.make != 'PBP')\n ? (_openBlock(), _createBlock(_component_a_table_column, {\n key: 2,\n width: 10,\n class: \"block\",\n style: {\"background\":\"#FFF !important\"}\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.make != 'PBP')\n ? (_openBlock(), _createBlock(_component_a_table_column_group, {\n key: 3,\n title: _ctx.year + '-06',\n align: \"center\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_table_column, {\n title: \"Allocation Amount\",\n key: \"june.stockAdjustment\",\n width: 100,\n dataIndex: \"june.stockAdjustment\",\n align: \"right\",\n class: \"dark-cell\"\n }),\n _createVNode(_component_a_table_column_group, { align: \"center\" }, {\n title: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_a_checkbox, {\n checked: _ctx.juneCheckbox,\n \"onUpdate:checked\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.juneCheckbox) = $event)),\n onChange: _ctx.handleCheck\n }, null, 8, [\"checked\", \"onChange\"]),\n _hoisted_4\n ])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_table_column, {\n title: \"Abs. Amount\",\n key: \"june.absAmount\",\n width: 90,\n dataIndex: \"june.absAmount\",\n align: \"right\",\n class: \"dark-cell\"\n }),\n _createVNode(_component_a_table_column, {\n title: \"% of LLP\",\n key: \"june.llpPercentage\",\n width: 70,\n dataIndex: \"june.llpPercentage\",\n align: \"right\",\n class: \"dark-cell\"\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"title\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.make != 'PBP')\n ? (_openBlock(), _createBlock(_component_a_table_column, {\n key: 4,\n width: 10,\n class: \"block\",\n style: {\"background\":\"#FFF !important\"}\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.make != 'PBP')\n ? (_openBlock(), _createBlock(_component_a_table_column_group, {\n key: 5,\n title: _ctx.year + '-09',\n align: \"center\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_table_column, {\n title: \"Allocation Amount\",\n key: \"september.stockAdjustment\",\n width: 100,\n dataIndex: \"september.stockAdjustment\",\n align: \"right\",\n class: \"dark-cell\"\n }),\n _createVNode(_component_a_table_column_group, { align: \"center\" }, {\n title: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_a_checkbox, {\n checked: _ctx.septemberCheckbox,\n \"onUpdate:checked\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.septemberCheckbox) = $event)),\n onChange: _ctx.handleCheck\n }, null, 8, [\"checked\", \"onChange\"]),\n _hoisted_6\n ])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_table_column, {\n title: \"Abs. Amount\",\n key: \"september.absAmount\",\n width: 90,\n dataIndex: \"september.absAmount\",\n align: \"right\",\n class: \"dark-cell\"\n }),\n _createVNode(_component_a_table_column, {\n title: \"% of LLP\",\n key: \"september.llpPercentage\",\n width: 70,\n dataIndex: \"september.llpPercentage\",\n align: \"right\",\n class: \"dark-cell\"\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"title\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_table_column, {\n width: 10,\n class: \"block\",\n style: {\"background\":\"#FFF !important\"}\n }),\n _createVNode(_component_a_table_column_group, {\n title: _ctx.year + '-12',\n align: \"center\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_table_column, {\n title: \"Allocation Amount\",\n key: \"december.stockAdjustment\",\n width: 100,\n dataIndex: \"december.stockAdjustment\",\n align: \"right\",\n class: \"dark-cell\"\n }),\n _createVNode(_component_a_table_column_group, { align: \"center\" }, {\n title: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_a_checkbox, {\n checked: _ctx.decemberCheckbox,\n \"onUpdate:checked\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.decemberCheckbox) = $event)),\n onChange: _ctx.handleCheck\n }, null, 8, [\"checked\", \"onChange\"]),\n _hoisted_8\n ])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_table_column, {\n title: \"Abs. Amount\",\n key: \"december.absAmount\",\n width: 90,\n dataIndex: \"december.absAmount\",\n align: \"right\",\n class: \"dark-cell\"\n }),\n _createVNode(_component_a_table_column, {\n title: \"% of LLP\",\n key: \"december.llpPercentage\",\n width: 80,\n dataIndex: \"december.llpPercentage\",\n align: \"right\",\n class: \"dark-cell\"\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"title\"])\n ]),\n _: 1\n }, 8, [\"data-source\", \"row-selection\", \"scroll\"]))\n}","\nimport { defineComponent, ref, reactive, h, inject, watch, computed, Ref } from 'vue'\nimport { makeKey, kufriKey, planningIdKey } from '@/views/Planning/index.vue'\nimport { message } from 'ant-design-vue'\n\nexport default defineComponent({\n props: {\n tableData: {\n type: Array,\n default: () => {\n return []\n }\n },\n year: {\n type: String,\n default: '2021'\n },\n kufriVersion: {\n type: String,\n default: ''\n }\n },\n setup(props) {\n const make = inject>(makeKey) as Ref\n const kufriMonth = inject>(kufriKey) as Ref\n const defaultPlanningId = inject>(planningIdKey) as Ref\n const marchCheckbox = ref(false)\n const juneCheckbox = ref(false)\n const septemberCheckbox = ref(false)\n const decemberCheckbox = ref(false)\n\n const selectedRowKeys = ref([])\n\n const selectedRows = ref([])\n\n const postData = ref({})\n \n const handleExpandCol = (child: any, season: any) => {\n child.expandStatus = !child.expandStatus\n season.children[1].isShow = !season.children[1].isShow\n season.children[2].isShow = !season.children[2].isShow\n }\n\n const computedFilterChildren = computed(() => {\n return (children: any) => {\n return children.filter((child: any) => {\n return child.children\n })\n }\n })\n\n const methodFormat = (value: any) => {\n if (value === 0) {\n return 0\n } else {\n return Number(value.replaceAll(',', ''))\n }\n }\n\n const month = parseInt(props.kufriVersion.substring(props.kufriVersion.length - 2))\n \n const kufriYear = parseInt(props.kufriVersion)\n\n let marchDisabled = false\n let juneDisabled = false \n let septemberDisabled = false \n let decemberDisabled = false\n\n if (kufriYear > parseInt(props.year)) {\n marchDisabled = true\n juneDisabled = true\n septemberDisabled = true\n decemberDisabled = true\n } else if (kufriYear == parseInt(props.year)) {\n if (month <= 3) {\n marchDisabled = false\n juneDisabled = false\n septemberDisabled = false\n decemberDisabled = false\n } else if (month > 3 && month <= 6) {\n marchDisabled = true\n juneDisabled = false\n septemberDisabled = false\n decemberDisabled = false\n } else if (month > 6 && month <= 9) {\n marchDisabled = true\n juneDisabled = true\n septemberDisabled = false\n decemberDisabled = false\n } else if (month > 9) {\n marchDisabled = true\n juneDisabled = true\n septemberDisabled = true\n decemberDisabled = false\n }\n } else {\n marchDisabled = false\n juneDisabled = false\n septemberDisabled = false\n decemberDisabled = false\n }\n\n const handleCheck = () => {\n postData.value = {\n planningId: defaultPlanningId.value,\n kufriVersion: props.kufriVersion,\n detailList: []\n }\n const marchIds: number[] = []\n const juneIds: number[] = []\n const septemberIds: number[] = []\n const decemberIds: number[] = []\n const marchDealerStockList: any[] = []\n const juneDealerStockList: any[] = []\n const septemberDealerStockList: any[] = []\n const decemberDealerStockList: any[] = []\n let marchData: any = {}\n let juneData: any = {}\n let septemberData: any = {}\n let decemberData: any = {}\n let marchLlpWsSum = 0\n let juneLlpWsSum = 0\n let septemberLlpWsSum = 0\n let decemberLlpWsSum = 0\n const selectedRowsTemp = selectedRows.value.filter((item: any) => item.model)\n const all: any = props.tableData[0] || []\n selectedRowsTemp.forEach((row: any) => {\n if (marchCheckbox.value) {\n if (row.march.id) {\n marchIds.push(row.march.id)\n } else {\n marchDealerStockList.push({\n planningId: defaultPlanningId.value,\n kufriVersion: props.kufriVersion,\n brand: row.brand,\n typeClass: row.typeClass,\n year: props.year,\n impactName: row.model,\n month: 3,\n impactCode: row.impactCode,\n adjustmentStatus: false,\n actualStatus: marchDisabled,\n openingBalance: methodFormat(row.openingBalance ?? 0),\n allocationAmount: methodFormat(row.stockAdjustment ?? 0)\n })\n }\n marchLlpWsSum += row.march.monthWsLlp ?? 0\n \n marchData = {\n monthWsLlp: marchLlpWsSum,\n amount: methodFormat(all?.stockAdjustment ?? 0) + methodFormat(all?.march?.stockAdjustment ?? 0),\n ids: marchIds,\n dealerStockList: marchDealerStockList\n }\n }\n if (juneCheckbox.value) {\n if (row.june.id) {\n juneIds.push(row.june.id)\n } else {\n juneDealerStockList.push({\n planningId: defaultPlanningId.value,\n kufriVersion: props.kufriVersion,\n brand: row.brand,\n typeClass: row.typeClass,\n year: props.year,\n impactName: row.model,\n month: 6,\n impactCode: row.impactCode,\n adjustmentStatus: false,\n actualStatus: juneDisabled,\n openingBalance: methodFormat(row.openingBalance ?? 0),\n allocationAmount: methodFormat(row.stockAdjustment ?? 0)\n })\n }\n juneLlpWsSum += row.june.monthWsLlp ?? 0\n juneData = {\n monthWsLlp: juneLlpWsSum,\n amount: marchCheckbox.value ? methodFormat(all?.june.stockAdjustment ?? 0) : methodFormat(all?.stockAdjustment ?? 0) + methodFormat(all?.march?.stockAdjustment ?? 0) + methodFormat(all?.june?.stockAdjustment ?? 0),\n ids: juneIds,\n dealerStockList: juneDealerStockList\n }\n }\n if (septemberCheckbox.value) {\n if (row.september.id) {\n septemberIds.push(row.september.id)\n } else {\n septemberDealerStockList.push({\n planningId: defaultPlanningId.value,\n kufriVersion: props.kufriVersion,\n brand: row.brand,\n typeClass: row.typeClass,\n year: props.year,\n impactName: row.model,\n month: 9,\n impactCode: row.impactCode,\n adjustmentStatus: false,\n actualStatus: septemberDisabled,\n openingBalance: methodFormat(row.openingBalance ?? 0),\n allocationAmount: methodFormat(row.stockAdjustment ?? 0)\n })\n }\n septemberLlpWsSum += row.september.monthWsLlp ?? 0\n septemberData = {\n monthWsLlp: septemberLlpWsSum,\n amount: 0,\n ids: septemberIds,\n dealerStockList: septemberDealerStockList\n }\n if (juneCheckbox.value) {\n septemberData.amount = methodFormat(all?.september?.stockAdjustment ?? 0)\n } else {\n if (marchCheckbox.value) {\n septemberData.amount = methodFormat(all?.september?.stockAdjustment ?? 0) + methodFormat(all?.june?.stockAdjustment ?? 0)\n } else {\n septemberData.amount = methodFormat(all?.stockAdjustment ?? 0) + methodFormat(all?.march?.stockAdjustment ?? 0) + methodFormat(all?.june?.stockAdjustment ?? 0) + methodFormat(all?.september?.stockAdjustment ?? 0)\n }\n }\n }\n if (decemberCheckbox.value) {\n if (row.december.id) {\n decemberIds.push(row.december.id)\n } else {\n decemberDealerStockList.push({\n planningId: defaultPlanningId.value,\n kufriVersion: props.kufriVersion,\n brand: row.brand,\n typeClass: row.typeClass,\n year: props.year,\n impactName: row.model,\n month: 12,\n impactCode: row.impactCode,\n adjustmentStatus: false,\n actualStatus: decemberDisabled,\n openingBalance: methodFormat(row.openingBalance ?? 0),\n allocationAmount: methodFormat(row.stockAdjustment ?? 0)\n })\n }\n decemberLlpWsSum += row.december.monthWsLlp ?? 0 \n decemberData = {\n monthWsLlp: decemberLlpWsSum,\n amount: 0,\n ids: decemberIds,\n dealerStockList: decemberDealerStockList\n }\n if (septemberCheckbox.value) {\n decemberData.amount = methodFormat(all?.december?.stockAdjustment ?? 0)\n } else {\n if (juneCheckbox.value) {\n decemberData.amount = methodFormat(all?.december?.stockAdjustment ?? 0) + methodFormat(all?.september?.stockAdjustment ?? 0)\n } else {\n if (marchCheckbox.value) {\n decemberData.amount = methodFormat(all?.december?.stockAdjustment ?? 0) + methodFormat(all?.september?.stockAdjustment ?? 0) + methodFormat(all?.june?.stockAdjustment ?? 0)\n } else {\n decemberData.amount = methodFormat(all?.stockAdjustment ?? 0) + methodFormat(all?.march?.stockAdjustment ?? 0) + methodFormat(all?.june?.stockAdjustment ?? 0) + methodFormat(all?.september?.stockAdjustment ?? 0) + methodFormat(all?.december?.stockAdjustment ?? 0)\n }\n }\n }\n }\n })\n if (marchCheckbox.value) {\n postData.value.detailList.push(marchData)\n }\n if (juneCheckbox.value) {\n postData.value.detailList.push(juneData)\n }\n if (septemberCheckbox.value) {\n postData.value.detailList.push(septemberData)\n }\n if (decemberCheckbox.value) {\n postData.value.detailList.push(decemberData)\n }\n }\n\n const handleSave = () => {\n handleCheck()\n return postData.value\n }\n\n const handleClear = () => {\n marchCheckbox.value = false\n juneCheckbox.value = false\n septemberCheckbox.value = false\n decemberCheckbox.value = false\n\n selectedRowKeys.value = []\n selectedRows.value = []\n\n postData.value = {\n planningId: defaultPlanningId.value,\n kufriVersion: props.kufriVersion,\n detailList: []\n }\n }\n\n const getCheckboxProps = (record: any) => {\n return ({\n props: {\n disabled: true,\n defaultChecked: record.brand == 'CBU',\n }\n })\n }\n\n const onSelect = (record: any, selected: boolean) => {\n if (record.id == 0) {\n if (selected) {\n selectedRowKeys.value = props.tableData?.map((item: any) => item.id) || []\n selectedRows.value = props.tableData || []\n } else {\n selectedRowKeys.value = []\n selectedRows.value = []\n } \n } else {\n if (selected) {\n if (selectedRowKeys.value.length == props.tableData?.length as any - 1) {\n selectedRowKeys.value.push(0)\n }\n } else {\n const allIndex = selectedRowKeys.value.indexOf(0)\n if (allIndex > -1) {\n selectedRowKeys.value.splice(allIndex, 1)\n }\n }\n }\n }\n\n const onChange = (keys: (string | number)[], selecteds: any[]) => {\n selectedRowKeys.value = keys\n selectedRows.value = selecteds\n handleCheck()\n }\n\n selectedRowKeys.value = props.tableData?.map((item: any) => item.id) || []\n selectedRows.value = props.tableData || []\n\n const viewHeight = document.documentElement.clientHeight\n\n const allInfo: any = props.tableData[0] || {}\n if (allInfo?.march?.absAmount) {\n marchCheckbox.value = true\n }\n if (allInfo?.june?.absAmount) {\n juneCheckbox.value = true\n }\n if (allInfo?.september?.absAmount) {\n septemberCheckbox.value = true\n }\n if (allInfo?.december?.absAmount) {\n decemberCheckbox.value = true\n }\n \n return {\n marchCheckbox,\n juneCheckbox,\n septemberCheckbox,\n decemberCheckbox,\n computedFilterChildren,\n handleExpandCol,\n handleCheck,\n handleSave,\n handleClear,\n viewHeight,\n getCheckboxProps,\n onChange,\n selectedRowKeys,\n onSelect,\n make\n }\n }\n})\n","import { render } from \"./Allocation.vue?vue&type=template&id=9a70a1b0&scoped=true&ts=true\"\nimport script from \"./Allocation.vue?vue&type=script&lang=ts\"\nexport * from \"./Allocation.vue?vue&type=script&lang=ts\"\n\nimport \"./Allocation.vue?vue&type=style&index=0&id=9a70a1b0&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-9a70a1b0\"]])\n\nexport default __exports__","\nimport TagSelector from '@/views/Planning/components/TagSelector.vue'\nimport Calculation from './CurrentYear/Calculation.vue'\nimport Allocation from './CurrentYear/Allocation.vue'\nimport { defineComponent, ref, reactive, h, inject, watch, Ref } from 'vue'\nimport { message } from 'ant-design-vue'\nimport { getCurrentDealerStock, saveAvgSi, saveAmount, nextYearData, currentExport } from '@/API/planning'\nimport { makeKey } from '@/views/Planning/index.vue'\nimport { downloadFromStream } from '@/utils/payment/downloadFile'\nexport default defineComponent({\n components: {\n TagSelector,\n Calculation,\n Allocation\n },\n props: {\n tableData: {\n type: Array\n },\n year: {\n type: String,\n },\n kufriVersion: {\n type: String,\n default: ''\n },\n planningId: {\n type: String,\n },\n },\n setup(props, ctx) {\n const make = inject>(makeKey) as Ref\n\n const typeOptions = ref(['Dealer Stock Adjustment Calculation', 'Dealer Stock Adjustment Allocation'])\n const type = ref('Dealer Stock Adjustment Calculation')\n\n const calculationRef = ref(null)\n const allocationRef = ref(null)\n\n const planningList = ref([])\n const kufriList = ref([])\n const yearList = ref([])\n\n const planningName = ref('')\n const nextYear = ref('')\n const finalKufri = ref('')\n\n const handleClear = () => {\n allocationRef.value.handleClear()\n }\n\n const handleSave = () => {\n if (type.value === 'Dealer Stock Adjustment Calculation') {\n const data = calculationRef.value.handleSaveAvgSi()\n saveAvgSi(data).then(res => {\n message.success('Save Success')\n ctx.emit('handle-update-data')\n })\n } else {\n const data = allocationRef.value.handleSave()\n const monthWsLlps = data.detailList.map((item: any) => item.monthWsLlp)\n if (monthWsLlps.some((item: number) => item === 0)) {\n return message.error('Select WS LLP equal to zero.')\n } else {\n for (let i = 0; i < data.detailList.length; i++) {\n delete data.detailList[i].monthWsLlp\n }\n }\n saveAmount(data).then(res => {\n message.success('Save Success')\n ctx.emit('handle-update-data')\n })\n }\n }\n\n const handleExport = async () => {\n const postData = {\n planningId: props.planningId,\n kufriVersion: props.kufriVersion\n }\n const res = await currentExport(postData)\n downloadFromStream(res)\n }\n\n const nextYearInfo = ref([])\n\n const handleSearch = () => {\n if (!planningName.value) {\n return message.error('Please Select Planning Name')\n }\n if (!nextYear.value) {\n return message.error('Please Select Year')\n }\n if (!finalKufri.value) {\n return message.error('Please Select Final Kufri')\n }\n const targetId = nextYearInfo.value.filter((item: any) => item.planningName === planningName.value && item.year === nextYear.value && item.kufriMonth === finalKufri.value)[0].id\n console.log(targetId)\n ctx.emit('handle-search-by-target-id', targetId)\n }\n\n const handleChangePlanningName = (value: string) => {\n // kufriList.value = [...new Set(nextYearInfo.value.filter((item: any) => item.planningName === value).map((item: any) => item.kufriMonth))]\n yearList.value = [...new Set(nextYearInfo.value.filter((item: any) => item.planningName === value).map((item: any) => item.year))]\n }\n\n const handleChangeNextYear = (value: string) => {\n kufriList.value = [...new Set(nextYearInfo.value.filter((item: any) => item.planningName === planningName.value && item.year === value).map((item: any) => item.kufriMonth))]\n }\n \n const init = () => {\n nextYearData({id: props.planningId}).then((res: any) => { \n if (res.data) {\n nextYearInfo.value = res.data\n planningList.value = [...new Set(res.data.filter((item: any) => item.planningName).map((item: any) => item.planningName))]\n // kufriList.value = [...new Set(res.data.filter((item: any) => item.kufriMonth).map((item: any) => item.kufriMonth))]\n // yearList.value = [...new Set(res.data.filter((item: any) => item.year).map((item: any) => item.year))]\n }\n })\n }\n\n init()\n\n return {\n make,\n typeOptions,\n type,\n calculationRef,\n allocationRef,\n handleSave,\n handleClear,\n planningName,\n nextYear,\n finalKufri,\n planningList,\n kufriList,\n yearList,\n handleChangePlanningName,\n handleChangeNextYear,\n handleSearch,\n handleExport\n }\n }\n})\n","import { render } from \"./CurrentYear.vue?vue&type=template&id=c1b7fc86&scoped=true&ts=true\"\nimport script from \"./CurrentYear.vue?vue&type=script&lang=ts\"\nexport * from \"./CurrentYear.vue?vue&type=script&lang=ts\"\n\nimport \"./CurrentYear.vue?vue&type=style&index=0&id=c1b7fc86&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-c1b7fc86\"]])\n\nexport default __exports__","\nimport { defineComponent, ref, reactive, h, computed, watch } from 'vue'\nimport Decimal from '@/utils/closing/decimal'\nimport FeatureYear from './DealerStock/FeatureYear.vue'\nimport CurrentYear from './DealerStock/CurrentYear.vue'\nimport { getCurrentDealerStock, resetCurrent } from '@/API/planning'\nexport default defineComponent({\n components: {\n FeatureYear,\n CurrentYear\n },\n props: {\n year: {\n type: String,\n },\n kufriVersion: {\n type: String,\n },\n planningId: {\n type: Number,\n }\n },\n setup(props, context) {\n const currentYearTableData = ref([])\n const isFutureYear = ref(false)\n const init = () => {\n if (!props.planningId || !props.kufriVersion) {\n return\n }\n const params = {\n planningId: props.planningId,\n kufriVersion: props.kufriVersion\n }\n\n const formatNumber = (value: any, round: number, percent: boolean) => {\n if (percent) {\n return value || value == 0 ? new Decimal(value ?? '0').round(round) + '%' : null\n } else {\n return value || value == 0 ? new Decimal(value ?? '0').round(round) : null\n } \n } \n getCurrentDealerStock(params).then(res => {\n let index = 0\n res.data?.forEach((item: any) => {\n item.id = index\n index ++\n item.openingBalance = formatNumber(item.openingBalance, 0, false)\n item.stockAdjustment = formatNumber(item.stockAdjustment, 0, false)\n if (item.march) {\n item.march.avgSi = formatNumber(item.march?.avgSi, 2, true)\n item.march.originAdjAvgSi = item.march?.adjAvgSi\n // item.march.adjAvgSi = formatNumber(item.march?.adjAvgSi, 2, false)\n item.march.movement = formatNumber(item.march?.movement, 0, false)\n item.march.stockAdjustment = formatNumber(item.march.stockAdjustment, 0, false)\n item.march.dsTarget = formatNumber(item.march.dsTarget, 0, false)\n item.march.absAmount = formatNumber(item.march.absAmount, 0, false)\n item.march.llpPercentage = formatNumber(item.march?.llpPercentage, 2, true)\n } else {\n item.march = {\n originAdjAvgSi: null,\n adjAvgSi: null,\n movement: null,\n stockAdjustment: null,\n dsTarget: null\n }\n }\n\n if (item.june) {\n item.june.avgSi = formatNumber(item.june?.avgSi, 2, true)\n item.june.originAdjAvgSi = item.june?.adjAvgSi\n // item.june.adjAvgSi = formatNumber(item.june?.adjAvgSi, 2, false)\n item.june.movement = formatNumber(item.june?.movement, 0, false)\n item.june.stockAdjustment = formatNumber(item.june.stockAdjustment, 0, false)\n item.june.dsTarget = formatNumber(item.june.dsTarget, 0, false)\n item.june.absAmount = formatNumber(item.june.absAmount, 0, false)\n item.june.llpPercentage = formatNumber(item.june?.llpPercentage, 2, true)\n } else {\n item.june = {\n originAdjAvgSi: null,\n adjAvgSi: null,\n movement: null,\n stockAdjustment: null,\n dsTarget: null\n }\n }\n\n if (item.september) {\n item.september.avgSi = formatNumber(item.september?.avgSi, 2, true)\n item.september.originAdjAvgSi = item.september?.adjAvgSi\n // item.september.adjAvgSi = formatNumber(item.september?.adjAvgSi, 2, false)\n item.september.movement = formatNumber(item.september?.movement, 0, false)\n item.september.stockAdjustment = formatNumber(item.september.stockAdjustment, 0, false)\n item.september.dsTarget = formatNumber(item.september.dsTarget, 0, false)\n item.september.absAmount = formatNumber(item.september.absAmount, 0, false)\n item.september.llpPercentage = formatNumber(item.september?.llpPercentage, 2, true)\n } else {\n item.september = {\n originAdjAvgSi: null,\n adjAvgSi: null,\n movement: null,\n stockAdjustment: null,\n dsTarget: null\n }\n }\n\n if (item.december) {\n item.december.avgSi = formatNumber(item.december?.avgSi, 2, true)\n item.december.originAdjAvgSi = item.december?.adjAvgSi\n // item.december.adjAvgSi = formatNumber(item.december?.adjAvgSi, 2, false)\n item.december.movement = formatNumber(item.december?.movement, 0, false)\n item.december.stockAdjustment = formatNumber(item.december.stockAdjustment, 0, false)\n item.december.dsTarget = formatNumber(item.december.dsTarget, 0, false)\n item.december.absAmount = formatNumber(item.december.absAmount, 0, false)\n item.december.llpPercentage = formatNumber(item.december?.llpPercentage, 2, true)\n } else {\n item.december = {\n originAdjAvgSi: null,\n adjAvgSi: null,\n movement: null,\n stockAdjustment: null,\n dsTarget: null\n }\n }\n })\n currentYearTableData.value = res.data\n\n })\n // getfutureDealerStock(params).then(res => {\n // futureYearTableData.value = res.data\n // })\n }\n\n watch([() => props.kufriVersion, () => props.planningId, () => props.year], ([kufriVersionValue, planningIdValue, yearValue]) => {\n if (kufriVersionValue && planningIdValue) {\n init()\n }\n if (yearValue) {\n const date = new Date()\n const currentYear: any = date .getFullYear()\n if (yearValue > currentYear) {\n isFutureYear.value = true\n } else {\n isFutureYear.value = false\n }\n }\n }, {\n immediate: true\n })\n\n const handleUpdateData = () => {\n init()\n context.emit('save-data')\n }\n const handleSearchByTargrtId = (targetId: any) => {\n const params = {\n planningId: props.planningId,\n kufriVersion: props.kufriVersion,\n targetId\n }\n\n const formatNumber = (value: any, round: number, percent: boolean) => {\n if (percent) {\n return value || value == 0 ? new Decimal(value ?? '0').round(round) + '%' : null\n } else {\n return value || value == 0 ? new Decimal(value ?? '0').round(round) : null\n } \n } \n resetCurrent(params).then((res: any) => {\n init()\n })\n }\n\n return {\n currentYearTableData,\n isFutureYear,\n handleUpdateData,\n handleSearchByTargrtId\n }\n }\n})\n","import { render } from \"./DealerStock.vue?vue&type=template&id=3cdd360e&ts=true\"\nimport script from \"./DealerStock.vue?vue&type=script&lang=ts\"\nexport * from \"./DealerStock.vue?vue&type=script&lang=ts\"\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__","\nimport { defineComponent, ref, reactive, h, inject, watch } from 'vue'\nimport type { Ref } from 'vue'\nimport TagSelector from '@/views/Planning/components/TagSelector.vue'\nimport Decimal from '@/utils/closing/decimal'\nimport moment from 'moment'\nimport type { ColumnProps } from 'ant-design-vue/es/table/interface';\nimport { PlanningSimulationTab, FcInputType } from '@/views/Planning/type'\nimport type { FcInputTypeData } from '@/views/Planning/type'\nimport CentralRegion from '@/views/Planning/PlanningSimulation/CentralRegion.vue'\nimport Fleet from '@/views/Planning/PlanningSimulation/Fleet.vue'\nimport Adjustment from '@/views/Planning/PlanningSimulation/Adjustment.vue'\nimport Release from '@/views/Planning/PlanningSimulation/Release.vue'\nimport DealerStock from '@/views/Planning/PlanningSimulation/DealerStock.vue'\nimport { makeKey, scenarioIdKey, kufriKey, scenarioKey, planningIdKey, typePlanningOrSimulationKey, createMonthKey, currentKufriKey, simulationYearKey } from '@/views/Planning/index.vue'\nimport {\n getPlanningYear as getPlanningYearAPI,\n getTotalData as getTotalDataAPI,\n getFcInputTypeList as getFcInputTypeListAPI\n} from '@/API/planning'\n\ninterface PlanningYear {\n year: string;\n id: number;\n createMonth: string;\n currentKufri: string;\n kufriMonth: string;\n}\n\ninterface TotalStatData {\n ws?: string;\n rt?: string;\n sdPercent?: string;\n sd?: string;\n}\n\ninterface TypeStatData {\n cr: number | string;\n fleetUC: number | string;\n fp: number | string;\n bidding: number | string;\n dsAdj: number | string;\n specialAdj: number | string;\n release: number | string;\n}\n\nfunction generateKufirVersions(begin: string, end: string) {\n const versions = []\n const month = moment(begin.replace('K', ''))\n const endMonth = moment(end.replace('K', ''))\n while (!month.isAfter(endMonth)) {\n versions.push(month.format('YYYYKMM'))\n month.add(1, 'M')\n }\n\n return versions\n}\n\nexport default defineComponent({\n components: {\n TagSelector,\n CentralRegion,\n Fleet,\n DealerStock,\n Adjustment,\n Release\n },\n setup() {\n const make = inject>(makeKey) as Ref\n const scenario = inject>(scenarioKey) as Ref\n const scenarioId = inject>(scenarioIdKey) as Ref\n const kufriMonth = inject>(kufriKey) as Ref\n const defaultPlanningId = inject>(planningIdKey) as Ref\n const typePlanningOrSimulation = inject>(typePlanningOrSimulationKey) as Ref\n const createMonth = inject>(createMonthKey) as Ref\n const currentKufri = inject>(currentKufriKey) as Ref\n const simulationYear = inject>(simulationYearKey) as Ref\n\n const years = ref()\n const year = ref()\n let yearPlanningIdMap = new Map()\n const kufris = ref()\n const kufri = ref()\n const planningId = ref()\n\n const fcInputTypes = reactive<{[key in FcInputType]?: number}>({})\n\n const activeKey = ref(PlanningSimulationTab.GentralRegion)\n\n const totalStatData = reactive({\n ws: '0',\n rt: '0',\n sdPercent: '0.00',\n sd: '0'\n })\n\n const typeStatColumnActive = (column: string) => {\n if (column === 'fleetUC' && [PlanningSimulationTab.Fleet, PlanningSimulationTab.UC].includes(activeKey.value)) {\n return true\n }\n return column === activeKey.value\n }\n\n const typeStatTableColumnRender = (column: string) => {\n return ({ text, index }: {text: string; index: number}) => {\n const className = typeStatColumnActive(column) ? 'active' : ''\n const formatedNumber = index === 0 ? `${new Decimal(text).round(2)}%` : new Decimal(text).round(0)\n return h('span', { class: className }, formatedNumber)\n }\n }\n\n const typeStatTabletColumns = [{\n titleName: 'C+R',\n dataIndex: 'cr'\n },\n {\n titleName: 'Fleet&UC',\n dataIndex: 'fleetUC'\n }, {\n titleName: 'FP',\n dataIndex: 'fp'\n }, {\n titleName: 'Bidding',\n dataIndex: 'bidding'\n }, {\n titleName: 'DS Adj.',\n dataIndex: 'dsAdj'\n }, {\n titleName: 'Special Adj.',\n dataIndex: 'specialAdj'\n }, {\n titleName: 'Release',\n dataIndex: 'release'\n }\n ].map((item: ColumnProps, index, arr) => {\n if (item.dataIndex) {\n item.slots = { title: item.dataIndex }\n item.customRender = typeStatTableColumnRender(item.dataIndex)\n }\n item.align = 'right'\n item.width = index === arr.length - 1 ? 120 : 100\n return item\n })\n\n const typeStatData = ref([])\n\n const getStatData = async () => {\n if (!planningId.value || !kufri.value) {\n return\n }\n const data = await getTotalDataAPI(planningId.value, kufri.value)\n totalStatData.ws = new Decimal(data.totalWsVolume ?? '0').round(0)\n totalStatData.rt = new Decimal(data.totalRtVolume ?? '0').round(0)\n \n typeStatData.value = [\n {\n cr: data.totalCr?.totalAvgSi ?? '0',\n fleetUC: data.totalFc?.totalAvgSi ?? '0',\n fp: data.totalFp?.totalAvgSi ?? '0',\n bidding: data.totalBidding?.totalAvgSi ?? '0',\n dsAdj: data.totalDlr?.totalAvgSi ?? '0',\n specialAdj: data.totalSpec?.totalAvgSi ?? '0',\n release: data.totalRel?.totalAvgSi ?? '0'\n },\n {\n cr: data.totalCr?.totalAmount ?? '0',\n fleetUC: data.totalFc?.totalAmount ?? '0',\n fp: data.totalFp?.totalAmount ?? '0',\n bidding: data.totalBidding?.totalAmount ?? '0',\n dsAdj: data.totalDlr?.totalAmount ?? '0',\n specialAdj: data.totalSpec?.totalAmount ?? '0',\n release: data.totalRel?.totalAmount ?? '0'\n }\n ]\n\n totalStatData.sdPercent = new Decimal(0).plus(data.totalCr?.totalAvgSi ?? 0)\n .plus(data.totalFc?.totalAvgSi ?? 0)\n .plus(data.totalFp?.totalAvgSi ?? 0)\n .plus(data.totalBidding?.totalAvgSi ?? 0)\n .plus(data.totalDlr?.totalAvgSi ?? 0)\n .plus(data.totalSpec?.totalAvgSi ?? 0)\n .plus(data.totalRel?.totalAvgSi ?? 0)\n .round(2)\n\n totalStatData.sd = new Decimal(0).plus(data.totalCr?.totalAmount ?? 0)\n .plus(data.totalFc?.totalAmount ?? 0)\n .plus(data.totalFp?.totalAmount ?? 0)\n .plus(data.totalBidding?.totalAmount ?? 0)\n .plus(data.totalDlr?.totalAmount ?? 0)\n .plus(data.totalSpec?.totalAmount ?? 0)\n .plus(data.totalRel?.totalAmount ?? 0)\n .round(0)\n }\n\n watch([year, kufri] as const, ([yearValue]) => {\n if (typePlanningOrSimulation.value === 'simulation') {\n planningId.value = defaultPlanningId.value\n } else {\n planningId.value = yearValue ? yearPlanningIdMap.get(yearValue): undefined\n }\n getStatData()\n })\n\n const getPlanningYearInfo = () => {\n getPlanningYearAPI({\n make: make.value,\n scenarioId: scenarioId.value,\n kufriMonth: kufriMonth.value\n }).then((data: {data: PlanningYear[]}) => {\n year.value = undefined\n yearPlanningIdMap = new Map()\n if (data.data.length) {\n data.data.forEach((item: PlanningYear) => {\n if (item.year) {\n yearPlanningIdMap.set(item.year, item.id)\n if (item.id === defaultPlanningId.value) {\n year.value = item.year\n }\n }\n })\n\n years.value = Array.from(yearPlanningIdMap.keys()).sort()\n if (!year.value && years.value.length) {\n year.value = years.value[0]\n }\n const kufriVersionStart = data.data[0].createMonth\n const KufriVersionEnd = data.data[0].currentKufri\n kufris.value = generateKufirVersions(kufriVersionStart, KufriVersionEnd)\n kufri.value = kufris.value[kufris.value.length - 1]\n }\n })\n }\n\n const getFcInputType = () => {\n getFcInputTypeListAPI().then((data: FcInputTypeData[]) => {\n data.forEach(item => {\n fcInputTypes[item.typeName] = item.typeId\n })\n })\n }\n\n const handleSearch = () => {\n if (typePlanningOrSimulation.value === 'simulation') {\n getStatData()\n } else {\n getPlanningYearInfo()\n }\n \n }\n\n const getKufriAndYear = () => {\n planningId.value = defaultPlanningId.value\n const kufriVersionStart = createMonth.value\n const KufriVersionEnd = currentKufri.value\n kufris.value = generateKufirVersions(kufriVersionStart, KufriVersionEnd)\n kufri.value = kufris.value[kufris.value.length - 1]\n years.value = [simulationYear.value]\n year.value = simulationYear.value\n }\n\n if (typePlanningOrSimulation.value === 'simulation') {\n getKufriAndYear()\n } else {\n getPlanningYearInfo()\n }\n getFcInputType()\n\n return {\n scenario,\n years,\n year,\n kufris,\n kufri,\n make,\n planningId,\n fcInputTypes,\n FcInputType,\n getStatData,\n handleSearch,\n totalStatData,\n typeStatTabletColumns,\n typeStatData,\n activeKey,\n PlanningSimulationTab,\n typeStatColumnActive\n }\n }\n})\n","import { render } from \"./PlanningSimulation.vue?vue&type=template&id=3c3244f6&scoped=true&ts=true\"\nimport script from \"./PlanningSimulation.vue?vue&type=script&lang=ts\"\nexport * from \"./PlanningSimulation.vue?vue&type=script&lang=ts\"\n\nimport \"./PlanningSimulation.vue?vue&type=style&index=0&id=3c3244f6&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-3c3244f6\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-d11222b0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"finalView\" }\nconst _hoisted_2 = { class: \"header-bar\" }\nconst _hoisted_3 = { class: \"kufri-selector-container\" }\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\" Save Final Version \")\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"Export\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_tag_selector = _resolveComponent(\"tag-selector\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_tableFirst = _resolveComponent(\"tableFirst\")!\n const _component_a_tab_pane = _resolveComponent(\"a-tab-pane\")!\n const _component_tableSecond = _resolveComponent(\"tableSecond\")!\n const _component_tableThird = _resolveComponent(\"tableThird\")!\n const _component_a_tabs = _resolveComponent(\"a-tabs\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_tag_selector, {\n class: \"year-selector\",\n mode: \"single\",\n \"data-source\": _ctx.years,\n value: _ctx.year,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.year) = $event))\n }, null, 8, [\"data-source\", \"value\"]),\n _createElementVNode(\"div\", _hoisted_3, [\n (_ctx.typePlanningOrSimulation === 'simulation')\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"primary\",\n onClick: _ctx.handleSaveFinalVersion\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_select, {\n value: _ctx.kufri,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.kufri) = $event))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.kufris, (version) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n key: version,\n vlaue: version\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(version), 1)\n ]),\n _: 2\n }, 1032, [\"vlaue\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\"]),\n _createElementVNode(\"span\", {\n class: \"sync-btn font_family icon-shuaxin\",\n style: {\"margin-right\":\"12px\"},\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.handleSearch && _ctx.handleSearch(...args)))\n }),\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleExport,\n style: {\"margin-right\":\"12px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _createVNode(_component_a_tabs, {\n class: \"sub-tabs\",\n activeKey: _ctx.activeKey,\n \"onUpdate:activeKey\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.activeKey) = $event))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_tab_pane, {\n tab: \"Report 1\",\n key: \"1\"\n }, {\n default: _withCtx(() => [\n (_ctx.activeKey === '1')\n ? (_openBlock(), _createBlock(_component_tableFirst, {\n key: 0,\n year: _ctx.year,\n \"kufri-version\": _ctx.kufri,\n \"planning-id\": _ctx.planningId\n }, null, 8, [\"year\", \"kufri-version\", \"planning-id\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createVNode(_component_a_tab_pane, {\n tab: \"Report 2\",\n key: \"2\"\n }, {\n default: _withCtx(() => [\n (_ctx.activeKey === '2')\n ? (_openBlock(), _createBlock(_component_tableSecond, {\n key: 0,\n year: _ctx.year,\n \"kufri-version\": _ctx.kufri,\n \"planning-id\": _ctx.planningId\n }, null, 8, [\"year\", \"kufri-version\", \"planning-id\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createVNode(_component_a_tab_pane, {\n tab: \"Report 3\",\n key: \"3\"\n }, {\n default: _withCtx(() => [\n (_ctx.activeKey === '3')\n ? (_openBlock(), _createBlock(_component_tableThird, {\n key: 0,\n year: _ctx.year,\n \"kufri-version\": _ctx.kufri,\n \"planning-id\": _ctx.planningId\n }, null, 8, [\"year\", \"kufri-version\", \"planning-id\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"activeKey\"])\n ]))\n}","import { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0719039e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"table1\" }\nconst _hoisted_2 = /*#__PURE__*/_createTextVNode(\"Expand to Model\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_ExpandMonthTable = _resolveComponent(\"ExpandMonthTable\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_a_checkbox, {\n class: \"expand-model-checkbox\",\n checked: _ctx.expandModel,\n \"onUpdate:checked\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.expandModel) = $event)),\n style: {\"margin-bottom\":\"16px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_2\n ]),\n _: 1\n }, 8, [\"checked\"]),\n _createVNode(_component_ExpandMonthTable, {\n \"data-source\": _ctx.tableData,\n pagination: false,\n \"expanded-row-keys\": _ctx.expandedRowKeys,\n onExpand: _ctx.handleExpand,\n year: _ctx.year,\n rowKey: _ctx.rowKey\n }, null, 8, [\"data-source\", \"expanded-row-keys\", \"onExpand\", \"year\", \"rowKey\"])\n ]))\n}","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, mergeProps as _mergeProps, withCtx as _withCtx, renderList as _renderList, createSlots as _createSlots, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0b6f99ca\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"header-cell\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = { key: 2 }\nconst _hoisted_5 = [\"onClick\"]\nconst _hoisted_6 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_table = _resolveComponent(\"a-table\")!\n\n return (_openBlock(), _createBlock(_component_a_table, _mergeProps({\n class: \"data-table\",\n columns: _ctx.columns\n }, _ctx.$attrs), _createSlots({ _: 2 }, [\n _renderList(_ctx.columnsLoop, (col) => {\n return {\n name: col.slots.title,\n fn: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n (col.isMonth)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(_ctx.year) + \"-\" + _toDisplayString(col.title), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(col.title), 1)),\n (col.canExpand)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, [\n (col.expandStatus)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: \"expand-icon\",\n onClick: col.click\n }, \"-\", 8, _hoisted_5))\n : (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: \"expand-icon\",\n onClick: col.click\n }, \"+\", 8, _hoisted_6))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n }\n })\n ]), 1040, [\"columns\"]))\n}","\nimport { defineComponent, ref, reactive, h, inject, watch } from 'vue'\n\nexport default defineComponent({\n props: {\n titleWidth: {\n type: Number\n },\n year: {\n type: String\n }\n },\n setup(props) {\n // 表格展开状态\n const expandModel = ref(false)\n \n const columns = ref([])\n const handleClickSeason = (type: any, list: any[]) => {\n list.forEach((col: any) => {\n let condition\n if (type === 'seasonOne') {\n condition = col.key === 'january' || col.key === 'february' || col.key === 'march'\n if (col.key === 'seasonOne') {\n col.expandStatus = !col.expandStatus\n }\n } else if (type === 'seasonTwo'){\n condition = col.key === 'april' || col.key === 'may' || col.key === 'june'\n if (col.key === 'seasonTwo') {\n col.expandStatus = !col.expandStatus\n }\n } else if (type === 'seasonThree'){\n condition = col.key === 'july' || col.key === 'august' || col.key === 'september'\n if (col.key === 'seasonThree') {\n col.expandStatus = !col.expandStatus\n }\n } else if (type === 'seasonFour') {\n condition = col.key === 'october' || col.key === 'november' || col.key === 'december'\n if (col.key === 'seasonFour') {\n col.expandStatus = !col.expandStatus\n }\n } \n if (condition) {\n col.isShow = !col.isShow\n }\n })\n columns.value = list.filter((col: any) => {\n return col.isShow\n }).map((col: any) => {\n return {\n dataIndex: col.dataIndex,\n key: col.key,\n slots: col.slots,\n align: 'right',\n width: col.width || 70\n }\n })\n columns.value.unshift({\n title: 'Vehicle',\n dataIndex: 'rowName',\n key: 'rowName',\n fixed: 'left',\n width: props.titleWidth || 240\n })\n }\n const columnsData = ref([\n {\n title: 'Annual',\n dataIndex: 'annual',\n key: 'annual',\n isShow: true,\n slots: { \n customRender: 'annual',\n title: 'annualTitle'\n },\n width: 100\n },\n {\n title: 'Q1',\n dataIndex: 'seasonOne',\n key: 'seasonOne',\n isShow: true,\n expandStatus: false,\n slots: { \n customRender: 'seasonOne',\n title: 'seasonOneTitle'\n },\n canExpand: true,\n click: (): any => {\n return handleClickSeason('seasonOne', columnsData.value)\n }\n },\n {\n title: `01`,\n dataIndex: 'january',\n key: 'january',\n isShow: false,\n isMonth: true,\n slots: { \n customRender: 'january',\n title: 'januaryTitle'\n },\n },\n {\n title: '02',\n dataIndex: 'february',\n key: 'february',\n isShow: false,\n isMonth: true,\n slots: { \n customRender: 'february',\n title: 'FebruaryTitle'\n },\n },\n {\n title: '03',\n dataIndex: 'march',\n key: 'march',\n isShow: false,\n isMonth: true,\n slots: { \n customRender: 'march',\n title: 'marchTitle'\n }\n },\n {\n title: 'Q2',\n dataIndex: 'seasonTwo',\n key: 'seasonTwo',\n isShow: true,\n expandStatus: false,\n slots: { \n customRender: 'seasonTwo',\n title: 'seasonTwoTitle'\n },\n canExpand: true,\n click: (): any => {\n return handleClickSeason('seasonTwo', columnsData.value)\n }\n },\n {\n title: '04',\n dataIndex: 'april',\n key: 'april',\n isShow: false,\n isMonth: true,\n slots: { \n customRender: 'april',\n title: 'aprilTitle'\n },\n },\n {\n title: '05',\n dataIndex: 'may',\n key: 'may',\n isShow: false,\n isMonth: true,\n slots: { \n customRender: 'may',\n title: 'mayTitle'\n },\n },\n {\n title: '06',\n dataIndex: 'june',\n key: 'june',\n isShow: false,\n isMonth: true,\n slots: { \n customRender: 'june',\n title: 'juneTitle'\n },\n },\n {\n title: 'Q3',\n dataIndex: 'seasonThree',\n key: 'seasonThree',\n isShow: true,\n expandStatus: false,\n slots: { \n customRender: 'seasonThree',\n title: 'seasonThreeTitle'\n },\n canExpand: true,\n click: (): any => {\n return handleClickSeason('seasonThree', columnsData.value)\n }\n },\n {\n title: '07',\n dataIndex: 'july',\n key: 'july',\n isShow: false,\n isMonth: true,\n slots: { \n customRender: 'july',\n title: 'julyTitle'\n },\n },\n {\n title: '08',\n dataIndex: 'august',\n key: 'august',\n isShow: false,\n isMonth: true,\n slots: { \n customRender: 'august',\n title: 'augustTitle'\n },\n },\n {\n title: '09',\n dataIndex: 'september',\n key: 'september',\n isShow: false,\n isMonth: true,\n slots: { \n customRender: 'september',\n title: 'septemberTitle'\n },\n },\n {\n title: 'Q4',\n dataIndex: 'seasonFour',\n key: 'seasonFour',\n isShow: true,\n expandStatus: false,\n slots: { \n customRender: 'seasonFour',\n title: 'seasonFourTitle'\n },\n canExpand: true,\n click: (): any => {\n return handleClickSeason('seasonFour', columnsData.value)\n }\n },\n {\n title: '10',\n dataIndex: 'october',\n key: 'october',\n isShow: false,\n isMonth: true,\n slots: { \n customRender: 'october',\n title: 'octoberTitle'\n }\n },\n {\n title: '11',\n dataIndex: 'november',\n key: 'november',\n isShow: false,\n isMonth: true,\n slots: { \n customRender: 'november',\n title: 'novemberTitle'\n }\n },\n {\n title: '12',\n dataIndex: 'december',\n key: 'december',\n isShow: false,\n isMonth: true,\n slots: { \n customRender: 'december',\n title: 'decemberTitle'\n }\n }\n ])\n const columnsLoop = ref(columnsData.value)\n columns.value = columnsData.value.filter((col: any) => {\n return col.isShow\n }).map((col: any) => {\n return {\n dataIndex: col.dataIndex,\n key: col.key,\n slots: col.slots,\n align: 'right',\n width: col.width || 70\n }\n })\n columns.value.unshift({\n title: 'Vehicle',\n dataIndex: 'rowName',\n key: 'rowName',\n fixed: 'left',\n width: props.titleWidth || 240\n })\n return {\n expandModel,\n columns,\n columnsLoop\n }\n }\n})\n","import { render } from \"./ExpandMonthTable.vue?vue&type=template&id=0b6f99ca&scoped=true&ts=true\"\nimport script from \"./ExpandMonthTable.vue?vue&type=script&lang=ts\"\nexport * from \"./ExpandMonthTable.vue?vue&type=script&lang=ts\"\n\nimport \"./ExpandMonthTable.vue?vue&type=style&index=0&id=0b6f99ca&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-0b6f99ca\"]])\n\nexport default __exports__","\nimport { defineComponent, ref, reactive, h, inject, watch } from 'vue'\nimport ExpandMonthTable from '../components/ExpandMonthTable.vue'\nimport {\n getReportOverview as getReportOverviewAPI\n} from '@/API/planning'\nimport useExpandTableTreeData from '@/hooks/planning/useExpandTableTreeData'\nimport useTableTreeDataKey from '@/hooks/planning/useTableTreeDataKey'\n\nconst col = ['annual', 'seasonOne', 'seasonTwo', 'seasonThree', 'seasonFour', 'january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december']\n\nconst formatVolume = (volume: number) => {\n return (volume + '').replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g,'$1,');\n}\n\nconst methodFormatList = (list: any[]) => {\n list.forEach((row: any) => {\n for (const key in row) {\n if (col.includes(key)) {\n if (row.rowName === 'WS Volume' && row[key]?.wsVolume != null) {\n row[key] = formatVolume(row[key]?.wsVolume)\n }\n if (row.rowName === 'RT Volume' && row[key]?.rtVolume != null) {\n row[key] = formatVolume(row[key]?.rtVolume)\n }\n if (row[key] && (row[key]?.finalPoint || row[key]['finalPoint'] === 0)) {\n row[key] = row[key]['finalPoint'].toFixed(2) + '%'\n }\n }\n if (key === 'children' && row[key]?.length === 0) {\n row[key] = null\n }\n if (key === 'children' && row[key]) {\n methodFormatList(row[key])\n }\n }\n })\n}\nexport default defineComponent({\n components: {\n ExpandMonthTable\n },\n props: {\n year: {\n type: String,\n },\n kufriVersion: {\n type: String,\n },\n planningId: {\n type: Number,\n }\n },\n setup(props) {\n const rowKey = 'key'\n const tableData = ref([])\n // 表格展开状态\n const expandModel = ref(false)\n\n const {expandedRowKeys, handleExpand } = useExpandTableTreeData(tableData as any, expandModel, 'children', 'key', 'finalView')\n \n const init = async () => {\n const postData = {\n planningId: props.planningId,\n kufriVersion: props.kufriVersion \n }\n const res = await getReportOverviewAPI(postData)\n tableData.value = res.data\n useTableTreeDataKey(tableData)\n methodFormatList(tableData.value)\n }\n\n watch([() => props.kufriVersion, () => props.planningId], ([kufriVersionValue, planningIdValue]) => {\n console.log(kufriVersionValue, planningIdValue)\n if (kufriVersionValue || planningIdValue) {\n init()\n }\n }, {\n immediate: true\n })\n return {\n rowKey,\n tableData,\n expandModel,\n expandedRowKeys,\n handleExpand\n }\n }\n})\n","import { render } from \"./tableFirst.vue?vue&type=template&id=0719039e&scoped=true&ts=true\"\nimport script from \"./tableFirst.vue?vue&type=script&lang=ts\"\nexport * from \"./tableFirst.vue?vue&type=script&lang=ts\"\n\nimport \"./tableFirst.vue?vue&type=style&index=0&id=0719039e&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-0719039e\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, normalizeStyle as _normalizeStyle, createVNode as _createVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2b664a3a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"table1\" }\nconst _hoisted_2 = { style: {\"margin-bottom\":\"12px\",\"margin-top\":\"12px\"} }\nconst _hoisted_3 = { style: {\"margin-bottom\":\"12px\"} }\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"Expand to Model\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_tag_selector = _resolveComponent(\"tag-selector\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_ExpandMonthTable = _resolveComponent(\"ExpandMonthTable\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_tag_selector, {\n class: \"brand-selector\",\n mode: \"single\",\n \"data-source\": _ctx.structureParentOptions,\n options: { title: 'label', value: 'value' },\n value: _ctx.structureParent,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.structureParent) = $event)),\n onChange: _ctx.handleStructureChange,\n style: _normalizeStyle({\n 'grid-template-columns': `repeat(${_ctx.structureParentOptions.length}, 1fr)`,\n })\n }, null, 8, [\"data-source\", \"value\", \"onChange\", \"style\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_tag_selector, {\n class: \"brand-selector\",\n mode: \"multi\",\n \"data-source\": _ctx.structureChildrenOptions,\n options: { title: 'label', value: 'value' },\n value: _ctx.structureChildren,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.structureChildren) = $event)),\n onChange: _ctx.handleStructureChildrenChange,\n style: _normalizeStyle({\n 'grid-template-columns': `repeat(${_ctx.structureChildrenOptions.length}, 1fr)`,\n })\n }, null, 8, [\"data-source\", \"value\", \"onChange\", \"style\"])\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_tag_selector, {\n class: \"brand-selector\",\n mode: \"multi\",\n \"data-source\": _ctx.brandOptions,\n value: _ctx.brand,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.brand) = $event)),\n onChange: _ctx.handleBrandChange,\n style: _normalizeStyle({\n 'grid-template-columns': `repeat(${_ctx.brandOptions.length}, 1fr)`,\n })\n }, null, 8, [\"data-source\", \"value\", \"onChange\", \"style\"])\n ]),\n _createVNode(_component_a_checkbox, {\n class: \"expand-model-checkbox\",\n checked: _ctx.expandModel,\n \"onUpdate:checked\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.expandModel) = $event)),\n style: {\"margin-bottom\":\"16px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"checked\"]),\n _createVNode(_component_ExpandMonthTable, {\n \"data-source\": _ctx.tableData,\n scroll: { y: 500, x: 200 },\n pagination: false,\n year: _ctx.year,\n \"expanded-row-keys\": _ctx.expandedRowKeys,\n onExpand: _ctx.handleExpand,\n rowKey: _ctx.rowKey,\n titleWidth: 360\n }, null, 8, [\"data-source\", \"year\", \"expanded-row-keys\", \"onExpand\", \"rowKey\"])\n ]))\n}","\nimport { defineComponent, ref, reactive, h, inject, watch } from \"vue\";\nimport ExpandMonthTable from \"../components/ExpandMonthTable.vue\";\nimport { getReportStructureTree, getReportTable2 } from \"@/API/planning\";\nimport TagSelector from \"@/views/Planning/components/TagSelector.vue\";\nimport useExpandTableTreeData from \"@/hooks/planning/useExpandTableTreeData\";\nimport useTableTreeDataKey from \"@/hooks/planning/useTableTreeDataKey\";\nimport deepClone from \"@/utils/deepClone\";\n// import TagSelector from '@/views/Planning/components/TagSelector.vue'\nimport { forEachRecursive } from \"@/utils/planning\";\nconst getStructureChildrenOptions = (list: any) => {\n const result: any[] = [];\n list.children.forEach((child: any) => {\n if (child.children?.length > 0) {\n child.children.forEach((grandson: any) => {\n result.push({\n value: grandson.id,\n label: grandson.itemName,\n });\n });\n } else {\n result.push({\n value: child.id,\n label: child.itemName,\n });\n }\n });\n return result;\n};\n\nconst col = [\n \"annual\",\n \"seasonOne\",\n \"seasonTwo\",\n \"seasonThree\",\n \"seasonFour\",\n \"january\",\n \"february\",\n \"march\",\n \"april\",\n \"may\",\n \"june\",\n \"july\",\n \"august\",\n \"september\",\n \"october\",\n \"november\",\n \"december\",\n];\nconst methodFormatList = (list: any[]) => {\n list.forEach((row: any) => {\n for (const key in row) {\n if (col.includes(key)) {\n if (row[key] && (row[key]?.finalPoint || row[key]?.finalPoint === 0)) {\n row[key] = row[key][\"finalPoint\"].toFixed(2) + \"%\";\n }\n }\n if (key === \"children\" && row[key]?.length === 0) {\n row[key] = null;\n }\n if (key === \"children\" && row[key]) {\n methodFormatList(row[key]);\n }\n }\n });\n};\n\nconst methodsReduce = (list: any[], key: string) => {\n const obj = {};\n list = list.reduce((cur: any[], next) => {\n obj[next[key]] ? \"\" : (obj[next[key]] = true && cur.push(next));\n return cur;\n }, []);\n return list;\n};\nexport default defineComponent({\n components: {\n ExpandMonthTable,\n TagSelector,\n },\n props: {\n year: {\n type: String,\n },\n kufriVersion: {\n type: String,\n },\n planningId: {\n type: Number,\n },\n },\n setup(props) {\n const tableData = ref([]);\n let copyTableData: any[] = [];\n\n const rowKey = \"key\";\n\n const structureTree = ref([]);\n\n const structureParent = ref(0);\n const structureParentOptions = ref([]);\n\n const structureChildren = ref([]);\n const structureChildrenOptions = ref([]);\n\n const brand = ref([]);\n const brandOptions = ref([]);\n // 表格展开状态\n const expandModel = ref(false);\n\n const { expandedRowKeys = [], handleExpand } = useExpandTableTreeData(\n tableData as any,\n expandModel,\n \"children\",\n \"key\",\n \"finalView\"\n );\n\n const methodsGetBrands = (tableData: any[]) => {\n console.log(\"tableData\", tableData);\n brandOptions.value = tableData[0].brandName.split(\",\");\n brand.value = brandOptions.value;\n };\n\n const init = async (isCheckBrand = false) => {\n const postData = {\n planningId: props.planningId,\n kufriVersion: props.kufriVersion,\n reportIdList: [] as any[],\n brandList: brand.value,\n };\n if (structureChildren.value?.length > 0) {\n postData.reportIdList = structureChildren.value;\n } else {\n postData.reportIdList = [structureParent.value];\n }\n const res = await getReportTable2(postData);\n tableData.value = res.data;\n useTableTreeDataKey(tableData);\n if (isCheckBrand) {\n methodsGetBrands(tableData.value);\n }\n methodFormatList(tableData.value);\n copyTableData = deepClone(tableData.value);\n };\n\n const handleStructureChange = () => {\n const tempStructure = structureTree.value.filter((item: any) => {\n return structureParent.value === item.id;\n });\n structureChildrenOptions.value = getStructureChildrenOptions(\n tempStructure[0]\n );\n structureChildren.value = [];\n if (structureChildrenOptions.value?.length === 0) {\n brand.value = [];\n init();\n } else {\n structureChildren.value = structureChildrenOptions.value.map(\n (item: any) => {\n return item.value;\n }\n );\n init();\n }\n };\n\n const handleStructureChildrenChange = () => {\n init();\n };\n\n const handleBrandChange = () => {\n if (brand.value.length === 0) {\n return (tableData.value = []);\n }\n init();\n };\n\n watch(\n [() => props.kufriVersion, () => props.planningId],\n ([kufriVersionValue, planningIdValue]) => {\n console.log(kufriVersionValue, planningIdValue);\n if (kufriVersionValue || planningIdValue) {\n brand.value = [];\n init(true);\n }\n },\n {\n immediate: true,\n }\n );\n\n const fetchGetStructure = async () => {\n const res = await getReportStructureTree();\n structureTree.value = res;\n structureParentOptions.value = structureTree.value.map((item: any) => {\n return {\n value: item.id,\n label: item.itemName,\n };\n });\n structureParent.value = structureParentOptions.value[0].value;\n structureChildrenOptions.value = getStructureChildrenOptions(\n structureTree.value[0]\n );\n structureChildren.value = structureChildrenOptions.value.map(\n (item: any) => {\n return item.value;\n }\n );\n init(true);\n };\n fetchGetStructure();\n return {\n rowKey,\n tableData,\n structureParent,\n structureParentOptions,\n structureChildren,\n structureChildrenOptions,\n brand,\n brandOptions,\n handleStructureChange,\n handleStructureChildrenChange,\n handleBrandChange,\n expandModel,\n expandedRowKeys,\n handleExpand,\n };\n },\n});\n","import { render } from \"./tableSecond.vue?vue&type=template&id=2b664a3a&scoped=true&ts=true\"\nimport script from \"./tableSecond.vue?vue&type=script&lang=ts\"\nexport * from \"./tableSecond.vue?vue&type=script&lang=ts\"\n\nimport \"./tableSecond.vue?vue&type=style&index=0&id=2b664a3a&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-2b664a3a\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, normalizeStyle as _normalizeStyle, createVNode as _createVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, createSlots as _createSlots, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-95bf00ae\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"table1\" }\nconst _hoisted_2 = { style: {\"margin-bottom\":\"12px\",\"margin-top\":\"12px\"} }\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"Expand to Model\")\nconst _hoisted_4 = { class: \"header-cell\" }\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = [\"onClick\"]\nconst _hoisted_7 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_tag_selector = _resolveComponent(\"tag-selector\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_tag_selector, {\n class: \"brand-selector\",\n mode: \"multi\",\n \"data-source\": _ctx.monthOptions,\n options: {title: 'label', value: 'value'},\n value: _ctx.chooseMonths,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.chooseMonths) = $event)),\n onChange: _ctx.handleChangeMonth,\n style: _normalizeStyle({'grid-template-columns': `repeat(${_ctx.monthOptions.length}, 1fr)`})\n }, null, 8, [\"data-source\", \"value\", \"onChange\", \"style\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_tag_selector, {\n class: \"brand-selector\",\n mode: \"multi\",\n \"data-source\": _ctx.brandOptions,\n value: _ctx.brand,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.brand) = $event)),\n onChange: _ctx.handleBrandChange,\n style: _normalizeStyle({'grid-template-columns': `repeat(${_ctx.brandOptions.length}, 1fr)`})\n }, null, 8, [\"data-source\", \"value\", \"onChange\", \"style\"])\n ]),\n _createVNode(_component_a_checkbox, {\n class: \"expand-model-checkbox\",\n checked: _ctx.expandModel,\n \"onUpdate:checked\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.expandModel) = $event)),\n style: {\"margin-bottom\":\"16px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }, 8, [\"checked\"]),\n _createVNode(_component_a_table, {\n class: \"data-table\",\n columns: _ctx.columns,\n \"data-source\": _ctx.tableData,\n \"expanded-row-keys\": _ctx.expandedRowKeys,\n scroll: { y: 500, x: 200 },\n onExpand: _ctx.handleExpand,\n rowKey: _ctx.rowKey,\n pagination: false\n }, _createSlots({ _: 2 }, [\n _renderList(_ctx.columnsData, (col) => {\n return {\n name: col.slots.title,\n fn: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", null, _toDisplayString(col.title), 1),\n (col.canExpand)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, [\n (col.expandStatus)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: \"expand-icon\",\n onClick: col.click\n }, \"-\", 8, _hoisted_6))\n : (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: \"expand-icon\",\n onClick: col.click\n }, \"+\", 8, _hoisted_7))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n }\n })\n ]), 1032, [\"columns\", \"data-source\", \"expanded-row-keys\", \"onExpand\", \"rowKey\"])\n ]))\n}","\nimport { defineComponent, ref, reactive, h, inject, watch } from 'vue'\nimport { getReportStructureTree, getReportMonth } from \"@/API/planning\"\nimport TagSelector from '@/views/Planning/components/TagSelector.vue'\nimport useExpandTableTreeData from '@/hooks/planning/useExpandTableTreeData'\nimport useTableTreeDataKey from '@/hooks/planning/useTableTreeDataKey'\nimport deepClone from '@/utils/deepClone'\nimport { forEachRecursive } from '@/utils/planning'\n\n/**\n *\n * @param {Array} arrs 树形数据\n * @param {string} childs 树形数据子数据的属性名,常用'children'\n * @param {Array} attrArr 需要提取的公共属性数组(默认是除了childs的全部属性)\n * @returns\n */\nfunction extractTree(arrs: any[], childs: string, attrArr: any){\n let attrList: any[] = [];\n if (!Array.isArray(arrs)) return [];\n if(typeof childs !== 'string') return [];\n if(!Array.isArray(attrArr) || Array.isArray(attrArr)&&!attrArr.length){\n attrList = Object.keys(arrs[0]);\n attrList.splice(attrList.indexOf(childs), 1)\n }else{\n attrList = attrArr;\n }\n const list: any[] = [];\n const getObj = (arr: any[])=>{\n arr.forEach(function(row){\n const obj: any = {};\n attrList.forEach(item=>{\n obj[item] = row[item];\n });\n obj.hasChild = row[childs]?.length > 0\n obj.isShowBak = row.level === 1 || row.level === 2\n obj.expandStatusBak = row.level === 1\n if(row[childs]?.length > 0){\n obj.childIds = row[childs].map((child: any) => {\n return child.id\n })\n }\n list.push(obj);\n if(row[childs]){\n getObj(row[childs]);\n }\n })\n return list;\n }\n return getObj(arrs);\n}\n\nconst methodsReduce = (list: any[], key: string) => {\n const obj = {}\n list = list.reduce((cur: any[], next) => {\n obj[next[key]] ? '' : obj[next[key]] = true && cur.push(next)\n return cur\n }, [])\n return list\n}\n\nexport default defineComponent({\n components: {\n TagSelector\n },\n props: {\n year: {\n type: String,\n },\n kufriVersion: {\n type: String,\n },\n planningId: {\n type: Number,\n }\n },\n setup(props) {\n const tableData = ref([])\n let copyTableData: any[] = []\n\n const rowKey = 'key'\n\n const brand = ref([])\n const brandOptions = ref([])\n\n const columns = ref([])\n const columnsData = ref([])\n const structureTree = ref([])\n const monthOptions: any[] = [\n {\n value: '1',\n label: 'Jan'\n },\n {\n value: '2',\n label: 'Feb'\n },\n {\n value: '3',\n label: 'Mar'\n },\n {\n value: '4',\n label: 'Apr'\n },\n {\n value: '5',\n label: 'May'\n },\n {\n value: '6',\n label: 'Jun'\n },\n {\n value: '7',\n label: 'Jul'\n },\n {\n value: '8',\n label: 'Aug'\n },\n {\n value: '9',\n label: 'Sep'\n },\n {\n value: '10',\n label: 'Oct'\n },\n {\n value: '11',\n label: 'Nov'\n },\n {\n value: '12',\n label: 'Dec'\n }\n ]\n const chooseMonths = ref([])\n chooseMonths.value = monthOptions.map((month: any) => {\n return month.value\n })\n const chooseBrands = ref([])\n\n // 表格展开状态\n const expandModel = ref(false)\n\n \n const {expandedRowKeys = [], handleExpand } = useExpandTableTreeData(tableData as any, expandModel, 'children', 'key', 'finalView')\n\n // columnsData转化为columns\n const changeColnums = () => {\n columns.value = columnsData.value.filter((col: any) => {\n return col.isShow\n }).map((col: any) => {\n return {\n dataIndex: col.dataIndex,\n key: col.key,\n slots: col.slots,\n align: 'right',\n width: col.width || 120\n }\n })\n columns.value.unshift({\n title: 'Vehicle',\n dataIndex: 'rowName',\n key: 'rowName',\n fixed: 'left',\n width: 360\n })\n columns.value[1].customHeaderCell = () => {\n return {\n style: {\n paddingLeft: '30px !important'\n }\n }\n }\n columns.value[1].customCell = () => {\n return {\n style: {\n paddingLeft: '30px !important'\n }\n }\n }\n }\n\n // 表头展开事件\n function methodClick(currentEle: any, list: any[], callback: any){\n // 没有子节点直接返回\n if (!currentEle.hasChild) return\n // 展开状态改变\n currentEle.expandStatusBak = !currentEle.expandStatusBak\n list.forEach(item => {\n // 自节点\n if (item.parentId === currentEle.id) {\n // 一级节点关闭 二级节点全部关闭\n if (!currentEle.expandStatusBak) {\n item.expandStatusBak = false\n }\n // 子节点isShowBak树形改变(展开、收起)\n item.isShowBak = !item.isShowBak\n if (item.hasChild) {\n list.forEach(grandSon => {\n if (grandSon.parentId === item.id) {\n grandSon.isShowBak = false\n }\n })\n }\n }\n })\n columnsData.value = callback(list)\n // columns改变 获取动态表头\n changeColnums()\n }\n\n // tree数据格式转化\n function formatClomun(list: any[]) {\n return list.map((item: any) => {\n return {\n title: item.itemName,\n dataIndex: `cells.${item.id}`,\n key: `cells.${item.id}`,\n isShow: item.isShowBak,\n canExpand: item.hasChild,\n expandStatus: item.expandStatusBak,\n width: item.itemName.length * 8 + 50,\n slots: { \n title: item.itemName\n },\n click: () => {\n return methodClick(item, list, formatClomun)\n }\n }\n })\n }\n\n // 获取树形数据 转化为表头\n const fetchGetStructure = async () => {\n const res = await getReportStructureTree()\n structureTree.value = res\n structureTree.value = extractTree(structureTree.value, 'children', ['id', 'itemName', 'parentId', 'level'])\n // 转化为表头slot数组\n columnsData.value = formatClomun(structureTree.value)\n // 转化为表头\n changeColnums()\n }\n fetchGetStructure()\n\n const col: any[] = structureTree.value.map((row: any) => {\n return row.id\n })\n\n const methodFormatList = (list: any[]) => {\n const col: any[] = structureTree.value.map((row: any) => {\n return row.id.toString()\n })\n list.forEach((row: any) => {\n for (const key in row.cells) {\n if (col.includes(key)) {\n if (row.cells[key] && (row.cells[key]['point'] || row.cells[key]['point'] === 0)) {\n row.cells[key] = row.cells[key]['point'].toFixed(2) + '%'\n }\n }\n if (row.children?.length === 0) {\n row.cells[key] = null\n }\n if (row.children) {\n methodFormatList(row.children)\n }\n }\n })\n }\n\n const methodsGetBrands = (tableData: any[]) => {\n const brandList: string[] = []\n forEachRecursive(tableData as any[], item => {\n console.log(item.brandName)\n brandList.push(item.brandName)\n })\n brandOptions.value = [...new Set(brandList)].filter(item => item)\n console.log(brandOptions.value)\n brand.value = brandOptions.value\n }\n\n const init = async (isCheckBrand = false) => {\n if (chooseMonths.value?.length === 0) {\n return tableData.value = []\n }\n const postData = {\n planningId: props.planningId,\n kufriVersion: props.kufriVersion,\n // planningId: 17,\n // kufriVersion: '2021K08',\n monthList: chooseMonths.value,\n brandList: brand.value\n }\n \n const res = await getReportMonth(postData)\n tableData.value = res.data\n useTableTreeDataKey(tableData)\n if (isCheckBrand) {\n methodsGetBrands(tableData.value)\n } \n methodFormatList(tableData.value)\n copyTableData = deepClone(tableData.value)\n }\n\n watch([() => props.kufriVersion, () => props.planningId], ([kufriVersionValue, planningIdValue]) => {\n if (kufriVersionValue || planningIdValue) {\n brand.value = []\n init(true)\n }\n }, {\n immediate: true\n })\n\n const handleChangeMonth = () => {\n init()\n }\n\n const handleBrandChange = () => {\n if (brand.value.length === 0) {\n return tableData.value = []\n }\n init()\n // const cloneTableData = deepClone(copyTableData)\n // cloneTableData.forEach((row: any, index: any) => {\n // if (row.children && row.children.length > 0) {\n // row.children = row.children.filter((child: any) => {\n // return brand.value.includes(child.brandName)\n // })\n // }\n // })\n\n // tableData.value = cloneTableData\n\n // for (let i = tableData.value.length - 1; i >= 0;i--) {\n // if (!tableData.value[i].children || tableData.value[i].children.length === 0) {\n // tableData.value.splice(i, 1)\n // }\n // }\n }\n\n return {\n rowKey,\n tableData,\n brand,\n brandOptions,\n columns,\n columnsData,\n monthOptions,\n chooseMonths,\n handleBrandChange,\n handleChangeMonth,\n expandModel,\n expandedRowKeys,\n handleExpand\n }\n }\n})\n","import { render } from \"./tableThird.vue?vue&type=template&id=95bf00ae&scoped=true&ts=true\"\nimport script from \"./tableThird.vue?vue&type=script&lang=ts\"\nexport * from \"./tableThird.vue?vue&type=script&lang=ts\"\n\nimport \"./tableThird.vue?vue&type=style&index=0&id=95bf00ae&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-95bf00ae\"]])\n\nexport default __exports__","\nimport { defineComponent, ref, reactive, h, inject, watch } from 'vue'\nimport type { Ref } from 'vue'\nimport TagSelector from '@/views/Planning/components/TagSelector.vue'\nimport tableFirst from '../Planning/FinalView/tableFirst.vue'\nimport tableSecond from '@/views/Planning/FinalView/tableSecond.vue'\nimport tableThird from '@/views/Planning/FinalView/tableThird.vue'\nimport { message } from 'ant-design-vue'\nimport { downloadFromStream } from '@/utils/payment/downloadFile'\nimport moment from 'moment'\nimport { makeKey, scenarioIdKey, kufriKey, createMonthKey, currentKufriKey, simulationYearKey, typePlanningOrSimulationKey, planningIdKey } from '@/views/Planning/index.vue'\nimport {\n getPlanningYear as getPlanningYearAPI,\n lockSimulation,\n exportFinal as exportFinalAPI\n} from '@/API/planning'\ninterface PlanningYear {\n year: string;\n id: number;\n createMonth: string;\n currentKufri: string;\n kufriMonth: string;\n}\nfunction generateKufirVersions(begin: string, end: string) {\n const versions = []\n const month = moment(begin.replace('K', ''))\n const endMonth = moment(end.replace('K', ''))\n while (!month.isAfter(endMonth)) {\n versions.push(month.format('YYYYKMM'))\n month.add(1, 'M')\n }\n\n return versions\n}\nexport default defineComponent({\n components: {\n TagSelector,\n tableFirst,\n tableSecond,\n tableThird\n },\n setup() {\n const activeKey = ref('1')\n const make = inject>(makeKey) as Ref\n const years = ref([])\n const year = ref()\n const scenarioId = inject>(scenarioIdKey) as Ref\n const kufriMonth = inject>(kufriKey) as Ref\n const defaultPlanningId = inject>(planningIdKey) as Ref\n const typePlanningOrSimulation = inject>(typePlanningOrSimulationKey) as Ref\n const createMonth = inject>(createMonthKey) as Ref\n const currentKufri = inject>(currentKufriKey) as Ref\n const simulationYear = inject>(simulationYearKey) as Ref\n const kufris = ref()\n const kufri = ref()\n const planningId = ref()\n let yearPlanningIdMap = new Map()\n\n watch([year, kufri] as const, ([yearValue]) => {\n if (typePlanningOrSimulation.value === 'simulation') {\n planningId.value = defaultPlanningId.value\n } else {\n planningId.value = yearValue ? yearPlanningIdMap.get(yearValue): undefined\n }\n })\n\n const getPlanningYearInfo = () => {\n getPlanningYearAPI({\n make: make.value,\n scenarioId: scenarioId.value,\n kufriMonth: kufriMonth.value\n }).then((data: {data: PlanningYear[]}) => {\n yearPlanningIdMap = new Map()\n if (data.data.length) {\n data.data.forEach((item: PlanningYear) => {\n if (item.year) {\n yearPlanningIdMap.set(item.year, item.id)\n }\n })\n\n years.value = Array.from(yearPlanningIdMap.keys()).sort()\n if (years.value.length) {\n year.value = years.value[0]\n }\n const kufriVersionStart = data.data[0].createMonth\n const kufriVersionEnd = data.data[0].currentKufri\n kufris.value = generateKufirVersions(kufriVersionStart, kufriVersionEnd)\n kufri.value = data.data[0].currentKufri\n }\n })\n }\n\n const getKufriAndYear = () => {\n planningId.value = defaultPlanningId.value\n const kufriVersionStart = createMonth.value\n const KufriVersionEnd = currentKufri.value\n kufris.value = generateKufirVersions(kufriVersionStart, KufriVersionEnd)\n kufri.value = kufris.value[kufris.value.length - 1]\n years.value = [simulationYear.value]\n year.value = simulationYear.value\n }\n\n const handleSearch = () => {\n if (typePlanningOrSimulation.value === 'simulation') {\n // 无意义\n getPlanningYearAPI({\n make: make.value,\n scenarioId: scenarioId.value,\n kufriMonth: kufriMonth.value\n })\n } else {\n getPlanningYearInfo()\n }\n }\n\n if (typePlanningOrSimulation.value === 'simulation') {\n getKufriAndYear()\n } else {\n getPlanningYearInfo()\n }\n\n const handleSaveFinalVersion = () => {\n const data = {\n planningId: planningId.value,\n kufriVersion: kufri.value\n }\n lockSimulation(data).then(() => {\n message.success('Save Success.')\n })\n }\n\n const handleExport = async () => {\n const postData = {\n planningId: planningId.value,\n kufriVersion: kufri.value\n }\n const res = await exportFinalAPI(postData)\n downloadFromStream(res)\n }\n\n return {\n activeKey,\n years,\n year,\n kufris,\n kufri,\n planningId,\n typePlanningOrSimulation,\n handleSearch,\n handleSaveFinalVersion,\n handleExport\n }\n }\n})\n","import { render } from \"./FinalView.vue?vue&type=template&id=d11222b0&scoped=true&ts=true\"\nimport script from \"./FinalView.vue?vue&type=script&lang=ts\"\nexport * from \"./FinalView.vue?vue&type=script&lang=ts\"\n\nimport \"./FinalView.vue?vue&type=style&index=0&id=d11222b0&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-d11222b0\"]])\n\nexport default __exports__","\nimport { defineComponent, ref, computed, provide, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { StateStep } from '@/views/Planning/type'\nimport BasicSetting from '@/views/Planning/BasicSetting.vue'\nimport DataPreparation from '@/views/Planning/DataPreparation.vue'\nimport PlanningSimulation from '@/views/Planning/PlanningSimulation.vue'\nimport FinalView from '@/views/Planning/FinalView.vue'\n\nexport const stateStepKey = Symbol()\nexport const makeKey = Symbol()\nexport const kufriKey = Symbol()\nexport const planningIdKey = Symbol()\nexport const scenarioKey = Symbol()\nexport const scenarioIdKey = Symbol()\nexport const simulationYearKey = Symbol()\nexport const typePlanningOrSimulationKey = Symbol()\nexport const createMonthKey = Symbol()\nexport const currentKufriKey = Symbol()\nexport const planningYearKey = Symbol()\n\nexport default defineComponent({\n components: {\n BasicSetting,\n DataPreparation,\n PlanningSimulation,\n FinalView\n },\n setup() {\n const stateStep = ref(StateStep.BasicSetting)\n const { t } = useI18n()\n const enableStateStep = (s: StateStep) => {\n const stateStepLine = [\n StateStep.BasicSetting,\n StateStep.Preparation,\n StateStep.PlanningSimulation,\n StateStep.Reporting\n ]\n return stateStepLine.indexOf(s) <= stateStepLine.indexOf(stateStep.value)\n }\n\n const make = ref()\n const kufri = ref()\n const planningId = ref()\n const scenario = ref()\n const scenarioId = ref()\n const simulationYear = ref()\n const typePlanningOrSimulation = ref()\n const createMonth = ref()\n const currentKufri = ref()\n const planningYear = ref()\n\n provide(stateStepKey, stateStep)\n provide(makeKey, make)\n provide(kufriKey, kufri)\n provide(planningIdKey, planningId)\n provide(scenarioKey, scenario)\n provide(scenarioIdKey, scenarioId)\n provide(simulationYearKey, simulationYear)\n provide(typePlanningOrSimulationKey, typePlanningOrSimulation)\n provide(createMonthKey, createMonth)\n provide(currentKufriKey, currentKufri)\n provide(planningYearKey, planningYear)\n\n const dataPreShow = ref(true)\n const stepSecondText = ref('Planning & Simulation')\n\n const breadcrumbData = computed(() => {\n switch (stateStep.value) {\n case StateStep.BasicSetting:\n return [\n { name: t('planning.homepage') }\n ]\n case StateStep.Preparation:\n if (typePlanningOrSimulation.value === 'simulation') {\n return [\n { name: make.value },\n { name: 'Simulation' },\n { name: scenario.value }\n ]\n }\n return [\n { name: make.value },\n { name: scenario.value }\n ]\n case StateStep.PlanningSimulation:\n if (typePlanningOrSimulation.value === 'simulation') {\n return [\n { name: make.value },\n { name: 'Simulation' },\n { name: scenario.value }\n ]\n }\n return [\n { name: make.value },\n { name: scenario.value }\n ]\n case StateStep.Reporting:\n if (typePlanningOrSimulation.value === 'simulation') {\n return [\n { name: make.value },\n { name: 'Simulation' },\n { name: scenario.value }\n ]\n }\n return [\n { name: make.value },\n { name: scenario.value }\n ]\n default: \n return [] \n }\n })\n\n const handleClickSimulation = (type: string) => {\n if (type === 'simulation') {\n dataPreShow.value = false\n stepSecondText.value = 'Generate Simulation'\n } else {\n dataPreShow.value = true\n stepSecondText.value = 'Planning & Simulation'\n }\n \n }\n\n watch(stateStep, (value) => {\n if (value === 'BasicSetting') {\n dataPreShow.value = true\n stepSecondText.value = 'Planning & Simulation'\n }\n })\n \n return {\n dataPreShow,\n stepSecondText,\n stateStep,\n StateStep,\n breadcrumbData,\n enableStateStep,\n handleClickSimulation\n }\n },\n})\n","import { render } from \"./index.vue?vue&type=template&id=12b64537&scoped=true&ts=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=12b64537&lang=scss\"\nimport \"./index.vue?vue&type=style&index=1&id=12b64537&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-12b64537\"]])\n\nexport default __exports__"],"sourceRoot":""}