{"version":3,"sources":["webpack:///./src/views/Closing/Tab/Components/DealerStockYearly/Calculation.vue?a97c","webpack:///./src/assets/images/rv/upload.svg","webpack:///./src/views/Closing/Tab/Components/ProgramBase.vue?8097","webpack:///./src/views/Closing/Tab/Components/DealerStock.vue?8e40","webpack:///./src/views/Closing/Tab/Components/DealerStockYearly/Allocation.vue?6fb3","webpack:///./src/utils/rv/downloadFile.ts","webpack:///./src/views/Closing/Tab/Components/Interest.vue?ac81","webpack:///./src/views/Closing/Tab/Components/DealerStockYearly/CalculationDetailUpload.vue?e4c6","webpack:///./src/views/Closing/Tab/GenerateClosing.vue?b104","webpack:///./src/views/Closing/Tab/Report/Fourth.vue?73a1","webpack:///./src/views/Closing/Tab/Components/ReviewUpload.vue?ea57","webpack:///./src/views/Closing/index.vue?d7e6","webpack:///./src/views/Closing/Tab/BasicSetting.vue?eb89","webpack:///./src/views/Closing/Tab/Components/BasicUpload.vue?a885","webpack:///./src/views/Closing/Tab/Components/BasicUpload.vue","webpack:///./src/views/Closing/Tab/Components/BasicUpload.vue?1558","webpack:///./src/views/Closing/Tab/BasicSetting.vue","webpack:///./src/views/Closing/Tab/BasicSetting.vue?f8ce","webpack:///./src/views/Closing/Tab/DataPreparation.vue?c0f3","webpack:///./src/views/Closing/Tab/Cbu/Upload.vue?6828","webpack:///./src/views/Closing/Tab/Cbu/Upload.vue","webpack:///./src/views/Closing/Tab/Cbu/Upload.vue?8ebc","webpack:///./src/views/Closing/Tab/Components/MaintainModel.vue?2ef5","webpack:///./src/views/Closing/Tab/Components/MaintainModel.vue","webpack:///./src/views/Closing/Tab/Components/MaintainModel.vue?67b8","webpack:///./src/views/Closing/Tab/Components/ImpactModel.vue?a071","webpack:///./src/views/Closing/Tab/Components/ImpactModel.vue","webpack:///./src/views/Closing/Tab/Components/ImpactModel.vue?487d","webpack:///./src/views/Closing/Tab/DataPreparation.vue","webpack:///./src/views/Closing/Tab/DataPreparation.vue?167e","webpack:///./src/views/Closing/Tab/GenerateClosing.vue?8243","webpack:///./src/views/Closing/Tab/Components/BlueInvoice.vue?ddca","webpack:///./src/views/Closing/Tab/Components/BlueUpload.vue?f8c0","webpack:///./src/views/Closing/Tab/Components/BlueUpload.vue","webpack:///./src/views/Closing/Tab/Components/BlueUpload.vue?9263","webpack:///./src/views/Closing/Tab/Components/BlueInvoice.vue","webpack:///./src/views/Closing/Tab/Components/BlueInvoice.vue?d653","webpack:///./src/views/Closing/Tab/Components/ProgramBase.vue?e331","webpack:///./src/views/Closing/Tab/Components/ProgramBase.vue","webpack:///./src/views/Closing/Tab/Components/ProgramBase.vue?f7e3","webpack:///./src/views/Closing/Tab/Components/SpecialAdjustment.vue?ce12","webpack:///./src/views/Closing/Tab/Components/SpecialAdjustment.vue","webpack:///./src/views/Closing/Tab/Components/SpecialAdjustment.vue?9c9b","webpack:///./src/views/Closing/Tab/Components/Release.vue?634b","webpack:///./src/views/Closing/Tab/Components/Release.vue","webpack:///./src/views/Closing/Tab/Components/Release.vue?f1b2","webpack:///./src/views/Closing/Tab/Components/Interest.vue?d8b1","webpack:///./src/views/Closing/Tab/Components/Interest.vue","webpack:///./src/views/Closing/Tab/Components/Interest.vue?cab9","webpack:///./src/views/Closing/Tab/Components/DealerStock.vue?c152","webpack:///./src/views/Closing/Tab/Components/DealerStock.vue","webpack:///./src/views/Closing/Tab/Components/DealerStock.vue?204f","webpack:///./src/views/Closing/Tab/Components/DealerStockYearly/CalculationDetailUpload.vue?f800","webpack:///./src/views/Closing/Tab/Components/DealerStockYearly/CalculationDetailUpload.vue","webpack:///./src/views/Closing/Tab/Components/DealerStockYearly/CalculationDetailUpload.vue?aecd","webpack:///./src/views/Closing/Tab/Components/DealerStockYearly/Calculation.vue","webpack:///./src/views/Closing/Tab/Components/DealerStockYearly/Calculation.vue?1ede","webpack:///./src/views/Closing/Tab/Components/DealerStockYearly/Allocation.vue","webpack:///./src/views/Closing/Tab/Components/DealerStockYearly/Allocation.vue?a5f2","webpack:///./src/views/Closing/Tab/Components/DealerStockYearly.vue","webpack:///./src/views/Closing/Tab/Components/DealerStockYearly.vue?3464","webpack:///./src/views/Closing/Tab/GenerateClosing.vue","webpack:///./src/views/Closing/Tab/GenerateClosing.vue?6de2","webpack:///./src/views/Closing/Tab/FinalView.vue?8ad1","webpack:///./src/views/Closing/Tab/Report/First.vue?553f","webpack:///./src/views/Closing/Tab/Report/First.vue","webpack:///./src/views/Closing/Tab/Report/First.vue?fdad","webpack:///./src/views/Closing/Tab/Report/Second.vue?94f1","webpack:///./src/views/Closing/Tab/Report/Second.vue","webpack:///./src/views/Closing/Tab/Report/Second.vue?e91a","webpack:///./src/views/Closing/Tab/Report/Third.vue?ca97","webpack:///./src/views/Closing/Tab/Report/Third.vue","webpack:///./src/views/Closing/Tab/Report/Third.vue?2e25","webpack:///./src/views/Closing/Tab/Report/Fourth.vue?0914","webpack:///./src/views/Closing/Tab/Report/Fourth.vue","webpack:///./src/views/Closing/Tab/Report/Fourth.vue?3109","webpack:///./src/views/Closing/Tab/Components/ReviewUpload.vue?b1ba","webpack:///./src/views/Closing/Tab/Components/ReviewUpload.vue","webpack:///./src/views/Closing/Tab/Components/ReviewUpload.vue?6c02","webpack:///./src/views/Closing/Tab/FinalView.vue","webpack:///./src/views/Closing/Tab/FinalView.vue?470f","webpack:///./src/views/Closing/Tab/Pbp/Pbp.vue?f98e","webpack:///./src/views/Closing/Tab/Pbp/Pbp.vue","webpack:///./src/views/Closing/Tab/Pbp/Pbp.vue?c2e2","webpack:///./src/views/Closing/index.vue","webpack:///./src/views/Closing/index.vue?2ed2","webpack:///./src/views/Closing/Tab/FinalView.vue?5f66","webpack:///./src/views/Closing/Tab/Components/BlueInvoice.vue?bacf","webpack:///./src/views/Closing/Tab/Components/MaintainModel.vue?ed19","webpack:///./src/views/System/Kufri/NstMapping/utils.ts","webpack:///./src/views/Closing/index.vue?32e7","webpack:///./src/views/Closing/Tab/Components/ImpactModel.vue?4a13","webpack:///./src/views/Closing/Tab/DataPreparation.vue?ab88","webpack:///./src/views/Closing/Tab/Pbp/Pbp.vue?4a8b","webpack:///./src/views/Closing/Tab/Cbu/Upload.vue?9bee","webpack:///./src/views/Closing/Tab/Components/DealerStockYearly.vue?df62","webpack:///./src/views/Closing/Tab/Report/Third.vue?5e89","webpack:///./src/views/System/Kufri/KufriPanelControl/utils.ts","webpack:///./src/views/Closing/Tab/Components/Release.vue?6082","webpack:///./src/assets/images/rv/icon_download.svg","webpack:///./src/views/Closing/Tab/Report/Second.vue?a082","webpack:///./src/views/Closing/Tab/Components/BlueUpload.vue?6311","webpack:///./src/views/Closing/Tab/Report/First.vue?7e6e","webpack:///./src/utils/closing/isExcel.ts","webpack:///./src/API/sysParam.ts","webpack:///./src/views/Closing/Tab/BasicSetting.vue?83be","webpack:///./src/views/Closing/Tab/Components/SpecialAdjustment.vue?4b36","webpack:///./src/views/Closing/Tab/Components/BasicUpload.vue?6e78","webpack:///./src/utils/payment/numberFormat.ts","webpack:///./src/utils/payment/useThousandsAndTwoDecimal.ts"],"names":["module","exports","options","url","method","params","fileName","config","responseType","Promise","resolve","reject","then","res","blob","Blob","data","type","downloadElement","document","createElement","href","window","URL","createObjectURL","download","Date","now","toString","body","appendChild","click","removeChild","revokeObjectURL","catch","error","console","log","_withScopeId","n","_hoisted_1","class","render","_ctx","_cache","$props","$setup","$data","$options","_component_Breadcrumb","_component_Basic","_component_a_tab_pane","_component_Data_Preparation","_component_Pbp","_component_Generate_Closing","_component_Final_View","_component_a_tabs","dataSource","name","breadcrumbName","activeKey","$event","onChange","handleChangeTab","default","key","tab","$btnPermissions","onChangTab","tabChangEvent","onChangeFinal","changeFinal","ref","_","disabled","TabType","makeId","make","makeYear","makeMonth","breadcrumbVersion","onHandleShowPbp","handleShowPbp","showPbp","onShowPbpFalse","showPbpFalse","activeName","isfinal","cbVersion","onChangeId","changeMakeId","_hoisted_2","_hoisted_3","src","alt","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_component_a_date_picker","_component_a_button","_component_a_tooltip","_component_a_checkbox","_component_a_table","_component_a_col","_component_a_row","_component_basic_upload","mode","format","valueFormat","value","yearValue","open","openYear","onOpenChange","onPanelChange","handlerPanelChange","allowClear","style","suffixIcon","onClick","$router","push","dataArray","item","index","span","columns","header","bordered","pagination","tempBack","monthSlots","month","fn","record","placement","title","handleUpload","checked","handleCheckbox","showDrawer","onCloseDrawer","position","right","bottom","width","borderTop","padding","background","textAlign","zIndex","_component_a_upload_dragger","_component_a_progress","_component_a_drawer","closable","visible","bodyStyle","paddingTop","onClose","handleClose","downLoadTemp","args","listType","showUploadList","customRequest","uploadRequest","percent","uploadFlag","emits","props","Boolean","Number","String","setup","emit","showUpload","file","downloadFile","uploadConfig","onUploadProgress","progressEvent","lengthComputable","complete","loaded","total","source","isExcel","message","uploadFormData","FormData","append","code","success","__exports__","components","BasicUpload","disableTime","uploadDrawer","handleTitle","e","arg","mcId","target","innerText","split","year","isFinal","version","id","setDataIcon","flag","setDataUpload","setHeader","parseInt","getMakeData","resMake","CBU","some","globalLock","forEach","dataIndex","align","ele","slots","customRender","el","isWip","wip","final","toLowerCase","warn","initData","showYear","padStart","i","_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","_hoisted_45","_component_cbu_upload","_component_maintain_model","_component_impact_model","handleCalculate","handleImport","wsResult","wsData","ResultMsg","resultMsg","rtResult","rtData","dlrResult","dlrData","pgResult","pgData","importDate","size","result","handleExport","uploadResult","uploadData","impactResult","impact","nstResult","nst","msrpResult","msrp","handleImpact","handleModel","handlePbp","onHandleUploadSuccess","handleUploadSuccess","closeDrawer","onRefreshCheck","impactVisible","mcid","_component_a_input_search","_component_a_modal","height","footer","centered","maskClosable","onCancel","$emit","rowKey","scroll","y","NSTGroupMapping","ntsGroupMappingError","placeholder","ntsGroup","onKeyup","checkKey","onSearch","showRightSearch","length","save","onSearch1","columnSearch","dataSearch","rowSelection","selectedRowKeys","ntsGroupSelected","changeNtsGroupSelected","confirm","required","rightVisible","searchMarterial","searchVehicle","debounce","delay","timer","clearTimeout","setTimeout","checkKeyDebounce","store","Map","checkFunc","get","models","pass","set","ntsGroupSearchRowIndex","materialNo","Array","from","err","materialName","initLeftList","map","wsLlp","cashDiscount","Set","ntsGruopMappingResult","model","ntsGruopMappingError","nstGroupCode","undefined","nspGroup","handlerSave","handlerBack","tableHeight","tableData","ssHotTopInit","spread","Spread","Sheets","Workbook","getElementById","getImpactCode","param","nstGroupList","warning","temp","Brand","brand","typeClass","nstGroup","nstGroupName","vehicleNstGroupName","impactCode","impactModelName","impactName","Validation","validation","Remark","remark","Tag","tag","Object","assign","initNstMapping","ssHotTop","CbuUpload","MaintainModel","ImpactModel","state","finalVersion","initPg","changeFirstLetter","str","array","toUpperCase","substring","string","join","commit","replace","program","isTemp","initNew","setInterval","all","init","resWs","resRt","resDlr","clearInterval","checkNSTGroup","initProgramInfo","_component_program_base","_component_blue_invoice","_component_interest","_component_special_adjustment","_component_release","_component_dealer_stock_yearly","_component_dealer_stock","oneTitle","oneTable","twoTable","columnSearch2","dataSearch2","cr","text","color","isActive","crTitle","fleetUc","fleetUcTitle","blueInvoice","customTitle","interest","interestTitle","dlrStockAdj","dlrStockAdjTitle","specialAdj","specialTitle","release","releaseTitle","caterageryCard","active","selectCard","onRefreshTable","initOverview","closingId","interestSD","onRefreshOverview","refreshOverview","dealerStockType","handleDealerStockSelect","isYearlyAvailable","onInitOverview","_component_ver_table","dataTable","dataTitle","isTitle","columnCategory","dataCategory","blueInvoiceLock","allocation","exportFile","blueCategory","cateGerySel","expandModel","queryListData","x","expandedRowKeys","onExpand","expandRowByClick","blueRightTable","blueRightTableData","tableHeightR","blueRightCashCount","blueRightLLPCount","fileIsExcel","resetComponentStatus","columnFileList","dataFileList","uploadTime","innerHeight","VerTable","context","columnTotal","dataTotal","Total","countNum","showPrompt","getTopicInfo","page","ellipsis","handleCateGeryParam","paramsCate","expanded","filter","v","getAllId","arr","children","getTypeClassId","expandTypeClass","getDirectData","detailVOList","totalCashDiscount","totalLLP","handleChildrenArr","getTreeData","cateArr","categories","getCateGery","getSubOver","totalTable","tableHeaders","subOverviewItemDtos","blobDownload","_component_a_input","_component_a_select_option","_component_a_select","_component_a_popover","pCodeArr","onPressEnter","leave","pNameArr","changeSel","statusVal","pStatusArr","lable","filterSelArr","reset","saveBtn","programTable","programTableData","buTitle","buVisible","trigger","content","buTypeArr","filterBu","hidebu","cActiveTitle","filterActive","hide","programName","closingActive","comments","maxlength","programTableDataTemp","onSelectChange","selectedRow","searchArr","filterPCode","programCode","indexOf","filterPName","filterPStatus","programStatus","filterBU","includes","bu","getTable","filterPActive","buFilter","finally","blur","tabBarGutter","getTopicAndName","panes","pane","topic","topicArray","checkFlag","changeCheckFlag","inputNumber","handelInputNumber","onBlur","bulrInputNumber","handleSave","brandArray","isSelect","selectBrand","brandColumns","expandIconColumnIndex","loading","operation","allFlag","selectAll","changeChecked","amount","addWsllpMicrometer","amountVAT","onFocus","amountVATFocus","amountVATChange","amountVATBlur","add","newTabIndex","tempData","className","inputText","backUpTableData","isBrand","checkAllFlag","checkParent","every","generate","tempArray","parseFloat","toFixed","getTreeTableData","brands","adjustmentNo","commonTreeVOS","topicCode","allocationAmount","allocationType","Math","round","compare","a","b","value1","value2","topicList","sort","inputAddMicrometer","hasPot","leftNum","rightNum","getAdjustmentCount","paramsData","allocationDataReqs","llp","volume","removeMicrometer","number","accAdd","num1","num2","r1","r2","m","c","abs","pow","max","cm","calculateAmount","esum","ei","elsum","eli","itemsum","itemi","slice","inputTableColumns","inputData","tableSize","rowTitle","resultTableColumns","resultData","defaultExpandAllRows","ctx","InputTableRowTitle","monthes","reduce","obj","totalLlp","input","inputDataTotal","plus","totalFloorPlan","FloorPlan","totalPMT","PMT","numberSubWithPrecision","p","search","inputTableColumnRender","AllocationAll","inputComponent","WsBpInterestRate","onInput","suffix","inputTableTotalColumnRender","resultTableColumnRender","column","attrs","child","totalSdData","floorPlanData","pmtData","totalSdPercentData","floorPlanPercentData","pmtPercentData","totalFloorPlanLlp","totalPmtLlp","monthFloorPlanData","monthPmtData","fixed","isZero","div","times","isTable","initInfoData","floor","pmt","pmtAllStatus","wsbp","pmtLlp","interestType","_component_planning_data_selector","onConfirm","handleResetAvg","getInit","whitSpaceColumns","whitSpacedata","showHeader","time","calculationQuarter","saveType","handleSaveCalculation","calculationColumns","customRow","rowClick","calculationdata","rowClassName","dealerStockAdjustment","dsOpen","dsClose","targetAvgSi","accrualMovement","amOpen","amClose","adjAvgSI","caluInput","inputChange","inputBlur","inputIndex","handleClearAllocation","handleSaveAllocation","allocationColumns1","allocationdata1","selectFlag","allocationColumns2","allocationdata2","totalAllocationAmount","totalOpen","totalClose","PlanningDataSelector","tableWidth","innerWidth","dsabtn","totalbtn","ambtn","w1","w2","w3","w4","caluInputBack","allcoai","allcoaind","doGetCalculation","quarter","dataArr","makeobj","contentMake","ext","makei","makeind","keyName","contentImpact","impacti","impctind","contentobj","ind","dai","daind","tempAllocationColumns2","tempIndex","doGetAllocationLeft","tempExt","tempDataArr","dealerStockAdjustments","doGetAllocationRight","allcoi","cllcoind","dtoList","dtolistArr","datai","dataind","dataobj","avg","ids","allocaationAmount","addColumns","splice","alli","allind","itemInput","tempBlur","indexs","focus","activeKeys","planningId","__props","expose","totalColumns","detailColumns","useThousandsAndTwoDecimal","totalData","detailData","brandList","inputSlots","editableRow","getCalculationData","childCols","brandDataList","editable","adjName","brandTotalShow","keys","brandTotal","totalShow","detailModified","dealerStockAllocationRespList","row","dlrLlp","newRow","newValue","handleClear","handleSaveTotal","savedData","brandObj","handleSaveDetail","adjAvgSiShow","openingBalance","handleExportDetail","handleShowDrawer","trimZeroOfString","integer","decimal","newInteger","newDecimal","reverse","oldValue","handleInputChange","handleadjAvgSiInputBlur","handleInputBlur","newTotal","handleInputFocus","openingBalanceShow","isDlrLlpEditable","dlrLlpShow","adjAvgSi","CalculationDetailUpload","customCell","rowIndex","backgroundColor","allocationdata","getAllocationData","headerList","dynamicCols","allocationList","dsAllocationType","handleAllocationSave","handleAllocationClear","handleAllocationExport","_component_a_radio","_component_a_radio_group","sd","allocationComp","calculationComp","planningDataSelectorComponent","handleResetPlanningData","keyValue","calculationKey","allocationKey","refreshKey","ref_key","Calculation","onResetPlanningData","Allocation","BlueInvoice","programBase","Interest","SpecialAdjustment","Release","DealerStock","DealerStockYearly","enumTitle","VehicleModel","MaterialSales","judgeYearlyAvailable","table1","table3","table2","_component_first","_component_second","_component_third","_component_fourth","_component_review_upload","handleSelect","wsVersionArray","planningName","tdValue","handleRefresh","substr","handleEdit","handleEnable","showModal","handleUpdate","handleTabChange","kufriVersion","onOk","handleOk","handleCancel","tableKey","searchType","head","columnName","startsWith","Reflect","deleteProperty","setColumnWidth","getReportData","useExpand","_component_a_radio_button","l1","radioArray","xScroll","columnsBackup","levelOne","deepClone","expendTitle","outerText","getElementsByTagName","addEventListener","removeEventListener","handleDownloadTemplate","exportFlag","isExport","First","Second","Third","Fourth","ReviewUpload","makeType","report1","report2","report3","report4","enumObj","initState","planningYear","currentKufri","newMcId","wipVersionMcId","wipVersionName","goBack","COPAwsVolume","COPAwsVolumeChange","COPAwsllp","COPAwsllpChange","COPAwsllpBlur","COPAwsllpFocus","BIwsVolume","BIwsllp","BIwsllpTitle","updateWsVolume","updateWsllp","GapwsVolume","red","Gapwsllp","GapwsllpRed","GapwsllpTitle","wsVolume","addMicrometer","wsllp","nodeType","wsVolumeChange","wsllpFocus","wsllpChange","wsllpBlur","queryListTmpData","allData","changeData","copaId","getAllData","inputAddWsllpMicrometer","removeWsllpMicrometer","dataWsllpMicrometer","isNumber","num","isNaN","accSub","backUpAwsllp","aggVOs","copaWsVolume","gap","copaWslLp","numBi","calAdd","sum","setChange","element","trim","isNum","tempArr","dataList","Basic","DataPreparation","GenerateClosing","FinalView","Pbp","basicSetting","dataPreparation","finalView","generateClosing","closingMake","jumpName","columnsWidth","handlerSheetsData","isInit","isMustfill","isBools","findReadOnly","readOnlyArr","sheet","getActiveSheet","Style","locked","backColor","spreadNS","headerArr","items","col","setStyle","getCell","setBorder","LineBorder","LineStyle","thin","setHeaderType","tableColumns","Tables","TableColumn","CellTypes","CheckBox","setRowBackColor","isNullRow","foreColor","isNullRowSetBg","suspendPaint","resumePaint","bindDataTable","rowLength","columnLength","setRowCount","setColumnCount","table","tables","TableThemes","light1","rowFilter","filterDialogVisibleInfo","sortByColor","autoGenerateColumns","bind","filterButtonVisible","getRange","hAlign","HorizontalAlign","center","autoFitRow","SheetArea","viewport","frozenRowCount","option","allowSelectLockedCells","allowSelectUnlockedCells","allowFilter","allowSort","allowResizeRows","allowResizeColumns","allowEditObjects","allowDragInsertRows","allowDragInsertColumns","allowInsertRows","allowInsertColumns","allowDeleteRows","allowDeleteColumns","protectionOptions","inputEventToFormula","codeIndex","findIndex","nameIndex","modelIndex","validationIndex","Events","ValueChanged","info","suspendEvent","nstGroupValue","codeValue","nameValue","setValue","resumeEvent","RangeChanged","changedCells","action","tabNavigationVisible","tabStripVisible","scrollbarMaxAlign","scrollByPixel","allowUserDragFill","allowUserDragDrop","autoFitType","AutoFitType","cellWithHeader","rowHeaderVisible","isProtected","sheetStyle","getDefaultStyle","vAlign","VerticalAlign","setDefaultStyle","allowUserZoom","usetableHeight","idTop","tablePosition","resizeHandler","clientHeight","tableOffsetTop","querySelector","getBoundingClientRect","top","setFilter","frozenIndex","keyArr","setColumnFormula","setFormatter","setColumnValue","left","addFromDataSource","bandRows","showFooter","font","highlightLastColumn","setRowHeight","frozenTrailingRowCount","gridline","showHorizontalGridline","showVerticalGridline","clipBoardOptions","ClipboardPasteOptions","values","blobToString","reader","FileReader","readAsBinaryString","onload","ret","charCodeAt","len","getBasicData","updateDeferDays","updateDeferExtendDays","updateMdfStopDays","updateVanLicenseDeferDays","getKufriPanelData","getKufriPanelActiveVersionData","findKufriPanelData","getKufriActiveData","runKufriActive","activeKufriActive","getKpiList","getMappingData","saveNstMapping","getImpactData","getMSRPData","saveMSRPData","getNstGroup","getMakeYearList","getVersionBymake","saveNstGroupData","confirmNstGroupData","getVATRate","getIMPACTMSRP","saveIMPACTMSRP","toThousandsAndTwoDecimal","count","$0","$1","toThousands"],"mappings":"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","file":"js/chunk-3d9f65ac.c2e0f0d6.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!./Calculation.vue?vue&type=style&index=0&id=14f25f7c&lang=scss&scoped=true\"","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!./ProgramBase.vue?vue&type=style&index=0&id=f84e6c24&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!./DealerStock.vue?vue&type=style&index=0&id=22370822&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!./Allocation.vue?vue&type=style&index=0&id=39200fea&lang=scss&scoped=true\"","import axios from 'axios'\nimport { AxiosRequestConfig } from '@/API/types'\nexport default (options: AxiosRequestConfig) => { \n const { url, method = 'get', params, fileName } = options;\n const config: any = {\n url: url,\n method,\n responseType: \"blob\",\n };\n if (method === \"get\") {\n config[\"params\"] = params;\n } else {\n config[\"data\"] = params;\n }\n return new Promise((resolve, reject) => {\n axios(config).then((res: any) => {\n // 文件格式\n const blob = new Blob([res.data], { type: 'application/vnd-excel; char-set=UTF-8' })\n const downloadElement = document.createElement('a')\n const href = window.URL.createObjectURL(blob)\n downloadElement.href = href\n // 下载后文件名\n downloadElement.download = !fileName ? Date.now().toString() : fileName\n document.body.appendChild(downloadElement)\n downloadElement.click() \n document.body.removeChild(downloadElement)\n // 释放掉blob对象\n window.URL.revokeObjectURL(href)\n resolve(res)\n }).catch(function (error: string) {\n console.log(error)\n return reject(error)\n })\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!./Interest.vue?vue&type=style&index=0&id=4af81e28&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!./CalculationDetailUpload.vue?vue&type=style&index=0&id=6530623c&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!./GenerateClosing.vue?vue&type=style&index=0&id=55bafc58&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!./Fourth.vue?vue&type=style&index=0&id=95869b68&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!./ReviewUpload.vue?vue&type=style&index=0&id=2040b235&lang=scss&scoped=true\"","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx, vShow as _vShow, withDirectives as _withDirectives, Fragment as _Fragment, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c49c417a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__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 = _resolveComponent(\"Basic\")!\n const _component_a_tab_pane = _resolveComponent(\"a-tab-pane\")!\n const _component_Data_Preparation = _resolveComponent(\"Data-Preparation\")!\n const _component_Pbp = _resolveComponent(\"Pbp\")!\n const _component_Generate_Closing = _resolveComponent(\"Generate-Closing\")!\n const _component_Final_View = _resolveComponent(\"Final-View\")!\n const _component_a_tabs = _resolveComponent(\"a-tabs\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_Breadcrumb, {\n dataSource: [{ name: _ctx.breadcrumbName }]\n }, null, 8, [\"dataSource\"]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_tabs, {\n type: \"card\",\n activeKey: _ctx.activeKey,\n \"onUpdate:activeKey\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.activeKey) = $event)),\n onChange: _ctx.handleChangeTab,\n class: \"tabs\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_tab_pane, { key: \"BasicSetting\" }, {\n tab: _withCtx(() => [\n _hoisted_1\n ]),\n default: _withCtx(() => [\n (_ctx.$btnPermissions('PC0030'))\n ? (_openBlock(), _createBlock(_component_Basic, {\n key: 0,\n onChangTab: _ctx.tabChangEvent,\n onChangeFinal: _ctx.changeFinal,\n ref: \"basicSetting\"\n }, null, 8, [\"onChangTab\", \"onChangeFinal\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createVNode(_component_a_tab_pane, {\n disabled: _ctx.TabType[_ctx.activeKey] === 0,\n key: \"DataPreparation\",\n tab: \"Preparation\"\n }, {\n default: _withCtx(() => [\n _withDirectives(_createElementVNode(\"div\", null, [\n _createVNode(_component_Data_Preparation, {\n ref: \"dataPreparation\",\n makeId: _ctx.makeId,\n make: _ctx.make,\n makeYear: _ctx.makeYear,\n makeMonth: _ctx.makeMonth,\n breadcrumbVersion: _ctx.breadcrumbVersion,\n onHandleShowPbp: _ctx.handleShowPbp,\n onChangTab: _ctx.tabChangEvent\n }, null, 8, [\"makeId\", \"make\", \"makeYear\", \"makeMonth\", \"breadcrumbVersion\", \"onHandleShowPbp\", \"onChangTab\"])\n ], 512), [\n [_vShow, !_ctx.showPbp && _ctx.$btnPermissions('PC0031') ]\n ]),\n _withDirectives(_createElementVNode(\"div\", null, [\n _createVNode(_component_Pbp, {\n makeId: _ctx.makeId,\n onShowPbpFalse: _ctx.showPbpFalse\n }, null, 8, [\"makeId\", \"onShowPbpFalse\"])\n ], 512), [\n [_vShow, _ctx.$btnPermissions('PC0032') && _ctx.showPbp]\n ])\n ]),\n _: 1\n }, 8, [\"disabled\"]),\n _createVNode(_component_a_tab_pane, {\n disabled: _ctx.TabType[_ctx.activeKey] < 2,\n key: \"GenerateClosing\",\n tab: \"Calculation\"\n }, {\n default: _withCtx(() => [\n (_ctx.activeKey === 'GenerateClosing')\n ? (_openBlock(), _createBlock(_component_Generate_Closing, {\n key: 0,\n make: _ctx.make,\n makeId: _ctx.makeId,\n makeYear: _ctx.makeYear,\n makeMonth: _ctx.makeMonth,\n activeName: _ctx.activeName,\n ref: \"generateClosing\"\n }, null, 8, [\"make\", \"makeId\", \"makeYear\", \"makeMonth\", \"activeName\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"disabled\"]),\n _createVNode(_component_a_tab_pane, {\n key: \"FinalView\",\n disabled: _ctx.TabType[_ctx.activeKey] < 2,\n tab: \"Review\"\n }, {\n default: _withCtx(() => [\n (_ctx.$btnPermissions('PC0033'))\n ? (_openBlock(), _createBlock(_component_Final_View, {\n key: 0,\n ref: \"finalView\",\n makeId: _ctx.makeId,\n make: _ctx.make,\n isfinal: _ctx.isfinal,\n makeYear: _ctx.makeYear,\n cbVersion: _ctx.cbVersion,\n makeMonth: _ctx.makeMonth,\n onChangTab: _ctx.tabChangEvent,\n onChangeId: _ctx.changeMakeId,\n onChangeFinal: _ctx.changeFinal\n }, null, 8, [\"makeId\", \"make\", \"isfinal\", \"makeYear\", \"cbVersion\", \"makeMonth\", \"onChangTab\", \"onChangeId\", \"onChangeFinal\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ]),\n _: 1\n }, 8, [\"activeKey\", \"onChange\"])\n ])\n ], 64))\n}","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createSlots as _createSlots, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/images/date-icon.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3cbb7668\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"page\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"closing-year\" }, \"Closing Year\", -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"\"\n}, null, -1))\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\" Set PMT Closing Rule \")\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = { key: 1 }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Upload\", -1))\nconst _hoisted_8 = [\"onClick\"]\nconst _hoisted_9 = {\n key: 2,\n class: \"checkbox\"\n}\nconst _hoisted_10 = {\n key: 3,\n class: \"checkbox\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_date_picker = _resolveComponent(\"a-date-picker\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_tooltip = _resolveComponent(\"a-tooltip\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_a_col = _resolveComponent(\"a-col\")!\n const _component_a_row = _resolveComponent(\"a-row\")!\n const _component_basic_upload = _resolveComponent(\"basic-upload\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _hoisted_2,\n _createVNode(_component_a_date_picker, {\n mode: \"year\",\n format: \"YYYY\",\n valueFormat: \"YYYY\",\n value: _ctx.yearValue,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.yearValue) = $event)),\n open: _ctx.openYear,\n onOpenChange: _cache[1] || (_cache[1] = ($event: any) => (_ctx.openYear = !_ctx.openYear)),\n onPanelChange: _ctx.handlerPanelChange,\n allowClear: false,\n style: {\"width\":\"140px\",\"margin\":\"8px 0 0 24px\"}\n }, {\n suffixIcon: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }, 8, [\"value\", \"open\", \"onPanelChange\"]),\n (_ctx.$btnPermissions('PC0502'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"primary\",\n class: \"set-pmt\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$router.push('/setPMt')))\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.dataArray, (item, index) => {\n return (_openBlock(), _createBlock(_component_a_row, {\n key: item.name\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_col, { span: 24 }, {\n default: _withCtx(() => [\n _createVNode(_component_a_table, {\n columns: item.header,\n \"data-source\": item.data,\n bordered: \"\",\n pagination: false,\n style: {\"margin-right\":\"8px\"},\n \"row-class-name\": () => _ctx.tempBack?'greyRow height':'height'\n }, _createSlots({ _: 2 }, [\n _renderList(_ctx.monthSlots, (month) => {\n return {\n name: month,\n fn: _withCtx(({ record }) => [\n (record.key === '1')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"i\", {\n class: _normalizeClass(record[month])\n }, null, 2)\n ]))\n : _createCommentVNode(\"\", true),\n (record.key === '2')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"i\", {\n class: _normalizeClass(record[month])\n }, null, 2)\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_tooltip, { placement: \"top\" }, {\n title: _withCtx(() => [\n _hoisted_7\n ]),\n default: _withCtx(() => [\n (\n record.key === '3' && index < 2 && _ctx.$btnPermissions('PC0500')\n )\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(record[month]),\n onClick: ($event: any) => (_ctx.handleUpload(record, month))\n }, null, 10, _hoisted_8))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1024),\n (\n record.key === '3' && index >= 2 && _ctx.$btnPermissions('PC0501')\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createVNode(_component_a_checkbox, {\n disabled: record[month] === null,\n checked: record[month],\n \"onUpdate:checked\": ($event: any) => ((record[month]) = $event),\n onChange: ($event: any) => (_ctx.handleCheckbox(record, month, item.data, index)),\n class: \"a-checboxs\"\n }, null, 8, [\"disabled\", \"checked\", \"onUpdate:checked\", \"onChange\"]),\n _createElementVNode(\"i\", {\n class: _normalizeClass([record[month],record[month]==true?'font_family icon-fuxuankuang-yixuan-xianxing icontrue':'font_family icon-fuxuankuang','checboxs'])\n }, null, 2)\n ]))\n : _createCommentVNode(\"\", true),\n (\n record.key === '4' && index < 2 && _ctx.$btnPermissions('PC0501')\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createVNode(_component_a_checkbox, {\n disabled: record[month] === null,\n checked: record[month],\n \"onUpdate:checked\": ($event: any) => ((record[month]) = $event),\n onChange: ($event: any) => (_ctx.handleCheckbox(record, month, item.data, index)),\n class: \"a-checboxs\"\n }, null, 8, [\"disabled\", \"checked\", \"onUpdate:checked\", \"onChange\"]),\n _createElementVNode(\"i\", {\n class: _normalizeClass([record[month],record[month]==true?'font_family icon-fuxuankuang-yixuan-xianxing icontrue':'font_family icon-fuxuankuang','checboxs'])\n }, null, 2)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n }\n })\n ]), 1032, [\"columns\", \"data-source\", \"row-class-name\"])\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n (_ctx.showDrawer)\n ? (_openBlock(), _createBlock(_component_basic_upload, {\n key: 0,\n showDrawer: _ctx.showDrawer,\n makeId: _ctx.makeId,\n make: _ctx.make,\n onCloseDrawer: _cache[3] || (_cache[3] = ($event: any) => (_ctx.showDrawer = false))\n }, null, 8, [\"showDrawer\", \"makeId\", \"make\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, 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-3ed2b568\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { style: {\"color\":\"#1890ff\",\"font-size\":\"18px\"} }\nconst _hoisted_2 = { class: \"down-line-box\" }\nconst _hoisted_3 = { class: \"upload-com\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", { src: _imports_0 }, null, -1))\nconst _hoisted_5 = /*#__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_6 = { key: 1 }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"file upload\", -1))\nconst _hoisted_8 = { 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_9 = /*#__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: \"Upload IMPACT Actual\",\n closable: true,\n visible: _ctx.showDrawer,\n width: \"30%\",\n bodyStyle: { paddingTop: '5px' },\n onClose: _ctx.handleClose\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, \"Make: \" + _toDisplayString(_ctx.make), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"a\", {\n class: \"down-line-btn\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.downLoadTemp && _ctx.downLoadTemp(...args)))\n }, \"Download template\")\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\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_4,\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"customRequest\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _hoisted_7,\n _createVNode(_component_a_progress, { percent: _ctx.percent }, null, 8, [\"percent\"])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleUpload,\n disabled: _ctx.uploadFlag\n }, {\n default: _withCtx(() => [\n _hoisted_9\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onClose\"]))\n}","\nimport { defineComponent, ref } from \"vue\";\nimport { uploadImpactActual } from \"@/API/closing\";\nimport { message } from \"ant-design-vue\";\nimport isExcel from \"@/utils/closing/isExcel\";\nimport downloadFile from \"@/utils/rv/downloadFile\";\nexport default defineComponent({\n emits: [\"close-drawer\", \"handle-upload-success\"],\n props: {\n showDrawer: {\n default: false,\n type: Boolean\n },\n makeId: {\n default: -1,\n type: Number\n },\n make: {\n default: \"\",\n type: String\n }\n },\n setup(props, { emit }) {\n // 是否显示上传框\n const showUpload = ref(true);\n const percent = ref(0);\n const uploadFlag = ref(true);\n const file = ref();\n // 下载模板\n const downLoadTemp = () => {\n downloadFile({\n url: \"/pcapi/api/v1/reportData/getCBUAdjustExcelTemplate\",\n method: \"get\",\n fileName: \"upload_template.xlsx\"\n });\n };\n const handleClose = () => {\n emit(\"close-drawer\");\n };\n const uploadConfig = {\n onUploadProgress: (progressEvent: any) => {\n if (progressEvent.lengthComputable) {\n const complete =\n ((progressEvent.loaded / progressEvent.total) * 100) | 0;\n percent.value = complete;\n }\n }\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 if (!(await isExcel(file.value))) {\n // 出错之后重置上传组件状态\n showUpload.value = true;\n uploadFlag.value = true;\n percent.value = 0;\n message.error(\"file type error\");\n return;\n }\n const uploadFormData = new FormData();\n uploadFormData.append(\"file\", file.value);\n try {\n const res = await uploadImpactActual(\n props.makeId,\n uploadFormData,\n uploadConfig\n );\n // 上传之后重置上传组件状态\n showUpload.value = true;\n uploadFlag.value = true;\n percent.value = 0;\n if (res.code === \"0\") {\n message.success(\"submit success\");\n emit(\"handle-upload-success\");\n } else {\n message.error(\"submit failed\");\n }\n } catch (e) {\n // 上传出错重置上传组件状态\n showUpload.value = true;\n uploadFlag.value = true;\n percent.value = 0;\n }\n };\n return {\n handleClose,\n uploadRequest,\n handleUpload,\n downLoadTemp,\n showUpload,\n uploadFlag,\n percent\n };\n }\n});\n","import { render } from \"./BasicUpload.vue?vue&type=template&id=3ed2b568&scoped=true&ts=true\"\nimport script from \"./BasicUpload.vue?vue&type=script&lang=ts\"\nexport * from \"./BasicUpload.vue?vue&type=script&lang=ts\"\n\nimport \"./BasicUpload.vue?vue&type=style&index=0&id=3ed2b568&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-3ed2b568\"]])\n\nexport default __exports__","\nimport { defineComponent, ref, reactive, toRefs, h } from \"vue\";\nimport BasicUpload from \"@/views/Closing/Tab/Components/BasicUpload.vue\";\nimport {\n getCurrentYear,\n getMakeInfos,\n getNewMake,\n getLock,\n} from \"@/API/closing\";\nimport moment from \"moment\";\n\ntype TargetTpye = {\n target: {\n innerText: string;\n };\n};\ntype DataType = {\n name: string;\n header: any[];\n data: any[];\n};\nconst monthSlots = [\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n];\nexport default defineComponent({\n components: {\n BasicUpload,\n },\n emits: [\"chang-tab\",'change-final'],\n setup(_, { emit }) {\n const yearValue = ref(\"0000\");\n let disableTime = \"\";\n const dataArray = reactive([\n { name: \"CBU\", header: [], data: [] },\n { name: \"PBP\", header: [], data: [] },\n { name: \"VAN\", header: [], data: [] },\n ]);\n const uploadDrawer = reactive({\n showDrawer: false,\n make: \"\",\n makeId: 0,\n });\n const handleTitle = (e: EventTarget | TargetTpye, arg: string) => {\n const [year, month] = (e as TargetTpye).target.innerText.split(\"-\");\n let mcId: number | null;\n switch (arg) {\n case \"CBU\":\n mcId = dataArray[0].data[3][`${month}mcId`];\n break;\n case \"PBP\":\n mcId = dataArray[1].data[3][`${month}mcId`];\n break;\n case \"VAN\":\n mcId = dataArray[2].data[2][`${month}mcId`];\n break;\n default:\n mcId = null;\n break;\n }\n getNewMake({\n mcId,\n year,\n month,\n make: arg,\n }).then((res) => {\n emit('change-final',true)\n emit(\n \"chang-tab\",\n res.isFinal ? \"FinalView\" : \"DataPreparation\",\n arg,\n res.version,\n res.id,\n res.month,\n res.year\n );\n });\n };\n const handleUpload = (record: any, month: string) => {\n // 根据样式类名判断是否能上传\n //if (!~record[month].indexOf(\"un-upload\")) {\n /**\n * 上传逻辑\n */\n uploadDrawer.showDrawer = true;\n uploadDrawer.makeId = record[month + \"mcId\"];\n uploadDrawer.make = record.make;\n //}\n };\n const tempBack =ref(false) ;\n \n /**\n * 设置单元格wip和final的icon\n */\n const setDataIcon = (flag: unknown) => {\n return !flag\n ? \"font_family icon-fuxuankuang\"\n : \"font_family icon-fuxuankuang-yixuan-xianxing icontrue\";\n };\n /**\n * 设置单元格上传icon\n */\n const setDataUpload = (flag: unknown) => {\n return \"font_family icon-shangchuan upload\";\n };\n /**\n * 设置表头\n * year: 表头年\n * month: 表头月\n * make: CBU/PBP/VAN\n */\n const setHeader = (year: string, month: string, make: string) => {\n const flag = parseInt(disableTime) > parseInt(`${year}${month}`);\n return flag\n ? h(\n \"a\",\n {\n onClick: ($event: EventTarget) => handleTitle($event, make),\n },\n `${year}-${month}`\n )\n : h(\n \"span\",\n {\n style: \"color: gray\",\n },\n `${year}-${month}`\n );\n };\n // 获取make数据\n const getMakeData = async () => {\n const resMake = await getMakeInfos({ year: yearValue.value });\n resMake.CBU.some((item: any)=>{\n if (item.globalLock){\n tempBack.value = true;\n return true;\n }\n })\n dataArray.forEach((item, index) => {\n item.header = [\n {\n title: item.name,\n dataIndex: \"name\",\n width: \"120px\",\n align: \"center\",\n },\n ];\n if (index < 2) {\n item.data = [\n {\n key: \"1\",\n name: \"WIP Version\",\n },\n {\n key: \"2\",\n name: \"Final Version\",\n },\n {\n key: \"3\",\n name: \"Actual Upload\",\n },\n {\n key: \"4\",\n name: \"Locked\",\n },\n ];\n } else {\n item.data = [\n {\n key: \"1\",\n name: \"WIP Version\",\n },\n {\n key: \"2\",\n name: \"Final Version\",\n },\n {\n key: \"3\",\n name: \"Locked\",\n },\n ];\n }\n resMake[item.name].forEach((ele: any) => {\n const title = setHeader(ele.year, ele.month, item.name);\n item.header.push({\n title,\n align: \"center\",\n dataIndex: `${ele.month}`,\n slots: { customRender: `${ele.month}` },\n });\n if (index < 2) {\n item.data.forEach((el) => {\n switch (el.key) {\n case \"1\":\n el[ele.month] = setDataIcon(ele.isWip);\n el.wip = ele.month;\n break;\n case \"2\":\n el[ele.month] = setDataIcon(ele.isFinal);\n el.final = ele.month;\n break;\n case \"3\":\n el[ele.month] = setDataUpload(ele.isFinal&&!ele.globalLock);\n el[ele.month + \"mcId\"] = ele.mcId;\n el.make = item.name.toLowerCase();\n break;\n case \"4\":\n el[ele.month] = ele.globalLock;\n el[ele.month + \"mcId\"] = ele.mcId;\n break;\n default:\n console.warn(\"error\");\n break;\n }\n });\n } else {\n item.data.forEach((el: any) => {\n switch (el.key) {\n case \"1\":\n el[ele.month] = setDataIcon(ele.isWip);\n el.wip = ele.month;\n break;\n case \"2\":\n el[ele.month] = setDataIcon(ele.isFinal);\n el.final = ele.month;\n break;\n case \"3\":\n el[ele.month] = ele.globalLock;\n el[ele.month + \"mcId\"] = ele.mcId;\n el.make = item.name.toLowerCase();\n break;\n default:\n console.warn(\"error\");\n break;\n }\n });\n }\n });\n });\n };\n // 初始化数据\n const initData = async () => {\n const res = await getCurrentYear();\n yearValue.value = res.showYear.toString();\n disableTime = `${res.year}${String(res.month).padStart(2, \"0\")}`;\n getMakeData();\n };\n const openYear = ref(false);\n const handlerPanelChange = (value: string): void => {\n yearValue.value = moment(value).format(\"YYYY\");\n openYear.value = false;\n getMakeData();\n };\n const handleCheckbox = async (record: any, month: string, item: any[], index: number) => {\n try {\n await getLock({ mcId: record[`${month}mcId`], flag: record[month] });\n if (index < 2) { // CBU,PBP\n if (item?.[2]) {\n item[2][month] = `font_family icon-shangchuan ${record[month] ? 'un-upload' : 'upload'}`\n }\n }\n } catch (e) {\n record[month] = !record[month];\n }\n for (const i in record) {\n if (record[i] == true) {\n tempBack.value = true;\n break;\n } else {\n tempBack.value = false;\n }\n }\n };\n initData();\n return {\n yearValue,\n openYear,\n handlerPanelChange,\n handleCheckbox,\n handleUpload,\n initData,\n ...toRefs(uploadDrawer),\n dataArray,\n monthSlots,\n tempBack\n };\n },\n});\n","import { render } from \"./BasicSetting.vue?vue&type=template&id=3cbb7668&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=3cbb7668&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-3cbb7668\"]])\n\nexport default __exports__","import { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createBlock as _createBlock, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/images/closing/start.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2cb29b60\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"main clearfix\" }\nconst _hoisted_2 = /*#__PURE__*/_createTextVNode(\" Go to Calculation \")\nconst _hoisted_3 = { class: \"title\" }\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\" Collect Interface Data \")\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Import WS BI from Cesar\", -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Import RT from Cesar\", -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Import Dealer Stock from Cesar\", -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Import Program\", -1))\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_11 = [\"src\"]\nconst _hoisted_12 = [\"src\"]\nconst _hoisted_13 = [\"src\"]\nconst _hoisted_14 = [\"src\"]\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_16 = /*#__PURE__*/_createTextVNode(\" Export \")\nconst _hoisted_17 = /*#__PURE__*/_createTextVNode(\" Export \")\nconst _hoisted_18 = /*#__PURE__*/_createTextVNode(\" Export \")\nconst _hoisted_19 = { key: 0 }\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"title\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"pbp-title\" }, \"Maintain Data\")\n], -1))\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Upload Company Car\", -1))\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_24 = [\"src\"]\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_26 = /*#__PURE__*/_createTextVNode(\" Export \")\nconst _hoisted_27 = { class: \"title\" }\nconst _hoisted_28 = /*#__PURE__*/_createTextVNode(\" Validate Master Data \")\nconst _hoisted_29 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_30 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Update IMPACT Vehicle\", -1))\nconst _hoisted_31 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"NST Group\", -1))\nconst _hoisted_32 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"MSRP\", -1))\nconst _hoisted_33 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_34 = [\"src\"]\nconst _hoisted_35 = [\"src\"]\nconst _hoisted_36 = [\"src\"]\nconst _hoisted_37 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_38 = /*#__PURE__*/_createTextVNode(\" Maintain \")\nconst _hoisted_39 = /*#__PURE__*/_createTextVNode(\" Maintain \")\nconst _hoisted_40 = /*#__PURE__*/_createTextVNode(\"View\")\nconst _hoisted_41 = { key: 1 }\nconst _hoisted_42 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"title\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"pbp-title\" }, \"Maintain Data\")\n], -1))\nconst _hoisted_43 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_44 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"pbp-content\" }, \"COPA Data Adjustment\")\n], -1))\nconst _hoisted_45 = /*#__PURE__*/_createTextVNode(\" Maintain \")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_col = _resolveComponent(\"a-col\")!\n const _component_a_row = _resolveComponent(\"a-row\")!\n const _component_cbu_upload = _resolveComponent(\"cbu-upload\")!\n const _component_maintain_model = _resolveComponent(\"maintain-model\")!\n const _component_impact_model = _resolveComponent(\"impact-model\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"button\",\n onClick: _ctx.handleCalculate\n }, {\n default: _withCtx(() => [\n _hoisted_2\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"img\", {\n src: _imports_0,\n class: \"icon-title\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.handleImport('c')))\n }),\n _hoisted_4\n ]),\n _createVNode(_component_a_row, { type: \"flex\" }, {\n default: _withCtx(() => [\n _createVNode(_component_a_col, { span: 6 }, {\n default: _withCtx(() => [\n _hoisted_5,\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"img\", {\n src: _imports_0,\n class: \"action\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.handleImport('ws')))\n }),\n _hoisted_6\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"img\", {\n src: _imports_0,\n class: \"action\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.handleImport('rt')))\n }),\n _hoisted_7\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"img\", {\n src: _imports_0,\n class: \"action\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.handleImport('dlr')))\n }),\n _hoisted_8\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"img\", {\n src: _imports_0,\n class: \"action\",\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.handleImport('pg')))\n }),\n _hoisted_9\n ])\n ]),\n _: 1\n }),\n _createVNode(_component_a_col, { span: 13 }, {\n default: _withCtx(() => [\n _hoisted_10,\n _createElementVNode(\"div\", {\n class: _normalizeClass({\n success: _ctx.wsResult === 'success',\n error: _ctx.wsResult === 'error'\n })\n }, [\n (_ctx.wsResult)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"icon-state\",\n src: require('@/assets/images/closing/' + _ctx.wsResult + '.png')\n }, null, 8, _hoisted_11))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.wsResult === 'success'?_ctx.wsData.ResultMsg :_ctx.wsData.resultMsg) + \"  \", 1)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass({\n success: _ctx.rtResult === 'success',\n error: _ctx.rtResult === 'error'\n })\n }, [\n (_ctx.rtResult)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"icon-state\",\n src: require('@/assets/images/closing/' + _ctx.rtResult + '.png')\n }, null, 8, _hoisted_12))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.rtResult === 'success'?_ctx.rtData.ResultMsg :_ctx.rtData.resultMsg) + \"  \", 1)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass({\n success: _ctx.dlrResult === 'success',\n error: _ctx.dlrResult === 'error'\n })\n }, [\n (_ctx.dlrResult)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"icon-state\",\n src: require('@/assets/images/closing/' + _ctx.dlrResult + '.png')\n }, null, 8, _hoisted_13))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.dlrResult === 'success'?_ctx.dlrData.ResultMsg :_ctx.dlrData.resultMsg) + \"  \", 1)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass({\n success: _ctx.pgResult === 'success',\n error: _ctx.pgResult === 'error'\n })\n }, [\n (_ctx.pgResult)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"icon-state\",\n src: require('@/assets/images/closing/' + _ctx.pgResult + '.png')\n }, null, 8, _hoisted_14))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.pgResult === 'success'?_ctx.pgData.ResultMsg :_ctx.pgData.resultMsg) + \"  \", 1)\n ], 2)\n ]),\n _: 1\n }),\n _createVNode(_component_a_col, {\n span: 3,\n style: {\"text-align\":\"center\"}\n }, {\n default: _withCtx(() => [\n _hoisted_15,\n _createElementVNode(\"div\", null, _toDisplayString(_ctx.wsData.importDate) + \" \", 1),\n _createElementVNode(\"div\", null, _toDisplayString(_ctx.rtData.importDate) + \" \", 1),\n _createElementVNode(\"div\", null, _toDisplayString(_ctx.dlrData.importDate) + \" \", 1),\n _createElementVNode(\"div\", null, _toDisplayString(_ctx.pgData.importDate) + \" \", 1)\n ]),\n _: 1\n }),\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 disabled: !(_ctx.wsData.result === 'success'),\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.handleExport('ws')))\n }, {\n default: _withCtx(() => [\n _hoisted_16\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_button, {\n type: \"link\",\n size: \"small\",\n disabled: !(_ctx.rtData.result === 'success'),\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.handleExport('rt')))\n }, {\n default: _withCtx(() => [\n _hoisted_17\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_button, {\n type: \"link\",\n size: \"small\",\n disabled: !(_ctx.dlrData.result === 'success'),\n onClick: _cache[7] || (_cache[7] = ($event: any) => (_ctx.handleExport('dlr')))\n }, {\n default: _withCtx(() => [\n _hoisted_18\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n (_ctx.make === 'CBU')\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_19, [\n _hoisted_20,\n _createVNode(_component_a_row, { type: \"flex\" }, {\n default: _withCtx(() => [\n _createVNode(_component_a_col, { span: 6 }, {\n default: _withCtx(() => [\n _hoisted_21,\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"i\", {\n class: \"font_family icon-shangchuan action\",\n onClick: _cache[8] || (_cache[8] = \n//@ts-ignore\n(...args) => (_ctx.handleUpload && _ctx.handleUpload(...args)))\n }),\n _hoisted_22\n ])\n ]),\n _: 1\n }),\n _createVNode(_component_a_col, { span: 13 }, {\n default: _withCtx(() => [\n _hoisted_23,\n _createElementVNode(\"div\", {\n class: _normalizeClass({\n success: _ctx.uploadResult === 'success',\n error: _ctx.uploadResult === 'error'\n })\n }, [\n (_ctx.uploadResult)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"icon-state\",\n src: \n require('@/assets/images/closing/' + _ctx.uploadResult + '.png')\n \n }, null, 8, _hoisted_24))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.uploadData.resultMsg) + \" \", 1)\n ], 2)\n ]),\n _: 1\n }),\n _createVNode(_component_a_col, {\n span: 3,\n style: {\"text-align\":\"center\"}\n }, {\n default: _withCtx(() => [\n _hoisted_25,\n _createElementVNode(\"div\", null, _toDisplayString(_ctx.uploadData.importDate) + \" \", 1)\n ]),\n _: 1\n }),\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 disabled: !(_ctx.uploadData.result === 'success'),\n onClick: _cache[9] || (_cache[9] = ($event: any) => (_ctx.handleExport('cbuws')))\n }, {\n default: _withCtx(() => [\n _hoisted_26\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"div\", _hoisted_27, [\n _createElementVNode(\"img\", {\n src: _imports_0,\n class: \"icon-title\",\n onClick: _cache[10] || (_cache[10] = ($event: any) => (_ctx.handleImport('v')))\n }),\n _hoisted_28\n ]),\n _createVNode(_component_a_row, { type: \"flex\" }, {\n default: _withCtx(() => [\n _createVNode(_component_a_col, { span: 6 }, {\n default: _withCtx(() => [\n _hoisted_29,\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"img\", {\n src: _imports_0,\n class: \"action\",\n onClick: _cache[11] || (_cache[11] = ($event: any) => (_ctx.handleImport('impact')))\n }),\n _hoisted_30\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"img\", {\n src: _imports_0,\n class: \"action\",\n onClick: _cache[12] || (_cache[12] = ($event: any) => (_ctx.handleImport('nst')))\n }),\n _hoisted_31\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"img\", {\n src: _imports_0,\n class: \"action\",\n onClick: _cache[13] || (_cache[13] = ($event: any) => (_ctx.handleImport('msrp')))\n }),\n _hoisted_32\n ])\n ]),\n _: 1\n }),\n _createVNode(_component_a_col, { span: 13 }, {\n default: _withCtx(() => [\n _hoisted_33,\n _createElementVNode(\"div\", {\n class: _normalizeClass({\n success: _ctx.impactResult === 'success',\n error: _ctx.impactResult === 'error'\n })\n }, [\n (_ctx.impactResult)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"icon-state\",\n src: \n require('@/assets/images/closing/' + _ctx.impactResult + '.png')\n \n }, null, 8, _hoisted_34))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.impact.resultMsg) + \" \", 1)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass({\n success: _ctx.nstResult === 'success',\n error: _ctx.nstResult === 'error'\n })\n }, [\n (_ctx.nstResult)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"icon-state\",\n src: require('@/assets/images/closing/' + _ctx.nstResult + '.png')\n }, null, 8, _hoisted_35))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.nst.resultMsg) + \" \", 1)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass({\n success: _ctx.msrpResult === 'success',\n error: _ctx.msrpResult === 'error'\n })\n }, [\n (_ctx.msrpResult)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"icon-state\",\n src: require('@/assets/images/closing/' + _ctx.msrpResult + '.png')\n }, null, 8, _hoisted_36))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.msrp.resultMsg) + \" \", 1)\n ], 2)\n ]),\n _: 1\n }),\n _createVNode(_component_a_col, {\n span: 3,\n style: {\"text-align\":\"center\"}\n }, {\n default: _withCtx(() => [\n _hoisted_37,\n _createElementVNode(\"div\", null, _toDisplayString(_ctx.impact.importDate) + \" \", 1),\n _createElementVNode(\"div\", null, _toDisplayString(_ctx.nst.importDate) + \" \", 1),\n _createElementVNode(\"div\", null, _toDisplayString(_ctx.msrp.importDate) + \" \", 1)\n ]),\n _: 1\n }),\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: _ctx.handleImpact\n }, {\n default: _withCtx(() => [\n _hoisted_38\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_button, {\n type: \"link\",\n size: \"small\",\n onClick: _ctx.handleModel\n }, {\n default: _withCtx(() => [\n _hoisted_39\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_button, {\n type: \"link\",\n size: \"small\"\n }, {\n default: _withCtx(() => [\n _hoisted_40\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n (_ctx.make === 'PBP')\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_41, [\n _hoisted_42,\n _createVNode(_component_a_row, { type: \"flex\" }, {\n default: _withCtx(() => [\n _createVNode(_component_a_col, { span: 6 }, {\n default: _withCtx(() => [\n _hoisted_43,\n _hoisted_44\n ]),\n _: 1\n }),\n _createVNode(_component_a_col, { span: 13 }),\n _createVNode(_component_a_col, {\n span: 3,\n style: {\"text-align\":\"center\"}\n }),\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: _ctx.handlePbp\n }, {\n default: _withCtx(() => [\n _hoisted_45\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n (_ctx.showDrawer)\n ? (_openBlock(), _createBlock(_component_cbu_upload, {\n key: 0,\n showDrawer: _ctx.showDrawer,\n makeId: _ctx.makeId,\n makeMonth: _ctx.makeMonth,\n onHandleUploadSuccess: _ctx.handleUploadSuccess,\n onCloseDrawer: _ctx.closeDrawer\n }, null, 8, [\"showDrawer\", \"makeId\", \"makeMonth\", \"onHandleUploadSuccess\", \"onCloseDrawer\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.visible)\n ? (_openBlock(), _createBlock(_component_maintain_model, {\n key: 1,\n visible: _ctx.visible,\n \"onUpdate:visible\": _cache[14] || (_cache[14] = ($event: any) => ((_ctx.visible) = $event)),\n makeId: _ctx.makeId,\n onRefreshCheck: _ctx.handleImport\n }, null, 8, [\"visible\", \"makeId\", \"onRefreshCheck\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.impactVisible)\n ? (_openBlock(), _createBlock(_component_impact_model, {\n key: 2,\n visible: _ctx.impactVisible,\n \"onUpdate:visible\": _cache[15] || (_cache[15] = ($event: any) => ((_ctx.impactVisible) = $event)),\n makeId: _ctx.makeId,\n onRefreshCheck: _ctx.handleImport,\n make: _ctx.make\n }, null, 8, [\"visible\", \"makeId\", \"onRefreshCheck\", \"make\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, 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-4d4d11da\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { style: {\"color\":\"#1890ff\",\"font-size\":\"18px\"} }, \" Make: CBU \", -1))\nconst _hoisted_2 = { class: \"down-line-box\" }\nconst _hoisted_3 = { class: \"upload-com\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", { src: _imports_0 }, null, -1))\nconst _hoisted_5 = /*#__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_6 = { key: 1 }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"file upload\", -1))\nconst _hoisted_8 = { 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_9 = /*#__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: \"Upload Company Car\",\n closable: true,\n visible: _ctx.showDrawer,\n width: \"30%\",\n bodyStyle: { paddingTop: '5px' },\n onClose: _ctx.handleClose\n }, {\n default: _withCtx(() => [\n _hoisted_1,\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"a\", {\n class: \"down-line-btn\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.downLoadTemp && _ctx.downLoadTemp(...args)))\n }, \"Download template\")\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\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_4,\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"customRequest\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _hoisted_7,\n _createVNode(_component_a_progress, { percent: _ctx.percent }, null, 8, [\"percent\"])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleUpload,\n disabled: _ctx.uploadFlag\n }, {\n default: _withCtx(() => [\n _hoisted_9\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onClose\"]))\n}","\nimport { defineComponent, ref } from \"vue\";\nimport { postUpload } from \"@/API/closing\";\nimport { message } from \"ant-design-vue\";\nimport isExcel from \"@/utils/closing/isExcel\";\nimport downloadFile from \"@/utils/rv/downloadFile\";\nexport default defineComponent({\n emits: [\"close-drawer\", \"handle-upload-success\"],\n props: {\n showDrawer: {\n default: false,\n type: Boolean\n },\n makeId: {\n default: -1,\n type: Number\n },\n makeMonth: {\n default: \"\",\n type: String\n }\n },\n setup(props, { emit }) {\n // 是否显示上传框\n const showUpload = ref(true);\n const percent = ref(0);\n const uploadFlag = ref(true);\n const file = ref();\n // 下载模板\n const downLoadTemp = () => {\n downloadFile({\n url: \"/pcapi/closing/dataPreparation/getCBUCompanyCarTemplate\",\n method: \"get\",\n fileName: \"company_car_template.xlsx\"\n });\n };\n const handleClose = () => {\n emit(\"close-drawer\");\n };\n const uploadConfig = {\n onUploadProgress: (progressEvent: any) => {\n if (progressEvent.lengthComputable) {\n const complete =\n ((progressEvent.loaded / progressEvent.total) * 100) | 0;\n percent.value = complete;\n }\n }\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 if (!(await isExcel(file.value))) {\n // 出错之后重置上传组件状态\n showUpload.value = true;\n uploadFlag.value = true;\n percent.value = 0;\n message.error(\"file type error\");\n return;\n }\n const uploadFormData = new FormData();\n uploadFormData.append(\"file\", file.value);\n const data = {\n make: \"CBU\",\n month: props.makeMonth,\n mcid: props.makeId\n };\n try {\n const res = await postUpload(uploadConfig, data, uploadFormData);\n // 上传之后重置上传组件状态\n showUpload.value = true;\n uploadFlag.value = true;\n percent.value = 0;\n if (res.code === \"0\") {\n message.success(\"submit success\");\n emit(\"handle-upload-success\");\n } else {\n message.error(\"submit failed\");\n }\n } catch (e) {\n // 上传出错重置上传组件状态\n showUpload.value = true;\n uploadFlag.value = true;\n percent.value = 0;\n }\n };\n return {\n handleClose,\n uploadRequest,\n handleUpload,\n downLoadTemp,\n showUpload,\n uploadFlag,\n percent\n };\n }\n});\n","import { render } from \"./Upload.vue?vue&type=template&id=4d4d11da&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=4d4d11da&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-4d4d11da\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, createVNode as _createVNode, withCtx as _withCtx, createTextVNode as _createTextVNode, 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-5f489ea0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"title\" }\nconst _hoisted_2 = { class: \"modal-content\" }\nconst _hoisted_3 = { class: \"left-table content-container\" }\nconst _hoisted_4 = { class: \"content-box\" }\nconst _hoisted_5 = { class: \"footer\" }\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_7 = { class: \"right-table-wrapper\" }\nconst _hoisted_8 = {\n key: 0,\n class: \"right-table content-container\"\n}\nconst _hoisted_9 = { class: \"content-box\" }\nconst _hoisted_10 = { class: \"search-box\" }\nconst _hoisted_11 = { class: \"search-one\" }\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Marterial Sales\", -1))\nconst _hoisted_13 = { class: \"search-one search-none\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Vehicle Model\", -1))\nconst _hoisted_15 = { class: \"footer\" }\nconst _hoisted_16 = /*#__PURE__*/_createTextVNode(\" Confirm \")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_input_search = _resolveComponent(\"a-input-search\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n\n return (_openBlock(), _createBlock(_component_a_modal, {\n class: \"main-tain-model\",\n visible: _ctx.visible,\n width: 1500,\n bodyStyle: { padding: '0 20px 10px', height: '600px' },\n footer: null,\n centered: \"\",\n maskClosable: false,\n onCancel: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('update:visible', false)))\n }, {\n title: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, _toDisplayString(_ctx.title), 1)\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_a_table, {\n size: \"small\",\n columns: _ctx.columns,\n \"data-source\": _ctx.dataSource,\n pagination: false,\n rowKey: \"id\",\n scroll: { y: 500 }\n }, {\n NSTGroupMapping: _withCtx(({ record, index }) => [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_input_search, {\n class: _normalizeClass({\n 'left-table-input': true,\n error: record.ntsGroupMappingError\n }),\n placeholder: \"input check\",\n value: record.ntsGroup,\n \"onUpdate:value\": ($event: any) => ((record.ntsGroup) = $event),\n onKeyup: ($event: any) => (_ctx.checkKey(index)),\n onSearch: ($event: any) => (_ctx.showRightSearch(index))\n }, null, 8, [\"class\", \"value\", \"onUpdate:value\", \"onKeyup\", \"onSearch\"])\n ])\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\"])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_ctx.$btnPermissions('PC0504'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"primary\",\n class: \"button\",\n disabled: !_ctx.dataSource.length,\n onClick: _ctx.save\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"disabled\", \"onClick\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n (_ctx.rightVisible)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _hoisted_12,\n _createVNode(_component_a_input_search, {\n class: \"search-input\",\n allowClear: true,\n placeholder: \"input query information\",\n onSearch: _ctx.onSearch\n }, null, 8, [\"onSearch\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _hoisted_14,\n _createVNode(_component_a_input_search, {\n class: \"search-input\",\n allowClear: true,\n placeholder: \"input query information\",\n onSearch: _ctx.onSearch1\n }, null, 8, [\"onSearch\"])\n ])\n ]),\n _createVNode(_component_a_table, {\n size: \"small\",\n columns: _ctx.columnSearch,\n \"data-source\": _ctx.dataSearch,\n pagination: false,\n rowKey: (record, index) => index,\n rowSelection: {\n selectedRowKeys: _ctx.ntsGroupSelected,\n onChange: _ctx.changeNtsGroupSelected,\n type: 'radio'\n },\n scroll: { y: 390 }\n }, null, 8, [\"columns\", \"data-source\", \"rowKey\", \"rowSelection\"])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"button\",\n disabled: !_ctx.ntsGroupSelected.length,\n onClick: _ctx.confirm\n }, {\n default: _withCtx(() => [\n _hoisted_16\n ]),\n _: 1\n }, 8, [\"disabled\", \"onClick\"])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _: 1\n }, 8, [\"visible\"]))\n}","\nimport {\n getNstGroupLeftList,\n searchList,\n checkModel,\n saveModel\n} from \"@/API/closing\";\nimport { defineComponent, ref } from \"vue\";\nconst columns = [\n {\n title: \"Material Sales\",\n dataIndex: \"materialSales\",\n key: \"materialSales\"\n },\n {\n title: \"Vehicle Model\",\n dataIndex: \"vehicleModel\",\n key: \"vehicleModel\",\n width: 270\n },\n {\n title: \"Cash Discount\",\n dataIndex: \"cashDiscount\",\n key: \"cashDiscount\",\n align: \"right\"\n },\n {\n title: \"WS LLP\",\n dataIndex: \"wsLlp\",\n key: \"wsLlp\",\n align: \"right\"\n },\n {\n title: \"WS Volume\",\n dataIndex: \"wsVolume\",\n key: \"wsVolume\",\n align: \"right\"\n },\n {\n title: \"NST Group Mapping\",\n dataIndex: \"NSTGroupMapping\",\n key: \"NSTGroupMapping\",\n width: 200,\n slots: { customRender: \"NSTGroupMapping\" }\n }\n];\nexport default defineComponent({\n emits: [\"update:visible\", \"confirm\", \"init-data\", \"refresh-check\"],\n props: {\n visible: {\n type: Boolean,\n default: false,\n required: true\n },\n title: {\n type: String,\n default: \"NST Group Maintain\"\n },\n makeId: {\n type: Number,\n required: true\n }\n },\n setup(props, { emit }) {\n const rightVisible = ref(false);\n\n const searchMarterial = ref(null);\n\n const searchVehicle = ref(null);\n // 左侧表格\n\n const dataSource: any = ref([]);\n // 搜索结果表格\n const columnSearch = [\n {\n title: \"Material No.\",\n dataIndex: \"materialNo\",\n key: \"materialNo\"\n },\n {\n title: \"Material Name\",\n dataIndex: \"materialName\",\n key: \"materialName\"\n },\n {\n title: \"NST Group\",\n dataIndex: \"nspGroup\",\n key: \"nspGroup\"\n },\n {\n title: \"NST Group Name\",\n dataIndex: \"nspGroupName\",\n key: \"nspGroupName\"\n },\n {\n title: \"Impact Name\",\n dataIndex: \"imapctName\",\n key: \"imapctName\"\n }\n ];\n const dataSearch: any = ref([]);\n const ntsGroupSelected = ref([]);\n const changeNtsGroupSelected = (selectedRowKeys: string[]) => {\n ntsGroupSelected.value = selectedRowKeys;\n };\n\n //防抖函数\n const debounce = (fn: Function, delay: number) => {\n let timer = 0;\n return function() {\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(() => {\n fn();\n }, delay);\n };\n };\n // 校验信息发起接口请求\n const checkKeyDebounce = (function() {\n const store = new Map();\n return function(index: number) {\n let checkFunc = store.get(index);\n if (!checkFunc) {\n checkFunc = debounce(async function() {\n const data = await checkModel({\n models: [dataSource.value[index].ntsGroup]\n });\n dataSource.value[index].ntsGroupMappingError = !data[0].pass;\n }, 500);\n store.set(index, checkFunc);\n }\n checkFunc();\n };\n })();\n const checkKey = (index: number) => checkKeyDebounce(index);\n const ntsGroupSearchRowIndex = ref();\n const showRightSearch = (index: number) => {\n ntsGroupSearchRowIndex.value = index;\n rightVisible.value = true;\n };\n const onSearch = (value: string) => {\n searchList({ materialNo: value })\n .then(res => {\n ntsGroupSelected.value = [];\n dataSearch.value = Array.from(res);\n })\n .catch(err => {\n console.log(err, \"查询报错\");\n });\n };\n const onSearch1 = (value: string) => {\n searchList({ materialName: value })\n .then(res => {\n ntsGroupSelected.value = [];\n dataSearch.value = Array.from(res);\n })\n .catch(err => {\n console.log(err, \"查询报错\");\n });\n };\n const initLeftList = () => {\n getNstGroupLeftList({ mcId: props.makeId })\n .then(res => {\n dataSource.value = Array.from(res).map((item: any) => {\n // console.log(item, \"单项信息\");\n item.ntsGroup = \"\";\n item.ntsGroupMappingError = false;\n item.wsLlp = parseInt(item.wsLlp);\n item.cashDiscount = item.cashDiscount\n ? parseInt(item.cashDiscount)\n : \"\";\n return item;\n });\n })\n .catch(err => {\n console.log(err, \"NST报错\");\n });\n };\n // 操作按钮\n const save = async () => {\n const models = Array.from(\n new Set(dataSource.value.map((item: any) => item.ntsGroup))\n );\n const data = await checkModel({ models });\n const ntsGruopMappingResult = new Map();\n for (const item of data) {\n ntsGruopMappingResult.set(item.model, item.pass);\n }\n let ntsGruopMappingError = true;\n for (const item of dataSource.value) {\n const ntsGroupMappingError = ntsGruopMappingResult.get(item.ntsGroup);\n item.ntsGroupMappingError = !ntsGroupMappingError;\n if (!ntsGroupMappingError) {\n ntsGruopMappingError = false;\n }\n }\n if (ntsGruopMappingError) {\n const data = dataSource.value.map((item: any) => {\n return {\n id: item.id,\n nstGroupCode: item.ntsGroup\n };\n });\n await saveModel(data);\n initLeftList();\n // emit(\"init-data\");\n emit(\"refresh-check\", \"nst\"); //触发新的nst校验\n emit(\"update:visible\", false); //保存成功关闭弹窗\n }\n };\n const confirm = () => {\n if (ntsGroupSearchRowIndex.value !== undefined) {\n dataSource.value[ntsGroupSearchRowIndex.value].ntsGroup =\n dataSearch.value[ntsGroupSelected.value[0]].nspGroup;\n dataSource.value[\n ntsGroupSearchRowIndex.value\n ].ntsGroupMappingError = false;\n rightVisible.value = false;\n }\n };\n\n initLeftList();\n return {\n showRightSearch,\n rightVisible,\n searchMarterial,\n searchVehicle,\n columnSearch,\n dataSearch,\n onSearch,\n onSearch1,\n save,\n confirm,\n dataSource,\n checkKey,\n columns,\n ntsGroupSelected,\n changeNtsGroupSelected\n };\n }\n});\n","import { render } from \"./MaintainModel.vue?vue&type=template&id=5f489ea0&scoped=true&ts=true\"\nimport script from \"./MaintainModel.vue?vue&type=script&lang=ts\"\nexport * from \"./MaintainModel.vue?vue&type=script&lang=ts\"\n\nimport \"./MaintainModel.vue?vue&type=style&index=0&id=5f489ea0&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-5f489ea0\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2f4d7b6e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"title\" }, \"Update IMPACT Vehicle\", -1))\nconst _hoisted_2 = { class: \"modal-content\" }\nconst _hoisted_3 = { class: \"d-f bg-fff m-t-8 p-style p-r search-btns\" }\nconst _hoisted_4 = { class: \"d-f\" }\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\" Save \")\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"Back\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n\n return (_openBlock(), _createBlock(_component_a_modal, {\n class: \"impact-model\",\n visible: _ctx.visible,\n width: 1500,\n bodyStyle: { padding: '0 10px 10px' },\n style: {\"margin-top\":\"100px\"},\n footer: null,\n centered: \"\",\n maskClosable: false,\n onCancel: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('update:visible', false)))\n }, {\n title: _withCtx(() => [\n _hoisted_1\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n (_ctx.$btnPermissions('PC0504'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n class: \"m-l-16\",\n type: \"primary\",\n onClick: _ctx.handlerSave\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_button, {\n class: \"m-l-16\",\n onClick: _ctx.handlerBack\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _createElementVNode(\"div\", {\n id: \"ssHost\",\n class: \"p-10\",\n style: _normalizeStyle({ width: '100%', height: _ctx.tableHeight + 'px' })\n }, null, 4)\n ])\n ]),\n _: 1\n }, 8, [\"visible\"]))\n}","\nimport { defineComponent, reactive, ref, onMounted } from \"vue\";\nimport {\n ssHotTop,\n handlerSheetsData,\n} from \"../../../System/Kufri/NstMapping/utils\";\nimport { message } from \"ant-design-vue\";\nimport { NstMappingProps } from \"../../../System/Kufri/NstMapping/types\";\nimport { getNstGroupList } from \"@/API/closing\";\nimport { saveNstMapping, getImpactData } from \"@/API/sysParam\";\nimport \"@grapecity/spread-sheets/styles/gc.spread.sheets.excel2016colorful.css\";\nimport GC from \"@grapecity/spread-sheets\";\nimport { usetableHeight } from \"../../../System/Kufri/KufriPanelControl/utils\";\n\nexport default defineComponent({\n emits: [\"update:visible\"],\n props: {\n visible: {\n type: Boolean,\n default: false,\n required: true,\n },\n title: {\n type: String,\n default: \"NST Group Maintain\",\n },\n makeId: {\n type: Number,\n required: true,\n },\n make: {\n default: \"\",\n type: String,\n },\n },\n setup(props, { emit }) {\n const { tableHeight } = usetableHeight(\"#ssHost\", \"#ssHostvp\");\n const tableData = reactive([]);\n const ssHotTopInit = () => {\n const spread = new GC.Spread.Sheets.Workbook(\n document.getElementById(\"ssHost\") as HTMLElement\n );\n ssHotTop(spread, tableData);\n };\n\n const getImpactCode = (params: any) => {\n const param = {\n nstGroupList: params,\n make: props.make,\n };\n getImpactData(param)\n .then((res: any) => {\n if (res.length == 0) {\n message.warning(\"Sorry,The Table No Data~\");\n emit(\"update:visible\", false); //无数据关闭弹窗\n } else {\n tableData.length = 0;\n const tempArr: any = reactive([]);\n res.forEach((ele: any) => {\n const temp: any = {\n id: ele.id,\n Brand: ele.brand ? ele.brand : \" \",\n \"Type Class\": ele.typeClass ? ele.typeClass : \" \",\n \"NST Group\": ele.nstGroup ? ele.nstGroup : \" \",\n \"NST Group Name\": ele.nstGroupName ? ele.nstGroupName : \" \",\n \"NST Group Name(IPlan)\": ele.vehicleNstGroupName\n ? ele.vehicleNstGroupName\n : \" \",\n \"*IMPACT Code\": ele.impactCode ? ele.impactCode : \" \",\n \"*IMPACT Model Name\": ele.impactModelName\n ? ele.impactModelName\n : \" \",\n \"*IMPACT Name\": ele.impactName ? ele.impactName : \" \",\n Validation: ele.validation ? true : false,\n Remark: ele.remark ? ele.remark : \" \",\n Tag: ele.tag ? ele.tag : false,\n };\n tempArr.push(temp);\n });\n Object.assign(tableData, handlerSheetsData(tempArr));\n ssHotTopInit();\n }\n })\n .catch((err) => {\n console.log(err, \"报错\");\n });\n };\n const initNstMapping = () => {\n getNstGroupList({ mcId: props.makeId }).then((res: any) => {\n getImpactCode(res);\n });\n };\n // 保存\n const handlerSave = () => {\n const data: NstMappingProps[] = [];\n Object.assign(data, handlerSheetsData(tableData, false));\n const params = {\n version: null,\n make: props.make,\n year: null,\n data,\n };\n\n saveNstMapping(params)\n .then(() => {\n message.success(\"Save successful!\");\n emit(\"update:visible\", false); //保存成功关闭弹窗\n })\n .catch((e: any) => {\n console.log(e);\n });\n };\n\n // 返回\n const handlerBack = () => {\n emit(\"update:visible\", false); //保存成功关闭弹窗\n };\n onMounted(() => {\n // ssHotTopInit()\n initNstMapping();\n });\n return {\n tableHeight,\n ssHotTopInit,\n ssHotTop,\n handlerSave,\n handlerBack,\n };\n },\n});\n","import { render } from \"./ImpactModel.vue?vue&type=template&id=2f4d7b6e&scoped=true&ts=true\"\nimport script from \"./ImpactModel.vue?vue&type=script&lang=ts\"\nexport * from \"./ImpactModel.vue?vue&type=script&lang=ts\"\n\nimport \"./ImpactModel.vue?vue&type=style&index=0&id=2f4d7b6e&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-2f4d7b6e\"]])\n\nexport default __exports__","\nimport { defineComponent, reactive, ref, toRefs,onBeforeUnmount } from \"vue\";\nimport {\n getDataPre,\n importData,\n computePBPData,\n checkNSTGroup,\n getCalculate,\n initProgramInfo,\n checkMSRP,\n seachVersion,\n importImpact\n} from \"@/API/closing\";\nimport downloadFile from \"@/utils/blobDownload\";\nimport CbuUpload from \"@/views/Closing/Tab/Cbu/Upload.vue\";\nimport MaintainModel from \"@/views/Closing/Tab/Components/MaintainModel.vue\";\nimport ImpactModel from \"@/views/Closing/Tab/Components/ImpactModel.vue\";\nimport { message } from \"ant-design-vue\";\nimport store from '@/store';\nexport default defineComponent({\n components: { CbuUpload, MaintainModel, ImpactModel },\n emits: [\"handle-show-pbp\", \"chang-tab\"],\n props: {\n make: {\n default: \"\",\n type: String\n },\n makeId: {\n default: 1,\n type: Number\n },\n makeYear: {\n default: \"\",\n type: String\n },\n makeMonth: {\n default: \"\",\n type: String\n },\n breadcrumbVersion: {\n default: \"\",\n type: String\n }\n },\n setup(props, { emit }) {\n const state = reactive({\n dlrResult: \"\",\n dlrData: {\n resultMsg: \"\",\n importDate: \"\",\n result: \"\",\n total:'',\n ResultMsg:\"\"\n },\n wsResult: \"\",\n wsData: {\n resultMsg: \"\",\n importDate: \"\",\n result: \"\",\n total:\"\",\n ResultMsg:\"\"\n },\n rtResult: \"\",\n rtData: {\n resultMsg: \"\",\n importDate: \"\",\n result: \"\",\n total:\"\",\n ResultMsg:\"\",\n },\n uploadResult: \"\",\n uploadData: {\n resultMsg: \"\",\n importDate: \"\",\n result: \"\"\n },\n impactResult: \"\",\n impact: {\n resultMsg: \"\",\n importDate: \"\",\n result: \"\"\n },\n nstResult: \"\",\n nst: {\n resultMsg: \"\",\n importDate: \"\",\n result: \"\"\n },\n msrpResult: \"\",\n msrp: {\n resultMsg: \"\",\n importDate: \"\",\n result: \"\"\n },\n pgResult: \"\",\n pgData: {\n resultMsg: \"\",\n total:'',\n ResultMsg: \"\",\n \n }\n });\n const showDrawer = ref(false);\n const finalVersion = ref(false);\n seachVersion({ mcId: props.makeId }).then(res => {\n finalVersion.value = res.finalVersion;\n });\n // programs手动获取导入数据\n const initPg = () => {\n initProgramInfo(props.makeId).catch(() => {\n state.pgResult = \"error\";\n state.pgData = { resultMsg: \"Validate error\" , total:'',\n ResultMsg: \"\",};\n });\n };\n\n const changeFirstLetter=(str: any)=>{\n if (str){\n //转换为字符串数组\n const array = str.toLowerCase().split(\" \")\n for (let i =0 ;i < array.length; i++){\n //给数组的每一个元素重新赋值,将首字母变为大写\n array[i]=array[i][0].toUpperCase()+array[i].substring(1,array[i].length)\n }\n const string = array.join(\" \")\n return string\n }\n \n }\n \n // 定时器\n const timer = ref(null);\n const initData = () => {\n store.commit(\n 'updateIsPolling',\n false\n );\n getDataPre({ mcId: props.makeId }).then(res => {\n store.commit(\n 'updateIsPolling',\n true\n );\n state.dlrData = {\n resultMsg: \"\",\n importDate: \"\",\n result: \"\",\n total:'',\n ResultMsg:\"\"\n };\n state.wsData = {\n resultMsg: \"\",\n importDate: \"\",\n result: \"\",\n total:\"\",\n ResultMsg:\"\",\n };\n state.rtData = {\n resultMsg: \"\",\n importDate: \"\",\n result: \"\",\n total:\"\",\n ResultMsg:\"\",\n };\n state.uploadData = {\n resultMsg: \"\",\n importDate: \"\",\n result: \"\"\n };\n state.impact = {\n resultMsg: \"\",\n importDate: \"\",\n result: \"\"\n };\n state.nst = {\n resultMsg: \"\",\n importDate: \"\",\n result: \"\"\n };\n state.msrp = {\n resultMsg: \"\",\n importDate: \"\",\n result: \"\"\n };\n state.pgData = {\n resultMsg: \"\",\n ResultMsg:'',\n total:\"\",\n };\n Object.assign(state.wsData, res.wsData);\n if (state.wsData.total||state.wsData.total=='0'){\n state.wsData.ResultMsg=`${changeFirstLetter(state.wsData.resultMsg)} ; ${state.wsData.total.toString().replace(/(\\d)(?=(?:\\d{3})+$)/g,'$1,')} Data Import`\n }\n Object.assign(state.rtData, res.rtData);\n if (state.rtData.total||state.wsData.total=='0'){\n state.rtData.ResultMsg=`${changeFirstLetter(state.rtData.resultMsg)} ; ${state.rtData.total.toString().replace(/(\\d)(?=(?:\\d{3})+$)/g,'$1,')} Data Import`\n }\n Object.assign(state.dlrData, res.dlrData);\n \n \n if (state.dlrData.total||state.dlrData.total=='0'){\n state.dlrData.ResultMsg=`${changeFirstLetter(state.dlrData.resultMsg)} ; ${state.dlrData.total.toString().replace(/(\\d)(?=(?:\\d{3})+$)/g,'$1,')} Data Import`\n }\n Object.assign(state.pgData, res.program);\n if (state.pgData.total||state.pgData.total=='0'){\n state.pgData.ResultMsg=`${changeFirstLetter(state.pgData.resultMsg)} ; ${state.pgData.total.toString().replace(/(\\d)(?=(?:\\d{3})+$)/g,'$1,')} Data Import`\n }\n Object.assign(state.nst, res.nst);\n \n \n Object.assign(state.msrp, res.msrp);\n Object.assign(state.uploadData, res.uploadData);\n Object.assign(state.impact, res.impact);\n state.dlrResult = res.dlrData?.result?.toLowerCase() || \"\";\n state.rtResult = res.rtData?.result?.toLowerCase() || \"\";\n state.wsResult = res.wsData?.result?.toLowerCase() || \"\";\n state.pgResult = res.program?.result?.toLowerCase() || \"\";\n state.nstResult = res.nst?.result?.toLowerCase() || \"\";\n state.msrpResult = res.msrp?.result?.toLowerCase() || \"\";\n state.uploadResult = res.uploadData?.result?.toLowerCase() || \"\";\n state.impactResult = res.impact?.result?.toLowerCase() || \"\";\n // if (\n // state.dlrResult !== \"loading\" &&\n // state.rtResult !== \"loading\" &&\n // state.wsResult !== \"loading\" &&\n // state.pgResult !== \"loading\"\n // ) {\n // timer.value && clearInterval(timer.value);\n // }\n });\n };\n let isTemp=false;//是否第一次进入\n const initNew=()=>{\n if (isTemp){\n initData()\n timer.value = setInterval(() => {\n \n initData();\n }, 5000);\n }\n isTemp=true;\n }\n initNew();\n const handleImport = async (arg: string) => {\n // 定义变量是为了并发请求,无实际业务意义\n let resWs, resDlr, resRt, init;\n // final版本 不允许点击\n if (finalVersion.value) return;\n switch (arg) {\n case \"c\":\n // if (state.wsResult !== \"loading\") {\n state.wsResult = \"loading\";\n state.wsData.resultMsg = \"Processing\";\n // }\n // if (state.dlrResult !== \"loading\") {\n state.dlrResult = \"loading\";\n state.dlrData.resultMsg = \"Processing\";\n // }\n // if (state.rtResult !== \"loading\") {\n state.rtResult = \"loading\";\n state.rtData.resultMsg = \"Processing\";\n // }\n // if (state.pgResult !== \"loading\") {\n state.pgResult = \"loading\";\n state.pgData.resultMsg = \"Processing\";\n\n await Promise.all([\n importData({ type: \"ws\", mcId: props.makeId }),\n importData({ type: \"dlr\", mcId: props.makeId }),\n importData({ type: \"rt\", mcId: props.makeId })\n ]);\n init = initPg();\n // }\n break;\n case \"v\":\n // if (state.impactResult !== \"loading\") {\n state.impactResult = \"loading\";\n state.impact.resultMsg = \"Processing\";\n resWs = importImpact({ mcId: props.makeId });\n // }\n // if (state.nstResult !== \"loading\") {\n state.nstResult = \"loading\";\n state.nst.resultMsg = \"Processing\";\n resRt = checkNSTGroup({ mcId: props.makeId });\n // }\n // if (state.msrpResult !== \"loading\") {\n state.msrpResult = \"loading\";\n state.msrp.resultMsg = \"Processing\";\n init = checkMSRP({ mcId: props.makeId });\n // }\n await resWs;\n await resRt;\n await resDlr;\n await init;\n break;\n case \"ws\":\n // if (state.wsResult !== \"loading\") {\n state.wsResult = \"loading\";\n state.wsData.resultMsg = \"Processing\";\n await importData({ type: \"ws\", mcId: props.makeId });\n // }\n break;\n case \"rt\":\n // if (state.rtResult !== \"loading\") {\n state.rtResult = \"loading\";\n state.rtData.resultMsg = \"Processing\";\n await importData({ type: \"rt\", mcId: props.makeId });\n // }\n break;\n case \"dlr\":\n // if (state.dlrResult !== \"loading\") {\n state.dlrResult = \"loading\";\n state.dlrData.resultMsg = \"Processing\";\n await importData({ type: \"dlr\", mcId: props.makeId });\n // }\n break;\n case \"nst\":\n // if (state.nstResult !== \"loading\") {\n state.nstResult = \"loading\";\n state.nst.resultMsg = \"Processing\";\n await checkNSTGroup({ mcId: props.makeId });\n // }\n break;\n case \"pg\": //添加programbase的初始化请求\n // if (state.pgResult !== \"loading\") {\n state.pgResult = \"loading\";\n state.pgData.resultMsg = \"Processing\";\n await initPg();\n // }\n break;\n case \"msrp\": //添加MSRP的初始化请求\n // if (state.msrpResult !== \"loading\") {\n state.msrpResult = \"loading\";\n state.msrp.resultMsg = \"Processing\";\n await checkMSRP({ mcId: props.makeId });\n // }\n break;\n case \"impact\": //添加MSRP的初始化请求\n // if (state.impactResult !== \"loading\") {\n state.impactResult = \"loading\";\n state.impact.resultMsg = \"Processing\";\n await importImpact({ mcId: props.makeId });\n // }\n break;\n default:\n break;\n }\n // timer.value = setInterval(() => {\n // initData();\n // }, 5000);\n };\n\n const handleExport = (arg: string) => {\n const url = \"/pcapi/closing/dataPreparation/export\";\n downloadFile({ url, params: { type: arg, mcId: props.makeId } });\n };\n const handlePbp = async () => {\n const res = await computePBPData({ mcId: props.makeId });\n if (res.code === \"0\") {\n emit(\"handle-show-pbp\");\n } else {\n message.error(\"Failed\");\n }\n };\n const handleUpload = () => {\n showDrawer.value = true;\n };\n const closeDrawer = () => {\n showDrawer.value = false;\n };\n const handleUploadSuccess = () => {\n initData();\n };\n const handleCalculate = async () => {\n const res = await getCalculate({ mcId: props.makeId });\n res.code === \"0\" &&\n emit(\n \"chang-tab\",\n \"GenerateClosing\",\n props.make,\n props.breadcrumbVersion,\n props.makeId,\n props.makeMonth,\n props.makeYear\n );\n };\n // 模态框事件\n const visible = ref(false);\n const handleModel = (): void => {\n visible.value = true;\n };\n const impactVisible = ref(false);\n // IMPACT Maintain弹窗\n const handleImpact = (): void => {\n impactVisible.value = true;\n };\n onBeforeUnmount(()=>{\n clearInterval(timer.value as any);\n })\n return {\n ...toRefs(state),\n handlePbp,\n initData,\n handleExport,\n handleImport,\n handleUpload,\n showDrawer,\n closeDrawer,\n handleUploadSuccess,\n handleCalculate,\n visible,\n handleModel,\n handleImpact,\n checkNSTGroup,\n initProgramInfo,\n impactVisible,\n timer,\n finalVersion,\n initNew\n };\n }\n});\n","import { render } from \"./DataPreparation.vue?vue&type=template&id=2cb29b60&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=2cb29b60&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-2cb29b60\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeStyle as _normalizeStyle, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-55bafc58\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"main\" }\nconst _hoisted_2 = { class: \"current-container\" }\nconst _hoisted_3 = { class: \"header-box\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"header-title\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", null, \"Overview\")\n], -1))\nconst _hoisted_5 = { class: \"header-content\" }\nconst _hoisted_6 = { class: \"first-table-box\" }\nconst _hoisted_7 = { class: \"total-stat-table\" }\nconst _hoisted_8 = { class: \"current-container\" }\nconst _hoisted_9 = { class: \"content-box\" }\nconst _hoisted_10 = { class: \"tab-bar\" }\nconst _hoisted_11 = [\"onClick\"]\nconst _hoisted_12 = { class: \"tab-content\" }\nconst _hoisted_13 = { key: 5 }\nconst _hoisted_14 = {\n key: 0,\n class: \"dealer-stock\"\n}\nconst _hoisted_15 = /*#__PURE__*/_createTextVNode(\"Yearly Dealer Stock Adj\")\nconst _hoisted_16 = /*#__PURE__*/_createTextVNode(\"Quarterly Dealer Stock Adj\")\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_program_base = _resolveComponent(\"program-base\")!\n const _component_blue_invoice = _resolveComponent(\"blue-invoice\")!\n const _component_interest = _resolveComponent(\"interest\")!\n const _component_special_adjustment = _resolveComponent(\"special-adjustment\")!\n const _component_release = _resolveComponent(\"release\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_dealer_stock_yearly = _resolveComponent(\"dealer-stock-yearly\")!\n const _component_dealer_stock = _resolveComponent(\"dealer-stock\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"table\", _hoisted_7, [\n _createElementVNode(\"caption\", null, _toDisplayString(_ctx.oneTitle), 1),\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.oneTable[0].name), 1),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.oneTable[0].value), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.twoTable[0].name), 1),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.twoTable[0].value), 1)\n ])\n ]),\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.oneTable[1].name), 1),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.oneTable[1].value), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.twoTable[1].name), 1),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.twoTable[1].value), 1)\n ])\n ])\n ])\n ]),\n _createVNode(_component_a_table, {\n size: \"small\",\n columns: _ctx.columnSearch2,\n \"data-source\": _ctx.dataSearch2,\n pagination: false,\n rowKey: (record, index) => index\n }, {\n cr: _withCtx(({ text }) => [\n _createElementVNode(\"span\", {\n style: _normalizeStyle({ color: _ctx.isActive == 0 ? '#1890ff' : '' })\n }, _toDisplayString(text), 5)\n ]),\n crTitle: _withCtx(() => [\n _createElementVNode(\"span\", {\n style: _normalizeStyle({ color: _ctx.isActive == 0 ? '#1890ff' : '' })\n }, \" C+R \", 4)\n ]),\n fleetUc: _withCtx(({ text }) => [\n _createElementVNode(\"span\", {\n style: _normalizeStyle({ color: _ctx.isActive == 0 ? '#1890ff' : '' })\n }, _toDisplayString(text), 5)\n ]),\n fleetUcTitle: _withCtx(() => [\n _createElementVNode(\"span\", {\n style: _normalizeStyle({ color: _ctx.isActive == 0 ? '#1890ff' : '' })\n }, \" Fleet&UC \", 4)\n ]),\n blueInvoice: _withCtx(({ text }) => [\n _createElementVNode(\"span\", {\n style: _normalizeStyle({ color: _ctx.isActive == 1 ? '#1890ff' : '' })\n }, _toDisplayString(text), 5)\n ]),\n customTitle: _withCtx(() => [\n _createElementVNode(\"span\", {\n style: _normalizeStyle({ color: _ctx.isActive == 1 ? '#1890ff' : '' })\n }, \" Blue Invoice \", 4)\n ]),\n interest: _withCtx(({ text }) => [\n _createElementVNode(\"span\", {\n style: _normalizeStyle({ color: _ctx.isActive == 2 ? '#1890ff' : '' })\n }, _toDisplayString(text), 5)\n ]),\n interestTitle: _withCtx(() => [\n _createElementVNode(\"span\", {\n style: _normalizeStyle({ color: _ctx.isActive == 2 ? '#1890ff' : '' })\n }, \" MBAFC Interest \", 4)\n ]),\n dlrStockAdj: _withCtx(({ text }) => [\n _createElementVNode(\"span\", {\n style: _normalizeStyle({ color: _ctx.isActive == 3 ? '#1890ff' : '' })\n }, _toDisplayString(text), 5)\n ]),\n dlrStockAdjTitle: _withCtx(() => [\n _createElementVNode(\"span\", {\n style: _normalizeStyle({ color: _ctx.isActive == 3 ? '#1890ff' : '' })\n }, \" DS Adj. \", 4)\n ]),\n specialAdj: _withCtx(({ text }) => [\n _createElementVNode(\"span\", {\n style: _normalizeStyle({ color: _ctx.isActive == 4 ? '#1890ff' : '' })\n }, _toDisplayString(text), 5)\n ]),\n specialTitle: _withCtx(() => [\n _createElementVNode(\"span\", {\n style: _normalizeStyle({ color: _ctx.isActive == 4 ? '#1890ff' : '' })\n }, \" Special Adj. \", 4)\n ]),\n release: _withCtx(({ text }) => [\n _createElementVNode(\"span\", {\n style: _normalizeStyle({ color: _ctx.isActive == 5 ? '#1890ff' : '' })\n }, _toDisplayString(text), 5)\n ]),\n releaseTitle: _withCtx(() => [\n _createElementVNode(\"span\", {\n style: _normalizeStyle({ color: _ctx.isActive == 5 ? '#1890ff' : '' })\n }, \" Release \", 4)\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"rowKey\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.caterageryCard, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"tab-btn\", {\n active: _ctx.isActive == item.id\n }]),\n key: item.id,\n onClick: ($event: any) => (_ctx.selectCard(item.id))\n }, _toDisplayString(item.name), 11, _hoisted_11))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n (_ctx.isActive == 0)\n ? (_openBlock(), _createBlock(_component_program_base, {\n key: 0,\n make: _ctx.make,\n makeId: _ctx.makeId,\n ref: \"programBase\",\n onRefreshTable: _ctx.initOverview\n }, null, 8, [\"make\", \"makeId\", \"onRefreshTable\"]))\n : (_ctx.isActive == 1)\n ? (_openBlock(), _createBlock(_component_blue_invoice, {\n key: 1,\n make: _ctx.make,\n makeId: _ctx.makeId,\n ref: \"blueInvoice\",\n activeName: _ctx.activeName,\n onRefreshTable: _ctx.initOverview\n }, null, 8, [\"make\", \"makeId\", \"activeName\", \"onRefreshTable\"]))\n : (_ctx.isActive == 2)\n ? (_openBlock(), _createBlock(_component_interest, {\n key: 2,\n make: _ctx.make,\n makeYear: _ctx.makeYear,\n makeMonth: _ctx.makeMonth,\n closingId: _ctx.makeId,\n interestSD: _ctx.dataSearch2[0].interest,\n onRefreshTable: _ctx.initOverview\n }, null, 8, [\"make\", \"makeYear\", \"makeMonth\", \"closingId\", \"interestSD\", \"onRefreshTable\"]))\n : (_ctx.isActive === 4)\n ? (_openBlock(), _createBlock(_component_special_adjustment, {\n key: 3,\n makeId: _ctx.makeId,\n make: _ctx.make,\n onRefreshOverview: _ctx.refreshOverview\n }, null, 8, [\"makeId\", \"make\", \"onRefreshOverview\"]))\n : (_ctx.isActive === 5)\n ? (_openBlock(), _createBlock(_component_release, {\n key: 4,\n makeId: _ctx.makeId,\n make: _ctx.make,\n onRefreshOverview: _ctx.refreshOverview\n }, null, 8, [\"makeId\", \"make\", \"onRefreshOverview\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n (_ctx.dealerStockType === null)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.handleDealerStockSelect('yearly'))),\n disabled: !_ctx.isYearlyAvailable\n }, {\n default: _withCtx(() => [\n _hoisted_15\n ]),\n _: 1\n }, 8, [\"disabled\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.handleDealerStockSelect('quarterly')))\n }, {\n default: _withCtx(() => [\n _hoisted_16\n ]),\n _: 1\n })\n ]))\n : (_ctx.dealerStockType === 'yearly')\n ? (_openBlock(), _createBlock(_component_dealer_stock_yearly, {\n key: 1,\n makeId: _ctx.makeId,\n make: _ctx.make,\n makeYear: _ctx.makeYear,\n onInitOverview: _ctx.initOverview\n }, null, 8, [\"makeId\", \"make\", \"makeYear\", \"onInitOverview\"]))\n : (_openBlock(), _createBlock(_component_dealer_stock, {\n key: 2,\n makeId: _ctx.makeId,\n make: _ctx.make,\n onInitOverview: _ctx.initOverview\n }, null, 8, [\"makeId\", \"make\", \"onInitOverview\"]))\n ]))\n ])\n ])\n ])\n ]))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0319e622\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"blue-main\" }\nconst _hoisted_2 = { class: \"count-table-box\" }\nconst _hoisted_3 = { class: \"handle-icon-box\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Upload\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Allocation\", -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Export\", -1))\nconst _hoisted_7 = { class: \"blue-table-box\" }\nconst _hoisted_8 = { class: \"left-table-box\" }\nconst _hoisted_9 = { class: \"left-header-layout\" }\nconst _hoisted_10 = { class: \"check-btn\" }\nconst _hoisted_11 = [\"onClick\"]\nconst _hoisted_12 = { class: \"expand-con\" }\nconst _hoisted_13 = /*#__PURE__*/_createTextVNode(\"Expand to Model\")\nconst _hoisted_14 = { class: \"dataTable-con\" }\nconst _hoisted_15 = { class: \"right-table-box\" }\nconst _hoisted_16 = { class: \"blue-table-header\" }\nconst _hoisted_17 = {\n key: 0,\n class: \"blue-select-btn\"\n}\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"col-name\" }, \"Total\", -1))\nconst _hoisted_19 = { class: \"cash-count\" }\nconst _hoisted_20 = { class: \"llp-count\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ver_table = _resolveComponent(\"ver-table\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_a_tooltip = _resolveComponent(\"a-tooltip\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_cbu_upload = _resolveComponent(\"cbu-upload\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_ver_table, {\n data: _ctx.dataTable,\n title: _ctx.dataTitle,\n isTitle: true,\n style: {\"width\":\"15%\"}\n }, null, 8, [\"data\", \"title\"]),\n _createVNode(_component_a_table, {\n class: \"total-table\",\n size: \"small\",\n columns: _ctx.columnCategory,\n \"data-source\": _ctx.dataCategory,\n pagination: false,\n rowKey: (record, index) => index\n }, null, 8, [\"columns\", \"data-source\", \"rowKey\"]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_a_tooltip, { placement: \"top\" }, {\n title: _withCtx(() => [\n _hoisted_4\n ]),\n default: _withCtx(() => [\n (_ctx.$btnPermissions('PC0505') && !_ctx.blueInvoiceLock)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"font_family icon-shangchuan myicon\",\n style: {\"font-size\":\"20px\"},\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.handleUpload && _ctx.handleUpload(...args)))\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createVNode(_component_a_tooltip, { placement: \"top\" }, {\n title: _withCtx(() => [\n _hoisted_5\n ]),\n default: _withCtx(() => [\n (_ctx.$btnPermissions('PC0507') && !_ctx.blueInvoiceLock)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"font_family icon-Allocation myicon\",\n style: {\"font-size\":\"20px\"},\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.allocation && _ctx.allocation(...args)))\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createVNode(_component_a_tooltip, { placement: \"top\" }, {\n title: _withCtx(() => [\n _hoisted_6\n ]),\n default: _withCtx(() => [\n (_ctx.$btnPermissions('PC0506'))\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"font_family icon-a-Exportexecl myicon\",\n style: {\"font-size\":\"20px\"},\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.exportFile && _ctx.exportFile(...args)))\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.blueCategory, (item) => {\n return (_openBlock(), _createElementBlock(\"p\", {\n class: _normalizeClass([\"blue-select-btn\", [item.isActive?'active-blue-select-btn':'noactive-blue-select-btn']]),\n key: item.id,\n onClick: ($event: any) => (_ctx.cateGerySel(item))\n }, _toDisplayString(item.name), 11, _hoisted_11))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(_component_a_checkbox, {\n checked: _ctx.checked,\n \"onUpdate:checked\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.checked) = $event)),\n onChange: _ctx.expandModel\n }, {\n default: _withCtx(() => [\n _hoisted_13\n ]),\n _: 1\n }, 8, [\"checked\", \"onChange\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_a_table, {\n size: \"small\",\n rowKey: \"id\",\n columns: _ctx.columns,\n \"data-source\": _ctx.queryListData,\n pagination: false,\n scroll: { x: 600, y: _ctx.tableHeight },\n expandedRowKeys: _ctx.expandedRowKeys,\n onExpand: _ctx.onExpand,\n expandRowByClick: true\n }, null, 8, [\"columns\", \"data-source\", \"scroll\", \"expandedRowKeys\", \"onExpand\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", _hoisted_16, [\n (_ctx.make == 'CBU' || _ctx.make == 'PBP')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_17, _toDisplayString(_ctx.make == \"CBU\"\n ? \"Price Adjustment\"\n : _ctx.make == \"PBP\"\n ? \"BBAC Direct Sales\"\n : \"\"), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(_component_a_table, {\n class: \"total-table\",\n size: \"small\",\n columns: _ctx.blueRightTable,\n \"data-source\": _ctx.blueRightTableData,\n pagination: false,\n scroll: { y: _ctx.tableHeightR },\n rowKey: \"commissionNo\"\n }, {\n footer: _withCtx(() => [\n _hoisted_18,\n _createVNode(_component_a_tooltip, { placement: \"bottom\" }, {\n title: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.blueRightCashCount), 1)\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"p\", _hoisted_19, _toDisplayString(_ctx.blueRightCashCount), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_a_tooltip, { placement: \"bottom\" }, {\n title: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.blueRightLLPCount), 1)\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"p\", _hoisted_20, _toDisplayString(_ctx.blueRightLLPCount), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"scroll\"])\n ])\n ]),\n (_ctx.showDrawer)\n ? (_openBlock(), _createBlock(_component_cbu_upload, {\n key: 0,\n showDrawer: _ctx.showDrawer,\n make: _ctx.make,\n makeId: _ctx.makeId,\n onHandleUploadSuccess: _ctx.handleUploadSuccess,\n onCloseDrawer: _ctx.closeDrawer\n }, null, 8, [\"showDrawer\", \"make\", \"makeId\", \"onHandleUploadSuccess\", \"onCloseDrawer\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, 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-170ad68a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { style: {\"color\":\"#1890ff\",\"font-size\":\"18px\"} }\nconst _hoisted_2 = { class: \"down-line-box\" }\nconst _hoisted_3 = { class: \"upload-com\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", { src: _imports_0 }, null, -1))\nconst _hoisted_5 = /*#__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_6 = { key: 1 }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"file upload\", -1))\nconst _hoisted_8 = { style: {\n width: '100%',\n borderTop: '1px solid #e9e9e9',\n padding: '10px 16px',\n background: '#fff',\n textAlign: 'right',\n zIndex: 1,\n } }\nconst _hoisted_9 = /*#__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: \"Upload Blue Invoice Car Category\",\n closable: true,\n visible: _ctx.showDrawer,\n width: \"30%\",\n bodyStyle: { paddingTop: '5px' },\n onClose: _ctx.handleClose\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, \"Make: \" + _toDisplayString(_ctx.make), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"a\", {\n class: \"down-line-btn\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.downLoadTemp && _ctx.downLoadTemp(...args)))\n }, \"Download Template\")\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\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_4,\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"customRequest\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _hoisted_7,\n _createVNode(_component_a_progress, { percent: _ctx.percent }, null, 8, [\"percent\"])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_a_button, {\n type: _ctx.uploadFlag?'':'primary',\n onClick: _ctx.handleUpload,\n disabled: _ctx.uploadFlag\n }, {\n default: _withCtx(() => [\n _hoisted_9\n ]),\n _: 1\n }, 8, [\"type\", \"onClick\", \"disabled\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onClose\"]))\n}","\nimport { defineComponent, ref, reactive } from \"vue\";\nimport { uploadBlueInvoiceCategory } from \"@/API/closing\";\nimport { message } from \"ant-design-vue\";\nimport downloadFile from \"@/utils/rv/downloadFile\";\nimport isExcel from \"@/utils/closing/isExcel\";\nexport default defineComponent({\n emits: [\"close-drawer\", \"handle-upload-success\"],\n props: {\n showDrawer: {\n default: false,\n type: Boolean,\n },\n make: {\n default: '',\n type: String\n },\n makeId: {\n default: -1,\n type: Number,\n }\n },\n setup(props, { emit }) {\n // 是否显示上传框\n const showUpload = ref(true);\n const percent = ref(0);\n const uploadFlag = ref(true);\n const file = ref();\n const handleClose = () => {\n emit(\"close-drawer\");\n };\n const uploadConfig = {\n onUploadProgress: (progressEvent: any) => {\n if (progressEvent.lengthComputable) {\n const complete =\n ((progressEvent.loaded / progressEvent.total) * 100) | 0;\n percent.value = complete;\n }\n },\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 const fileIsExcel = await isExcel(file.value);\n\n const resetComponentStatus = () => {\n showUpload.value = true;\n uploadFlag.value = true;\n percent.value = 0;\n };\n\n if (!fileIsExcel) {\n message.error(\"File type error\");\n resetComponentStatus();\n return;\n }\n\n const data = new FormData();\n data.append(\"file\", file.value);\n\n try {\n const res = await uploadBlueInvoiceCategory({mcId: props.makeId}, data, uploadConfig);\n // 上传之后重置上传组件状态\n showUpload.value = true;\n uploadFlag.value = true;\n percent.value = 0;\n if (res.code === \"0\") {\n message.success(\"submit success\");\n emit(\"handle-upload-success\");\n } else {\n message.error(\"submit failed\");\n }\n } catch (e) {\n // 上传出错重置上传组件状态\n resetComponentStatus();\n }\n };\n // 下载模板\n const downLoadTemp = () => {\n downloadFile({\n url: '/pcapi/closing/blueInvoice/category/template',\n method: 'get',\n fileName: 'oasis_blue_invoice_template.xlsx'\n })\n };\n // 上传列表\n const columnFileList = reactive([\n {\n dataIndex: \"fileName\",\n key: \"fileName\",\n slots: { title: \"customTitle\", customRender: \"fileName\" },\n },\n {\n dataIndex: \"uploadTime\",\n key: \"uploadTime\",\n slots: { title: \"uploadTitle\", customRender: \"uploadTime\" },\n },\n ]);\n const dataFileList = reactive([\n {\n fileName: \"Flie xxx1\",\n uploadTime: \"2021-11-11\",\n },\n {\n fileName: \"Flie xxx2\",\n uploadTime: \"2021-11-11\",\n },\n ]);\n return {\n handleClose,\n uploadRequest,\n handleUpload,\n showUpload,\n uploadFlag,\n percent,\n downLoadTemp,\n columnFileList,\n dataFileList,\n };\n },\n});\n","import { render } from \"./BlueUpload.vue?vue&type=template&id=170ad68a&scoped=true&ts=true\"\nimport script from \"./BlueUpload.vue?vue&type=script&lang=ts\"\nexport * from \"./BlueUpload.vue?vue&type=script&lang=ts\"\n\nimport \"./BlueUpload.vue?vue&type=style&index=0&id=170ad68a&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-170ad68a\"]])\n\nexport default __exports__","\nimport { defineComponent, ref, reactive } from \"vue\";\nimport {\n getDirectList,\n getTreeList,\n getCategory,\n getSubOverview,\n getTopic,\n getLockinfos\n} from \"@/API/closing\";\nimport CbuUpload from \"@/views/Closing/Tab/Components/BlueUpload.vue\";\nimport VerTable from \"@/views/Closing/Tab/Components/VerTable.vue\";\nimport blobDownload from \"@/utils/blobDownload\";\ninterface MyItem {\n id: number;\n isActive: boolean;\n name: string;\n}\n\nconst tableHeight = window.innerHeight - 400;\nconst tableHeightR = window.innerHeight - 443;\nexport default defineComponent({\n components: { CbuUpload, VerTable },\n emits: [\"refresh-table\"],\n props: {\n make: {\n type: String,\n default: \"\"\n },\n makeId: {\n type: Number,\n required: true\n },\n activeName: {\n type: String,\n default: \"\"\n }\n },\n setup(props, context) {\n // 统计表格信息\n const columnTotal = [\n {\n dataIndex: \"Total\",\n key: \"Total\",\n width: 120,\n slots: { title: \"customTitle\", customRender: \"Total\" }\n },\n {\n title: \"\",\n dataIndex: \"countNum\",\n key: \"countNum\"\n }\n ];\n const dataTotal = [\n {\n Total: \"Until\",\n countNum: 202\n },\n {\n Total: \"SD%\",\n countNum: \"3%\"\n }\n ];\n const showPrompt = ref(\"\");\n // 温馨提示\n const getTopicInfo = () => {\n getTopic({ page: \"BLUE_INVOICE\" }).then(res => {\n showPrompt.value = res;\n });\n };\n getTopicInfo(); //获取提示信息\n // 上传\n const showDrawer = ref(false);\n const handleUpload = () => {\n showDrawer.value = true;\n };\n const closeDrawer = () => {\n showDrawer.value = false;\n };\n\n const dataTable: any = reactive([]);\n const dataTitle = ref(\"Total\");\n\n // 分类表格信息(后端返回灵活信息)\n const columnCategory: any = reactive([]);\n const dataCategory = ref([]);\n\n // 左侧蓝票可折叠表格\n const columns = [\n {\n title: \"Vehicle\",\n dataIndex: \"make\",\n width: 66,\n align: \"left\",\n ellipsis: true\n },\n {\n title: \"\",\n dataIndex: \"brand\",\n width: 54,\n align: \"left\",\n ellipsis: true\n },\n {\n title: \"\",\n dataIndex: \"typeClass\",\n width: 60,\n align: \"left\",\n ellipsis: true\n },\n {\n title: \"\",\n dataIndex: \"model\",\n width: 100,\n align: \"left\",\n ellipsis: true\n },\n { title: \"Volume\", dataIndex: \"volume\", width: 60, align: \"right\" },\n { title: \"Avg.SI%\", dataIndex: \"avgSi\", width: 80, align: \"right\" },\n {\n title: \"Amount w/o VAT\",\n dataIndex: \"amountVAT\",\n width: 110,\n align: \"right\"\n }\n ];\n // 表格数据初始化\n const queryListData = ref([]);\n\n // 响应式对象\n const blueCategory = reactive([]);\n\n // 处理已选中类别数组\n const handleCateGeryParam = () => {\n const paramsCate: any = [];\n if (blueCategory.length) {\n blueCategory.forEach((ele: MyItem) => {\n if (ele.isActive) {\n paramsCate.push(ele.name);\n }\n return paramsCate;\n });\n return paramsCate;\n } else {\n return [];\n }\n };\n // 复选框初始化\n const checked = ref(false);\n // 表格行展开\n const expandedRowKeys = ref([]);\n // 全部数据\n // 因expandedRowKeys设置之后展开行会有问题 所以重写点击行逻辑\n const onExpand = (expanded: boolean, record: any) => {\n if (expanded) {\n // 设置展开窗Key,代表展开操作\n expandedRowKeys.value.push(record.id);\n } else {\n // 代表折叠操作\n if (expandedRowKeys.value.length) {\n expandedRowKeys.value = expandedRowKeys.value.filter((v: any) => {\n return v !== record.id;\n });\n }\n }\n };\n\n // 获取数据所有id\n const getAllId = () => {\n const arr: any = [];\n const data = queryListData.value;\n data.length &&\n data.forEach((item: any) => {\n if (item.children && item.children.length) {\n arr.push(item.id);\n item.children.forEach((item: any) => {\n if (item.children && item.children.length) {\n arr.push(item.id);\n item.children.forEach((item: any) => {\n arr.push(item.id);\n });\n }\n });\n }\n });\n return arr;\n };\n // 获取到Type Class层级所有数据id\n const getTypeClassId = () => {\n const arr: any = [];\n queryListData.value.length &&\n queryListData.value.forEach((item: any) => {\n arr.push(item.id);\n if (item.children && item.children.length) {\n arr.push(item.id);\n item.children.forEach((item: any) => {\n arr.push(item.id);\n });\n }\n });\n return arr;\n };\n\n // 展开type class层级\n const expandTypeClass = () => {\n const data = getTypeClassId();\n Object.assign(expandedRowKeys.value, data);\n };\n\n // 展开折叠\n const expandModel = () => {\n const data = getAllId();\n if (checked.value) {\n Object.assign(expandedRowKeys.value, data);\n } else {\n expandedRowKeys.value = [];\n expandTypeClass();\n }\n };\n // 右侧蓝票Adj或者BBAC表格\n const blueRightTable = [\n {\n title: \"No.\",\n key: \"No.\",\n width: 58,\n align: \"center\",\n customRender: function({ index }: any) {\n return index + 1;\n }\n },\n {\n title: \"Commission No.\",\n dataIndex: \"commissionNo\",\n key: \"commissionNo\",\n width: 118,\n align: \"center\",\n ellipsis: true\n },\n {\n title: \"Material No.\",\n dataIndex: \"materialNo\",\n key: \"materialNo\",\n width: 118,\n align: \"center\",\n ellipsis: true\n },\n {\n title: \"Model Name\",\n dataIndex: \"modelName\",\n key: \"modelName\",\n align: \"left\",\n ellipsis: true\n },\n {\n title: \"Cash Discount\",\n dataIndex: \"cashDiscount\",\n key: \"cashDiscount\",\n align: \"right\",\n width: 100\n },\n {\n title: \"LLP\",\n dataIndex: \"llp\",\n key: \"llp\",\n align: \"right\",\n width: 100\n }\n ];\n const blueRightTableData = ref([]);\n const blueRightLLPCount = ref(0);\n const blueRightCashCount = ref(0);\n\n // 获取price Adj或BBAC的信息 getTreeList\n const getDirectData = () => {\n getDirectList({ mcId: props.makeId == -1 ? 5 : props.makeId })\n .then(res => {\n blueRightTableData.value = res.detailVOList;\n blueRightCashCount.value = res.totalCashDiscount;\n blueRightLLPCount.value = res.totalLLP;\n })\n .catch(err => {\n console.log(err, \"报错\");\n });\n };\n // 递归数组\n const handleChildrenArr = (param: any) => {\n return param.forEach((ele: any) => {\n if (ele.children) {\n if (ele.children.length) {\n handleChildrenArr(ele.children);\n } else {\n delete ele.children;\n }\n }\n return param;\n });\n };\n // 获取左侧树形表格信息 getTreeList\n const getTreeData = async () => {\n const cateArr = Array.from(handleCateGeryParam());\n await getTreeList({\n mcId: props.makeId,\n categories: cateArr.length ? cateArr : [\"\"]\n }).then(res => {\n // copaId.value = res.pId;\n queryListData.value = Array.from(res);\n // 处理掉左侧表格数组数据中叶子数据中的children空数组字段,以解决树形表格中的叶子表格行不展示多余的展开符号。\n handleChildrenArr(queryListData.value);\n });\n expandTypeClass();\n };\n // 获取分类\n const getCateGery = async () => {\n const res = await getCategory({ mcId: props.makeId });\n blueCategory.length = 0;\n Array.from(res).map((item, i: number) => {\n // const str = item;\n const ele = reactive({\n name: `${item}`,\n id: i,\n isActive: true\n });\n blueCategory.push(ele);\n return blueCategory;\n });\n handleCateGeryParam();\n getTreeData();\n };\n const getSubOver = () => {\n getSubOverview({ mcId: props.makeId })\n .then(res => {\n dataTable.length = 0;\n columnCategory.length = 0;\n dataCategory.value = [];\n dataTable.push(...res.totalTable);\n columnCategory.push(...res.tableHeaders);\n dataCategory.value = res.subOverviewItemDtos;\n })\n .catch(err => {\n console.log(err, \"报错了\");\n });\n };\n // 左侧表格接口\n // 左侧蓝票类别复选框\n const cateGerySel = (item: any) => {\n item.isActive = !item.isActive;\n // 每次改变状态都要触发一次计算\n handleCateGeryParam();\n getTreeData();\n getDirectData(); //临时调用\n };\n const handleUploadSuccess = () => {\n // 上传成功后刷新蓝票类别接口\n getCateGery();\n };\n // 导出按钮\n const exportFile = () => {\n blobDownload({\n url: \"/pcapi/closing/blueInvoice/category/export\",\n params: { mcId: props.makeId }\n });\n };\n const blueInvoiceLock = ref(false);\n // 计算事件allocation,计算蓝票表格数据\n const allocation = () => {\n context.emit(\"refresh-table\");\n getSubOver(); //调用统计表格;\n getCateGery();\n getDirectData(); //临时调用\n getLockinfos({ mcId: props.makeId }).then(res => {\n blueInvoiceLock.value = res.blueInvoiceLock;\n });\n };\n allocation();\n return {\n showPrompt,\n getTopicInfo,\n checked,\n columnCategory,\n dataCategory,\n columnTotal,\n dataTotal,\n blueRightTable,\n blueRightTableData,\n columns,\n onExpand,\n expandedRowKeys,\n blueCategory,\n cateGerySel,\n expandModel,\n expandTypeClass,\n getTypeClassId,\n // 上传\n showDrawer,\n handleUpload,\n closeDrawer,\n handleUploadSuccess,\n exportFile,\n allocation,\n blueRightLLPCount,\n blueRightCashCount,\n getCateGery,\n handleCateGeryParam,\n dataTitle,\n dataTable,\n getSubOver,\n queryListData,\n tableHeight,\n tableHeightR,\n blueInvoiceLock\n };\n }\n});\n","import { render } from \"./BlueInvoice.vue?vue&type=template&id=0319e622&scoped=true&ts=true\"\nimport script from \"./BlueInvoice.vue?vue&type=script&lang=ts\"\nexport * from \"./BlueInvoice.vue?vue&type=script&lang=ts\"\n\nimport \"./BlueInvoice.vue?vue&type=style&index=0&id=0319e622&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-0319e622\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, 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, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f84e6c24\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"program-base\" }\nconst _hoisted_2 = { class: \"search-handle-box\" }\nconst _hoisted_3 = { class: \"search-select\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Program Code\", -1))\nconst _hoisted_5 = { class: \"search-select\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Program Name\", -1))\nconst _hoisted_7 = { class: \"search-select\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Program Status\", -1))\nconst _hoisted_9 = { class: \"search-btn\" }\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\"Search\")\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\"Reset\")\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\" Save \")\nconst _hoisted_13 = /*#__PURE__*/_createTextVNode(\" Export \")\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \" BU\", -1))\nconst _hoisted_15 = [\"onClick\"]\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"font_family icon-biaogeshaixuan\",\n style: {\"padding-left\":\"10px\"}\n}, null, -1))\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \" Closing Active\", -1))\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"font_family icon-biaogeshaixuan\",\n style: {\"padding-left\":\"10px\"}\n}, null, -1))\nconst _hoisted_19 = [\"title\"]\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_popover = _resolveComponent(\"a-popover\")!\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 _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createVNode(_component_a_input, {\n value: _ctx.pCodeArr,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.pCodeArr) = $event)),\n placeholder: \"Please Enter Code\",\n style: {\"width\":\"160px\"},\n allowClear: \"\",\n onPressEnter: _ctx.leave\n }, null, 8, [\"value\", \"onPressEnter\"])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n _createVNode(_component_a_input, {\n value: _ctx.pNameArr,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.pNameArr) = $event)),\n style: {\"width\":\"170px\"},\n placeholder: \"Please Enter Name\",\n allowClear: \"\",\n onPressEnter: _ctx.leave\n }, null, 8, [\"value\", \"onPressEnter\"])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _hoisted_8,\n _createVNode(_component_a_select, {\n placeholder: \"Please Select\",\n style: {\"width\":\"160px\"},\n onChange: _ctx.changeSel,\n value: _ctx.statusVal,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.statusVal) = $event)),\n allowClear: \"\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.pStatusArr, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.value,\n style: {\"width\":\"150px\"},\n key: item.value\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.lable), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"onChange\", \"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.filterSelArr\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n type: \"default\",\n onClick: _ctx.reset\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n (_ctx.$btnPermissions('PC0504'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"primary\",\n onClick: _ctx.saveBtn,\n style: {\"width\":\"80px\",\"height\":\"30px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_button, {\n type: \"primary\",\n size: \"small\",\n onClick: _ctx.handleExport,\n style: {\"margin-left\":\"12px\",\"width\":\"80px\",\"height\":\"30px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_13\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _createVNode(_component_a_table, {\n class: \"total-table\",\n size: \"small\",\n columns: _ctx.programTable,\n \"data-source\": _ctx.programTableData,\n pagination: false,\n scroll: { y: _ctx.tableHeight,x:true },\n rowKey: (record, index) => record.id\n }, {\n buTitle: _withCtx(() => [\n _hoisted_14,\n _createVNode(_component_a_popover, {\n visible: _ctx.buVisible,\n \"onUpdate:visible\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.buVisible) = $event)),\n trigger: \"click\",\n placement: \"bottom\"\n }, {\n content: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.buTypeArr, (item) => {\n return (_openBlock(), _createElementBlock(\"p\", {\n style: _normalizeStyle([{\"padding\":\"5px 0\",\"cursor\":\"pointer\"}, { color: _ctx.filterBu == item ? '#1890ff' : '#333' }]),\n onClick: ($event: any) => (_ctx.hidebu(item)),\n key: item\n }, _toDisplayString(item), 13, _hoisted_15))\n }), 128))\n ]),\n default: _withCtx(() => [\n _hoisted_16\n ]),\n _: 1\n }, 8, [\"visible\"])\n ]),\n cActiveTitle: _withCtx(() => [\n _hoisted_17,\n _createVNode(_component_a_popover, {\n visible: _ctx.visible,\n \"onUpdate:visible\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.visible) = $event)),\n trigger: \"click\",\n placement: \"bottom\"\n }, {\n content: _withCtx(() => [\n _createElementVNode(\"p\", {\n style: _normalizeStyle([{\"padding\":\"5px 0\",\"cursor\":\"pointer\"}, { color: _ctx.filterActive == 0 ? '#1890ff' : '#333' }]),\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.hide(0)))\n }, \" Active \", 4),\n _createElementVNode(\"p\", {\n style: _normalizeStyle([{\"padding\":\"5px 0\",\"cursor\":\"pointer\"}, { color: _ctx.filterActive == 1 ? '#1890ff' : '#333' }]),\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.hide(1)))\n }, \" InActive \", 4),\n _createElementVNode(\"p\", {\n style: _normalizeStyle([{\"padding\":\"5px 0\",\"cursor\":\"pointer\"}, { color: _ctx.filterActive == 2 ? '#1890ff' : '#333' }]),\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.hide(2)))\n }, \" All \", 4)\n ]),\n default: _withCtx(() => [\n _hoisted_18\n ]),\n _: 1\n }, 8, [\"visible\"])\n ]),\n programName: _withCtx(({ record }) => [\n _createElementVNode(\"p\", {\n title: record.programName,\n class: \"program-name\"\n }, _toDisplayString(record.programName), 9, _hoisted_19)\n ]),\n closingActive: _withCtx(({ record }) => [\n _createVNode(_component_a_checkbox, {\n checked: record.closingActive,\n \"onUpdate:checked\": ($event: any) => ((record.closingActive) = $event)\n }, null, 8, [\"checked\", \"onUpdate:checked\"])\n ]),\n comments: _withCtx(({ record }) => [\n _createVNode(_component_a_input, {\n value: record.comments,\n \"onUpdate:value\": ($event: any) => ((record.comments) = $event),\n maxlength: 100\n }, null, 8, [\"value\", \"onUpdate:value\"])\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"scroll\", \"rowKey\"])\n ]))\n}","\nimport { defineComponent, ref, reactive } from \"vue\";\nimport { getTopic, getTableInfo, saveTableInfo } from \"@/API/closing\";\nimport blobDownload from \"@/utils/blobDownload\";\nconst tableHeight = window.innerHeight - 400;\nexport default defineComponent({\n emits: [\"refresh-table\"],\n props: {\n make: {\n type: String,\n default: \"\"\n },\n makeId: {\n type: Number,\n required: true\n }\n },\n setup(props, context) {\n const showPrompt = ref(\"\");\n const programTable = reactive([\n {\n title: \"Program Code\",\n dataIndex: \"programCode\",\n key: \"programCode\",\n align: \"left\",\n width:200\n },\n {\n title: \"Program Name\",\n dataIndex: \"programName\",\n key: \"programName\",\n align: \"left\",\n ellipsis: true,\n slots: { customRender: \"programName\" },\n width: 350\n },\n {\n title: \"Make\",\n dataIndex: \"makes\",\n key: \"makes\",\n align: \"left\",\n ellipsis: true,\n width:150,\n },\n {\n dataIndex: \"bu\",\n key: \"bu\",\n align: \"left\",\n slots: { title: \"buTitle\", customRender: \"bu\" },\n width: 150,\n },\n {\n title: \"Offer Type\",\n dataIndex: \"offerTypes\",\n key: \"offerTypes\",\n align: \"left\",\n width:200,\n },\n {\n dataIndex: \"closingActive\",\n key: \"closingActive\",\n align: \"center\",\n slots: { title: \"cActiveTitle\", customRender: \"closingActive\" },\n width:150,\n },\n {\n title: \"Comments\",\n dataIndex: \"comments\",\n key: \"comments\",\n align: \"center\",\n slots: { customRender: \"comments\" },\n width: 300\n }\n ]);\n const programTableData: any = reactive([]);\n const programTableDataTemp: any = reactive([]);\n const statusVal = ref(undefined);\n\n const buTypeArr: any = ref([]);\n const selectedRowKeys = ref([]);\n const pStatusArr = ref([\n { lable: \"Approved\", value: \"Approved\" },\n { lable: \"Released\", value: \"Released\" }\n ]);\n const onSelectChange = (selectedRow: any) => {\n selectedRowKeys.value = selectedRow;\n };\n // 筛选表格框\n const visible = ref(false);\n // bu小框\n const buVisible = ref(false);\n const filterActive = ref(2); //默认选中全部\n const filterBu = ref(\"All\");\n // 帅选表格项,供下拉框使用;\n\n const pCodeArr = ref(\"\");\n const pNameArr = ref(\"\");\n const searchArr: any = [];\n // 筛选了pCode条件\n const filterPCode = () => {\n searchArr.length = 0;\n if (programTableData.length && pCodeArr.value) {\n programTableData.forEach((item: any) => {\n if (item.programCode.indexOf(pCodeArr.value) !== -1) {\n searchArr.push(item);\n }\n });\n programTableData.length = 0;\n programTableData.push(...searchArr);\n }\n };\n // 筛选了pName条件\n const filterPName = () => {\n searchArr.length = 0;\n if (programTableData.length && pNameArr.value) {\n programTableData.forEach((item: any) => {\n if (item.programName.indexOf(pNameArr.value) !== -1) {\n searchArr.push(item);\n }\n });\n programTableData.length = 0;\n programTableData.push(...searchArr);\n }\n };\n // 筛选了pstatus条件\n const filterPStatus = () => {\n searchArr.length = 0;\n if (programTableData.length && statusVal.value) {\n programTableData.forEach((item: any) => {\n if (item.programStatus == statusVal.value) {\n searchArr.push(item);\n }\n });\n programTableData.length = 0;\n programTableData.push(...searchArr);\n }\n };\n // 筛选bu列类型以供筛选\n const filterBU = () => {\n buTypeArr.value = [];\n if (programTableData.length) {\n programTableData.forEach((ele: any) => {\n if (!buTypeArr.value.includes(ele.bu)) {\n buTypeArr.value.push(ele.bu);\n }\n });\n buTypeArr.value.push(\"All\");\n }\n };\n\n // 查询条件选中情况\n const changeSel = (value: any) => {\n statusVal.value = value;\n };\n // 查询按钮事件\n const filterSelArr = () => {\n programTableData.length = 0;\n programTableData.push(...programTableDataTemp);\n searchArr.length = 0;\n if (pCodeArr.value) {\n filterPCode();\n }\n if (pNameArr.value) {\n filterPName();\n }\n if (statusVal.value) {\n filterPStatus();\n }\n filterActive.value = 2; //默认选中全部\n filterBu.value = \"All\";\n };\n // 温馨提示\n const getTopicInfo = () => {\n getTopic({ page: \"PROGRAM_BASE\" }).then(res => {\n showPrompt.value = res;\n });\n };\n getTopicInfo(); //获取提示信息\n // 获取表格数据\n const getTable = () => {\n getTableInfo({ closingId: props.makeId }).then((res: any) => {\n programTableData.length = 0;\n programTableDataTemp.length = 0;\n programTableData.push(...res);\n programTableDataTemp.push(...res);\n context.emit(\"refresh-table\");\n filterBU(); //筛选列表bu列类型\n });\n };\n getTable();\n const filterPActive = (param: number) => {\n searchArr.length = 0;\n if (programTableData.length) {\n if (param == 0) {\n programTableData.forEach((item: any) => {\n if (item.closingActive) {\n searchArr.push(item);\n }\n });\n programTableData.length = 0;\n programTableData.push(...searchArr);\n } else {\n programTableData.forEach((item: any) => {\n if (!item.closingActive) {\n searchArr.push(item);\n }\n });\n programTableData.length = 0;\n programTableData.push(...searchArr);\n }\n }\n };\n // 表格列筛选选中情况小窗事件\n const hide = (params: number) => {\n filterSelArr();\n filterActive.value = params;\n if (params == 0 || params == 1) {\n filterPActive(params);\n }\n visible.value = false;\n };\n // bu列数据筛选后展示的表格数据结果数组\n const buFilter = (param: string) => {\n if (param == \"All\") {\n getTable();\n } else {\n if (programTableData.length) {\n searchArr.length = 0;\n programTableData.forEach((ele: any) => {\n if (param == ele.bu) {\n searchArr.push(ele);\n }\n });\n programTableData.length = 0;\n programTableData.push(...searchArr);\n }\n }\n };\n // 表格bu列筛选选中情况小窗事件\n const hidebu = (item: string) => {\n filterSelArr();\n filterBu.value = item;\n buFilter(item);\n buVisible.value = false;\n };\n // 重置按钮事件\n const reset = () => {\n pCodeArr.value = \"\";\n pNameArr.value = \"\";\n statusVal.value = undefined; //外放清空\n filterActive.value = 2; //默认表格行数据选中全部\n filterBu.value = \"All\"; //默认选中BU列为空\n getTable();\n };\n const saveBtn = () => {\n saveTableInfo(programTableData).finally(() => {\n context.emit(\"refresh-table\"); //刷新上面表格更新计算结果\n });\n };\n const leave = (e: any) => {\n e.target.blur()\n };\n const handleExport = () => {\n const params = {\n url: `/pcapi/closing/program/programExportExcel`,\n params: {\n closingId: props.makeId\n }\n };\n blobDownload(params);\n };\n return {\n tableHeight,\n showPrompt,\n changeSel,\n programTable,\n programTableData,\n programTableDataTemp,\n selectedRowKeys,\n onSelectChange,\n visible,\n hide,\n filterActive,\n filterBu,\n pStatusArr,\n pCodeArr,\n pNameArr,\n filterSelArr,\n reset,\n saveBtn,\n statusVal,\n buVisible,\n hidebu,\n buTypeArr,\n leave,\n handleExport\n \n };\n }\n});\n","import { render } from \"./ProgramBase.vue?vue&type=template&id=f84e6c24&scoped=true&ts=true\"\nimport script from \"./ProgramBase.vue?vue&type=script&lang=ts\"\nexport * from \"./ProgramBase.vue?vue&type=script&lang=ts\"\n\nimport \"./ProgramBase.vue?vue&type=style&index=0&id=f84e6c24&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-f84e6c24\"]])\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, normalizeClass as _normalizeClass, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7fbfcbe9\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"count-table-box\" }\nconst _hoisted_2 = { class: \"temp-input\" }\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\" Name \")\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"Allocation\")\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"Input by Model\")\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\" Export \")\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\" Save \")\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\" Expand to Model \")\nconst _hoisted_9 = { class: \"check-btn\" }\nconst _hoisted_10 = [\"onClick\"]\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-tianjia11\" }, null, -1))\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\" Add \")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ver_table = _resolveComponent(\"ver-table\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\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_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_tab_pane = _resolveComponent(\"a-tab-pane\")!\n const _component_a_tabs = _resolveComponent(\"a-tabs\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_ver_table, {\n data: _ctx.totalTable,\n title: _ctx.dataTitle,\n isTitle: true,\n style: {\"width\":\"15%\"}\n }, null, 8, [\"data\", \"title\"]),\n _createVNode(_component_a_table, {\n class: \"total-table\",\n size: \"small\",\n columns: _ctx.columns,\n \"data-source\": _ctx.tableData,\n pagination: false,\n rowKey: (record, index) => index\n }, null, 8, [\"columns\", \"data-source\", \"rowKey\"])\n ]),\n _createVNode(_component_a_tabs, {\n activeKey: _ctx.activeKey,\n \"onUpdate:activeKey\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.activeKey) = $event)),\n type: \"card\",\n tabBarGutter: 0,\n size: \"small\",\n class: \"spec-tab\",\n onChange: _ctx.getTopicAndName\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.panes, (pane) => {\n return (_openBlock(), _createBlock(_component_a_tab_pane, {\n key: pane.key,\n tab: pane.title\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createVNode(_component_a_input, {\n placeholder: \"input\",\n size: \"small\",\n style: {\"width\":\"250px\"},\n value: _ctx.name,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.name) = $event)),\n onPressEnter: _ctx.leave\n }, null, 8, [\"value\", \"onPressEnter\"]),\n _createVNode(_component_a_select, {\n value: _ctx.topic,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.topic) = $event)),\n style: {\"width\":\"150px\",\"margin-left\":\"4px\"},\n size: \"small\",\n placeholder: \"Select Topic\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.topicArray, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.code,\n key: item.code\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.name), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\"]),\n _createVNode(_component_a_select, {\n value: _ctx.checkFlag,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.checkFlag) = $event)),\n onChange: _ctx.changeCheckFlag,\n style: {\"width\":\"150px\",\"margin-left\":\"40px\"},\n size: \"small\",\n placeholder: \"Select\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select_option, { value: \"Allocation\" }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }),\n _createVNode(_component_a_select_option, { value: \"Input\" }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"]),\n _withDirectives(_createVNode(_component_a_input, {\n value: _ctx.inputNumber,\n \"onUpdate:value\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.inputNumber) = $event)),\n placeholder: \"Input Allocation Amount\",\n size: \"small\",\n style: {\"width\":\"200px\",\"margin-left\":\"8px\"},\n onChange: _ctx.handelInputNumber,\n onBlur: _cache[4] || (_cache[4] = ($event: any) => (_ctx.bulrInputNumber())),\n onPressEnter: _ctx.leave\n }, null, 8, [\"value\", \"onChange\", \"onPressEnter\"]), [\n [_vShow, _ctx.checkFlag === 'Allocation']\n ]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n size: \"small\",\n onClick: _ctx.handleExport,\n style: {\"float\":\"right\",\"margin-right\":\"8px\",\"width\":\"80px\",\"height\":\"30px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n (_ctx.$btnPermissions('PC0509'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"primary\",\n size: \"small\",\n style: {\"float\":\"right\",\"margin-right\":\"8px\",\"width\":\"80px\",\"height\":\"30px\"},\n onClick: _ctx.handleSave\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_checkbox, {\n checked: _ctx.checked,\n \"onUpdate:checked\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.checked) = $event)),\n onChange: _ctx.expandModel,\n style: {\"float\":\"right\",\"margin-right\":\"16px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n }, 8, [\"checked\", \"onChange\"])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.brandArray, (item) => {\n return (_openBlock(), _createElementBlock(\"p\", {\n class: _normalizeClass([\"blue-select-btn\", { 'active-blue-select-btn': item.isSelect }]),\n key: item.id,\n onClick: ($event: any) => (_ctx.selectBrand(item))\n }, _toDisplayString(item.id), 11, _hoisted_10))\n }), 128))\n ]),\n _createVNode(_component_a_table, {\n class: \"table\",\n columns: _ctx.brandColumns,\n \"data-source\": _ctx.data,\n pagination: false,\n expandIconColumnIndex: 1,\n expandedRowKeys: _ctx.expandedRowKeys,\n onExpand: _ctx.onExpand,\n loading: _ctx.data.length < 1,\n rowKey: \"id\",\n size: \"small\",\n scroll: { y: _ctx.tableHeight }\n }, {\n operation: _withCtx(() => [\n _createVNode(_component_a_checkbox, {\n disabled: _ctx.checkFlag === 'Input',\n style: {\"float\":\"left\"},\n checked: _ctx.allFlag,\n \"onUpdate:checked\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.allFlag) = $event)),\n onChange: _ctx.selectAll\n }, null, 8, [\"disabled\", \"checked\", \"onChange\"])\n ]),\n checked: _withCtx(({ record }) => [\n _createVNode(_component_a_checkbox, {\n disabled: _ctx.checkFlag === 'Input',\n checked: record.checked,\n \"onUpdate:checked\": ($event: any) => ((record.checked) = $event),\n onChange: ($event: any) => (_ctx.changeChecked(record)),\n style: {\"float\":\"left\"}\n }, null, 8, [\"disabled\", \"checked\", \"onUpdate:checked\", \"onChange\"])\n ]),\n amount: _withCtx(({ record }) => [\n (_ctx.checkFlag === 'Input' && !record.children)\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 0,\n value: record.amountVAT,\n \"onUpdate:value\": ($event: any) => ((record.amountVAT) = $event),\n onFocus: ($event: any) => (_ctx.amountVATFocus(record)),\n onChange: ($event: any) => (_ctx.amountVATChange(record)),\n onBlur: ($event: any) => (_ctx.amountVATBlur(record)),\n onPressEnter: _ctx.leave,\n style: {\"margin\":\"-5px 0\",\"height\":\"24px\",\"text-align\":\"right\"}\n }, null, 8, [\"value\", \"onUpdate:value\", \"onFocus\", \"onChange\", \"onBlur\", \"onPressEnter\"]))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.addWsllpMicrometer(record.amountVAT)), 1)\n ], 64))\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"expandedRowKeys\", \"onExpand\", \"loading\", \"scroll\"])\n ]),\n _: 2\n }, 1032, [\"tab\"]))\n }), 128)),\n _createVNode(_component_a_tab_pane, null, {\n tab: _withCtx(() => [\n _createVNode(_component_a_button, {\n type: \"link\",\n class: \"add-btn\",\n onClick: _withModifiers(_ctx.add, [\"stop\"]),\n disabled: _ctx.newTabIndex > 9\n }, {\n default: _withCtx(() => [\n _hoisted_11,\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"activeKey\", \"onChange\"])\n ], 64))\n}","\nimport { defineComponent, ref, computed } from \"vue\";\nimport VerTable from \"@/views/Closing/Tab/Components/VerTable.vue\";\nimport {\n getSubInfo,\n getSpecBrand,\n getTopicName,\n getTreeTable,\n getTopic,\n getAdjustmentNo,\n postSaveData,\n} from \"@/API/closing\";\nimport { message } from \"ant-design-vue\";\nimport { TreeTableData } from \"@/views/Closing/type\";\nimport blobDownload from \"@/utils/blobDownload\";\ninterface DataPane {\n title: string;\n key: string;\n}\n\ninterface TypeBackUpData {\n id: number;\n amountVAT: string;\n brand: string;\n model: string;\n typeClass: string;\n make: string;\n}\n\ninterface AllocationDataReqsType {\n amount: string;\n brand: string;\n llp: string;\n make: string;\n model: string;\n typeClass: string;\n volume: number;\n}\n\ninterface ParamsDataType {\n adjustmentNo: string;\n allocationAmount: string;\n allocationDataReqs: AllocationDataReqsType[];\n mcId: number;\n name: string;\n allocationType: number;\n topicCode: string;\n type: number;\n}\n\ninterface BrandType {\n id: string;\n isSelect: boolean;\n}\nconst tableHeight = window.innerHeight - 440;\nexport default defineComponent({\n components: { VerTable },\n props: {\n makeId: {\n type: Number,\n required: true,\n },\n make: {\n type: String,\n required: true,\n },\n },\n emits: [\"refresh-overview\"],\n setup(props, { emit }) {\n let temp: number;\n const panes = ref([]);\n const activeKey = ref();\n const newTabIndex = ref(1);\n const checkFlag = ref(\"Allocation\");\n const dataTitle = ref(\"Total\");\n const tableData = ref([]);\n // 中间部分表格\n const columns = ref([]);\n const totalTable = ref([]);\n // tree table data\n const tempData = ref([]);\n // Brand\n const brandArray = ref([]);\n // 选择的Topic\n const topic = ref(\"\");\n const topicArray = ref([]);\n const name = ref(\"\");\n const brandColumns = ref([\n {\n dataIndex: \"operation\",\n key: \"operation\",\n width: \"30px\",\n slots: { title: \"operation\", customRender: \"checked\" },\n },\n {\n title: \"Vehicle\",\n dataIndex: \"make\",\n width: \"80px\",\n key: \"make\",\n align: \"left\",\n },\n {\n title: \"\",\n dataIndex: \"brand\",\n width: \"100px\",\n key: \"brand\",\n align: \"center\",\n },\n {\n title: \"\",\n dataIndex: \"typeClass\",\n width: \"100px\",\n key: \"typeClass\",\n align: \"center\",\n },\n {\n title: \"\",\n dataIndex: \"model\",\n key: \"model\",\n align: \"left\",\n width: \"250px\",\n },\n {\n title: \"Avg. SI%\",\n dataIndex: \"avgSi\",\n key: \"avgSi\",\n align: \"right\",\n },\n {\n title: \"Amount w/o VAT\",\n dataIndex: \"amountVAT\",\n key: \"amountVAT\",\n className:'',\n align: \"right\",\n width: \"180px\",\n slots: { customRender: \"amount\" },\n },\n {\n title: \"WS Volume\",\n dataIndex: \"volume\",\n key: \"volume\",\n align: \"right\",\n },\n {\n title: \"WS LLP\",\n dataIndex: \"llp\",\n width: \"150px\",\n key: \"llp\",\n align: \"right\",\n },\n ]);\n if (props.make === \"VAN\") {\n brandColumns.value.forEach((item) => {\n item.title = item.title?.replace(\"WS\", \"RT\");\n if (item.title === \"WS Volume\") {\n item.title = \"RT Volume\";\n }\n if (item.title === \"WS LLP\") {\n item.title = \"RT LLP\";\n }\n });\n }\n const initData = async () => {\n const res = await getSubInfo({ mcId: props.makeId });\n totalTable.value = res.totalTable;\n columns.value = res.tableHeaders.map((item: any) => {\n item.align = \"right\";\n item.width = \"150px\";\n return item;\n });\n tableData.value = res.subOverviewItemDtos;\n };\n initData();\n // INPUT 文字提示\n const inputText = ref(\"\");\n // Allocation Input Number\n const inputNumber = ref();\n getTopic({ page: \"ADJUSTMENT\" }).then((res) => {\n inputText.value = res;\n });\n const data = computed(() => tempData.value);\n // 表格全选按钮\n const allFlag = ref(false);\n // 判断复选表头\n const checkAllFlag = () => {\n allFlag.value = tempData.value.length > 0;\n tempData.value.forEach((item) => {\n if (!item.checked) {\n allFlag.value = false;\n return;\n }\n });\n };\n // 判断父级 复选框 是否勾选\n const checkParent = (arr: TreeTableData[]) => {\n arr.forEach((item) => {\n item.children?.forEach((el) => {\n if (!el.checked) {\n item.checked = false;\n allFlag.value = false;\n }\n if (item.children?.length > 0) checkParent(item.children);\n // 祖先 后代 后代勾选,递归判断\n item.checked = item.children?.every((el) => el.checked);\n });\n if (item.children?.length > 0) checkParent(item.children);\n });\n };\n const changeChecked = (record: TreeTableData) => {\n const generate = (record: TreeTableData) => {\n if (record.children) {\n record.children?.forEach((item: TreeTableData) => {\n item.checked = record.checked;\n if (item.children && item.children.length > 0) generate(item);\n });\n }\n };\n generate(record);\n checkParent(tempData.value);\n // 判断复选表头\n checkAllFlag();\n };\n // Tree Table Data\n let backUpTableData: TypeBackUpData[];\n const selectAll = () => {\n const generate = (arr: TreeTableData[]) => {\n arr.forEach((item) => {\n // 去除小数点后面0\n item.amountVAT = item.amountVAT.replace(/(?:\\.0*|(\\.\\d+?)0+)$/, \"$1\");\n item.checked = allFlag.value;\n if (item.children?.length > 0) {\n generate(item.children);\n }\n });\n };\n generate(tempData.value);\n checkParent(tempData.value);\n // 判断复选表头\n checkAllFlag();\n };\n const changeCheckFlag = () => {\n if(checkFlag.value==='Input'){\n brandColumns.value[6].className='higLight'\n }else{\n brandColumns.value[6].className=''\n }\n \n allFlag.value = checkFlag.value === \"Allocation\";\n selectAll();\n // inputNumber.value = \"\";\n };\n // Expend复选框初始化\n const checked = ref(false);\n // 表格行展开\n const expandedRowKeys = ref([]);\n // 获取Tree Data数据所有id\n const getAllId = () => {\n const tempArray: number[] = [];\n const generate = (arr: TreeTableData[]) => {\n arr.forEach((item: TreeTableData) => {\n tempArray.push(item.id);\n if (item.children?.length > 0) {\n generate(item.children);\n }\n });\n };\n generate(tempData.value);\n return tempArray;\n };\n // 获取到Type Class层级所有数据id\n const getTypeClassId = () => {\n const tempArray: number[] = [];\n const generate = (arr: TreeTableData[]) => {\n arr.forEach((item: TreeTableData) => {\n tempArray.push(item.id);\n // 展开到model\n if (item.children[0].children[0].children?.length > 0) {\n generate(item.children);\n }\n });\n };\n generate(tempData.value);\n return tempArray;\n };\n // 展开type class层级\n const expandTypeClass = () => {\n const data = getTypeClassId();\n Object.assign(expandedRowKeys.value, data);\n };\n\n // 展开折叠\n const expandModel = () => {\n const data = getAllId();\n if (checked.value) {\n Object.assign(expandedRowKeys.value, data);\n } else {\n expandedRowKeys.value = [];\n expandTypeClass();\n }\n };\n // 因expandedRowKeys设置之后展开行会有问题 所以重写点击展开行逻辑\n const onExpand = (expanded: boolean, record: TreeTableData) => {\n if (expanded) {\n // 设置展开窗Key,代表展开操作\n expandedRowKeys.value.push(record.id);\n } else {\n // 代表折叠操作\n if (expandedRowKeys.value.length) {\n expandedRowKeys.value = expandedRowKeys.value.filter((v: any) => {\n return v !== record.id;\n });\n }\n }\n };\n\n // 小数添加千分符\n const addWsllpMicrometer = (amountVAT: string) => {\n let str;\n str = amountVAT + \"\";\n if (str) {\n str = str.replace(/,/g, \"\");\n if (str.indexOf(\".\") > -1) {\n str = parseFloat(str).toFixed(0);\n }\n str = parseFloat(str) + \"\";\n str = str.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, \"$1,\");\n return str;\n } else {\n return \"\";\n }\n };\n let isBrand: boolean;\n // Tree Table\n const getTreeTableData = async () => {\n let brands: string[] = [];\n brandArray.value.forEach((item) => {\n if (item.isSelect) {\n brands.push(item.id);\n }\n });\n brands = brands.length > 0 ? brands : [\"\"];\n const res = await getTreeTable({\n mcId: props.makeId,\n adjustmentNo: activeKey.value,\n type: 1,\n brands: brands,\n });\n tempData.value = [];\n tempData.value = res.commonTreeVOS;\n if (!isBrand) {\n topic.value = res.topicCode; \n name.value = res.name;\n inputNumber.value =\n res.allocationAmount === null ? \"\" : res.allocationAmount;\n checkFlag.value = res.allocationType === 0 ? \"Input\" : \"Allocation\";\n }\n isBrand = false;\n backUpTableData = [];\n const generate = (arr: TreeTableData[]) => {\n arr.forEach((item) => {\n // 去除小数点后面0\n item.amountVAT = item.amountVAT.replace(/(?:\\.0*|(\\.\\d+?)0+)$/, \"$1\");\n // item.checked = allFlag.value;\n backUpTableData.push({\n id: item.id,\n brand: item.brand,\n make: item.make,\n model: item.model,\n typeClass: item.typeClass,\n amountVAT: item.amountVAT,\n });\n // 显示整数\n item.amountVAT = Math.round(parseFloat(item.amountVAT)).toString();\n if (item.children?.length > 0) {\n generate(item.children);\n } else {\n item.brand = \"\";\n item.typeClass = \"\";\n item.make = \"\";\n // eslint-disable-next-line\n // @ts-ignore\n delete item.children;\n }\n });\n };\n generate(tempData.value);\n // changeCheckFlag();\n expandTypeClass();\n checkAllFlag();\n };\n\n const add = () => {\n activeKey.value = `${++newTabIndex.value}`;\n panes.value.push({\n title: `Adjustment ${activeKey.value}`,\n key: activeKey.value,\n });\n tempData.value = [];\n brandArray.value.forEach((item) => {\n item.isSelect = true;\n });\n getTreeTableData();\n name.value = \"\";\n topic.value = \"\";\n inputNumber.value = \"\";\n };\n // 获取Topic & Name\n const getTopicAndName = async () => {\n const res = await getTopicName({\n mcId: props.makeId,\n adjustmentNo: activeKey.value,\n type: 1,\n });\n const compare=(value: any)=>{\n return function(a: any,b: any){\n const value1=a[value];\n const value2=b[value];\n return value1-value2;\n }\n }\n topicArray.value = res.topicList.sort(compare('code'));\n \n name.value = res.name;\n // 重置展开状态到model层\n checked.value = false;\n expandModel();\n inputNumber.value = \"\";\n getTreeTableData();\n };\n const selectBrand = (item: BrandType) => {\n item.isSelect = !item.isSelect;\n isBrand = true;\n getTreeTableData();\n };\n\n // 修改框添加千分符并只保留15位小数\n const inputAddMicrometer = (amountVAT: string) => {\n let str;\n str = amountVAT.replace(/[^\\-\\d.]/g, \"\");\n if (str) {\n str = str.replace(/,/g, \"\");\n const hasPot = str.indexOf(\".\");\n if (hasPot > -1) {\n let leftNum = str.substring(0, hasPot);\n let rightNum = str.substring(hasPot + 1, str.length);\n leftNum = leftNum.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, \"$1,\");\n if (rightNum.length > 15) {\n rightNum = str.substring(hasPot + 1, hasPot + 16);\n }\n str = leftNum + \".\" + rightNum;\n } else {\n str = str.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, \"$1,\");\n }\n return str;\n } else {\n return \"\";\n }\n };\n // allocation input number\n const handelInputNumber = () => {\n inputNumber.value = inputAddMicrometer(inputNumber.value);\n inputNumber.value = inputNumber.value.replace(/,/g, \"\");\n const hasPot = inputNumber.value.indexOf(\".\");\n if (hasPot > -1) {\n let leftNum = inputNumber.value.substring(0, hasPot);\n let rightNum = inputNumber.value.substring(\n hasPot + 1,\n inputNumber.value.length\n );\n leftNum = leftNum.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, \"$1,\");\n if (rightNum.length > 2) {\n rightNum = inputNumber.value.substring(hasPot + 1, hasPot + 3);\n }\n inputNumber.value = leftNum + \".\" + rightNum;\n } else {\n inputNumber.value = inputNumber.value.replace(\n /(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g,\n \"$1,\"\n );\n }\n };\n // 获取最大 AdjustmentNo\n const getAdjustmentCount = async () => {\n let res = await getAdjustmentNo({ mcId: props.makeId });\n res = res < 1 ? 1 : res;\n for (let i = 1; i <= res; i++) {\n panes.value.push({ title: `Adjustment ${i}`, key: `${i}` });\n }\n newTabIndex.value = res;\n activeKey.value = panes.value[0].key;\n getTopicAndName();\n };\n getAdjustmentCount();\n\n // 保存按钮\n const handleSave = async () => {\n if (!topic.value) {\n message.error(\"Topic can not be empty\");\n return;\n }\n if (!name.value) {\n message.error(\"Name can not be empty\");\n return;\n }\n if (checkFlag.value === \"Allocation\" && inputNumber.value === \"\") {\n message.error(\"Allocation can not be empty\");\n return;\n }\n const paramsData: ParamsDataType = {\n adjustmentNo: activeKey.value,\n allocationAmount: inputNumber.value,\n allocationDataReqs: [],\n mcId: props.makeId,\n name: name.value,\n allocationType: checkFlag.value === \"Allocation\" ? 1 : 0,\n topicCode: topic.value,\n type: 1,\n };\n\n const generate = (arr: TreeTableData[]) => {\n arr.forEach((item: TreeTableData) => {\n if (\n checkFlag.value === \"Allocation\" &&\n item.checked &&\n !item.children\n ) {\n backUpTableData.forEach((e) => {\n if (item.id === e.id) {\n paramsData.allocationDataReqs.push({\n amount: item.amountVAT,\n brand: e.brand,\n llp: item.llp,\n make: e.make,\n model: e.model,\n typeClass: e.typeClass,\n volume: item.volume,\n });\n }\n });\n } else if (checkFlag.value === \"Input\" && !item.children) {\n backUpTableData.forEach((e) => {\n if (item.id === e.id) {\n paramsData.allocationDataReqs.push({\n amount: e.amountVAT,\n brand: e.brand,\n llp: item.llp,\n make: e.make,\n model: e.model,\n typeClass: e.typeClass,\n volume: item.volume,\n });\n }\n });\n }\n if (item.children?.length > 0) {\n generate(item.children);\n }\n });\n };\n generate(tempData.value);\n if (\n checkFlag.value === \"Allocation\" &&\n paramsData.allocationDataReqs.length < 1\n ) {\n message.error(\"Please select model\");\n return;\n }\n await postSaveData(paramsData);\n getTreeTableData();\n initData();\n emit(\"refresh-overview\");\n };\n\n // 千分符转化为number\n const removeMicrometer = (amountVAT: string) => {\n let number = 0;\n let str = amountVAT + \"\";\n str = str.replace(/,/g, \"\");\n if (str) {\n number = parseFloat(str);\n } else {\n number = 0;\n }\n return number.toString();\n };\n\n // 加法计算\n const accAdd = (num1: number, num2: number) => {\n let r1: string | number = \"\";\n let r2: string | number = \"\";\n let m: string | number = \"\";\n let c: string | number = \"\";\n try {\n r1 = num1.toString().split(\".\")[1].length;\n } catch (e) {\n r1 = 0;\n }\n try {\n r2 = num2.toString().split(\".\")[1].length;\n } catch (e) {\n r2 = 0;\n }\n c = Math.abs(r1 - r2);\n m = Math.pow(10, Math.max(r1, r2));\n if (c > 0) {\n const cm = Math.pow(10, c);\n if (r1 > r2) {\n num1 = Number(num1.toString().replace(\".\", \"\"));\n num2 = Number(num2.toString().replace(\".\", \"\")) * cm;\n } else {\n num1 = Number(num1.toString().replace(\".\", \"\")) * cm;\n num2 = Number(num2.toString().replace(\".\", \"\"));\n }\n } else {\n num1 = Number(num1.toString().replace(\".\", \"\"));\n num2 = Number(num2.toString().replace(\".\", \"\"));\n }\n return (num1 + num2) / m;\n };\n\n // 计算 input 的 Amount\n const calculateAmount = () => {\n const generate = (arr: TreeTableData[]) => {\n arr.forEach((item: TreeTableData) => {\n item.children.forEach((el) => {\n el.children.forEach((e) => {\n let esum = 0;\n for (let ei = 0; ei < e.children.length; ei++) {\n esum = accAdd(\n esum,\n parseFloat(removeMicrometer(e.children[ei].amountVAT))\n );\n }\n e.amountVAT = esum.toString();\n });\n let elsum = 0;\n for (let eli = 0; eli < el.children.length; eli++) {\n elsum = accAdd(\n elsum,\n parseFloat(removeMicrometer(el.children[eli].amountVAT))\n );\n }\n el.amountVAT = elsum.toString();\n });\n\n let itemsum = 0;\n for (let itemi = 0; itemi < item.children.length; itemi++) {\n itemsum = accAdd(\n itemsum,\n parseFloat(removeMicrometer(item.children[itemi].amountVAT))\n );\n }\n item.amountVAT = itemsum.toString();\n });\n };\n generate(tempData.value);\n };\n\n const amountVATFocus = (record: TreeTableData) => {\n backUpTableData.forEach((item) => {\n if (item.id === record.id) {\n record.amountVAT = item.amountVAT;\n }\n });\n };\n\n const amountVATChange = (record: TreeTableData) => {\n record.amountVAT = inputAddMicrometer(record.amountVAT);\n backUpTableData.forEach((item) => {\n if (item.id === record.id) {\n item.amountVAT = record.amountVAT;\n if (item.amountVAT.slice(1).indexOf(\"-\") !== -1) {\n if (item.amountVAT[0] == \"-\") {\n item.amountVAT = \"-\" + item.amountVAT.replace(/-/g, \"\");\n } else {\n item.amountVAT = item.amountVAT.replace(/-/g, \"\");\n }\n }\n }\n });\n calculateAmount();\n };\n\n // 获取brand\n getSpecBrand({ mcId: props.makeId }).then((res) => {\n brandArray.value.length = 0;\n res.forEach((item: string) => {\n brandArray.value.push({ id: item, isSelect: true });\n });\n\n getTreeTableData();\n });\n\n const amountVATBlur = (record: TreeTableData) => {\n record.amountVAT = inputAddMicrometer(\n Math.round(Number(removeMicrometer(record.amountVAT))).toString()\n );\n if (record.amountVAT.slice(1).indexOf(\"-\") !== -1) {\n if (record.amountVAT[0] == \"-\") {\n record.amountVAT = \"-\" + record.amountVAT.replace(/-/g, \"\");\n } else {\n record.amountVAT = record.amountVAT.replace(/-/g, \"\");\n }\n }\n };\n const bulrInputNumber = () => {\n if (inputNumber.value.slice(1).indexOf(\"-\") !== -1) {\n inputNumber.value = 0;\n }\n };\n const leave = (e: any) => {\n e.target.blur()\n };\n const handleExport = () => {\n const params = {\n url: `/pcapi/api/v1/allocation/allocation/exportSpecialAdjOrRelease`,\n params: {\n mcId: props.makeId,\n type: 1\n }\n };\n blobDownload(params);\n };\n return {\n leave,\n panes,\n activeKey,\n add,\n newTabIndex,\n checkFlag,\n dataTitle,\n columns,\n tableData,\n brandArray,\n selectBrand,\n brandColumns,\n data,\n changeCheckFlag,\n changeChecked,\n selectAll,\n allFlag,\n initData,\n totalTable,\n getTopicAndName,\n topic,\n topicArray,\n name,\n inputText,\n inputNumber,\n checked,\n expandedRowKeys,\n expandModel,\n onExpand,\n handleSave,\n handelInputNumber,\n amountVATFocus,\n amountVATChange,\n amountVATBlur,\n addWsllpMicrometer,\n tableHeight,\n bulrInputNumber,\n handleExport\n };\n },\n});\n","import { render } from \"./SpecialAdjustment.vue?vue&type=template&id=7fbfcbe9&scoped=true&ts=true\"\nimport script from \"./SpecialAdjustment.vue?vue&type=script&lang=ts\"\nexport * from \"./SpecialAdjustment.vue?vue&type=script&lang=ts\"\n\nimport \"./SpecialAdjustment.vue?vue&type=style&index=0&id=7fbfcbe9&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-7fbfcbe9\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, vShow as _vShow, withDirectives as _withDirectives, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5055b28b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"temp-input\" }\nconst _hoisted_2 = /*#__PURE__*/_createTextVNode(\" Name \")\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"Allocation\")\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"Input\")\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\" Export \")\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\" Save \")\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\" Expand to Model \")\nconst _hoisted_8 = { class: \"check-btn\" }\nconst _hoisted_9 = [\"onClick\"]\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_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _hoisted_2,\n _createVNode(_component_a_input, {\n placeholder: \"input\",\n size: \"small\",\n style: {\"width\":\"250px\"},\n value: _ctx.name,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.name) = $event)),\n onPressEnter: _ctx.leave\n }, null, 8, [\"value\", \"onPressEnter\"]),\n _createVNode(_component_a_select, {\n value: _ctx.checkFlag,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.checkFlag) = $event)),\n onChange: _ctx.changeCheckFlag,\n style: {\"width\":\"150px\",\"margin-left\":\"40px\"},\n size: \"small\",\n placeholder: \"Select\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select_option, { value: \"Allocation\" }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }),\n _createVNode(_component_a_select_option, { value: \"Input\" }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"]),\n _withDirectives(_createVNode(_component_a_input, {\n value: _ctx.inputNumber,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.inputNumber) = $event)),\n placeholder: \"input\",\n size: \"small\",\n style: {\"width\":\"200px\",\"margin-left\":\"8px\"},\n onChange: _ctx.handelInputNumber,\n onBlur: _cache[3] || (_cache[3] = ($event: any) => (_ctx.bulrInputNumber())),\n onPressEnter: _ctx.leave\n }, null, 8, [\"value\", \"onChange\", \"onPressEnter\"]), [\n [_vShow, _ctx.checkFlag === 'Allocation']\n ]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n size: \"small\",\n onClick: _ctx.handleExport,\n style: {\"float\":\"right\",\"margin-right\":\"8px\",\"width\":\"80px\",\"height\":\"30px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n (_ctx.$btnPermissions('PC0510'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"primary\",\n size: \"small\",\n style: {\"float\":\"right\",\"margin-right\":\"8px\",\"width\":\"80px\",\"height\":\"30px\"},\n onClick: _ctx.handleSave\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_checkbox, {\n checked: _ctx.checked,\n \"onUpdate:checked\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.checked) = $event)),\n onChange: _ctx.expandModel,\n style: {\"float\":\"right\",\"margin-right\":\"16px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }, 8, [\"checked\", \"onChange\"])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.brandArray, (item) => {\n return (_openBlock(), _createElementBlock(\"p\", {\n class: _normalizeClass([\"blue-select-btn\", { 'active-blue-select-btn': item.isSelect }]),\n key: item.id,\n onClick: ($event: any) => (_ctx.selectBrand(item))\n }, _toDisplayString(item.id), 11, _hoisted_9))\n }), 128))\n ]),\n _createVNode(_component_a_table, {\n class: \"table\",\n columns: _ctx.brandColumns,\n \"data-source\": _ctx.data,\n pagination: false,\n expandIconColumnIndex: 1,\n expandedRowKeys: _ctx.expandedRowKeys,\n onExpand: _ctx.onExpand,\n loading: _ctx.data.length < 1,\n rowKey: \"id\",\n size: \"small\",\n scroll: { y: _ctx.tableHeight }\n }, {\n operation: _withCtx(() => [\n _createVNode(_component_a_checkbox, {\n disabled: _ctx.checkFlag === 'Input',\n style: {\"float\":\"left\"},\n checked: _ctx.allFlag,\n \"onUpdate:checked\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.allFlag) = $event)),\n onChange: _ctx.selectAll\n }, null, 8, [\"disabled\", \"checked\", \"onChange\"])\n ]),\n checked: _withCtx(({ record }) => [\n _createVNode(_component_a_checkbox, {\n disabled: _ctx.checkFlag === 'Input',\n checked: record.checked,\n \"onUpdate:checked\": ($event: any) => ((record.checked) = $event),\n onChange: ($event: any) => (_ctx.changeChecked(record)),\n style: {\"float\":\"left\"}\n }, null, 8, [\"disabled\", \"checked\", \"onUpdate:checked\", \"onChange\"])\n ]),\n amount: _withCtx(({ record }) => [\n (_ctx.checkFlag === 'Input' && !record.children)\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 0,\n value: record.amountVAT,\n \"onUpdate:value\": ($event: any) => ((record.amountVAT) = $event),\n onFocus: ($event: any) => (_ctx.amountVATFocus(record)),\n onChange: ($event: any) => (_ctx.amountVATChange(record)),\n onBlur: ($event: any) => (_ctx.amountVATBlur(record)),\n onPressEnter: _ctx.leave,\n style: {\"margin\":\"-5px 0\",\"height\":\"24px\",\"text-align\":\"right\"}\n }, null, 8, [\"value\", \"onUpdate:value\", \"onFocus\", \"onChange\", \"onBlur\", \"onPressEnter\"]))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.addWsllpMicrometer(record.amountVAT)), 1)\n ], 64))\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"expandedRowKeys\", \"onExpand\", \"loading\", \"scroll\"])\n ], 64))\n}","\nimport { defineComponent, ref, computed } from 'vue';\nimport { getSubInfo, getSpecBrand, getTopicName, getTreeTable, getTopic, postSaveData } from '@/API/closing';\nimport { message } from 'ant-design-vue';\nimport { TreeTableData } from '@/views/Closing/type';\nimport blobDownload from '@/utils/blobDownload';\nconst tableHeight = window.innerHeight - 440;\ninterface BrandType {\n id: string;\n isSelect: boolean;\n}\n\ninterface AllocationDataReqsType {\n amount: string;\n brand: string;\n llp: string;\n make: string;\n model: string;\n typeClass: string;\n volume: number;\n}\n\ninterface ParamsDataType {\n adjustmentNo: string;\n allocationAmount: string;\n allocationDataReqs: AllocationDataReqsType[];\n mcId: number;\n name: string;\n allocationType: number;\n topicCode: string;\n type: number;\n}\n\nexport default defineComponent({\n props: {\n makeId: {\n type: Number,\n required: true\n },\n make: {\n type: String,\n required: true\n }\n },\n emits: ['refresh-overview'],\n setup(props, { emit }) {\n const checkFlag = ref('Allocation');\n const dataTitle = ref('Total');\n const tableData = ref([]);\n // 中间部分表格\n const columns = ref([]);\n const totalTable = ref([]);\n // tree table data\n const tempData = ref([]);\n // Brand\n const brandArray = ref([]);\n // 选择的Topic\n const topic = ref('');\n const topicArray = ref([]);\n const name = ref('');\n\n const brandColumns = ref([\n {\n dataIndex: 'operation',\n key: 'operation',\n width: '30px',\n slots: { title: 'operation', customRender: 'checked' }\n },\n {\n title: 'Vehicle',\n dataIndex: 'make',\n key: 'make',\n width: '80px',\n align: 'left'\n },\n {\n title: '',\n dataIndex: 'brand',\n width: '100px',\n key: 'brand',\n align: 'center'\n },\n {\n title: '',\n dataIndex: 'typeClass',\n width: '100px',\n key: 'typeClass',\n align: 'center'\n },\n {\n title: '',\n dataIndex: 'model',\n key: 'model',\n width: '400px',\n align: 'left'\n },\n {\n title: 'WS Volume',\n dataIndex: 'volume',\n key: 'volume',\n align: 'right'\n },\n {\n title: 'WS LLP',\n dataIndex: 'llp',\n key: 'llp',\n align: 'right'\n },\n {\n title: 'Avg. SI%',\n dataIndex: 'avgSi',\n key: 'avgSi',\n align: 'right'\n },\n {\n title: 'Amount w/o VAT',\n dataIndex: 'amountVAT',\n key: 'amountVAT',\n align: 'right',\n width: '180px',\n slots: { customRender: 'amount' }\n }\n ]);\n if (props.make === 'VAN') {\n brandColumns.value.forEach((item) => {\n item.title = item.title?.replace('WS', 'RT');\n if (item.title === 'WS Volume') {\n item.title = 'RT Volume';\n }\n if (item.title === 'WS LLP') {\n item.title = 'RT LLP';\n }\n });\n }\n\n const initData = async () => {\n const res = await getSubInfo({ mcId: props.makeId });\n totalTable.value = res.totalTable;\n columns.value = res.tableHeaders;\n tableData.value = res.subOverviewItemDtos;\n };\n initData();\n // 获取Topic & Name\n const getTopicAndName = async () => {\n const res = await getTopicName({\n mcId: props.makeId,\n adjustmentNo: '',\n type: 2\n });\n topicArray.value = res.topicList;\n name.value = res.name;\n };\n getTopicAndName();\n // INPUT 文字提示\n const inputText = ref('');\n // Allocation Input Number\n const inputNumber = ref();\n getTopic({ page: 'RELEASE' }).then((res) => {\n inputText.value = res;\n });\n const data = computed(() => tempData.value);\n // 表格全选按钮\n const allFlag = ref(false);\n // 判断复选表头\n const checkAllFlag = () => {\n allFlag.value = tempData.value.length > 0;\n tempData.value.forEach((item) => {\n if (!item.checked) {\n allFlag.value = false;\n return;\n }\n });\n };\n // 判断父级 复选框 是否勾选\n const checkParent = (arr: TreeTableData[]) => {\n arr.forEach((item) => {\n item.children?.forEach((el) => {\n if (!el.checked) {\n item.checked = false;\n allFlag.value = false;\n }\n if (item.children?.length > 0) checkParent(item.children);\n // 祖先 后代 后代勾选,递归判断\n item.checked = item.children?.every((el) => el.checked);\n });\n if (item.children?.length > 0) checkParent(item.children);\n });\n };\n const changeChecked = (record: TreeTableData) => {\n const generate = (record: TreeTableData) => {\n if (record.children) {\n record.children?.forEach((item: TreeTableData) => {\n item.checked = record.checked;\n if (item.children && item.children.length > 0) generate(item);\n });\n }\n };\n generate(record);\n checkParent(tempData.value);\n // 判断复选表头\n checkAllFlag();\n };\n\n // Tree Table Data\n let backUpTableData: any[];\n const selectAll = () => {\n const generate = (arr: TreeTableData[]) => {\n arr.forEach((item) => {\n // 去除小数点后面0\n item.amountVAT = item.amountVAT.replace(/(?:\\.0*|(\\.\\d+?)0+)$/, '$1');\n // 显示整数\n item.amountVAT = Math.round(parseFloat(item.amountVAT)).toString();\n item.checked = allFlag.value;\n if (item.children?.length > 0) {\n generate(item.children);\n }\n });\n };\n generate(tempData.value);\n checkParent(tempData.value);\n // 判断复选表头\n checkAllFlag();\n };\n const changeCheckFlag = () => {\n allFlag.value = checkFlag.value === 'Allocation';\n selectAll();\n // inputNumber.value = \"\";\n };\n // Expend复选框初始化\n const checked = ref(false);\n // 表格行展开\n const expandedRowKeys = ref([]);\n // 获取Tree Data数据所有id\n const getAllId = () => {\n const tempArray: number[] = [];\n const generate = (arr: TreeTableData[]) => {\n arr.forEach((item: TreeTableData) => {\n tempArray.push(item.id);\n if (item.children?.length > 0) {\n generate(item.children);\n }\n });\n };\n generate(tempData.value);\n return tempArray;\n };\n // 获取到Type Class层级所有数据id\n const getTypeClassId = () => {\n const tempArray: number[] = [];\n const generate = (arr: TreeTableData[]) => {\n arr.forEach((item: TreeTableData) => {\n tempArray.push(item.id);\n // 展开到model\n if (item.children[0].children[0].children?.length > 0) {\n generate(item.children);\n }\n });\n };\n generate(tempData.value);\n return tempArray;\n };\n // 展开type class层级\n const expandTypeClass = () => {\n const data = getTypeClassId();\n Object.assign(expandedRowKeys.value, data);\n };\n\n // 展开折叠\n const expandModel = () => {\n const data = getAllId();\n if (checked.value) {\n Object.assign(expandedRowKeys.value, data);\n } else {\n expandedRowKeys.value = [];\n expandTypeClass();\n }\n };\n // 因expandedRowKeys设置之后展开行会有问题 所以重写点击展开行逻辑\n const onExpand = (expanded: boolean, record: any) => {\n if (expanded) {\n // 设置展开窗Key,代表展开操作\n expandedRowKeys.value.push(record.id);\n } else {\n // 代表折叠操作\n if (expandedRowKeys.value.length) {\n expandedRowKeys.value = expandedRowKeys.value.filter((v: any) => {\n return v !== record.id;\n });\n }\n }\n };\n let isBrand = false;\n // Tree Table\n const getTreeTableData = async () => {\n let brands: string[] = [];\n brandArray.value.forEach((item) => {\n if (item.isSelect) {\n brands.push(item.id);\n }\n });\n brands = brands.length > 0 ? brands : [''];\n\n const res = await getTreeTable({\n mcId: props.makeId,\n adjustmentNo: '',\n type: 2,\n brands: brands\n });\n tempData.value = res.commonTreeVOS;\n // topic.value = res.topicCode;\n if (!isBrand) {\n name.value = res.name;\n inputNumber.value = res.allocationAmount === null ? '' : res.allocationAmount;\n }\n backUpTableData = [];\n isBrand = false;\n const generate = (arr: TreeTableData[]) => {\n arr.forEach((item) => {\n // 去除小数点后面0\n item.amountVAT = item.amountVAT.replace(/(?:\\.0*|(\\.\\d+?)0+)$/, '$1');\n // item.checked = allFlag.value;\n backUpTableData.push({\n id: item.id,\n brand: item.brand,\n make: item.make,\n model: item.model,\n typeClass: item.typeClass,\n amountVAT: item.amountVAT\n });\n // 显示整数\n item.amountVAT = Math.round(parseFloat(item.amountVAT)).toString();\n if (item.children?.length > 0) {\n generate(item.children);\n } else {\n item.brand = '';\n item.typeClass = '';\n item.make = '';\n // eslint-disable-next-line\n // @ts-ignore\n delete item.children;\n }\n });\n };\n generate(tempData.value);\n changeCheckFlag();\n expandTypeClass();\n checkAllFlag();\n };\n\n // 获取brand\n getSpecBrand({ mcId: props.makeId }).then((res: any) => {\n brandArray.value.length = 0;\n res.forEach((item: any) => {\n brandArray.value.push({ id: item, isSelect: true });\n });\n getTreeTableData();\n });\n\n const selectBrand = (item: BrandType) => {\n item.isSelect = !item.isSelect;\n isBrand = true;\n getTreeTableData();\n };\n\n // 修改框添加千分符并只保留15位小数\n const inputAddMicrometer = (amountVAT: string) => {\n let str;\n str = amountVAT.replace(/[^\\-\\d.]/g, '');\n if (str) {\n str = str.replace(/,/g, '');\n const hasPot = str.indexOf('.');\n if (hasPot > -1) {\n let leftNum = str.substring(0, hasPot);\n let rightNum = str.substring(hasPot + 1, str.length);\n leftNum = leftNum.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, '$1,');\n if (rightNum.length > 15) {\n rightNum = str.substring(hasPot + 1, hasPot + 16);\n }\n str = leftNum + '.' + rightNum;\n } else {\n str = str.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, '$1,');\n }\n return str;\n } else {\n return '';\n }\n };\n\n // allocation input number\n const handelInputNumber = () => {\n inputNumber.value = inputAddMicrometer(inputNumber.value);\n inputNumber.value = inputNumber.value.replace(/,/g, '');\n const hasPot = inputNumber.value.indexOf('.');\n if (hasPot > -1) {\n let leftNum = inputNumber.value.substring(0, hasPot);\n let rightNum = inputNumber.value.substring(hasPot + 1, inputNumber.value.length);\n leftNum = leftNum.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, '$1,');\n if (rightNum.length > 2) {\n rightNum = inputNumber.value.substring(hasPot + 1, hasPot + 3);\n }\n inputNumber.value = leftNum + '.' + rightNum;\n } else {\n inputNumber.value = inputNumber.value.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, '$1,');\n }\n };\n\n // 保存按钮\n const handleSave = async () => {\n if (!name.value) {\n message.error('Name can not be empty');\n return;\n }\n if (checkFlag.value === 'Allocation' && inputNumber.value === '') {\n message.error('Allocation can not be empty');\n return;\n }\n const paramsData: ParamsDataType = {\n adjustmentNo: '',\n allocationAmount: inputNumber.value,\n allocationDataReqs: [],\n mcId: props.makeId,\n name: name.value,\n allocationType: checkFlag.value === 'Allocation' ? 1 : 0,\n topicCode: '',\n type: 2\n };\n const generate = (arr: TreeTableData[]) => {\n arr.forEach((item: TreeTableData) => {\n if (checkFlag.value === 'Allocation' && item.checked && !item.children) {\n backUpTableData.forEach((e) => {\n if (item.id === e.id) {\n paramsData.allocationDataReqs.push({\n amount: item.amountVAT,\n brand: e.brand,\n llp: item.llp,\n make: e.make,\n model: e.model,\n typeClass: e.typeClass,\n volume: item.volume\n });\n }\n });\n } else if (checkFlag.value === 'Input' && !item.children) {\n backUpTableData.forEach((e) => {\n if (item.id === e.id) {\n paramsData.allocationDataReqs.push({\n amount: e.amountVAT,\n brand: e.brand,\n llp: item.llp,\n make: e.make,\n model: e.model,\n typeClass: e.typeClass,\n volume: item.volume\n });\n }\n });\n }\n if (item.children?.length > 0) {\n generate(item.children);\n }\n });\n };\n generate(tempData.value);\n if (checkFlag.value === 'Allocation' && paramsData.allocationDataReqs.length < 1) {\n message.error('Please select model');\n return;\n }\n await postSaveData(paramsData);\n getTreeTableData();\n initData();\n emit('refresh-overview');\n };\n\n // 小数添加千分符\n const addWsllpMicrometer = (amountVAT: string) => {\n let str;\n str = amountVAT + '';\n if (str) {\n str = str.replace(/,/g, '');\n if (str.indexOf('.') > -1) {\n str = parseFloat(str).toFixed(0);\n }\n str = parseFloat(str) + '';\n str = str.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, '$1,');\n return str;\n } else {\n return '';\n }\n };\n\n // 千分符转化为number\n const removeMicrometer = (amountVAT: string) => {\n let number = 0;\n let str = amountVAT + '';\n str = str.replace(/,/g, '');\n if (str) {\n number = parseFloat(str);\n } else {\n number = 0;\n }\n return number.toString();\n };\n\n // 加法计算\n const accAdd = (num1: number, num2: number) => {\n let r1: string | number = '';\n let r2: string | number = '';\n let m: string | number = '';\n let c: string | number = '';\n try {\n r1 = num1.toString().split('.')[1].length;\n } catch (e) {\n r1 = 0;\n }\n try {\n r2 = num2.toString().split('.')[1].length;\n } catch (e) {\n r2 = 0;\n }\n c = Math.abs(r1 - r2);\n m = Math.pow(10, Math.max(r1, r2));\n if (c > 0) {\n const cm = Math.pow(10, c);\n if (r1 > r2) {\n num1 = Number(num1.toString().replace('.', ''));\n num2 = Number(num2.toString().replace('.', '')) * cm;\n } else {\n num1 = Number(num1.toString().replace('.', '')) * cm;\n num2 = Number(num2.toString().replace('.', ''));\n }\n } else {\n num1 = Number(num1.toString().replace('.', ''));\n num2 = Number(num2.toString().replace('.', ''));\n }\n return (num1 + num2) / m;\n };\n\n // 计算 input 的 Amount\n const calculateAmount = () => {\n const generate = (arr: TreeTableData[]) => {\n arr.forEach((item: TreeTableData) => {\n item.children.forEach((el) => {\n el.children.forEach((e) => {\n let esum = 0;\n for (let ei = 0; ei < e.children.length; ei++) {\n esum = accAdd(esum, parseFloat(removeMicrometer(e.children[ei].amountVAT)));\n }\n e.amountVAT = esum.toString();\n });\n let elsum = 0;\n for (let eli = 0; eli < el.children.length; eli++) {\n elsum = accAdd(elsum, parseFloat(removeMicrometer(el.children[eli].amountVAT)));\n }\n el.amountVAT = elsum.toString();\n });\n\n let itemsum = 0;\n for (let itemi = 0; itemi < item.children.length; itemi++) {\n itemsum = accAdd(itemsum, parseFloat(removeMicrometer(item.children[itemi].amountVAT)));\n }\n item.amountVAT = itemsum.toString();\n });\n };\n generate(tempData.value);\n };\n const amountVATFocus = (record: TreeTableData) => {\n backUpTableData.forEach((item) => {\n if (item.id === record.id) {\n console.log(item.amountVAT);\n record.amountVAT = item.amountVAT;\n }\n });\n };\n\n const amountVATChange = (record: TreeTableData) => {\n record.amountVAT = inputAddMicrometer(record.amountVAT);\n backUpTableData.forEach((item) => {\n if (item.id === record.id) {\n item.amountVAT = record.amountVAT;\n if (item.amountVAT.slice(1).indexOf('-') !== -1) {\n if (item.amountVAT[0] == '-') {\n item.amountVAT = '-' + item.amountVAT.replace(/-/g, '');\n } else {\n item.amountVAT = item.amountVAT.replace(/-/g, '');\n }\n }\n }\n });\n calculateAmount();\n };\n\n const amountVATBlur = (record: TreeTableData) => {\n record.amountVAT = inputAddMicrometer(Math.round(Number(removeMicrometer(record.amountVAT))).toString());\n if (record.amountVAT.slice(1).indexOf('-') !== -1) {\n if (record.amountVAT[0] == '-') {\n record.amountVAT = '-' + record.amountVAT.replace(/-/g, '');\n } else {\n record.amountVAT = record.amountVAT.replace(/-/g, '');\n }\n }\n };\n const bulrInputNumber = () => {\n if (inputNumber.value.slice(1).indexOf('-') !== -1) {\n inputNumber.value = 0;\n }\n };\n const leave = (e: any) => {\n e.target.blur();\n };\n\n const handleExport = () => {\n const params = {\n url: `/pcapi/api/v1/allocation/allocation/exportSpecialAdjOrRelease`,\n params: {\n mcId: props.makeId,\n type: 2\n }\n };\n blobDownload(params);\n };\n return {\n leave,\n checkFlag,\n dataTitle,\n columns,\n tableData,\n brandArray,\n selectBrand,\n brandColumns,\n data,\n changeCheckFlag,\n changeChecked,\n selectAll,\n allFlag,\n initData,\n totalTable,\n topic,\n topicArray,\n name,\n inputText,\n inputNumber,\n checked,\n expandedRowKeys,\n expandModel,\n onExpand,\n handleSave,\n handelInputNumber,\n amountVATFocus,\n amountVATChange,\n amountVATBlur,\n addWsllpMicrometer,\n tableHeight,\n bulrInputNumber,\n handleExport\n };\n }\n});\n","import { render } from \"./Release.vue?vue&type=template&id=5055b28b&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=5055b28b&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-5055b28b\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4af81e28\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"interest-container\" }\nconst _hoisted_2 = { class: \"header d-f justify-b\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"tip\" }, null, -1))\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\" Save \")\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_a_button = _resolveComponent(\"a-button\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"div\", null, [\n (_ctx.$btnPermissions('PC0508'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"primary\",\n onClick: _ctx.handleSave,\n style: {\"width\":\"80px\",\"height\":\"30px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_button, {\n type: \"primary\",\n size: \"small\",\n onClick: _ctx.handleExport,\n style: {\"margin-left\":\"8px\",\"width\":\"80px\",\"height\":\"30px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _createVNode(_component_a_table, {\n class: \"input-table\",\n columns: _ctx.inputTableColumns,\n \"data-source\": _ctx.inputData,\n pagination: false,\n rowKey: (record, index) => index,\n scroll: { x: _ctx.tableSize.width }\n }, {\n rowTitle: _withCtx(({ text, index }) => [\n _createElementVNode(\"span\", {\n class: _normalizeClass(index === 2 ? 'allocation-all-title' : 'row-title')\n }, _toDisplayString(text), 3)\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"rowKey\", \"scroll\"]),\n (_ctx.isTable)\n ? (_openBlock(), _createBlock(_component_a_table, {\n key: 0,\n class: \"result-table\",\n columns: _ctx.resultTableColumns,\n \"data-source\": _ctx.resultData,\n pagination: false,\n rowKey: (record, index) => index,\n expandRowByClick: true,\n defaultExpandAllRows: \"\",\n scroll: { x: _ctx.tableSize.width }\n }, null, 8, [\"columns\", \"data-source\", \"rowKey\", \"scroll\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}","\nimport { defineComponent, ref, computed, h, resolveComponent } from 'vue'\nimport type { PropType } from 'vue'\nimport { elementSize } from '@/utils'\nimport Decimal from '@/utils/closing/decimal'\nimport moment from 'moment'\nimport { message } from 'ant-design-vue'\nimport type { InterestMonth, InterestType, InterestInfo, InterestMonthTotalAmount } from '@/views/Closing/type'\nimport {\n getInterestInfo as getInterestInfoAPI,\n getInterestMonthAmountInfo as getInterestMonthAmountInfoAPI,\n saveInterestInfo as saveInterestInfoAPI,\n getTopic\n} from '@/API/closing'\nimport blobDownload from \"@/utils/blobDownload\";\nexport default defineComponent({\n props: {\n make: {\n type: String,\n default: ''\n },\n closingId: {\n type: Number,\n default: 0\n },\n makeYear: {\n type: String,\n default: ''\n },\n makeMonth: {\n type: String as PropType,\n default: ''\n },\n interestSD: {\n type: String,\n required: true,\n default: ''\n }\n },\n emits: [\"refresh-table\"],\n setup(props, ctx) {\n\n enum InputTableRowTitle {\n FloorPlan,\n PMT,\n AllocationAll,\n WsBpInterestRate\n }\n\n const monthes = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']\n\n const inputData = ref([\n {\n title: 'Floor Plan',\n ...monthes.reduce((obj: Record, month: string) => {\n obj[month] = {\n amount: '',\n totalLlp: '',\n }\n return obj\n }, {}),\n input: ''\n },\n {\n title: 'PMT',\n ...monthes.reduce((obj: Record, month: string) => {\n obj[month] = {\n amount: '',\n totalLlp: '',\n input: ''\n }\n return obj\n }, {}),\n input: ''\n },\n {\n title: 'Allocation All',\n ...monthes.reduce((obj: Record, month: string) => {\n obj[month] = ''\n return obj\n }, {}),\n input: ''\n },\n {\n title: 'WS BP Interest Rate',\n ...monthes.reduce((obj: Record, month: string) => {\n obj[month] = {\n amount: '',\n input: ''\n }\n return obj\n }, {}),\n input: ''\n },\n ])\n\n const inputDataTotal = (type: InputTableRowTitle) => {\n return computed(() => {\n let total = new Decimal(0)\n for (let i = 0; i < 12; i++) {\n const month = moment().month(i).format('MM')\n const amount = inputData.value[type][month].amount\n if (amount !== '') {\n total = total.plus(new Decimal(amount))\n }\n }\n return total\n })\n }\n\n const totalFloorPlan = inputDataTotal(InputTableRowTitle.FloorPlan)\n\n const totalPMT = inputDataTotal(InputTableRowTitle.PMT)\n\n const numberSubWithPrecision = (n: string | number, p: number) => {\n if (typeof n === 'number') {\n n = n.toString()\n }\n let i = n.search(/^\\.\\d/)\n if (i !== -1) {\n n = n.slice(0, i)\n }\n i = n.indexOf('.')\n if (i === -1) {\n return n\n } else {\n return `${n.slice(0, i)}.${n.slice(i + 1, i + 1 + p)}`\n }\n }\n\n// 修改框添加千分符并只保留15位小数\n const inputAddMicrometer = (amountVAT: string) => {\n let str;\n str = amountVAT.replace(/[^\\-\\d.]/g, \"\");\n if (str) {\n str = str.replace(/,/g, \"\");\n const hasPot = str.indexOf(\".\");\n if (hasPot > -1) {\n let leftNum = str.substring(0, hasPot);\n let rightNum = str.substring(hasPot + 1, str.length);\n leftNum = leftNum.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, \"$1,\");\n if (rightNum.length > 15) {\n rightNum = str.substring(hasPot + 1, hasPot + 16);\n }\n str = leftNum + \".\" + rightNum;\n } else {\n str = str.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, \"$1,\");\n }\n return str;\n } else {\n return \"\";\n }\n };\n // 千分符转化为number\n const removeMicrometer = (amountVAT: string) => {\n let number = 0;\n let str = amountVAT + \"\";\n str = str.replace(/,/g, \"\");\n if (str) {\n number = parseFloat(str);\n } else {\n number = 0;\n }\n return number.toString();\n };\n // const amountVATBlur = (record: TreeTableData) => {\n // record.amountVAT = inputAddMicrometer(\n // Math.round(Number(removeMicrometer(record.amountVAT))).toString()\n // );\n // };\n\n const inputTableColumnRender = (month: string) => {\n return ({ record, text, index }: {record: any; text: string; index: number}) => {\n if (index === InputTableRowTitle.AllocationAll) {\n return h('span', text)\n } else {\n if (month === props.makeMonth) {\n const inputComponent = resolveComponent('a-input')\n const props: Record = {\n value: inputData.value[index].input,\n style: 'height: 24px',\n 'onUpdate:value': (value: string) => {\n if (index === InputTableRowTitle.WsBpInterestRate) {\n inputData.value[index].input = numberSubWithPrecision(value, 2)\n } else {\n inputData.value[index].input = numberSubWithPrecision(value, 15)\n }\n },\n onFocus: () => {\n inputData.value[index].input = inputAddMicrometer(record[month].amount.toString())\n },\n onPressEnter: (e: any) => {\n e.target.blur()\n },\n onInput: () => {\n inputData.value[index].input = inputAddMicrometer(inputData.value[index].input.toString())\n },\n onBlur: () => {\n\n if (index === InputTableRowTitle.WsBpInterestRate) {\n inputData.value[index].input = new Decimal(inputData.value[index].input).round(2, false)\n } else {\n inputData.value[index].input = new Decimal(inputData.value[index].input).round(0, false)\n }\n inputData.value[index].input = inputAddMicrometer(inputData.value[index].input.toString())\n record[month].amount = inputData.value[index].input\n }\n }\n if (index === InputTableRowTitle.WsBpInterestRate) {\n props.suffix = '%'\n }\n return h(inputComponent, props)\n } else {\n if (index === InputTableRowTitle.WsBpInterestRate) {\n return h('span', record[month].amount === '' ? '' : `${new Decimal(record[month].amount).round(2)}%`)\n }\n return h('span', record[month].amount === '' ? '' : new Decimal(record[month].amount).round(0))\n }\n }\n }\n }\n\n const inputTableTotalColumnRender = ({ index }: {index: number}) => {\n if (index === InputTableRowTitle.FloorPlan) {\n return h('span', totalFloorPlan.value.round(0))\n } else if (index == InputTableRowTitle.PMT) {\n return h('span', totalPMT.value.round(0))\n } else {\n return null\n }\n }\n\n const inputTableColumns = ref([\n {\n dataIndex: 'title',\n width: 150,\n align: 'left',\n // fixed: 'left',\n slots: { customRender: 'rowTitle' }\n },\n // eslint-disable-next-line\n // @ts-ignore\n ...monthes.map((month: string) => {\n return {\n dataIndex: month,\n title: `${props.makeYear}-${moment().month(parseInt(month) - 1).format('MM')}`,\n customRender: inputTableColumnRender(month),\n align:'right'\n }\n }),\n {\n dataIndex: 'total',\n title: `${props.makeYear}FY`,\n customRender: inputTableTotalColumnRender,\n align:'right'\n }\n ])\n\n const resultTableColumnRender = (column: string) => {\n return ({ text, record }: {text: string; record: any}) => {\n const attrs = {\n class: column === props.makeMonth ? 'active' : ''\n }\n let child = '';\n if (text !== undefined && text !== '') {\n if (record.percent) {\n child = `${new Decimal(text).round(2)}%`\n } else {\n child = new Decimal(text).round(0)\n }\n }\n return h('span', attrs, child)\n }\n }\n\n const resultTableColumns = ref([\n {\n dataIndex: 'title',\n width: 150,\n align: 'left',\n // fixed: 'left'\n },\n ...monthes.map((month: string) => {\n return {\n dataIndex: month,\n title: `${props.makeYear}-${moment().month(parseInt(month) - 1).format('MM')}`,\n // width: 150,\n customRender: resultTableColumnRender(month),\n align:'right'\n }\n }),\n {\n dataIndex: 'total',\n title: `${props.makeYear}FY`,\n // width: 150,\n customRender: resultTableColumnRender('total'),\n align:'right'\n }\n ])\n\n type ResultDataItem = {\n title: string;\n percent: boolean;\n children?: ResultDataItem[];\n } & {\n [key in InterestMonth | 'total']?: string;\n }\n\n const resultData = computed(() => {\n \n const totalSdData: ResultDataItem = {\n title: 'Total SD',\n percent: false\n }\n const floorPlanData: ResultDataItem = {\n title: 'Floor Plan',\n percent: false\n }\n const pmtData: ResultDataItem = {\n title: 'PMT',\n percent: false\n }\n const totalSdPercentData: ResultDataItem = {\n title: 'Total SD%',\n percent: true\n }\n const floorPlanPercentData: ResultDataItem = {\n title: 'Floor Plan',\n percent: true\n }\n const pmtPercentData: ResultDataItem = {\n title: 'PMT',\n percent: true\n }\n let totalFloorPlanLlp = new Decimal(0)\n let totalPmtLlp = new Decimal(0)\n for (let i = 0; i < 12; i++) {\n const month = moment().month(i).format('MM')\n const monthFloorPlanData = inputData.value[InputTableRowTitle.FloorPlan][month]\n const monthPmtData = inputData.value[InputTableRowTitle.PMT][month]\n floorPlanData[month] = monthFloorPlanData.amount\n pmtData[month] = monthPmtData.amount\n if (monthFloorPlanData.amount === '' && monthPmtData.amount === '') {\n totalSdData[month] = ''\n } else {\n totalSdData[month] = (new Decimal(monthFloorPlanData.amount))\n .plus(new Decimal(monthPmtData.amount)).fixed(15, false)\n }\n if (monthFloorPlanData.totalLlp !== '') {\n totalFloorPlanLlp = totalFloorPlanLlp.plus(new Decimal(monthFloorPlanData.totalLlp))\n const amount = new Decimal(monthFloorPlanData.amount)\n const totalLlp = new Decimal(monthFloorPlanData.totalLlp)\n let percent = new Decimal(0)\n if (!totalLlp.isZero()) {\n percent = amount.div(totalLlp)\n }\n floorPlanPercentData[month] = percent.times(new Decimal(100)).fixed(15, false)\n }\n if (monthPmtData.totalLlp !== '') {\n totalPmtLlp = totalPmtLlp.plus(new Decimal(monthPmtData.totalLlp))\n const amount = new Decimal(monthPmtData.amount)\n const totalLlp = new Decimal(monthPmtData.totalLlp)\n let percent = new Decimal(0)\n if (!totalLlp.isZero()) {\n percent = amount.div(totalLlp)\n }\n pmtPercentData[month] = percent.times(new Decimal(100)).fixed(15, false)\n }\n if (totalSdData[month] && (monthFloorPlanData.totalLlp !== '' || monthPmtData.totalLlp !== '')) {\n totalSdPercentData[month] = new Decimal(new Decimal(floorPlanPercentData[month]).round(5, false))\n .plus(new Decimal(new Decimal(pmtPercentData[month]).round(5))).fixed(15, false)\n } else {\n totalSdPercentData[month] = ''\n }\n }\n floorPlanData.total = totalFloorPlan.value.fixed(15, false)\n pmtData.total = totalPMT.value.fixed(15, false)\n totalSdData.total = new Decimal(floorPlanData.total)\n .plus(new Decimal(pmtData.total)).fixed(15, false)\n totalSdData.children = [ floorPlanData, pmtData ]\n floorPlanPercentData.total = totalFloorPlanLlp.isZero() ? '0' : totalFloorPlan.value.div(totalFloorPlanLlp).times(new Decimal(100)).fixed(15, false)\n pmtPercentData.total = totalPmtLlp.isZero() ? '0' : totalPMT.value.div(totalPmtLlp).times(new Decimal(100)).fixed(15, false)\n totalSdPercentData.total = new Decimal(new Decimal(floorPlanPercentData.total).round(5))\n .plus(new Decimal(new Decimal(pmtPercentData.total).round(5))).fixed(15, false)\n totalSdPercentData.children = [ floorPlanPercentData, pmtPercentData ]\n console.log(totalSdData)\n console.log(1111)\n return [ totalSdData, totalSdPercentData ]\n })\n const isTable=ref(false)\n const initInfoData = () => {\n return getInterestInfoAPI({mcId: props.closingId}).then((res: InterestInfo) => {\n isTable.value=true;\n const floor = res.floor\n if (floor) {\n for (const month in floor) {\n inputData.value[InputTableRowTitle.FloorPlan][month].id = floor[month].id\n inputData.value[InputTableRowTitle.FloorPlan][month].amount = floor[month].amount\n inputData.value[InputTableRowTitle.FloorPlan][month].totalLlp = floor[month].totalLlp\n }\n }\n const pmt = res.pmt\n if (pmt) {\n for (const month in pmt) {\n inputData.value[InputTableRowTitle.PMT][month].id = pmt[month].id\n inputData.value[InputTableRowTitle.PMT][month].amount = pmt[month].amount\n inputData.value[InputTableRowTitle.PMT][month].totalLlp = pmt[month].totalLlp\n inputData.value[InputTableRowTitle.AllocationAll][month] = pmt[month].pmtAllStatus ? 'Y' : ''\n }\n }\n\n const wsbp = res.wsbp\n if (wsbp) {\n for (const month in wsbp) {\n inputData.value[InputTableRowTitle.WsBpInterestRate][month].id = wsbp[month].id\n inputData.value[InputTableRowTitle.WsBpInterestRate][month].amount = wsbp[month].amount\n }\n }\n inputData.value[InputTableRowTitle.FloorPlan].input = new Decimal(inputData.value[InputTableRowTitle.FloorPlan][props.makeMonth].amount).round(0)\n inputData.value[InputTableRowTitle.PMT].input = new Decimal(inputData.value[InputTableRowTitle.PMT][props.makeMonth].amount).round(0)\n inputData.value[InputTableRowTitle.WsBpInterestRate].input = new Decimal(inputData.value[InputTableRowTitle.WsBpInterestRate][props.makeMonth].amount).round(2)\n return getInterestMonthAmountInfoAPI(props.closingId)\n }).then((res: InterestMonthTotalAmount) => {\n inputData.value[InputTableRowTitle.FloorPlan][props.makeMonth].totalLlp = res.totalLlp\n inputData.value[InputTableRowTitle.PMT][props.makeMonth].totalLlp = res.totalLlp\n inputData.value[InputTableRowTitle.AllocationAll][props.makeMonth] = res.totalLlp === res.pmtLlp ? 'Y' : ''\n })\n }\n\n initInfoData()\n\n // const enableSave = computed(() => {\n // return inputData.value[InputTableRowTitle.FloorPlan][props.makeMonth].amount !== '' &&\n // // inputData.value[InputTableRowTitle.PMT][props.makeMonth].amount !== '' &&\n // inputData.value[InputTableRowTitle.WsBpInterestRate][props.makeMonth].amount !== ''\n // })\n\n const handleSave = () => {\n const params = [\n {\n id: inputData.value[InputTableRowTitle.FloorPlan][props.makeMonth].id,\n year: props.makeYear,\n month: props.makeMonth,\n interestType: 'floor' as InterestType,\n amount: inputData.value[InputTableRowTitle.FloorPlan][props.makeMonth].amount as string ? inputData.value[InputTableRowTitle.FloorPlan][props.makeMonth].amount : 0,\n make: props.make,\n pmtAllStatus: false,\n totalLlp: new Decimal(inputData.value[InputTableRowTitle.FloorPlan][props.makeMonth].totalLlp).isZero() ?\n inputData.value[InputTableRowTitle.PMT][props.makeMonth].totalLlp as string :\n inputData.value[InputTableRowTitle.FloorPlan][props.makeMonth].totalLlp as string,\n mcId: props.closingId\n },\n {\n id: inputData.value[InputTableRowTitle.PMT][props.makeMonth].id,\n year: props.makeYear,\n month: props.makeMonth,\n interestType: 'pmt' as InterestType,\n amount: inputData.value[InputTableRowTitle.PMT][props.makeMonth].amount as string? inputData.value[InputTableRowTitle.PMT][props.makeMonth].amount : 0,\n make: props.make,\n pmtAllStatus: inputData.value[InputTableRowTitle.AllocationAll][props.makeMonth] === 'Y',\n totalLlp: inputData.value[InputTableRowTitle.PMT][props.makeMonth].totalLlp === '' ? '0' :\n inputData.value[InputTableRowTitle.PMT][props.makeMonth].totalLlp as string,\n mcId: props.closingId\n },\n {\n id: inputData.value[InputTableRowTitle.WsBpInterestRate][props.makeMonth].id,\n year: props.makeYear,\n month: props.makeMonth,\n interestType: 'wsbp' as InterestType,\n amount: inputData.value[InputTableRowTitle.WsBpInterestRate][props.makeMonth].amount as string? inputData.value[InputTableRowTitle.WsBpInterestRate][props.makeMonth].amount : 0,\n make: props.make,\n pmtAllStatus: false,\n totalLlp: '0',\n mcId: props.closingId\n }\n ]\n params.forEach(item => {\n item.amount = removeMicrometer(item.amount)\n })\n saveInterestInfoAPI(params).then(() => {\n return initInfoData()\n }).then(() => {\n ctx.emit(\"refresh-table\")\n message.success('Save successfully!')\n })\n }\n // INPUT 文字提示\n const inputText = ref(\"\");\n getTopic({ page: \"INTEREST\" }).then(res => {\n inputText.value = res;\n });\n const tableSize = elementSize('.ant-table-wrapper')\n const handleExport = () => {\n const params = {\n url: `/pcapi/closing/interest/exportInterest`,\n params: {\n mcId: props.closingId,\n },\n };\n blobDownload(params);\n \n };\n return {\n inputTableColumns,\n inputData,\n totalFloorPlan,\n totalPMT,\n resultTableColumns,\n resultData,\n // enableSave,\n handleSave,\n tableSize,\n inputText,\n isTable,\n handleExport\n }\n }\n})\n","import { render } from \"./Interest.vue?vue&type=template&id=4af81e28&scoped=true&ts=true\"\nimport script from \"./Interest.vue?vue&type=script&lang=ts\"\nexport * from \"./Interest.vue?vue&type=script&lang=ts\"\n\nimport \"./Interest.vue?vue&type=style&index=0&id=4af81e28&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-4af81e28\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withCtx as _withCtx, createVNode as _createVNode, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-22370822\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"content-wrapper\" }\nconst _hoisted_2 = { class: \"tableTopBox\" }\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\" Export \")\nconst _hoisted_5 = { class: \"extendBox\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ext-title\" }, \"Dealer Stock Adjustment\", -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"tab1-blue\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", null, \"TargetAvg.SI%\")\n], -1))\nconst _hoisted_8 = { class: \"extendBox\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ext-title\" }, \"Accrual Movement\", -1))\nconst _hoisted_10 = { key: 0 }\nconst _hoisted_11 = { class: \"tableTopBox\" }\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, null, -1))\nconst _hoisted_13 = /*#__PURE__*/_createTextVNode(\"Clear\")\nconst _hoisted_14 = /*#__PURE__*/_createTextVNode(\" Export \")\nconst _hoisted_15 = { class: \"allocationTablesBox\" }\nconst _hoisted_16 = { class: \"allocationTablesBox-table\" }\nconst _hoisted_17 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_18 = { class: \"extendBox\" }\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Total Allocation Amount\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_planning_data_selector = _resolveComponent(\"planning-data-selector\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_input = _resolveComponent(\"a-input\")!\n const _component_a_tab_pane = _resolveComponent(\"a-tab-pane\")!\n const _component_a_tabs = _resolveComponent(\"a-tabs\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.make === 'PBP')\n ? (_openBlock(), _createBlock(_component_planning_data_selector, {\n key: 0,\n makeId: _ctx.makeId,\n class: \"planning-data-selector\",\n onConfirm: _ctx.handleResetAvg\n }, null, 8, [\"makeId\", \"onConfirm\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_tabs, {\n type: \"card\",\n tabBarGutter: 0,\n size: \"small\",\n class: \"spec-tab\",\n activeKey: _ctx.activeKey,\n \"onUpdate:activeKey\": _cache[9] || (_cache[9] = ($event: any) => ((_ctx.activeKey) = $event)),\n onChange: _ctx.getInit\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_tab_pane, {\n key: \"Calculation\",\n tab: \"Dealer Stock Adjustment Calculation\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_a_table, {\n class: \"table\",\n columns: _ctx.whitSpaceColumns,\n \"data-source\": _ctx.whitSpacedata,\n pagination: false,\n size: \"small\",\n showHeader: false,\n rowKey: (record, index) => index\n }, {\n time: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.calculationQuarter), 1)\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"rowKey\"]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_button, {\n class: \"saveBtn\",\n type: _ctx.saveType,\n onClick: _ctx.handleSaveCalculation,\n style: {\"margin-right\":\"8px\",\"width\":\"80px\",\"height\":\"30px\",\"background\":\"#f2f2f2\"}\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }, 8, [\"type\", \"onClick\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n size: \"small\",\n onClick: _ctx.handleExport,\n style: {\"margin-right\":\"8px\",\"width\":\"80px\",\"height\":\"30px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _createVNode(_component_a_table, {\n class: \"tableFirst\",\n columns: _ctx.calculationColumns,\n customRow: _ctx.rowClick,\n \"data-source\": _ctx.calculationdata,\n pagination: false,\n rowKey: (record, index) => index,\n scroll: { y: _ctx.tableHeight, x: true },\n rowClassName: \n (record, index) => (index === 0 ? 'table-striped' : null)\n \n }, {\n operation: _withCtx(() => [\n _createVNode(_component_a_checkbox, {\n disabled: _ctx.checkFlag === 'Input',\n \"Adj.\": \"\",\n \"Avg.SI%\": \"\",\n style: {\"float\":\"left\"},\n checked: _ctx.allFlag,\n \"onUpdate:checked\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.allFlag) = $event)),\n onChange: _ctx.selectAll\n }, null, 8, [\"disabled\", \"checked\", \"onChange\"])\n ]),\n dealerStockAdjustment: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_5, [\n (_ctx.dsabtn)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: \"extendClick\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.dsOpen && _ctx.dsOpen(...args)))\n }, \"+\"))\n : (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: \"extendClick\",\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.dsClose && _ctx.dsClose(...args)))\n }, \"-\")),\n _hoisted_6\n ])\n ]),\n targetAvgSi: _withCtx(() => [\n _hoisted_7\n ]),\n accrualMovement: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_8, [\n (_ctx.ambtn)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: \"extendClick\",\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.amOpen && _ctx.amOpen(...args)))\n }, \"+\"))\n : (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: \"extendClick\",\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.amClose && _ctx.amClose(...args)))\n }, \"-\")),\n _hoisted_9\n ])\n ]),\n adjAvgSI: _withCtx(({ index, record }) => [\n (index != 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createVNode(_component_a_input, {\n value: _ctx.caluInput[index],\n \"onUpdate:value\": ($event: any) => ((_ctx.caluInput[index]) = $event),\n onChange: ($event: any) => (_ctx.inputChange(index, record)),\n style: {\"height\":\"20px\",\"width\":\"100px\"},\n onPressEnter: _ctx.leave,\n onBlur: ($event: any) => (_ctx.inputBlur(index)),\n ref: _ctx.inputIndex\n }, null, 8, [\"value\", \"onUpdate:value\", \"onChange\", \"onPressEnter\", \"onBlur\"])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n amount: _withCtx(({ record }) => [\n (_ctx.checkFlag === 'Input' && !record.children)\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 0,\n value: record.amountVAT,\n \"onUpdate:value\": ($event: any) => ((record.amountVAT) = $event),\n onFocus: ($event: any) => (_ctx.amountVATFocus(record)),\n onChange: ($event: any) => (_ctx.amountVATChange(record)),\n onBlur: ($event: any) => (_ctx.amountVATBlur(record)),\n style: {\"margin\":\"-5px 0\",\"height\":\"24px\",\"text-align\":\"right\"}\n }, null, 8, [\"value\", \"onUpdate:value\", \"onFocus\", \"onChange\", \"onBlur\"]))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.addWsllpMicrometer(record.amountVAT)), 1)\n ], 64))\n ]),\n _: 1\n }, 8, [\"columns\", \"customRow\", \"data-source\", \"rowKey\", \"scroll\", \"rowClassName\"])\n ])\n ]),\n _: 1\n }),\n _createVNode(_component_a_tab_pane, {\n key: \"Allocation\",\n tab: \"Dealer Stock Adjustment Allocation\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_11, [\n _hoisted_12,\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_button, {\n class: \"saveBtn\",\n type: \"primary\",\n onClick: _ctx.handleClearAllocation,\n style: {\"margin-right\":\"8px\",\"width\":\"80px\",\"height\":\"30px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_13\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n size: \"small\",\n onClick: _ctx.handleExport,\n style: {\"margin-right\":\"8px\",\"width\":\"80px\",\"height\":\"30px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_14\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", _hoisted_16, [\n _createVNode(_component_a_button, {\n class: \"saveBtn\",\n type: \"primary\",\n onClick: _ctx.handleSaveAllocation,\n style: {\"width\":\"80px\",\"height\":\"30px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_17\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_table, {\n class: \"table\",\n columns: _ctx.allocationColumns1,\n \"data-source\": _ctx.allocationdata1,\n pagination: false,\n rowKey: \"id\",\n size: \"small\",\n scroll: { y: _ctx.tableHeight, x: true },\n rowClassName: \n (record, index) => (index === 0 ? 'table-striped' : null)\n \n }, {\n operation: _withCtx(() => [\n _createVNode(_component_a_checkbox, {\n disabled: _ctx.checkFlag === 'Input',\n style: {\"float\":\"left\"},\n checked: _ctx.allFlag,\n \"onUpdate:checked\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.allFlag) = $event)),\n onChange: _ctx.selectAll\n }, null, 8, [\"disabled\", \"checked\", \"onChange\"])\n ]),\n checked: _withCtx(({ record, index }) => [\n _createVNode(_component_a_checkbox, {\n checked: record.selectFlag,\n \"onUpdate:checked\": ($event: any) => ((record.selectFlag) = $event),\n onChange: ($event: any) => (_ctx.changeChecked(record, index)),\n style: {\"float\":\"left\"}\n }, null, 8, [\"checked\", \"onUpdate:checked\", \"onChange\"])\n ]),\n amount: _withCtx(({ record }) => [\n (_ctx.checkFlag === 'Input' && !record.children)\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 0,\n value: record.amountVAT,\n \"onUpdate:value\": ($event: any) => ((record.amountVAT) = $event),\n onFocus: ($event: any) => (_ctx.amountVATFocus(record)),\n onChange: ($event: any) => (_ctx.amountVATChange(record)),\n onBlur: ($event: any) => (_ctx.amountVATBlur(record)),\n style: {\"margin\":\"-5px 0\",\"height\":\"24px\",\"text-align\":\"right\"}\n }, null, 8, [\"value\", \"onUpdate:value\", \"onFocus\", \"onChange\", \"onBlur\"]))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.addWsllpMicrometer(record.amountVAT)), 1)\n ], 64))\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"scroll\", \"rowClassName\"])\n ]),\n _createVNode(_component_a_table, {\n class: \"table\",\n columns: _ctx.allocationColumns2,\n \"data-source\": _ctx.allocationdata2,\n pagination: false,\n rowKey: \"id\",\n size: \"small\",\n scroll: { y: _ctx.tableHeight, x: true },\n rowClassName: \n (record, index) => (index === 0 ? 'table-striped' : null)\n \n }, {\n totalAllocationAmount: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_18, [\n (_ctx.totalbtn)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: \"extendClick\",\n onClick: _cache[6] || (_cache[6] = \n//@ts-ignore\n(...args) => (_ctx.totalOpen && _ctx.totalOpen(...args)))\n }, \"+\"))\n : (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: \"extendClick\",\n onClick: _cache[7] || (_cache[7] = \n//@ts-ignore\n(...args) => (_ctx.totalClose && _ctx.totalClose(...args)))\n }, \"-\")),\n _hoisted_19\n ])\n ]),\n operation: _withCtx(() => [\n _createVNode(_component_a_checkbox, {\n disabled: _ctx.checkFlag === 'Input',\n style: {\"float\":\"left\"},\n checked: _ctx.allFlag,\n \"onUpdate:checked\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.allFlag) = $event)),\n onChange: _ctx.selectAll\n }, null, 8, [\"disabled\", \"checked\", \"onChange\"])\n ]),\n amount: _withCtx(({ record }) => [\n (_ctx.checkFlag === 'Input' && !record.children)\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 0,\n value: record.amountVAT,\n \"onUpdate:value\": ($event: any) => ((record.amountVAT) = $event),\n onFocus: ($event: any) => (_ctx.amountVATFocus(record)),\n onChange: ($event: any) => (_ctx.amountVATChange(record)),\n onBlur: ($event: any) => (_ctx.amountVATBlur(record)),\n style: {\"margin\":\"-5px 0\",\"height\":\"24px\",\"text-align\":\"right\"}\n }, null, 8, [\"value\", \"onUpdate:value\", \"onFocus\", \"onChange\", \"onBlur\"]))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.addWsllpMicrometer(record.amountVAT)), 1)\n ], 64))\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"scroll\", \"rowClassName\"])\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"activeKey\", \"onChange\"])\n ]))\n}","\nimport { defineComponent, ref } from \"vue\";\nimport {\n getCarculation,\n saveCalculation,\n getAllocationLeft,\n getAllocationRight,\n saveAllocation,\n resetAvg\n} from \"@/API/closing\";\nimport { values } from \"lodash\";\nimport blobDownload from \"@/utils/blobDownload\";\nimport PlanningDataSelector from '@/views/Closing/Tab/Components/PlanningDataSelector.vue'\n\nexport default defineComponent({\n props: {\n makeId: {\n type: Number,\n required: true,\n },\n make: {\n type: String,\n required: true\n }\n },\n components: {\n PlanningDataSelector\n },\n setup(props, { emit }) {\n const activeKey = ref('Calculation');\n const saveType = ref(\"\");\n const tableHeight = window.innerHeight - 440;\n const tableWidth = window.innerWidth;\n const dsabtn = ref(true);\n const totalbtn = ref(true);\n const ambtn = ref(true);\n const whitSpaceColumns = ref([\n {\n title: \"\",\n dataIndex: \"w1\",\n width: \"80px\",\n key: \"make\",\n },\n {\n title: \"\",\n dataIndex: \"w2\",\n width: \"100px\",\n key: \"brand\",\n },\n {\n title: \"\",\n dataIndex: \"w3\",\n width: \"100px\",\n key: \"typeClass\",\n },\n {\n title: \"\",\n dataIndex: \"w4\",\n width: \"150px\",\n key: \"model\",\n align: \"right\",\n slots: { customRender: \"time\" },\n },\n ]);\n const whitSpacedata = ref([\n {\n w1: \"\",\n w2: \"\",\n w3: \"\",\n w4: \"\",\n },\n ]);\n const calculationColumns = ref([\n {\n title: \"Type Class\",\n dataIndex: \"typeClass\",\n width: \"70px\",\n key: \"brand\",\n align: \"left\",\n fixed: \"left\",\n },\n {\n title: \"Model\",\n dataIndex: \"model\",\n width: \"350px\",\n key: \"typeClass\",\n align: \"left\",\n fixed: \"left\",\n },\n {\n title: \"Brand\",\n dataIndex: \"brand\",\n width: \"70px\",\n key: \"make\",\n align: \"left\",\n },\n {\n dataIndex: \"dealerStockAdjustment\",\n width: \"160px\",\n key: \"model\",\n align: \"right\",\n slots: { title: \"dealerStockAdjustment\" },\n },\n {\n dataIndex: \"targetAvgSI\",\n width: \"100px\",\n key: \"avgSi\",\n align: \"right\",\n className: \"tab1-blue\",\n slots: { title: \"targetAvgSi\" },\n },\n {\n title: \"Opening Balance\",\n dataIndex: \"openingBalance\",\n width: \"150px\",\n key: \"avgSi\",\n align: \"right\",\n },\n {\n dataIndex: \"accrualMovement\",\n width: \"150px\",\n key: \"avgSi\",\n align: \"right\",\n slots: { title: \"accrualMovement\" },\n },\n ]);\n const calculationdata = ref([]);\n const allocationColumns1 = ref([\n {\n dataIndex: \"operation\",\n key: \"operation\",\n width: \"40px\",\n slots: { customRender: \"checked\" },\n fixed: \"left\",\n },\n {\n title: \"Type Class\",\n dataIndex: \"typeClass\",\n width: \"80px\",\n key: \"brand\",\n align: \"left\",\n fixed: \"left\",\n },\n {\n title: \"Model\",\n dataIndex: \"model\",\n width: \"350px\",\n key: \"typeClass\",\n align: \"left\",\n fixed: \"left\",\n },\n\n {\n title: \"Brand\",\n dataIndex: \"brand\",\n width: \"60px\",\n key: \"make\",\n align: \"left\",\n },\n {\n title: \"WS LLP\",\n dataIndex: \"wsLLp\",\n width: \"110px\",\n key: \"model\",\n align: \"right\",\n },\n {\n title: \"SD%\",\n dataIndex: \"sdPercent\",\n width: \"70px\",\n key: \"volume\",\n align: \"right\",\n },\n {\n title: \"Dealer Stock Adjustment\",\n dataIndex: \"dealerStockAdjustment\",\n width: \"125px\",\n key: \"llp\",\n align: \"right\",\n },\n ]);\n const allocationdata1 = ref([]);\n const allocationColumns2 = ref([\n {\n title: \"Type Class\",\n dataIndex: \"typeClass\",\n width: \"100px\",\n key: \"typeClass\",\n align: \"left\",\n fixed: \"left\",\n },\n {\n title: \"Model\",\n dataIndex: \"model\",\n width: \"300px\",\n key: \"model\",\n align: \"left\",\n fixed: \"left\",\n },\n\n {\n title: \"Brand\",\n dataIndex: \"brand\",\n width: \"80px\",\n key: \"brand\",\n align: \"left\",\n },\n {\n dataIndex: \"totalAllocationAmount\",\n width: \"160px\",\n key: \"totalAllocationAmount\",\n align: \"right\",\n slots: { title: \"totalAllocationAmount\" },\n },\n ]);\n\n const numberSubWithPrecision = (n: string | number, p: number) => {\n if (typeof n === \"number\") {\n n = n.toString();\n }\n let i = n.search(/^\\.\\d/);\n if (i !== -1) {\n n = n.slice(0, i);\n }\n i = n.indexOf(\".\");\n if (i === -1) {\n return n;\n } else {\n return `${n.slice(0, i)}.${n.slice(i + 1, i + 1 + p)}`;\n }\n };\n const allocationdata2 = ref([]);\n const calculationQuarter = ref(\"\");\n const caluInput = ref([]);\n const caluInputBack = ref([]);\n const changeChecked = (record: any, index: any) => {\n if (index === 0) {\n let notall = true;\n allocationdata1.value.forEach((allcoai: any, allcoaind: any) => {\n if (allcoai.selectFlag === false && allcoaind != 0) {\n notall = false;\n }\n });\n if (notall) {\n allocationdata1.value.forEach((allcoai: any, allcoaind: any) => {\n allcoai.selectFlag = false;\n });\n } else {\n allocationdata1.value.forEach((allcoai: any, allcoaind: any) => {\n allcoai.selectFlag = true;\n });\n }\n } else {\n let all = true;\n allocationdata1.value.forEach((allcoai: any, allcoaind: any) => {\n if (allcoai.selectFlag === false && allcoaind != 0) {\n all = false;\n }\n });\n if (all) {\n allocationdata1.value[0].selectFlag = true;\n } else {\n allocationdata1.value[0].selectFlag = false;\n }\n }\n };\n const doGetCalculation = () => {\n /*getCarculation({mcId: props.makeId}).then((res)=>{\n console.log(369,res)\n calculationQuarter.value= res.quarter\n })*/\n getCarculation({ mcId: props.makeId }).then((res) => {\n calculationQuarter.value = res.quarter;\n const dataArr = ref([]);\n // dataArr.value.push(res.contentMake)\n const makeobj = {};\n res.contentMake.ext.forEach((makei: any, makeind: any) => {\n makeobj[makei.keyName] = makei.value;\n });\n makeobj[\"id\"] = res.contentMake.id;\n dataArr.value.push(makeobj);\n res.contentImpact.forEach((impacti: any, impctind: any) => {\n const contentobj = {};\n impacti.ext.forEach((i: any, ind: any) => {\n contentobj[i.keyName] = i.value;\n if (contentobj[i.keyName] == \"id\") {\n contentobj[\"id\"] = i.id;\n }\n });\n\n // contentobj['id']=impacti.id\n dataArr.value.push(contentobj);\n });\n dataArr.value.forEach((dai: any, daind: any) => {\n if (dai.adjAvgSI == \"0.00%\") {\n dai.adjAvgSI = \"\";\n }\n caluInput.value[daind] = dai.adjAvgSI;\n caluInputBack.value[daind] = dai.adjAvgSI;\n });\n calculationdata.value = dataArr.value;\n });\n };\n doGetCalculation();\n const doGetAllocationLeft = () => {\n getAllocationLeft({ mcId: props.makeId }).then((res) => {\n const dataArr = ref([]);\n // dataArr.value.push(res.contentMake)\n const makeobj = {};\n const tempExt = [...res.contentMake.ext];\n tempExt.forEach((makei: any, makeind: any) => {\n makeobj[makei.keyName] = makei.value;\n });\n // makeobj['id']=res.contentMake.id\n dataArr.value.push(makeobj);\n res.contentImpact.forEach((impacti: any, impctind: any) => {\n const contentobj = {};\n impacti.ext.forEach((i: any, ind: any) => {\n contentobj[i.keyName] = i.value;\n });\n // contentobj['id']=impacti.id\n dataArr.value.push(contentobj);\n });\n const tempDataArr = dataArr.value.slice(1);\n\n tempDataArr.forEach((item: any) => {\n if (item.dealerStockAdjustment == \"0\") {\n dataArr.value[0].dealerStockAdjustments =\n dataArr.value[0].dealerStockAdjustment;\n //修复cbu显示空的bug\n // dataArr.value[0].dealerStockAdjustment = \"\";\n // dataArr.value[0].sdPercent = \"\";\n // dataArr.value[0].wsLLp = \"\";\n }\n });\n allocationdata1.value = dataArr.value;\n\n // allocationdata1.value = dataArr.value\n });\n };\n let tempAllocationColumns2: any;\n let tempIndex: any;\n doGetAllocationLeft();\n const doGetAllocationRight = () => {\n getAllocationRight({ mcId: props.makeId }).then((res) => {\n const dataArr = ref([]);\n // dataArr.value.push(res.contentMake)\n const makeobj = {};\n res.contentMake.ext.forEach((makei: any, makeind: any) => {\n makeobj[makei.keyName] = makei.value;\n if (\n makei.keyName.indexOf(\"Q1\") != -1 ||\n makei.keyName.indexOf(\"Q2\") != -1 ||\n makei.keyName.indexOf(\"Q3\") != -1||\n makei.keyName.indexOf(\"Q4\") != -1\n ) {\n let isrepeat = false;\n allocationColumns2.value.forEach((allcoi: any, cllcoind: any) => {\n // console.log(488,allcoi.title,makei.keyName)\n if (allcoi.title == makei.keyName) {\n isrepeat = true;\n }\n });\n if (!isrepeat) {\n allocationColumns2.value.push({\n title: makei.keyName,\n dataIndex: makei.keyName,\n width: \"100px\",\n key: makei.keyName,\n align: \"right\",\n });\n }\n }\n });\n makeobj[\"id\"] = res.contentMake.id;\n dataArr.value.push(makeobj);\n res.contentImpact.forEach((impacti: any, impctind: any) => {\n const contentobj = {};\n impacti.ext.forEach((i: any, ind: any) => {\n contentobj[i.keyName] = i.value;\n // console.log(511,allocationColumns2.value)\n if (\n i.keyName.indexOf(\"Q1\") != -1 ||\n i.keyName.indexOf(\"Q2\") != -1 ||\n i.keyName.indexOf(\"Q3\") != -1||\n i.keyName.indexOf(\"Q4\") != -1\n ) {\n let isrepeat = false;\n allocationColumns2.value.forEach((allcoi: any, cllcoind: any) => {\n // console.log(488,allcoi.title,i.keyName)\n if (allcoi.title == i.keyName) {\n isrepeat = true;\n }\n });\n if (!isrepeat) {\n allocationColumns2.value.push({\n title: i.keyName,\n dataIndex: i.keyName,\n width: \"100px\",\n key: i.keyName,\n align: \"right\",\n });\n }\n }\n });\n contentobj[\"id\"] = impacti.id;\n dataArr.value.push(contentobj);\n });\n tempAllocationColumns2 = [...allocationColumns2.value];\n\n allocationColumns2.value.forEach((item: any, index: any) => {\n if (item.dataIndex == \"totalAllocationAmount\") {\n tempIndex = index;\n }\n });\n allocationColumns2.value = allocationColumns2.value.slice(\n 0,\n tempIndex + 1\n );\n allocationdata2.value = dataArr.value;\n });\n };\n doGetAllocationRight();\n const handleSaveCalculation = (e: any) => {\n e.target.blur();\n saveType.value = \"\";\n const params = {\n mcId: props.makeId,\n dtoList: [],\n };\n const dtolistArr = ref([]);\n calculationdata.value.forEach((datai: any, dataind: any) => {\n if (dataind > 0) {\n const dataobj = {\n id: parseInt(datai.id),\n avg: \"\",\n };\n dataobj.avg = caluInputBack.value[dataind]\n ? caluInputBack.value[dataind]\n : \"0.00%\";\n dtolistArr.value.push(dataobj);\n }\n });\n params.dtoList = dtolistArr.value;\n saveCalculation(params).then((res) => {\n doGetCalculation();\n emit(\"init-overview\");\n });\n };\n const handleSaveAllocation = () => {\n const params = {\n mcId: props.makeId,\n ids: [],\n allocaationAmount: allocationdata1.value[0].dealerStockAdjustments\n ? allocationdata1.value[0].dealerStockAdjustments\n : allocationdata1.value[0].dealerStockAdjustment,\n };\n const ids = ref([]);\n allocationdata1.value.forEach((allcoai: any, allcoaind: any) => {\n if (allcoaind != 0 && allcoai.selectFlag === true) {\n ids.value.push(allcoai.id ? allcoai.id : \"\");\n }\n });\n params.ids = ids.value;\n saveAllocation(params).then((res) => {\n doGetAllocationLeft();\n emit(\"init-overview\");\n });\n };\n const handleClearAllocation = () => {\n const params = {\n mcId: props.makeId,\n ids: [],\n allocaationAmount: allocationdata1.value[0].dealerStockAdjustments\n ? allocationdata1.value[0].dealerStockAdjustments\n : allocationdata1.value[0].dealerStockAdjustment,\n };\n saveAllocation(params).then((res) => {\n doGetAllocationLeft();\n emit(\"init-overview\");\n });\n };\n const dsOpen = () => {\n dsabtn.value = false;\n const addColumns = [\n {\n title: \"Adj. Avg.SI%\",\n dataIndex: \"adjAvgSI\",\n width: \"120px\",\n key: \"avgSi\",\n align: \"right\",\n slots: { customRender: \"adjAvgSI\" },\n },\n {\n title: \"Avg.SI%\",\n dataIndex: \"avgSI\",\n width: \"100px\",\n key: \"avgSi\",\n align: \"right\",\n },\n {\n title: \"DLR LLP\",\n dataIndex: \"dlrLlp\",\n width: \"100px\",\n key: \"avgSi\",\n align: \"right\",\n },\n {\n title: \"DLR Volume\",\n dataIndex: \"dlrVolume\",\n width: \"100px\",\n key: \"llp\",\n align: \"right\",\n },\n {\n title: \"Dealer Stock Target\",\n dataIndex: \"dealerStockTarget\",\n width: \"150px\",\n key: \"volume\",\n align: \"right\",\n },\n ];\n addColumns.forEach((i: any, ind: any) => {\n calculationColumns.value.splice(4, 0, i);\n });\n };\n const dsClose = () => {\n dsabtn.value = true;\n const addColumns = [\n {\n title: \"Adj. Avg.SI%\",\n dataIndex: \"adjAvgSI\",\n width: \"120px\",\n key: \"avgSi\",\n align: \"right\",\n slots: { customRender: \"adjAvgSI\" },\n },\n {\n title: \"Avg.SI%\",\n dataIndex: \"avgSI\",\n width: \"100px\",\n key: \"avgSi\",\n align: \"right\",\n },\n {\n title: \"DLR LLP\",\n dataIndex: \"dlrLlp\",\n width: \"100px\",\n key: \"avgSi\",\n align: \"right\",\n },\n {\n title: \"DLR Volume\",\n dataIndex: \"dlrVolume\",\n width: \"100px\",\n key: \"llp\",\n align: \"right\",\n },\n {\n title: \"Dealer Stock Target\",\n dataIndex: \"dealerStockTarget\",\n width: \"150px\",\n key: \"volume\",\n align: \"right\",\n },\n ];\n addColumns.forEach((i: any, ind: any) => {\n calculationColumns.value.forEach((alli: any, allind: any) => {\n if (alli.dataIndex === i.dataIndex) {\n calculationColumns.value.splice(allind, 1);\n }\n });\n });\n };\n const totalOpen = () => {\n totalbtn.value = false;\n allocationColumns2.value = tempAllocationColumns2;\n };\n const totalClose = () => {\n totalbtn.value = true;\n\n allocationColumns2.value = allocationColumns2.value.slice(\n 0,\n tempIndex + 1\n );\n };\n const amOpen = () => {\n ambtn.value = false;\n const addColumns = [\n {\n title: \"Accrual Amount_WS Base\",\n dataIndex: \"accrualAmountWSbase\",\n width: \"150px\",\n key: \"avgSi\",\n align: \"right\",\n },\n {\n title: \"Accrual Amount_RT Base\",\n dataIndex: \"accrualAmountRtbase\",\n width: \"150px\",\n key: \"avgSi\",\n align: \"right\",\n },\n ];\n addColumns.forEach((i: any, ind: any) => {\n calculationColumns.value.push(i);\n });\n };\n const amClose = () => {\n ambtn.value = true;\n const addColumns = [\n {\n title: \"Accrual Amount_WS Base\",\n dataIndex: \"accrualAmountWSbase\",\n width: \"150px\",\n key: \"avgSi\",\n align: \"right\",\n },\n {\n title: \"Accrual Amount_RT Base\",\n dataIndex: \"accrualAmountRtbase\",\n width: \"150px\",\n key: \"avgSi\",\n align: \"right\",\n },\n ];\n addColumns.forEach((i: any, ind: any) => {\n calculationColumns.value.forEach((alli: any, allind: any) => {\n if (alli.dataIndex === i.dataIndex) {\n calculationColumns.value.splice(allind, 1);\n }\n });\n });\n };\n const inputChange = (index: number, record: any) => {\n saveType.value = 'primary'\n let value = numberSubWithPrecision(caluInput.value[index].replace(/[^\\d.-]/g, ''), 15)\n if (value === '') {\n value = ''\n } else {\n value = `${value}%`\n }\n caluInput.value[index] = value\n caluInputBack.value[index] = value\n };\n const itemInput: any = [];\n const inputIndex = (item: any) => {\n if (item) {\n itemInput.push(item);\n }\n };\n let tempBlur = true;\n const tempFocus = true;\n\n const inputBlur = (index: number) => {\n if (tempBlur) {\n itemInput.forEach((item: any, indexs: any) => {\n if (index == indexs) {\n itemInput[indexs].focus();\n }\n });\n \n }\n if (caluInput.value[index] === '' || caluInput.value[index] === '%') {\n caluInput.value[index] = ''\n } else {\n caluInput.value[index] =\n (\n caluInput.value[index].substring(\n 0,\n caluInput.value[index].indexOf(\"%\")\n ) * 1\n ).toFixed(2) + \"%\";\n }\n tempBlur = false;\n };\n const getInit = (activeKeys: any) => {\n if (activeKeys == \"Allocation\") {\n doGetAllocationRight();\n doGetAllocationLeft();\n }\n };\n const handleExport = () => {\n const params = {\n url: `/pcapi/api/v1/dealerStockAllocation/exportDSForTab1`,\n params: {\n mcId: props.makeId,\n },\n };\n blobDownload(params);\n };\n const leave = (e: any) => {\n tempBlur = true;\n e.target.blur();\n };\n\n const rowClick = (record: any, index: any): { onClick: Function } => {\n return {\n onClick: (e: any) => {\n //点击事件走失焦事件的时候不获取下一行焦点 回车时解开变量\n tempBlur = false;\n itemInput.forEach((item: any, indexs: any) => {\n if (index - 1 == indexs) {\n itemInput[indexs].focus();\n }\n });\n caluInput.value[index]=caluInputBack.value[index]\n \n },\n };\n };\n\n const handleResetAvg = async (planningId: number) => {\n await resetAvg(props.makeId, planningId);\n if (activeKey.value == \"Allocation\") {\n doGetAllocationRight();\n doGetAllocationLeft();\n } else {\n doGetCalculation();\n }\n emit(\"init-overview\");\n };\n\n return {\n saveType,\n rowClick,\n inputIndex,\n leave,\n getInit,\n amClose,\n amOpen,\n dsClose,\n dsOpen,\n changeChecked,\n caluInput,\n whitSpacedata,\n whitSpaceColumns,\n calculationQuarter,\n doGetAllocationRight,\n doGetAllocationLeft,\n handleClearAllocation,\n handleSaveAllocation,\n handleSaveCalculation,\n doGetCalculation,\n ambtn,\n dsabtn,\n totalbtn,\n allocationdata2,\n allocationColumns2,\n allocationdata1,\n allocationColumns1,\n tableWidth,\n calculationdata,\n calculationColumns,\n activeKey,\n tableHeight,\n inputChange,\n inputBlur,\n totalClose,\n totalOpen,\n handleExport,\n handleResetAvg\n };\n },\n});\n","import { render } from \"./DealerStock.vue?vue&type=template&id=22370822&scoped=true&ts=true\"\nimport script from \"./DealerStock.vue?vue&type=script&lang=ts\"\nexport * from \"./DealerStock.vue?vue&type=script&lang=ts\"\n\nimport \"./DealerStock.vue?vue&type=style&index=0&id=22370822&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-22370822\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, 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-6530623c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"upload-com\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", { src: _imports_0 }, null, -1))\nconst _hoisted_3 = /*#__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_4 = { key: 1 }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"file upload\", -1))\nconst _hoisted_6 = { 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_7 = /*#__PURE__*/_createTextVNode(\"Upload\")\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"Cancel\")\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: \"Upload\",\n closable: true,\n visible: _ctx.showDrawer,\n width: \"30%\",\n bodyStyle: { paddingTop: '25px' },\n onClose: _ctx.handleClose\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\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_2,\n _hoisted_3\n ]),\n _: 1\n }, 8, [\"customRequest\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _hoisted_5,\n _createVNode(_component_a_progress, { percent: _ctx.percent }, null, 8, [\"percent\"])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleUpload,\n disabled: _ctx.uploadFlag,\n style: {\"margin-right\":\"10px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleClose\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onClose\"]))\n}","\nimport { defineComponent, ref } from 'vue';\nimport { uploadCalculationDetail } from '@/API/closing';\nimport { message } from 'ant-design-vue';\nimport isExcel from '@/utils/closing/isExcel';\nimport blobDownload from '@/utils/blobDownload';\n\nexport default defineComponent({\n emits: ['close-drawer', 'handle-upload-success'],\n props: {\n showDrawer: {\n default: false,\n type: Boolean\n },\n makeId: {\n default: -1,\n type: Number\n }\n },\n setup(props, { emit }) {\n // 是否显示上传框\n const showUpload = ref(true);\n const percent = ref(0);\n const uploadFlag = ref(true);\n const file = ref();\n\n const handleClose = () => {\n emit('close-drawer');\n };\n const uploadConfig = {\n onUploadProgress: (progressEvent: any) => {\n if (progressEvent.lengthComputable) {\n const complete = ((progressEvent.loaded / progressEvent.total) * 100) | 0;\n percent.value = complete;\n }\n }\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 if (!(await isExcel(file.value))) {\n // 出错之后重置上传组件状态\n showUpload.value = true;\n uploadFlag.value = true;\n percent.value = 0;\n message.error('file type error');\n return;\n }\n const uploadFormData = new FormData();\n uploadFormData.append('file', file.value);\n const mcId = props.makeId;\n try {\n const res = await uploadCalculationDetail(mcId, uploadFormData, uploadConfig);\n // 上传之后重置上传组件状态\n showUpload.value = true;\n uploadFlag.value = true;\n percent.value = 0;\n if (res.code === '0') {\n message.success('submit success');\n emit('handle-upload-success');\n } else {\n message.error('submit failed');\n }\n } catch (e) {\n // 上传出错重置上传组件状态\n showUpload.value = true;\n uploadFlag.value = true;\n percent.value = 0;\n }\n };\n\n return {\n handleClose,\n uploadRequest,\n handleUpload,\n showUpload,\n uploadFlag,\n percent\n };\n }\n});\n","import { render } from \"./CalculationDetailUpload.vue?vue&type=template&id=6530623c&scoped=true&ts=true\"\nimport script from \"./CalculationDetailUpload.vue?vue&type=script&lang=ts\"\nexport * from \"./CalculationDetailUpload.vue?vue&type=script&lang=ts\"\n\nimport \"./CalculationDetailUpload.vue?vue&type=style&index=0&id=6530623c&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-6530623c\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, renderList as _renderList, createSlots as _createSlots, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-14f25f7c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"header\" }\nconst _hoisted_2 = /*#__PURE__*/_createTextVNode(\"Clear\")\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_4 = { class: \"table1\" }\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = { class: \"table2\" }\nconst _hoisted_7 = { class: \"table2-btn\" }\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_9 = /*#__PURE__*/_createTextVNode(\"Upload\")\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\" Export \")\nconst _hoisted_11 = { key: 1 }\nconst _hoisted_12 = { key: 1 }\nconst _hoisted_13 = { key: 1 }\n\nimport { ref, inject, h, computed } from 'vue';\nimport blobDownload from '@/utils/blobDownload';\nimport CalculationDetailUpload from './CalculationDetailUpload';\nimport useThousandsAndTwoDecimal from '@/utils/payment/useThousandsAndTwoDecimal';\nimport { toThousandsAndTwoDecimal } from '@/utils/payment/numberFormat';\nimport Decimal from '@/utils/closing/decimal';\nimport { saveCalculationTotal, fetchCalculationData, saveCalculation, clearCalculationYearly } from '@/API/closing';\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n makeYear: {\n type: String,\n default: ''\n }\n},\n emits: ['init-overview', 'reset-planning-data'],\n setup(__props, { expose, emit }) {\n\nconst props = __props\n\n\n\n\n\nconst mcId = inject('mcId');\n\nconst totalColumns = ref([\n {\n title: 'Dealer stock adjustment',\n dataIndex: 'adjName',\n width: '180px',\n align: 'center'\n },\n {\n title: 'Total',\n dataIndex: 'totalShow',\n width: '150px',\n align: 'right',\n slots: {\n customRender: 'total'\n }\n },\n {\n title: 'Brand (以Brand维度汇总)',\n children: []\n }\n]);\n\nconst detailColumns = [\n {\n title: 'Type Class',\n dataIndex: 'typeClass',\n width: '80px',\n align: 'center'\n },\n {\n title: 'Brand',\n dataIndex: 'brand',\n width: '80px',\n align: 'center'\n },\n {\n title: 'Model',\n dataIndex: 'impactName',\n width: '180px',\n align: 'center'\n },\n {\n title: 'Opening Balance',\n dataIndex: 'openingBalanceShow',\n width: '150px',\n align: 'right',\n // customRender: useThousandsAndTwoDecimal()\n slots: {\n customRender: 'openingBalance'\n }\n },\n {\n title: 'DLR',\n dataIndex: 'dlrVolume',\n width: '100px',\n align: 'right',\n customRender: useThousandsAndTwoDecimal()\n },\n {\n title: 'DLR LLP',\n dataIndex: 'dlrLlpShow',\n width: '150px',\n align: 'right',\n slots: {\n customRender: 'dlrLlp'\n }\n // customRender: useThousandsAndTwoDecimal()\n },\n {\n title: 'Avg SI% (Planning SI%)',\n dataIndex: 'avgSi',\n width: '100px',\n align: 'right',\n customRender: ({ text }: { text: number | string }) => {\n return h('span', `${toThousandsAndTwoDecimal(text)}%`);\n }\n },\n {\n title: 'Adj. Avg.SI%',\n dataIndex: 'adjAvgSiShow',\n width: '100px',\n align: 'right',\n slots: {\n customRender: 'adjAvgSi'\n }\n // customRender: ({ text }: { text: number | string }) => {\n // return h('span', `${toThousandsAndTwoDecimal(text)}%`);\n // }\n },\n {\n title: 'DS Target % AVG.SI',\n dataIndex: 'targetAvgSi',\n width: '100px',\n align: 'right',\n customRender: ({ text }: { text: number | string }) => {\n return h('span', `${toThousandsAndTwoDecimal(text)}%`);\n }\n },\n {\n title: 'DS Target',\n dataIndex: 'target',\n width: '180px',\n align: 'right',\n customRender: useThousandsAndTwoDecimal()\n }\n];\n\nconst totalData = ref([]);\n\nconst detailData = ref([]);\n\nconst brandList = ref([]);\nconst inputSlots = computed(() => ['total', ...brandList.value]);\nconst editableRow = ref([]);\n\nconst getCalculationData = async () => {\n const res = await fetchCalculationData(mcId.value);\n // 处理动态列头\n brandList.value = res.brandList;\n const childCols = brandList.value.map((item: any) => {\n return {\n title: item,\n dataIndex: `${item}Show`,\n width: '150px',\n align: 'right',\n slots: {\n customRender: item\n }\n };\n });\n totalColumns.value[2].children = childCols;\n // 加工下表格数据\n editableRow.value.length = 0;\n const brandDataList = res.brandDataList;\n totalData.value = brandDataList.map((item: any) => {\n if (item.editable) {\n editableRow.value.push(item.adjName);\n }\n const brandTotalShow = Object.keys(item.brandTotal).reduce((obj: any, key: string) => {\n return { ...obj, [`${key}Show`]: toThousandsAndTwoDecimal(item.brandTotal[key]) };\n }, {});\n return { ...item, ...item.brandTotal, totalShow: toThousandsAndTwoDecimal(item.total), ...brandTotalShow };\n });\n // detail 数据\n const detailModified = ['openingBalance', 'dlrLlp', 'adjAvgSi'];\n detailData.value = res.dealerStockAllocationRespList.map((row: any) => {\n if (row.dlrLlp === 0) {\n row['isDlrLlpEditable'] = true;\n }\n return detailModified.reduce((newRow: any, key: string) => {\n const newValue =\n key === 'adjAvgSi' ? `${toThousandsAndTwoDecimal(row[key])}%` : toThousandsAndTwoDecimal(row[key]);\n return { ...newRow, [`${key}Show`]: newValue };\n }, row);\n });\n};\ngetCalculationData();\n\nconst handleClear = async () => {\n await clearCalculationYearly(mcId.value);\n getCalculationData();\n emit('init-overview');\n emit('reset-planning-data');\n};\n\nconst handleSaveTotal = async () => {\n const savedData = totalData.value.reduce((data: any, row: any) => {\n const rowKey = row.adjName;\n if (!editableRow.value.includes(rowKey)) return data;\n const brandTotal = brandList.value.reduce((brandObj: any, key: string) => {\n return { ...brandObj, [key]: row[key] };\n }, {});\n return { ...data, [rowKey]: { total: row.total, ...brandTotal } };\n }, {});\n await saveCalculationTotal(mcId.value, savedData);\n getCalculationData();\n emit('init-overview');\n};\n\nconst handleSaveDetail = async () => {\n const dtoList = detailData.value.map((row: any) => {\n return {\n id: row.id,\n avg: row.adjAvgSiShow,\n dlrLlp: Number(row.dlrLlp),\n openingBalance: Number(row.openingBalance)\n };\n });\n await saveCalculation({ mcId: mcId.value, dtoList });\n getCalculationData();\n emit('init-overview');\n};\n\nconst handleExportDetail = async () => {\n const params = {\n url: `/pcapi/api/v1/dealerStockAllocation/ds/year/calculation/export/${mcId.value}`\n };\n blobDownload(params);\n};\n\nconst showDrawer = ref(false);\nconst handleShowDrawer = () => {\n showDrawer.value = true;\n};\nconst closeDrawer = () => {\n showDrawer.value = false;\n};\nconst handleUploadSuccess = () => {\n getCalculationData();\n};\n\nconst trimZeroOfString = (str: string) => {\n const [integer, decimal] = str.split('.');\n const newInteger = Number(integer);\n const newDecimal = decimal ? Number(decimal.split('').reverse().join('')) : 0;\n\n return newDecimal === 0 ? `${newInteger}` : `${newInteger}.${newDecimal.toString().split('').reverse().join('')}`;\n};\n\nconst oldValue = ref();\n\nconst handleInputChange = (e, record, key) => {\n // ! 保证输入的字符串是 数字 - .\n const value = trimZeroOfString(e.target.value.replace(/[^\\d.-]/g, ''));\n record[key] = value;\n record[`${key}Show`] = e.target.value;\n};\n\nconst handleadjAvgSiInputBlur = (e, record, key) => {\n record[`${key}Show`] = `${toThousandsAndTwoDecimal(e.target.value)}%`;\n};\n\nconst handleInputBlur = (e, record, key) => {\n record[`${key}Show`] = toThousandsAndTwoDecimal(e.target.value);\n //! 修改了 brand 要同时修改 total,新旧值一样时不修改\n if (oldValue.value.toString() === e.target.value) {\n return;\n }\n if (key !== 'total') {\n const brandTotal = brandList.value\n .reduce((total: Decimal, brand: string) => {\n return total.plus(new Decimal(record[brand]));\n }, new Decimal(0))\n .format(20, false);\n const newTotal = trimZeroOfString(brandTotal);\n record.total = newTotal;\n record.totalShow = toThousandsAndTwoDecimal(newTotal);\n }\n};\n\nconst handleInputFocus = (e, record, key) => {\n oldValue.value = record[key];\n record[`${key}Show`] = record[key];\n};\n\nexpose({ getCalculationData });\n\nreturn (_ctx: any,_cache: any) => {\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(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"span\", null, \"Year \" + _toDisplayString(__props.makeYear), 1),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_button, {\n style: {\"background\":\"#f2f2f2\"},\n onClick: handleClear\n }, {\n default: _withCtx(() => [\n _hoisted_2\n ]),\n _: 1\n }),\n _createVNode(_component_a_button, {\n style: {\"background\":\"#f2f2f2\"},\n onClick: handleSaveTotal\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_a_table, {\n columns: totalColumns.value,\n \"data-source\": totalData.value,\n pagination: false,\n size: \"small\",\n rowKey: (record, index) => index\n }, _createSlots({ _: 2 }, [\n _renderList(_unref(inputSlots), (key, ind) => {\n return {\n name: key,\n fn: _withCtx(({ text, index, record }) => [\n (![0, 2, 4, 8].includes(index))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, _toDisplayString(text), 1))\n : (_openBlock(), _createBlock(_component_a_input, {\n key: 1,\n size: \"small\",\n value: record[`${key}Show`],\n onChange: (e) => handleInputChange(e, record, key),\n onBlur: (e) => handleInputBlur(e, record, key),\n onFocus: (e) => handleInputFocus(e, record, key)\n }, null, 8, [\"value\", \"onChange\", \"onBlur\", \"onFocus\"]))\n ])\n }\n })\n ]), 1032, [\"columns\", \"data-source\", \"rowKey\"])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_a_button, {\n style: {\"background\":\"#f2f2f2\"},\n onClick: handleSaveDetail\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n }),\n _createVNode(_component_a_button, {\n style: {\"background\":\"#f2f2f2\"},\n onClick: handleShowDrawer\n }, {\n default: _withCtx(() => [\n _hoisted_9\n ]),\n _: 1\n }),\n _createVNode(_component_a_button, {\n type: \"primary\",\n size: \"small\",\n onClick: handleExportDetail\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_table, {\n columns: detailColumns,\n \"data-source\": detailData.value,\n pagination: false,\n size: \"small\",\n rowKey: (record, index) => index,\n scroll: { y: 600 }\n }, {\n openingBalance: _withCtx(({ text, record, index }) => [\n (index !== 0)\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 0,\n size: \"small\",\n value: record.openingBalanceShow,\n onChange: (e) => handleInputChange(e, record, 'openingBalance'),\n onBlur: (e) => handleInputBlur(e, record, 'openingBalance'),\n onFocus: (e) => handleInputFocus(e, record, 'openingBalance')\n }, null, 8, [\"value\", \"onChange\", \"onBlur\", \"onFocus\"]))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(text), 1))\n ]),\n dlrLlp: _withCtx(({ text, record, index }) => [\n (record.isDlrLlpEditable && index !== 0)\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 0,\n size: \"small\",\n value: record.dlrLlpShow,\n onChange: (e) => handleInputChange(e, record, 'dlrLlp'),\n onBlur: (e) => handleInputBlur(e, record, 'dlrLlp'),\n onFocus: (e) => handleInputFocus(e, record, 'dlrLlp')\n }, null, 8, [\"value\", \"onChange\", \"onBlur\", \"onFocus\"]))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_12, _toDisplayString(text), 1))\n ]),\n adjAvgSi: _withCtx(({ text, record, index }) => [\n (index !== 0)\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 0,\n size: \"small\",\n value: record.adjAvgSiShow,\n onChange: (e) => handleInputChange(e, record, 'adjAvgSi'),\n onBlur: (e) => handleadjAvgSiInputBlur(e, record, 'adjAvgSi'),\n onFocus: (e) => handleInputFocus(e, record, 'adjAvgSi')\n }, null, 8, [\"value\", \"onChange\", \"onBlur\", \"onFocus\"]))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_13, _toDisplayString(text), 1))\n ]),\n _: 1\n }, 8, [\"data-source\", \"rowKey\"])\n ])\n ]),\n (showDrawer.value)\n ? (_openBlock(), _createBlock(_unref(CalculationDetailUpload), {\n key: 0,\n showDrawer: showDrawer.value,\n makeId: _unref(mcId),\n onHandleUploadSuccess: handleUploadSuccess,\n onCloseDrawer: closeDrawer\n }, null, 8, [\"showDrawer\", \"makeId\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./Calculation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Calculation.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Calculation.vue?vue&type=style&index=0&id=14f25f7c&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, [['__scopeId',\"data-v-14f25f7c\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-39200fea\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"content1\" }\nconst _hoisted_2 = /*#__PURE__*/_createTextVNode(\"Total Allocation\")\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"Brand Allocation\")\nconst _hoisted_4 = { class: \"content2\" }\nconst _hoisted_5 = { class: \"table2\" }\nconst _hoisted_6 = { class: \"table-btn\" }\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_8 = { class: \"table3\" }\nconst _hoisted_9 = { class: \"table-btn\" }\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\"Clear\")\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\" Export \")\n\nimport { ref, reactive, inject } from 'vue';\nimport blobDownload from '@/utils/blobDownload';\nimport useThousandsAndTwoDecimal from '@/utils/payment/useThousandsAndTwoDecimal';\nimport { toThousandsAndTwoDecimal } from '@/utils/payment/numberFormat';\nimport {\n saveAllocationDetail,\n exportAllocationDetail,\n initDSForTab2Left,\n fetchAllocationData,\n saveAllocation,\n clearAllocationYearly\n} from '@/API/closing';\n\n\nexport default /*#__PURE__*/_defineComponent({\n emits: ['init-overview'],\n setup(__props, { expose, emit }) {\n\n\n\nconst mcId = inject('mcId');\n\nconst allocationType = ref(0);\n\nconst tableHeight = window.innerHeight - 440;\n\nconst totalColumns = ref([\n {\n title: 'Dealer stock adjustment',\n dataIndex: 'adjName',\n width: '180px',\n align: 'right'\n },\n {\n title: 'Total',\n dataIndex: 'total',\n width: '150px',\n align: 'right',\n customRender: useThousandsAndTwoDecimal(),\n customCell: (record: any, rowIndex: any) => {\n return allocationType.value !== 0\n ? {\n style: {\n backgroundColor: '#808080'\n }\n }\n : {};\n }\n }\n]);\nconst totalData = ref([]);\n\nconst allocationColumns1 = ref([\n {\n title: 'Type Class',\n dataIndex: 'typeClass',\n width: '80px',\n align: 'right'\n },\n {\n title: 'Brand',\n dataIndex: 'brand',\n width: '80px',\n align: 'right'\n },\n {\n title: 'Model',\n dataIndex: 'model',\n width: '300px',\n key: 'model',\n align: 'right'\n },\n {\n title: 'WS LLP',\n dataIndex: 'wsLlp',\n width: '160px',\n align: 'right',\n customRender: useThousandsAndTwoDecimal()\n },\n {\n title: 'SD% by Model',\n dataIndex: 'sdPercent',\n width: '100px',\n align: 'right',\n slots: {\n customRender: 'sd'\n }\n }\n]);\n\nconst allocationColumns2 = ref([\n {\n title: 'Type Class',\n dataIndex: 'typeClass',\n width: '100px',\n key: 'typeClass',\n align: 'right'\n },\n {\n title: 'Brand',\n dataIndex: 'brand',\n width: '80px',\n key: 'brand',\n align: 'right'\n },\n {\n title: 'Model',\n dataIndex: 'model',\n width: '300px',\n key: 'model',\n align: 'right'\n },\n {\n title: 'Total Allocation Amount',\n dataIndex: 'amount',\n width: '160px',\n key: 'amount',\n align: 'right',\n customRender: useThousandsAndTwoDecimal()\n }\n]);\n\nconst allocationdata = ref([]);\n\nconst rowSelection = reactive<{\n selectedRowKeys: any[];\n onChange: Function;\n}>({\n onChange: (selectedRowKeys: []) => {\n rowSelection.selectedRowKeys = selectedRowKeys;\n },\n selectedRowKeys: []\n});\n\nconst getAllocationData = async () => {\n await initDSForTab2Left(mcId.value);\n const res = await fetchAllocationData(mcId.value);\n // 动态表头\n const headerList = res.headerList;\n const dynamicCols = headerList.map((item: any) => {\n return {\n title: item,\n dataIndex: item,\n width: '150px',\n align: 'right',\n customRender: useThousandsAndTwoDecimal(),\n customCell: (record: any, rowIndex: any) => {\n return allocationType.value === 0\n ? {\n style: {\n backgroundColor: '#808080'\n }\n }\n : {};\n }\n };\n });\n if (totalColumns.value.length === 2) {\n totalColumns.value = [...totalColumns.value, ...dynamicCols];\n }\n // 加工下表格数据\n const brandDataList = res.brandDataList;\n totalData.value = brandDataList.map((item: any) => {\n return { ...item, ...item.brandTotal };\n });\n //\n allocationdata.value = res.allocationList;\n allocationType.value = res.dsAllocationType;\n};\ngetAllocationData();\n\nconst handleAllocationSave = async () => {\n const params = {\n mcId: mcId.value,\n ids: rowSelection.selectedRowKeys,\n dsAllocationType: allocationType.value\n };\n const res = await saveAllocation(params);\n getAllocationData();\n emit('init-overview');\n};\n\nconst handleAllocationClear = async () => {\n await clearAllocationYearly(mcId.value);\n getAllocationData();\n emit('init-overview');\n};\n\nconst handleAllocationExport = async () => {\n const params = {\n url: `/pcapi/api/v1/dealerStockAllocation/ds/year/allocation/export/${mcId.value}`\n };\n blobDownload(params);\n};\n\nexpose({\n getAllocationData\n});\n\nreturn (_ctx: any,_cache: any) => {\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_a_radio = _resolveComponent(\"a-radio\")!\n const _component_a_radio_group = _resolveComponent(\"a-radio-group\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_a_table, {\n class: \"table1\",\n columns: totalColumns.value,\n \"data-source\": totalData.value,\n pagination: false,\n size: \"small\",\n rowKey: (record, index) => index\n }, null, 8, [\"columns\", \"data-source\", \"rowKey\"]),\n _createVNode(_component_a_radio_group, {\n name: \"allocationType\",\n value: allocationType.value,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((allocationType).value = $event))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_radio, { value: 0 }, {\n default: _withCtx(() => [\n _hoisted_2\n ]),\n _: 1\n }),\n _createVNode(_component_a_radio, { value: 1 }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: handleAllocationSave\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n })\n ]),\n _createVNode(_component_a_table, {\n columns: allocationColumns1.value,\n \"data-source\": allocationdata.value,\n pagination: false,\n rowKey: \"id\",\n scroll: { y: tableHeight, x: true },\n \"row-selection\": _unref(rowSelection)\n }, {\n sd: _withCtx(({ text }) => [\n _createTextVNode(_toDisplayString(`${_unref(toThousandsAndTwoDecimal)(text)}`), 1)\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"scroll\", \"row-selection\"])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: handleAllocationClear\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }),\n _createVNode(_component_a_button, {\n type: \"primary\",\n size: \"small\",\n onClick: handleAllocationExport\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n })\n ]),\n _createVNode(_component_a_table, {\n columns: allocationColumns2.value,\n \"data-source\": allocationdata.value,\n pagination: false,\n scroll: { y: tableHeight, x: true }\n }, null, 8, [\"columns\", \"data-source\", \"scroll\"])\n ])\n ])\n ], 64))\n}\n}\n\n})","import script from \"./Allocation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Allocation.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Allocation.vue?vue&type=style&index=0&id=39200fea&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, [['__scopeId',\"data-v-39200fea\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-245631c5\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"content-wrapper\" }\n\nimport { defineComponent, ref, computed } from 'vue';\nimport blobDownload from '@/utils/blobDownload';\nimport PlanningDataSelector from '@/views/Closing/Tab/Components/PlanningDataSelector.vue';\nimport Calculation from './DealerStockYearly/Calculation';\nimport Allocation from './DealerStockYearly/Allocation';\nimport { resetAvg } from '@/API/closing';\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n makeId: {\n type: Number,\n required: true\n },\n make: {\n type: String,\n required: true\n },\n makeYear: {\n type: String,\n default: ''\n }\n},\n emits: ['init-overview'],\n setup(__props, { emit }) {\n\nconst props = __props\n\n\n\n\nconst allocationComp = ref(null);\nconst calculationComp = ref(null);\n\nconst activeKey = ref('Calculation');\n\nconst handleResetAvg = async (planningId: number) => {\n await resetAvg(props.makeId, planningId);\n if (activeKey.value == 'Allocation') {\n allocationComp.value.getAllocationData();\n } else {\n calculationComp.value.getCalculationData();\n }\n emit('init-overview');\n};\n\nconst initOverview = () => {\n emit('init-overview');\n};\n\nconst planningDataSelectorComponent = ref(null);\nconst handleResetPlanningData = () => {\n planningDataSelectorComponent.value.init();\n};\n\nconst keyValue = ref(1);\nconst calculationKey = computed(() => `calculation-${keyValue.value}`);\nconst allocationKey = computed(() => `allocation-${keyValue.value}`);\nconst refreshKey = () => {\n keyValue.value += 1;\n};\n\nreturn (_ctx: any,_cache: any) => {\n const _component_a_tab_pane = _resolveComponent(\"a-tab-pane\")!\n const _component_a_tabs = _resolveComponent(\"a-tabs\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(PlanningDataSelector, {\n ref_key: \"planningDataSelectorComponent\",\n ref: planningDataSelectorComponent,\n makeId: __props.makeId,\n class: \"planning-data-selector\",\n onConfirm: handleResetAvg\n }, null, 8, [\"makeId\"]),\n _createVNode(_component_a_tabs, {\n type: \"card\",\n tabBarGutter: 0,\n size: \"small\",\n class: \"spec-tab\",\n activeKey: activeKey.value,\n \"onUpdate:activeKey\": _cache[0] || (_cache[0] = ($event: any) => ((activeKey).value = $event)),\n onChange: refreshKey\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_tab_pane, {\n key: \"Calculation\",\n tab: \"Dealer Stock Adjustment Calculation\"\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_unref(Calculation), {\n ref_key: \"calculationComp\",\n ref: calculationComp,\n key: _unref(calculationKey),\n makeYear: __props.makeYear,\n onResetPlanningData: handleResetPlanningData,\n onInitOverview: initOverview\n }, null, 8, [\"makeYear\"]))\n ]),\n _: 1\n }),\n _createVNode(_component_a_tab_pane, {\n key: \"Allocation\",\n tab: \"Dealer Stock Adjustment Allocation\"\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_unref(Allocation), {\n key: _unref(allocationKey),\n ref_key: \"allocationComp\",\n ref: allocationComp,\n onInitOverview: initOverview\n }))\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"activeKey\"])\n ]))\n}\n}\n\n})","import script from \"./DealerStockYearly.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./DealerStockYearly.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./DealerStockYearly.vue?vue&type=style&index=0&id=245631c5&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, [['__scopeId',\"data-v-245631c5\"]])\n\nexport default __exports__","\nimport { defineComponent, ref, reactive, computed, provide } from 'vue';\nimport { getOverview, dealerStockAccess, getIsYearlyAvailable, setCurrentProgramByYearly } from '@/API/closing';\nimport BlueInvoice from '@/views/Closing/Tab/Components/BlueInvoice.vue';\nimport programBase from '@/views/Closing/Tab/Components/ProgramBase.vue';\nimport SpecialAdjustment from '@/views/Closing/Tab/Components/SpecialAdjustment.vue';\nimport Release from '@/views/Closing/Tab/Components/Release.vue';\nimport Interest from '@/views/Closing/Tab/Components/Interest.vue';\nimport DealerStock from '@/views/Closing/Tab/Components/DealerStock.vue';\nimport DealerStockYearly from '@/views/Closing/Tab/Components/DealerStockYearly.vue';\nimport { message } from 'ant-design-vue';\ntype TableDataType = {\n name: string;\n value: string;\n};\nexport default defineComponent({\n components: {\n BlueInvoice,\n programBase,\n Interest,\n SpecialAdjustment,\n Release,\n DealerStock,\n DealerStockYearly\n },\n props: {\n make: {\n type: String,\n default: ''\n },\n makeId: {\n type: Number,\n required: true,\n default: 1\n },\n makeYear: {\n type: String,\n default: ''\n },\n makeMonth: {\n type: String,\n default: ''\n },\n activeName: {\n type: String,\n default: ''\n }\n },\n setup(props) {\n const blueInvoice = ref();\n const programBase = ref();\n const searchMarterial = ref(null);\n const searchVehicle = ref(null);\n const enumTitle = {\n '01': 'MTD Jan',\n '02': 'MTD Feb',\n '03': 'MTD Mar',\n '04': 'MTD Apr',\n '05': 'MTD May',\n '06': 'MTD Jun',\n '07': 'MTD Jul',\n '08': 'MTD Aug',\n '09': 'MTD Sep',\n '10': 'MTD Oct',\n '11': 'MTD Nov',\n '12': 'MTD Dec'\n };\n // 搜索结果表格\n const columnSearch = reactive([\n {\n title: 'MTD Jun',\n dataIndex: 'MaterialSales',\n key: 'MaterialSales',\n align: 'right'\n },\n {\n title: 'Vehicle Model',\n dataIndex: 'VehicleModel',\n key: 'VehicleModel',\n align: 'right'\n }\n ]);\n const oneTable = reactive([\n { name: '', value: '' },\n { name: '', value: '' }\n ]);\n const oneTitle = enumTitle[props.makeMonth];\n const twoTable = reactive([\n { name: '', value: '' },\n { name: '', value: '' }\n ]);\n const dataSearch = reactive([\n {\n VehicleModel: 'E260 style',\n MaterialSales: '21308010-CN1'\n },\n {\n VehicleModel: 'E260 style',\n MaterialSales: '21308010-CN2'\n }\n ]);\n const columnSearch2 = reactive([\n {\n dataIndex: 'cr',\n key: 'cr',\n width: '120px',\n align: 'right',\n slots: { title: 'crTitle', customRender: 'cr' }\n },\n {\n dataIndex: 'fleetUc',\n key: 'fleetUc',\n width: '120px',\n align: 'right',\n slots: { title: 'fleetUcTitle', customRender: 'fleetUc' }\n },\n {\n dataIndex: 'interest',\n key: 'interest',\n width: '150px',\n align: 'right',\n slots: { title: 'interestTitle', customRender: 'interest' }\n },\n {\n dataIndex: 'blueInvoice',\n key: 'blueInvoice',\n width: '120px',\n align: 'right',\n slots: { title: 'customTitle', customRender: 'blueInvoice' }\n },\n {\n dataIndex: 'dlrStockAdj',\n key: 'dlrStockAdj',\n align: 'right',\n width: '110px',\n slots: { title: 'dlrStockAdjTitle', customRender: 'dlrStockAdj' }\n },\n {\n dataIndex: 'specialAdj',\n key: 'specialAdj',\n width: '120px',\n align: 'right',\n slots: { title: 'specialTitle', customRender: 'specialAdj' }\n },\n {\n dataIndex: 'release',\n key: 'release',\n width: '120px',\n align: 'right',\n slots: { title: 'releaseTitle', customRender: 'release' }\n }\n ]);\n const dataSearch2 = reactive([]);\n\n // 其它卡片临时隐藏\n const caterageryCard = ref([\n {\n name: 'Program Base Accrual',\n id: 0\n },\n {\n name: 'Blue Invoice',\n id: 1\n },\n {\n name: 'MBAFC Interest',\n id: 2\n },\n {\n name: 'Dealer Stock Adj.(DS Adj.)',\n id: 3\n },\n {\n name: 'Special Adj.',\n id: 4\n },\n {\n name: 'Release',\n id: 5\n }\n ]);\n\n const isYearlyAvailable = ref(false);\n const judgeYearlyAvailable = () => {\n if (props.make === 'PBP') {\n dealerStockType.value = 'yearly';\n return;\n }\n if (props.makeMonth !== '12') {\n dealerStockType.value = 'quarterly';\n return;\n }\n getIsYearlyAvailable(mcId.value).then((res) => {\n isYearlyAvailable.value = res as boolean;\n });\n };\n\n // * 判断是dealerStock的类型: yearly / quarterly\n const dealerStockType = ref(null);\n const isActive = ref(0);\n // 是否从Final View 跳过来\n props.activeName === 'blueInvoice' ? (isActive.value = 1) : (isActive.value = 0);\n const selectCard = (id: number) => {\n if (id === 3) {\n dealerStockType.value = null;\n judgeYearlyAvailable();\n dealerStockAccess({ mcId: props.makeId == -1 ? 1 : props.makeId }).then((res) => {\n if (res.message === 'success') {\n isActive.value = id;\n } else {\n message.error('There is no Dealer Stock business in current month');\n }\n });\n } else {\n isActive.value = id;\n }\n };\n const mcId = computed(() => (props.makeId === -1 ? 1 : props.makeId));\n provide('mcId', mcId);\n // 初始化overview表格信息\n const initOverview = () => {\n getOverview({ mcId: mcId.value }).then((res) => {\n oneTable.length = 0;\n dataSearch2.length = 0;\n twoTable.length = 0;\n oneTable.push(...res.table1);\n dataSearch2.push(...res.table3);\n twoTable.push(...res.table2);\n });\n };\n initOverview();\n const refreshOverview = () => {\n initOverview();\n };\n\n const handleDealerStockSelect = async (type: string) => {\n if (type === 'yearly') {\n await setCurrentProgramByYearly(mcId.value);\n dealerStockType.value = type;\n } else {\n dealerStockType.value = type;\n }\n };\n\n return {\n searchMarterial,\n searchVehicle,\n columnSearch,\n dataSearch,\n oneTable,\n oneTitle,\n twoTable,\n dataSearch2,\n columnSearch2,\n caterageryCard,\n selectCard,\n isActive,\n initOverview,\n refreshOverview,\n blueInvoice,\n programBase,\n dealerStockType,\n handleDealerStockSelect,\n isYearlyAvailable\n };\n }\n});\n","import { render } from \"./GenerateClosing.vue?vue&type=template&id=55bafc58&scoped=true&ts=true\"\nimport script from \"./GenerateClosing.vue?vue&type=script&lang=ts\"\nexport * from \"./GenerateClosing.vue?vue&type=script&lang=ts\"\n\nimport \"./GenerateClosing.vue?vue&type=style&index=0&id=55bafc58&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-55bafc58\"]])\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, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-28ae398f\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"overview\" }\nconst _hoisted_2 = /*#__PURE__*/_createTextVNode(\" Closing Month \")\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { style: {\"color\":\"#1890ff\"} }, \"vs Version\", -1))\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\" MTD/YTD \")\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"MTD\")\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"YTD\")\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Refresh\", -1))\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"Refresh\")\nconst _hoisted_9 = { class: \"multiply-button\" }\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\" Edit in WIP \")\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\" Copy Final to WIP\")\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\" Save Final Version \")\nconst _hoisted_13 = /*#__PURE__*/_createTextVNode(\" Update Blue Invoice in Final \")\nconst _hoisted_14 = /*#__PURE__*/_createTextVNode(\" Export Final Accrual \")\nconst _hoisted_15 = /*#__PURE__*/_createTextVNode(\" Model Name Mapping \")\nconst _hoisted_16 = { key: 0 }\nconst _hoisted_17 = /*#__PURE__*/_createTextVNode(\" Confirm to Save Final Version \")\nconst _hoisted_18 = /*#__PURE__*/_createTextVNode(\"Cancel\")\nconst _hoisted_19 = /*#__PURE__*/_createTextVNode(\"Confirm\")\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_tooltip = _resolveComponent(\"a-tooltip\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_first = _resolveComponent(\"first\")!\n const _component_a_tab_pane = _resolveComponent(\"a-tab-pane\")!\n const _component_second = _resolveComponent(\"second\")!\n const _component_third = _resolveComponent(\"third\")!\n const _component_fourth = _resolveComponent(\"fourth\")!\n const _component_a_tabs = _resolveComponent(\"a-tabs\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n const _component_review_upload = _resolveComponent(\"review-upload\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _hoisted_2,\n _createVNode(_component_a_select, {\n value: _ctx.makeMonth,\n class: \"select\",\n disabled: \"\",\n size: \"small\"\n }, null, 8, [\"value\"]),\n _hoisted_3,\n _createVNode(_component_a_select, {\n class: \"select\",\n size: \"small\",\n placeholder: \"select\",\n value: _ctx.planningId,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.planningId) = $event)),\n onChange: _ctx.handleSelect\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.wsVersionArray, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.id,\n key: item.id\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_tooltip, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.planningName), 1)\n ]),\n default: _withCtx(() => [\n _createTextVNode(\" \" + _toDisplayString(item.planningName), 1)\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"]),\n _hoisted_4,\n _createVNode(_component_a_select, {\n class: \"select-version\",\n size: \"small\",\n placeholder: \"MTD,YTD\",\n value: _ctx.tdValue,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.tdValue) = $event)),\n onChange: _ctx.handleSelect\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select_option, { value: \"1\" }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }),\n _createVNode(_component_a_select_option, { value: \"2\" }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"]),\n _createVNode(_component_a_tooltip, { placement: \"left\" }, {\n title: _withCtx(() => [\n _hoisted_7\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_button, {\n type: \"primary\",\n size: \"small\",\n onClick: _ctx.handleRefresh\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_9, [\n (_ctx.$btnPermissions('PC0511') && _ctx.cbVersion.substr(9) !== 'WIP')\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"default\",\n size: \"small\",\n onClick: _ctx.handleEdit\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('PC0514') && _ctx.cbVersion.substr(9) !== 'WIP')\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 1,\n type: \"default\",\n size: \"small\",\n onClick: _ctx.handleEnable\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('PC0512') && _ctx.cbVersion.substr(9) !== 'FINAL')\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 2,\n type: \"primary\",\n size: \"small\",\n onClick: _ctx.showModal\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('PC0515') && _ctx.cbVersion.substr(9) !== 'WIP')\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 3,\n type: \"default\",\n size: \"small\",\n onClick: _ctx.handleUpdate\n }, {\n default: _withCtx(() => [\n _hoisted_13\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('PC0513'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 4,\n type: \"default\",\n size: \"small\",\n onClick: _ctx.exportFile\n }, {\n default: _withCtx(() => [\n _hoisted_14\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.$props.make == 'PBP')\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 5,\n type: \"default\",\n size: \"small\",\n onClick: _ctx.handleUpload\n }, {\n default: _withCtx(() => [\n _hoisted_15\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createVNode(_component_a_tabs, {\n activeKey: _ctx.activeKey,\n \"onUpdate:activeKey\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.activeKey) = $event)),\n onChange: _ctx.handleTabChange\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_tab_pane, {\n key: \"1\",\n tab: \"Report 1\"\n }, {\n default: _withCtx(() => [\n (_ctx.activeKey == 1)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n _createVNode(_component_first, {\n makeId: _ctx.makeId,\n tdValue: _ctx.tdValue,\n planningId: _ctx.planningId,\n kufriVersion: _ctx.kufriVersion,\n ref: \"report1\"\n }, null, 8, [\"makeId\", \"tdValue\", \"planningId\", \"kufriVersion\"])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createVNode(_component_a_tab_pane, {\n key: \"2\",\n tab: \"Report 2\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_second, {\n makeId: _ctx.makeId,\n makeYear: _ctx.makeYear,\n tdValue: _ctx.tdValue,\n planningId: _ctx.planningId,\n kufriVersion: _ctx.kufriVersion,\n ref: \"report2\"\n }, null, 8, [\"makeId\", \"makeYear\", \"tdValue\", \"planningId\", \"kufriVersion\"])\n ]),\n _: 1\n }),\n _createVNode(_component_a_tab_pane, {\n key: \"3\",\n tab: \"Report 3\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_third, {\n makeId: _ctx.makeId,\n makeYear: _ctx.makeYear,\n tdValue: _ctx.tdValue,\n planningId: _ctx.planningId,\n kufriVersion: _ctx.kufriVersion,\n ref: \"report3\"\n }, null, 8, [\"makeId\", \"makeYear\", \"tdValue\", \"planningId\", \"kufriVersion\"])\n ]),\n _: 1\n }),\n _createVNode(_component_a_tab_pane, {\n key: \"4\",\n tab: \"Report 4\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_fourth, {\n makeId: _ctx.makeId,\n makeYear: _ctx.makeYear,\n tdValue: _ctx.tdValue,\n planningId: _ctx.planningId,\n kufriVersion: _ctx.kufriVersion,\n ref: \"report4\"\n }, null, 8, [\"makeId\", \"makeYear\", \"tdValue\", \"planningId\", \"kufriVersion\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"activeKey\", \"onChange\"]),\n _createVNode(_component_a_modal, {\n visible: _ctx.visible,\n \"onUpdate:visible\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.visible) = $event)),\n onOk: _ctx.handleOk\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, { onClick: _ctx.handleCancel }, {\n default: _withCtx(() => [\n _hoisted_18\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleOk\n }, {\n default: _withCtx(() => [\n _hoisted_19\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _hoisted_17\n ]),\n _: 1\n }, 8, [\"visible\", \"onOk\"]),\n (_ctx.uploadDrawer.showDrawer)\n ? (_openBlock(), _createBlock(_component_review_upload, {\n key: 0,\n showDrawer: _ctx.uploadDrawer.showDrawer,\n makeId: _ctx.uploadDrawer.makeId,\n onCloseDrawer: _cache[4] || (_cache[4] = ($event: any) => (_ctx.uploadDrawer.showDrawer = false))\n }, null, 8, [\"showDrawer\", \"makeId\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8f3c0108\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { style: {\"margin\":\"0 8px\"} }\nconst _hoisted_2 = { style: {\"background\":\"#fff\",\"height\":\"28px\",\"text-align\":\"right\"} }\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\" Export \")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n size: \"small\",\n onClick: _ctx.handleExport,\n style: {\"width\":\"80px\",\"height\":\"30px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n (_ctx.data && _ctx.data.length)\n ? (_openBlock(), _createBlock(_component_a_table, {\n key: _ctx.tableKey,\n columns: _ctx.columns,\n \"data-source\": _ctx.data,\n pagination: false,\n size: \"small\",\n scroll: { y: _ctx.tableHeight ,x:1000},\n rowKey: (record, index) => record.id,\n style: {\"max-width\":\"1100px\"},\n defaultExpandAllRows: true\n }, null, 8, [\"columns\", \"data-source\", \"scroll\", \"rowKey\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}","\nimport { defineComponent, ref, h ,onBeforeUnmount} from \"vue\";\nimport { getReportOverview } from \"@/API/closing\";\nimport { ReportData, ExtData, TableHeader } from \"@/views/Closing/type\";\nimport blobDownload from \"@/utils/blobDownload\";\nconst tableHeight = window.innerHeight - 350;\nexport default defineComponent({\n props: {\n makeId: {\n type: Number,\n required: true\n },\n tdValue: {\n type: String,\n required: true\n },\n planningId: {\n type: Number,\n required: true\n },\n kufriVersion: {\n type: String,\n required: true\n }\n },\n setup(props) {\n const columns = ref([]);\n const data = ref([]);\n const tableKey=ref(false)\n const initData = () => {\n tableKey.value=!tableKey.value;\n data.value=[];\n getReportOverview({\n mcId: props.makeId,\n searchType: parseInt(props.tdValue),\n planningId: props.planningId,\n kufriVersion: props.kufriVersion\n }).then(res => {\n columns.value = res.head;\n columns.value[0]['fixed']='left'\n columns.value[0].width = \"300px\";\n columns.value.forEach((item, index) => {\n item.align = \"left\";\n if (index > 0) item.align = \"right\";\n if (~item.title.indexOf(\"Gap\")) {\n // Volume负数高亮,SI正数高亮\n item.customRender = (record: any) => {\n if (record.text === \"0\" || record.text === \"0.00%\") {\n return h(\"span\", record.text);\n }\n if (\n ~record.record.columnName.indexOf(\"Volume\") &&\n record.text !== \"\"\n ) {\n return record.text.startsWith(\"-\")\n ? h(\"span\", { style: \"color: red;\" }, record.text)\n : h(\"span\", `+${record.text}`);\n }\n if (\n !~record.record.columnName.indexOf(\"Volume\") &&\n !record.text.startsWith(\"-\")\n ) {\n return h(\"span\", { style: \"color: red;\" }, `+${record.text}`);\n }\n return h(\"span\", record.text);\n };\n }\n if (!~item.title.indexOf(\"Gap\")) {\n item.customRender = (record: any) => h(\"span\", record.text);\n }\n });\n data.value = res.content;\n const generate = (dataArray: ReportData[]) => {\n dataArray.forEach(item => {\n item.ext.forEach((ele: ExtData) => {\n item[ele.keyName] = ele.value;\n });\n if (item.children.length > 0) {\n generate(item.children);\n } else {\n Reflect.deleteProperty(item, \"children\");\n }\n });\n };\n generate(data.value);\n });\n };\n const handleExport = () => {\n const params = {\n url: `/pcapi/api/v1/reportData/exportOverview`,\n params: {\n mcId: props.makeId,\n searchType: parseInt(props.tdValue),\n planningId: props.planningId,\n kufriVersion: props.kufriVersion\n }\n };\n blobDownload(params);\n };\n onBeforeUnmount(()=>{\n data.value=[]\n })\n return {\n tableKey,\n data,\n columns,\n tableHeight,\n initData,\n handleExport\n };\n }\n});\n","import { render } from \"./First.vue?vue&type=template&id=8f3c0108&scoped=true&ts=true\"\nimport script from \"./First.vue?vue&type=script&lang=ts\"\nexport * from \"./First.vue?vue&type=script&lang=ts\"\n\nimport \"./First.vue?vue&type=style&index=0&id=8f3c0108&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-8f3c0108\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-256751e5\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { style: {\"margin\":\"0 8px\"} }\nconst _hoisted_2 = { class: \"check-btn\" }\nconst _hoisted_3 = { class: \"check-div\" }\nconst _hoisted_4 = [\"onClick\"]\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_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\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 (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.brandArray, (item) => {\n return (_openBlock(), _createElementBlock(\"p\", {\n class: _normalizeClass([\"blue-select-btn\", { 'active-blue-select-btn': item.isSelect }]),\n key: item.id,\n onClick: ($event: any) => (_ctx.selectBrand(item))\n }, _toDisplayString(item.id), 11, _hoisted_4))\n }), 128))\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_checkbox, {\n checked: _ctx.checked,\n \"onUpdate:checked\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.checked) = $event)),\n style: {\"margin-right\":\"20px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"checked\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n size: \"small\",\n onClick: _ctx.handleExport,\n style: {\"width\":\"80px\",\"height\":\"30px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _createVNode(_component_a_table, {\n columns: _ctx.columns,\n \"data-source\": _ctx.data,\n bordered: \"\",\n pagination: false,\n size: \"small\",\n rowKey: \"id\",\n scroll: { x: true, y: _ctx.tableHeight },\n expandedRowKeys: _ctx.expandedRowKeys,\n onExpand: _ctx.onExpand\n }, null, 8, [\"columns\", \"data-source\", \"scroll\", \"expandedRowKeys\", \"onExpand\"])\n ]))\n}","\nimport { defineComponent, ref } from \"vue\";\nimport { getReport2, getBrandList } from \"@/API/closing\";\nimport { ReportData, ExtData, TableHeader } from \"@/views/Closing/type\";\nimport blobDownload from \"@/utils/blobDownload\";\nimport useExpand from \"@/hooks/closing/useExpand\";\ninterface BrandType {\n id: string;\n isSelect: boolean;\n}\nconst tableHeight = window.innerHeight - 410;\nexport default defineComponent({\n props: {\n makeId: {\n type: Number,\n required: true\n },\n makeYear: {\n type: String,\n default: \"\"\n },\n tdValue: {\n type: String,\n required: true\n },\n planningId: {\n type: Number,\n required: true\n },\n kufriVersion: {\n type: String,\n required: true\n }\n },\n setup(props) {\n const columns = ref([]);\n const data = ref([]);\n const brandArray = ref([{ id: \"\", isSelect: false }]);\n const setColumnWidth = () => {\n const generate = (dataArray: TableHeader[]) => {\n dataArray.forEach((item: TableHeader) => {\n item.align = \"center\";\n if (item.title === 'Gap Amount') {\n item.width = '110px'\n } else if (item.children?.length > 0) {\n if (item.children.length === 1) {\n item.children[0].width = `${Math.max(\n item.children[0].title.length * 8,\n item.title.length * 8,\n 80\n )}px`;\n }\n generate(item.children);\n } else {\n if (!item.width) {\n item.width = `${Math.max(item.title.length * 9, 80)}px`;\n }\n }\n });\n };\n generate(columns.value);\n columns.value[0].width = \"450px\";\n };\n\n\n // expand to model 复选框初始化\n const checked = ref(false);\n\n // 获取报表数据\n let brand = \"\";\n const getReportData = () => {\n brand = \"\";\n brandArray.value.forEach((item: BrandType) => {\n if (item.isSelect) {\n brand = `${item.id},${brand}`;\n }\n });\n getReport2({\n mcId: props.makeId,\n year: props.makeYear,\n searchType: parseInt(props.tdValue),\n brand,\n planningId: props.planningId,\n kufriVersion: props.kufriVersion\n }).then(res => {\n checked.value = false\n columns.value = res.head;\n columns.value[0]['fixed']='left'\n data.value = res.content;\n setColumnWidth();\n let id = 0;\n const generate = (dataArray: ReportData[]) => {\n dataArray.forEach(item => {\n item.ext.forEach((ele: ExtData) => {\n item[ele.keyName] = ele.value;\n item.id = ++id;\n });\n if (item.children?.length > 0) {\n generate(item.children);\n } else {\n Reflect.deleteProperty(item, \"children\");\n }\n });\n };\n generate(data.value);\n });\n };\n\n const initData = async () => {\n const brandList = await getBrandList({ mcId: props.makeId });\n brandArray.value = [];\n brandList.forEach(item => {\n brandArray.value.push({ id: item, isSelect: true });\n });\n getReportData();\n };\n\n const selectBrand = (item: BrandType) => {\n item.isSelect = !item.isSelect;\n getReportData();\n };\n const handleExport = () => {\n const params = {\n url: `/pcapi/api/v1/reportData/exportOverviewByBrand`,\n params: {\n mcId: props.makeId,\n searchType: parseInt(props.tdValue),\n brand,\n planningId: props.planningId,\n kufriVersion: props.kufriVersion\n }\n };\n blobDownload(params);\n };\n const { onExpand, expandedRowKeys } = useExpand(data, checked);\n return {\n data,\n columns,\n tableHeight,\n brandArray,\n selectBrand,\n initData,\n handleExport,\n onExpand,\n checked,\n expandedRowKeys\n };\n }\n});\n","import { render } from \"./Second.vue?vue&type=template&id=256751e5&scoped=true&ts=true\"\nimport script from \"./Second.vue?vue&type=script&lang=ts\"\nexport * from \"./Second.vue?vue&type=script&lang=ts\"\n\nimport \"./Second.vue?vue&type=style&index=0&id=256751e5&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-256751e5\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-a6a90df0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"content\" }\nconst _hoisted_2 = { class: \"check-btn\" }\nconst _hoisted_3 = { class: \"check-div\" }\nconst _hoisted_4 = [\"onClick\"]\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\" Expand to Model \")\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\" Export \")\nconst _hoisted_7 = { style: {\"background\":\"#FFF\"} }\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_a_button = _resolveComponent(\"a-button\")!\n const _component_a_radio_button = _resolveComponent(\"a-radio-button\")!\n const _component_a_radio_group = _resolveComponent(\"a-radio-group\")!\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 (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.brandArray, (item) => {\n return (_openBlock(), _createElementBlock(\"p\", {\n class: _normalizeClass([\"blue-select-btn\", { 'active-blue-select-btn': item.isSelect }]),\n key: item.id,\n onClick: ($event: any) => (_ctx.selectBrand(item))\n }, _toDisplayString(item.id), 11, _hoisted_4))\n }), 128))\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_checkbox, {\n checked: _ctx.checked,\n \"onUpdate:checked\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.checked) = $event))\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"checked\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n size: \"small\",\n onClick: _ctx.handleExport,\n style: {\"margin-left\":\"16px\",\"width\":\"80px\",\"height\":\"30px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_a_radio_group, {\n value: _ctx.l1,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.l1) = $event)),\n size: \"small\",\n onChange: _cache[2] || (_cache[2] = ($event: any) => (_ctx.getReportData()))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.radioArray, (item) => {\n return (_openBlock(), _createBlock(_component_a_radio_button, {\n key: item,\n value: item\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\"])\n ]),\n _createVNode(_component_a_table, {\n id: \"report3-table\",\n columns: _ctx.columns,\n \"data-source\": _ctx.data,\n bordered: \"\",\n pagination: false,\n size: \"small\",\n scroll: { x: _ctx.xScroll, y: _ctx.tableHeight },\n rowKey: \"id\",\n expandedRowKeys: _ctx.expandedRowKeys,\n onExpand: _ctx.onExpand,\n class: _normalizeClass({\n 'table-width': _ctx.l1 === 'Release' ,\n 'table-widthDs':_ctx.l1 === 'Dealer Stock Adjustment',\n 'table-widthNb':_ctx.l1 === 'Non-program Based Accrual',\n })\n }, null, 8, [\"columns\", \"data-source\", \"scroll\", \"expandedRowKeys\", \"onExpand\", \"class\"])\n ]))\n}","\nimport { defineComponent, nextTick, onUnmounted, ref, h } from \"vue\";\nimport { getBrandList, getReport3, getl1Structure } from \"@/API/closing\";\nimport { ReportData, ExtData, TableHeader } from \"@/views/Closing/type\";\nimport useExpand from \"@/hooks/closing/useExpand\";\nimport deepClone from \"@/hooks/closing/deepClone\";\nimport blobDownload from \"@/utils/blobDownload\";\ninterface BrandType {\n id: string;\n isSelect: boolean;\n}\nconst tableHeight = window.innerHeight - 450;\nexport default defineComponent({\n props: {\n makeId: {\n type: Number,\n required: true\n },\n makeYear: {\n type: String,\n default: \"\"\n },\n tdValue: {\n type: String,\n required: true\n },\n planningId: {\n type: Number,\n required: true\n },\n kufriVersion: {\n type: String,\n required: true\n }\n },\n setup(props) {\n const brandArray = ref([]);\n // 单选L1的视角\n const l1 = ref(\"\");\n const xScroll = ref(1000);\n const columns = ref([]);\n const data = ref([]);\n\n const setColumnWidth = () => {\n const generate = (dataArray: TableHeader[]) => {\n dataArray.forEach((item: TableHeader) => {\n item.align = \"center\";\n if (item.children?.length > 0) {\n generate(item.children);\n } else {\n item.align='right'\n item.width = `${\n item.title.length * 9 > 65 ? item.title.length * 9 : 65\n }`;\n item.width = item.title.split(\"-\").includes(\"Blue Invoice\")\n ? \"110\"\n : item.width;\n }\n });\n };\n generate(columns.value);\n columns.value.forEach((item, index) => {\n item.width = index === 0 ? \"410px\" : item.width;\n // 只有 Program Based SI 支持表头横展\n if (index > 1 && l1.value === \"Program Based SI\") {\n item.title = h(\"div\", { class: \"table-header\" }, item.title);\n }\n });\n console.log(l1)\n if (l1.value=='Non-program Based Accrual'||l1.value=='Program Based SI'){\n xScroll.value=2200\n } else {\n xScroll.value=1000\n }\n };\n // 备份表头\n let columnsBackup: TableHeader[] = [];\n const radioArray = ref([]);\n // expand to model 复选框初始化\n const checked = ref(false);\n\n // 获取报表数据\n let brand = \"\";\n const getReportData = () => {\n brand = brandArray.value.reduce((brands: string, item: BrandType) => {\n if (item.isSelect) {\n brands = `${brands}${brands ? ',' : ''}${item.id}`\n }\n return brands\n }, '');\n getReport3({\n mcId: props.makeId,\n year: props.makeYear,\n levelOne: l1.value,\n searchType: parseInt(props.tdValue),\n brand,\n planningId: props.planningId,\n kufriVersion: props.kufriVersion\n }).then(res => {\n checked.value = false;\n columnsBackup = [];\n columnsBackup = deepClone(res.head);\n columns.value = res.head;\n columns.value[0]['fixed']='left'\n data.value = res.content;\n // 只有 Program Based SI 支持表头横展\n if (l1.value === \"Program Based SI\") {\n columns.value.forEach((item, index) => {\n if (index > 1) {\n item?.children?.splice(1);\n }\n });\n }\n console.log(columns)\n setColumnWidth();\n let id = 0;\n const generate = (dataArray: ReportData[]) => {\n dataArray.forEach(item => {\n item.ext.forEach((ele: ExtData) => {\n item[ele.keyName] = ele.value;\n item.id = ++id;\n });\n if (item.children?.length > 0) {\n generate(item.children);\n } else {\n Reflect.deleteProperty(item, \"children\");\n }\n });\n };\n generate(data.value);\n });\n };\n\n const initData = async () => {\n const brandList = await getBrandList({ mcId: props.makeId });\n brandArray.value = [];\n brandList.forEach(item => {\n brandArray.value.push({ id: item, isSelect: true });\n });\n radioArray.value = await getl1Structure();\n l1.value = radioArray.value[0] ?? \"\";\n getReportData();\n };\n\n const selectBrand = (item: BrandType) => {\n item.isSelect = !item.isSelect;\n getReportData();\n };\n\n const expendTitle = (e: any) => {\n // 只有 Program Based SI 支持表头横展\n if (l1.value !== \"Program Based SI\") return;\n const text = e.target.outerText;\n columnsBackup.forEach((item, index) => {\n if (text === item.title && index > 1) {\n if (columns.value[index].children.length > 1) {\n columns.value[index]?.children?.splice(1);\n } else {\n columns.value[index].children = deepClone(item.children);\n }\n }\n });\n setColumnWidth();\n };\n\n let headerList: HTMLTableSectionElement | null;\n nextTick(() => {\n headerList = Array.from(\n (document.getElementById(\n \"report3-table\"\n ) as HTMLElement).getElementsByTagName(\"thead\")\n )[0];\n headerList.addEventListener(\"click\", expendTitle);\n });\n\n const { onExpand, expandedRowKeys } = useExpand(data, checked);\n\n onUnmounted(() => {\n (headerList as HTMLElement).removeEventListener(\"click\", expendTitle);\n headerList = null;\n });\n const handleExport = () => {\n const params = {\n url: `/pcapi/api/v1/reportData/exportOverviewByBrandAndL1`,\n params: {\n mcId: props.makeId,\n levelOne: l1.value,\n searchType: parseInt(props.tdValue),\n brand,\n planningId: props.planningId,\n kufriVersion: props.kufriVersion\n }\n };\n blobDownload(params);\n };\n return {\n data,\n columns,\n tableHeight,\n brandArray,\n selectBrand,\n expendTitle,\n l1,\n radioArray,\n getReportData,\n initData,\n onExpand,\n checked,\n expandedRowKeys,\n xScroll,\n handleExport\n };\n }\n});\n","import { render } from \"./Third.vue?vue&type=template&id=a6a90df0&scoped=true&ts=true\"\nimport script from \"./Third.vue?vue&type=script&lang=ts\"\nexport * from \"./Third.vue?vue&type=script&lang=ts\"\n\nimport \"./Third.vue?vue&type=style&index=0&id=a6a90df0&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-a6a90df0\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-95869b68\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { style: {\"margin\":\"0 8px\"} }\nconst _hoisted_2 = { class: \"check-btn\" }\nconst _hoisted_3 = { class: \"check-div\" }\nconst _hoisted_4 = [\"onClick\"]\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_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\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 (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.brandArray, (item) => {\n return (_openBlock(), _createElementBlock(\"p\", {\n class: _normalizeClass([\"blue-select-btn\", { 'active-blue-select-btn': item.isSelect }]),\n key: item.id,\n onClick: ($event: any) => (_ctx.selectBrand(item))\n }, _toDisplayString(item.id), 11, _hoisted_4))\n }), 128))\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_checkbox, {\n checked: _ctx.checked,\n \"onUpdate:checked\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.checked) = $event))\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"checked\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n size: \"small\",\n onClick: _ctx.handleExport,\n style: {\"margin-left\":\"16px\",\"width\":\"80px\",\"height\":\"30px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _createVNode(_component_a_table, {\n columns: _ctx.columns,\n \"data-source\": _ctx.data,\n bordered: \"\",\n pagination: false,\n size: \"small\",\n rowKey: \"id\",\n expandedRowKeys: _ctx.expandedRowKeys,\n onExpand: _ctx.onExpand,\n scroll: { y: _ctx.tableHeight ,x:900},\n style: {\"width\":\"1000px\"}\n }, null, 8, [\"columns\", \"data-source\", \"expandedRowKeys\", \"onExpand\", \"scroll\"])\n ]))\n}","\nimport { defineComponent, ref } from \"vue\";\nimport { getReport4, getBrandList } from \"@/API/closing\";\nimport { ReportData, ExtData, TableHeader } from \"@/views/Closing/type\";\nimport useExpand from \"@/hooks/closing/useExpand\";\nimport blobDownload from \"@/utils/blobDownload\";\ninterface BrandType {\n id: string;\n isSelect: boolean;\n}\nconst tableHeight = window.innerHeight - 410;\nexport default defineComponent({\n props: {\n makeId: {\n type: Number,\n required: true\n },\n makeYear: {\n type: String,\n default: \"\"\n },\n tdValue: {\n type: String,\n required: true\n },\n planningId: {\n type: Number,\n required: true\n },\n kufriVersion: {\n type: String,\n required: true\n }\n },\n setup(props) {\n const columns = ref([]);\n const data = ref([]);\n const brandArray = ref([]);\n const setColumnWidth = () => {\n const generate = (dataArray: TableHeader[]) => {\n dataArray.forEach((item: TableHeader) => {\n item.align = \"center\";\n if (item.children?.length > 0) {\n generate(item.children);\n } else {\n item.width = `${Math.max(item.title.length * 9, 80)}`;\n item.align='right'\n }\n });\n };\n generate(columns.value);\n columns.value[0].width = \"400px\";\n };\n // expand to model 复选框初始化\n const checked = ref(false);\n // 获取报表数据\n let brand = \"\";\n const getReportData = () => {\n brand = brandArray.value.reduce((brands: string, item: BrandType) => {\n if (item.isSelect) {\n brands = `${brands}${brands ? ',' : ''}${item.id}`\n }\n return brands\n }, '');\n getReport4({\n mcId: props.makeId,\n year: props.makeYear,\n searchType: parseInt(props.tdValue),\n brand,\n planningId: props.planningId,\n kufriVersion: props.kufriVersion\n }).then(res => {\n checked.value = false;\n columns.value = res.head;\n columns.value[0]['fixed']='left'\n data.value = res.content;\n setColumnWidth();\n let id = 0;\n const generate = (dataArray: ReportData[]) => {\n dataArray.forEach(item => {\n item.ext.forEach((ele: ExtData) => {\n item[ele.keyName] = ele.value;\n item.id = ++id;\n });\n if (item.children?.length > 0) {\n generate(item.children);\n } else {\n Reflect.deleteProperty(item, \"children\");\n }\n });\n };\n generate(data.value);\n });\n };\n\n const initData = async () => {\n const brandList = await getBrandList({ mcId: props.makeId });\n brandArray.value = [];\n brandList.forEach(item => {\n brandArray.value.push({ id: item, isSelect: true });\n });\n getReportData();\n };\n\n const selectBrand = (item: BrandType) => {\n item.isSelect = !item.isSelect;\n getReportData();\n };\n const { onExpand, expandedRowKeys } = useExpand(data, checked);\n const handleExport = () => {\n const params = {\n url: `/pcapi/api/v1/reportData/exportOverviewByDemoCar`,\n params: {\n mcId: props.makeId,\n searchType: parseInt(props.tdValue),\n brand\n }\n };\n blobDownload(params);\n };\n return {\n data,\n columns,\n tableHeight,\n brandArray,\n selectBrand,\n initData,\n onExpand,\n checked,\n expandedRowKeys,\n handleExport\n };\n }\n});\n","import { render } from \"./Fourth.vue?vue&type=template&id=95869b68&scoped=true&ts=true\"\nimport script from \"./Fourth.vue?vue&type=script&lang=ts\"\nexport * from \"./Fourth.vue?vue&type=script&lang=ts\"\n\nimport \"./Fourth.vue?vue&type=style&index=0&id=95869b68&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-95869b68\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, 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/icon_download.svg'\nimport _imports_1 from '@/assets/images/rv/upload.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2040b235\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"d-f justify-e\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \" \", -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"\"\n}, null, -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Template Download\", -1))\nconst _hoisted_5 = [\n _hoisted_3,\n _hoisted_4\n]\nconst _hoisted_6 = { class: \"upload-com\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", { src: _imports_1 }, null, -1))\nconst _hoisted_8 = /*#__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_9 = { key: 1 }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"file upload\", -1))\nconst _hoisted_11 = { class: \"d-f justify-e\" }\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\"Export\")\nconst _hoisted_13 = { 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_14 = /*#__PURE__*/_createTextVNode(\"Upload\")\nconst _hoisted_15 = /*#__PURE__*/_createTextVNode(\"Cancel\")\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: \"Upload\",\n closable: true,\n visible: _ctx.showDrawer,\n width: \"30%\",\n bodyStyle: { paddingTop: '25px' },\n onClose: _ctx.handleClose\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"p\", {\n class: \"d-f align-e cursor-p download-btn\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.handleDownloadTemplate && _ctx.handleDownloadTemplate(...args)))\n }, _hoisted_5)\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\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_7,\n _hoisted_8\n ]),\n _: 1\n }, 8, [\"customRequest\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _hoisted_10,\n _createVNode(_component_a_progress, { percent: _ctx.percent }, null, 8, [\"percent\"])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleExport,\n disabled: !_ctx.exportFlag,\n style: {\"margin-top\":\"10px\",\"width\":\"70px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleUpload,\n disabled: _ctx.uploadFlag,\n style: {\"margin-right\":\"10px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_14\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleClose\n }, {\n default: _withCtx(() => [\n _hoisted_15\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onClose\"]))\n}","\nimport { defineComponent, ref } from 'vue';\nimport { uploadMapping, checkExporting } from '@/API/closing';\nimport { message } from 'ant-design-vue';\nimport isExcel from '@/utils/closing/isExcel';\nimport blobDownload from '@/utils/blobDownload';\n\nexport default defineComponent({\n emits: ['close-drawer', 'handle-upload-success'],\n props: {\n showDrawer: {\n default: false,\n type: Boolean\n },\n makeId: {\n default: -1,\n type: Number\n },\n make: {\n default: '',\n type: String\n }\n },\n setup(props, { emit }) {\n // 是否显示上传框\n const showUpload = ref(true);\n const percent = ref(0);\n const uploadFlag = ref(true);\n const exportFlag = ref(true);\n const file = ref();\n\n const handleClose = () => {\n emit('close-drawer');\n };\n const uploadConfig = {\n onUploadProgress: (progressEvent: any) => {\n if (progressEvent.lengthComputable) {\n const complete = ((progressEvent.loaded / progressEvent.total) * 100) | 0;\n percent.value = complete;\n }\n }\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 if (!(await isExcel(file.value))) {\n // 出错之后重置上传组件状态\n showUpload.value = true;\n uploadFlag.value = true;\n percent.value = 0;\n message.error('file type error');\n return;\n }\n const uploadFormData = new FormData();\n uploadFormData.append('file', file.value);\n //console.log(uploadFormData)\n const mcId = props.makeId;\n try {\n const res = await uploadMapping(mcId, uploadFormData, uploadConfig);\n // 上传之后重置上传组件状态\n showUpload.value = true;\n uploadFlag.value = true;\n percent.value = 0;\n if (res.code === '0') {\n message.success('submit success');\n emit('handle-upload-success');\n } else {\n message.error('submit failed');\n }\n } catch (e) {\n // 上传出错重置上传组件状态\n showUpload.value = true;\n uploadFlag.value = true;\n percent.value = 0;\n }\n };\n const handleDownloadTemplate = () => {\n blobDownload({ url: '/pcapi/closing/bbacImpactMapping/template' });\n };\n const handleExport = async () => {\n const mcId = props.makeId;\n blobDownload({\n url: `/pcapi/closing/bbacImpactMapping/export?mcId=${mcId}`,\n method: 'get'\n });\n };\n //判断export是否禁用\n const isExport = () => {\n const mcId = props.makeId;\n checkExporting(mcId).then((res: any) => {\n exportFlag.value = res;\n });\n };\n isExport();\n\n return {\n handleClose,\n uploadRequest,\n handleUpload,\n handleDownloadTemplate,\n showUpload,\n uploadFlag,\n percent,\n exportFlag,\n isExport,\n handleExport\n };\n }\n});\n","import { render } from \"./ReviewUpload.vue?vue&type=template&id=2040b235&scoped=true&ts=true\"\nimport script from \"./ReviewUpload.vue?vue&type=script&lang=ts\"\nexport * from \"./ReviewUpload.vue?vue&type=script&lang=ts\"\n\nimport \"./ReviewUpload.vue?vue&type=style&index=0&id=2040b235&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-2040b235\"]])\n\nexport default __exports__","\nimport { defineComponent, ref, nextTick, reactive, toRefs } from 'vue';\nimport {\n generateReport,\n postFinalSave,\n getWsVersion,\n postFinalEnable,\n postFinalEdit,\n setBlueinvoiceLock\n} from '@/API/closing';\nimport { message } from 'ant-design-vue';\nimport First from '@/views/Closing/Tab/Report/First.vue';\nimport Second from '@/views/Closing/Tab/Report/Second.vue';\nimport Third from '@/views/Closing/Tab/Report/Third.vue';\nimport Fourth from '@/views/Closing/Tab/Report/Fourth.vue';\nimport blobDownload from '@/utils/blobDownload';\nimport ReviewUpload from '@/views/Closing/Tab/Components/ReviewUpload.vue';\ntype VersionDataType = {\n id: number;\n planningName: string;\n currentKufri: string;\n};\nexport default defineComponent({\n components: {\n First,\n Second,\n Third,\n Fourth,\n ReviewUpload\n },\n emits: ['chang-tab', 'change-id', 'change-final'],\n props: {\n makeId: {\n required: true,\n type: Number\n },\n make: {\n type: String,\n default: ''\n },\n isfinal: {\n type: Boolean,\n default: true\n },\n cbVersion: {\n type: String,\n default: ''\n },\n makeYear: {\n type: String,\n default: ''\n },\n makeMonth: {\n type: String,\n default: ''\n },\n makeType: {\n type: String,\n default: ''\n }\n },\n\n setup(props, { emit }) {\n const visible = ref(false);\n const activeKey = ref('1');\n const tdValue = ref('1');\n const report1 = ref();\n const report2 = ref();\n const report3 = ref();\n const report4 = ref();\n const enumObj = {\n '1': () => {\n report1.value.initData();\n },\n '2': () => {\n report2.value.initData();\n },\n '3': () => {\n report3.value.initData();\n },\n '4': () => {\n report4.value.initData();\n }\n };\n\n const planningId = ref(0);\n const kufriVersion = ref('');\n const wsVersionArray = ref([]);\n // const year = props.makeYear;\n // const month = props.makeMonth;\n const initState = async () => {\n // 生成报表\n console.log('11111111111111111', props.make);\n await generateReport({ mcId: props.makeId });\n const res = await getWsVersion({\n make: props.make,\n planningYear: props.makeYear\n });\n wsVersionArray.value = res;\n planningId.value = res[0]?.id || 0;\n kufriVersion.value = res[0]?.currentKufri || '';\n activeKey.value = '1';\n nextTick(() => {\n report1.value.initData();\n });\n };\n const exportFile = () => {\n const params = {\n url: `/pcapi/api/v1/reportData/exportReport`,\n params: {\n mcId: props.makeId,\n searchType: parseInt(tdValue.value)\n }\n };\n blobDownload(params);\n };\n const handleRefresh = () => {\n nextTick(() => {\n enumObj[activeKey.value]();\n });\n };\n\n // 设置报表最终版本\n const handleSave = () => {\n postFinalSave(props.makeId).then((res) => {\n if (res.code === '0') {\n let newMcId;\n if (props.isfinal) {\n newMcId = props.makeId;\n } else {\n newMcId = res.data.mcId;\n }\n\n emit('change-id', newMcId);\n message.success('The final version was saved successfully');\n } else {\n message.error('The final version was saved failed');\n }\n });\n };\n\n const handleSelect = () => {\n wsVersionArray.value.forEach((item) => {\n if (item.id === planningId.value) {\n kufriVersion.value = item.currentKufri;\n }\n });\n };\n // 切换Tab\n const handleTabChange = () => {\n nextTick(() => {\n enumObj[activeKey.value]();\n });\n };\n const handleEnable = () => {\n postFinalEnable(props.makeId).then((res) => {\n if (res.code === '0') {\n const newMcId = res.data.mcId;\n emit('change-id', newMcId);\n }\n });\n };\n const handleUpdate = async () => {\n await setBlueinvoiceLock(props.makeId);\n emit(\n 'chang-tab',\n 'GenerateClosing',\n props.make,\n props.cbVersion,\n props.makeId,\n props.makeMonth,\n props.makeYear,\n 'blueInvoice'\n );\n };\n\n const handleEdit = () => {\n postFinalEdit(props.makeId).then((res) => {\n if (res.code === '0') {\n emit('change-final', false);\n const makeId = res.data.wipVersionMcId;\n emit(\n 'chang-tab',\n 'DataPreparation',\n props.make,\n res.data.wipVersionName,\n makeId,\n props.makeMonth,\n props.makeYear,\n ''\n );\n } else {\n message.error('Reopen failed');\n }\n });\n };\n const handleCancel = () => {\n visible.value = false;\n };\n const handleOk = () => {\n handleSave();\n visible.value = false;\n };\n const showModal = () => {\n visible.value = true;\n };\n const uploadDrawer = reactive({\n showDrawer: false,\n make: '',\n makeId: 0\n });\n\n const handleUpload = () => {\n uploadDrawer.showDrawer = true;\n uploadDrawer.makeId = props.makeId;\n uploadDrawer.make = props.make;\n };\n return {\n activeKey,\n tdValue,\n handleRefresh,\n handleEdit,\n handleUpdate,\n handleTabChange,\n exportFile,\n handleSelect,\n handleSave,\n handleEnable,\n initState,\n wsVersionArray,\n report1,\n report2,\n report3,\n report4,\n kufriVersion,\n planningId,\n visible,\n handleCancel,\n handleOk,\n showModal,\n handleUpload,\n uploadDrawer\n };\n }\n});\n","import { render } from \"./FinalView.vue?vue&type=template&id=28ae398f&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=28ae398f&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-28ae398f\"]])\n\nexport default __exports__","import { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"BGCon\" }\nconst _hoisted_2 = { class: \"saveBtnCon\" }\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\" Save \")\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\" Return \")\nconst _hoisted_5 = { class: \"data-edit-con\" }\nconst _hoisted_6 = { class: \"dataCon\" }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"dataTit\" }, \"COPA Data\", -1)\nconst _hoisted_8 = { class: \"dataInputCon\" }\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"dataInputTit\" }, \"WS Volume\", -1)\nconst _hoisted_10 = { class: \"dataInput\" }\nconst _hoisted_11 = { class: \"dataInputCon\" }\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"dataInputTit\" }, \"WS LLP\", -1)\nconst _hoisted_13 = { class: \"dataInput\" }\nconst _hoisted_14 = { class: \"dataCon\" }\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"dataTit\" }, \"BI Data\", -1)\nconst _hoisted_16 = { class: \"dataInputCon\" }\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"dataInputTit\" }, \"WS Volume\", -1)\nconst _hoisted_18 = { class: \"dataInput\" }\nconst _hoisted_19 = { class: \"dataInputCon\" }\nconst _hoisted_20 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"dataInputTit\" }, \"WS LLP\", -1)\nconst _hoisted_21 = { class: \"dataInput\" }\nconst _hoisted_22 = { class: \"dataCon\" }\nconst _hoisted_23 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"dataTit\" }, \"Update Copa\", -1)\nconst _hoisted_24 = { class: \"dataInputCon\" }\nconst _hoisted_25 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"dataInputTit\" }, \"WS Volume\", -1)\nconst _hoisted_26 = { class: \"dataInput\" }\nconst _hoisted_27 = { class: \"dataInputCon\" }\nconst _hoisted_28 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"dataInputTit\" }, \"WS LLP\", -1)\nconst _hoisted_29 = { class: \"dataInput\" }\nconst _hoisted_30 = { class: \"dataCon GapDataCon\" }\nconst _hoisted_31 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"dataTit\" }, \"Gap\", -1)\nconst _hoisted_32 = { class: \"dataInputCon\" }\nconst _hoisted_33 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"dataInputTit\" }, \"WS Volume\", -1)\nconst _hoisted_34 = { class: \"dataInput\" }\nconst _hoisted_35 = { class: \"dataInputCon\" }\nconst _hoisted_36 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"dataInputTit\" }, \"WS LLP\", -1)\nconst _hoisted_37 = { class: \"dataInput\" }\nconst _hoisted_38 = { class: \"expand-con\" }\nconst _hoisted_39 = /*#__PURE__*/_createTextVNode(\" Expand to Model \")\nconst _hoisted_40 = { class: \"data-table-con\" }\nconst _hoisted_41 = {\n key: 1,\n style: {\"text-align\":\"right\"}\n}\nconst _hoisted_42 = {\n key: 1,\n style: {\"text-align\":\"right\"}\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 _component_a_input = _resolveComponent(\"a-input\")!\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 _createElementVNode(\"div\", _hoisted_2, [\n (!_ctx.finalVersion && _ctx.$btnPermissions('PC0504'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n class: \"returnBtnCon\",\n type: \"primary\",\n onClick: _ctx.save\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_button, {\n class: \"returnBtnCon\",\n type: \"primary\",\n onClick: _ctx.goBack\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _hoisted_7,\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_a_input, {\n value: _ctx.paramsData.COPAwsVolume,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.paramsData.COPAwsVolume) = $event)),\n onChange: _ctx.COPAwsVolumeChange,\n placeholder: \"input\"\n }, null, 8, [\"value\", \"onChange\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _hoisted_12,\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_a_input, {\n value: _ctx.paramsData.COPAwsllp,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.paramsData.COPAwsllp) = $event)),\n onChange: _ctx.COPAwsllpChange,\n onBlur: _ctx.COPAwsllpBlur,\n onFocus: _ctx.COPAwsllpFocus,\n placeholder: \"input\"\n }, null, 8, [\"value\", \"onChange\", \"onBlur\", \"onFocus\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _hoisted_15,\n _createElementVNode(\"div\", _hoisted_16, [\n _hoisted_17,\n _createElementVNode(\"div\", _hoisted_18, [\n _createVNode(_component_a_input, {\n value: _ctx.paramsData.BIwsVolume,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.paramsData.BIwsVolume) = $event)),\n disabled: \"\",\n placeholder: \"input\"\n }, null, 8, [\"value\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _hoisted_20,\n _createElementVNode(\"div\", _hoisted_21, [\n _createVNode(_component_a_input, {\n value: _ctx.paramsData.BIwsllp,\n \"onUpdate:value\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.paramsData.BIwsllp) = $event)),\n title: _ctx.BIwsllpTitle,\n disabled: \"\",\n placeholder: \"input\"\n }, null, 8, [\"value\", \"title\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_22, [\n _hoisted_23,\n _createElementVNode(\"div\", _hoisted_24, [\n _hoisted_25,\n _createElementVNode(\"div\", _hoisted_26, [\n _createVNode(_component_a_input, {\n value: _ctx.paramsData.updateWsVolume,\n \"onUpdate:value\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.paramsData.updateWsVolume) = $event)),\n disabled: \"\",\n placeholder: \"input\"\n }, null, 8, [\"value\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_27, [\n _hoisted_28,\n _createElementVNode(\"div\", _hoisted_29, [\n _createVNode(_component_a_input, {\n value: _ctx.paramsData.updateWsllp,\n \"onUpdate:value\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.paramsData.updateWsllp) = $event)),\n title: _ctx.BIwsllpTitle,\n disabled: \"\",\n placeholder: \"input\"\n }, null, 8, [\"value\", \"title\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_30, [\n _hoisted_31,\n _createElementVNode(\"div\", _hoisted_32, [\n _hoisted_33,\n _createElementVNode(\"div\", _hoisted_34, [\n _createVNode(_component_a_input, {\n value: _ctx.paramsData.GapwsVolume,\n \"onUpdate:value\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.paramsData.GapwsVolume) = $event)),\n class: _normalizeClass({ red: _ctx.paramsData.GapwsVolume != 0 }),\n disabled: \"\",\n placeholder: \"-\"\n }, null, 8, [\"value\", \"class\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_35, [\n _hoisted_36,\n _createElementVNode(\"div\", _hoisted_37, [\n _createVNode(_component_a_input, {\n value: _ctx.paramsData.Gapwsllp,\n \"onUpdate:value\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.paramsData.Gapwsllp) = $event)),\n class: _normalizeClass({ red: _ctx.GapwsllpRed }),\n title: _ctx.GapwsllpTitle,\n disabled: \"\",\n placeholder: \"-\"\n }, null, 8, [\"value\", \"class\", \"title\"])\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_38, [\n _createVNode(_component_a_checkbox, {\n checked: _ctx.checked,\n \"onUpdate:checked\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.checked) = $event)),\n onChange: _ctx.expandModel\n }, {\n default: _withCtx(() => [\n _hoisted_39\n ]),\n _: 1\n }, 8, [\"checked\", \"onChange\"])\n ]),\n _createElementVNode(\"div\", _hoisted_40, [\n _createVNode(_component_a_table, {\n rowKey: \"id\",\n columns: _ctx.columns,\n \"data-source\": _ctx.queryListData,\n pagination: false,\n expandedRowKeys: _ctx.expandedRowKeys,\n onExpand: _ctx.onExpand,\n expandRowByClick: true,\n scroll: { y: _ctx.tableHeight },\n size: \"small\",\n rowClassName: \n (record, index) => (index % 2 === 1 ? 'table-striped' : null)\n \n }, {\n wsVolume: _withCtx(({ record }) => [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.addMicrometer(record.wsVolume)), 1)\n ]),\n wsllp: _withCtx(({ record }) => [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.addWsllpMicrometer(record.wsllp)), 1)\n ]),\n updateWsVolume: _withCtx(({ record }) => [\n (record.nodeType === 'model')\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 0,\n value: record.updateWsVolume,\n \"onUpdate:value\": ($event: any) => ((record.updateWsVolume) = $event),\n onChange: ($event: any) => (_ctx.wsVolumeChange(record)),\n placeholder: \"input\",\n size: \"small\",\n class: _normalizeClass({\n red:\n _ctx.addMicrometer(record.wsVolume) !=\n _ctx.addWsllpMicrometer(record.updateWsVolume)\n }),\n style: {\"text-align\":\"right\"}\n }, null, 8, [\"value\", \"onUpdate:value\", \"onChange\", \"class\"]))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_41, _toDisplayString(_ctx.addMicrometer(record.updateWsVolume)), 1))\n ]),\n updateWsllp: _withCtx(({ record }) => [\n (record.nodeType === 'model')\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 0,\n value: record.updateWsllp,\n \"onUpdate:value\": ($event: any) => ((record.updateWsllp) = $event),\n onFocus: ($event: any) => (_ctx.wsllpFocus(record)),\n onChange: ($event: any) => (_ctx.wsllpChange(record)),\n onBlur: ($event: any) => (_ctx.wsllpBlur(record)),\n class: _normalizeClass({\n red:\n _ctx.addWsllpMicrometer(record.wsllp) !=\n _ctx.addWsllpMicrometer(record.updateWsllp)\n }),\n placeholder: \"input\",\n size: \"small\",\n style: {\"text-align\":\"right\"}\n }, null, 8, [\"value\", \"onUpdate:value\", \"onFocus\", \"onChange\", \"onBlur\", \"class\"]))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_42, _toDisplayString(_ctx.addWsllpMicrometer(record.updateWsllp)), 1))\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"expandedRowKeys\", \"onExpand\", \"scroll\", \"rowClassName\"])\n ])\n ]))\n}","\nimport { defineComponent, ref, reactive } from \"vue\";\nimport { getPBPData, savePBPData, seachVersion } from \"@/API/closing\";\nimport { QueryListType } from \"@/views/Closing/type\";\nimport deepClone from \"@/utils/deepClone\";\nimport { message } from \"ant-design-vue\";\nconst columns = reactive([\n { title: \"Make\", dataIndex: \"make\", width: \"5%\" },\n { title: \"Brand\", dataIndex: \"brand\", width: \"7%\" },\n { title: \"Type Class\", dataIndex: \"typeClass\", width: \"8%\" },\n { title: \"Model\", dataIndex: \"model\", width: \"18%\" },\n {\n title: \"WS Volume\",\n dataIndex: \"wsVolume\",\n width: \"10%\",\n align: \"right\",\n slots: { customRender: \"wsVolume\" }\n },\n {\n title: \"WS LLP\",\n dataIndex: \"wsllp\",\n width: \"14%\",\n align: \"right\",\n slots: { customRender: \"wsllp\" }\n },\n {\n title: \"Update WS Volume\",\n dataIndex: \"updateWsVolume\",\n width: \"14%\",\n align: \"right\",\n slots: { customRender: \"updateWsVolume\" }\n },\n {\n title: \"Update WS LLP\",\n dataIndex: \"updateWsllp\",\n width: \"15%\",\n align: \"right\",\n slots: { customRender: \"updateWsllp\" }\n },\n {\n title: \"RT Volume\",\n dataIndex: \"rtVolume\",\n width: \"8%\",\n align: \"right\",\n slots: { customRender: \"rtVolume\" }\n },\n {\n title: \"Dealer Stock Volume\",\n dataIndex: \"dlrVolume\",\n width: \"14%\",\n align: \"right\",\n slots: { customRender: \"dlrVolume\" }\n }\n]);\nconst tableHeight = window.innerHeight - 430;\nexport default defineComponent({\n props: {\n makeId: {\n default: -1,\n type: Number\n }\n },\n setup(props,{ emit }) {\n const goBack=()=>{\n emit(\"show-pbp-false\");\n }\n // 修改数据初始化\n const paramsData = reactive({\n COPAwsVolume: \"\",\n COPAwsllp: \"\",\n BIwsVolume: \"\",\n BIwsllp: \"\",\n GapwsVolume: \"\",\n Gapwsllp: \"\",\n updateWsVolume: \"\",\n updateWsllp: \"\"\n });\n const BIwsllpTitle = ref(\"\");\n const GapwsllpTitle = ref(\"\");\n const GapwsllpRed = ref(false);\n // 复选框初始化\n const checked = ref(false);\n // 表格数据初始化\n const queryListData = ref([]);\n let queryListTmpData: any = [];\n let allData: any = [];\n let changeData: any = [];\n // 可修改数据\n // let beforeData: any = [];\n // 全部数据\n let tempData: any = [];\n // 表格行展开\n const expandedRowKeys = ref([]);\n const copaId = ref(0);\n\n const finalVersion = ref(false);\n seachVersion({ mcId: props.makeId }).then(res => {\n finalVersion.value = res.finalVersion;\n });\n // 获取数据所有id\n const getAllId = () => {\n const arr: any = [];\n const data = queryListTmpData;\n data.length &&\n data.forEach((item: any) => {\n if (item.children && item.children.length) {\n arr.push(item.id);\n item.children.forEach((item: any) => {\n if (item.children && item.children.length) {\n arr.push(item.id);\n item.children.forEach((item: any) => {\n arr.push(item.id);\n });\n }\n });\n }\n });\n return arr;\n };\n\n // 获取到Type Class层级所有数据id\n const getTypeClassId = () => {\n const arr: any = [];\n const data = queryListTmpData;\n data.length &&\n data.forEach((item: any) => {\n arr.push(item.id);\n if (item.children && item.children.length) {\n arr.push(item.id);\n item.children.forEach((item: any) => {\n arr.push(item.id);\n });\n }\n });\n return arr;\n };\n\n // 获取arr格式所有数据\n const getAllData = () => {\n const arr: any = [];\n const data = allData;\n data.length &&\n data.forEach((item: any) => {\n if (item.children && item.children.length) {\n arr.push(item);\n item.children.forEach((ele: any) => {\n if (ele.children && ele.children.length) {\n arr.push(ele);\n ele.children.forEach((el: any) => {\n if (el.children && el.children.length) {\n arr.push(el);\n el.children.forEach((e: any) => {\n arr.push(e);\n });\n }\n });\n }\n });\n }\n });\n return arr;\n };\n\n // 展开type class层级\n const expandTypeClass = () => {\n const data = getTypeClassId();\n Object.assign(expandedRowKeys.value, data);\n };\n\n // 展开折叠\n const expandModel = () => {\n const data = getAllId();\n if (checked.value) {\n Object.assign(expandedRowKeys.value, data);\n } else {\n expandedRowKeys.value = [];\n expandTypeClass();\n }\n };\n\n // 添加千分符保留两位小数\n const addWsllpMicrometer = (wsllp: any) => {\n let str;\n str = wsllp + \"\";\n if (str) {\n str = str.replace(/,/g, \"\");\n if (str.indexOf(\".\") > -1) {\n str = parseFloat(str).toFixed(2);\n }\n str = parseFloat(str) + \"\";\n str = str.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, \"$1,\");\n return str;\n } else {\n return \"\";\n }\n };\n\n // 添加千分符取整\n const addMicrometer = (wsllp: any) => {\n let str;\n str = wsllp + \"\";\n if (str) {\n str = str.replace(/,/g, \"\");\n str = Math.round(parseFloat(str)) + \"\";\n str = str.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, \"$1,\");\n return str;\n } else {\n return \"\";\n }\n };\n\n // 修改框添加千分符并只保留15位小数\n const inputAddWsllpMicrometer = (wsllp: any) => {\n let str;\n str = wsllp + \"\";\n if (str) {\n str = str.replace(/,/g, \"\");\n const hasPot = str.indexOf(\".\");\n if (hasPot > -1) {\n let leftNum = str.substring(0, hasPot);\n let rightNum = str.substring(hasPot + 1, str.length);\n leftNum = leftNum.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, \"$1,\");\n if (rightNum.length > 15) {\n rightNum = str.substring(hasPot + 1, hasPot + 16);\n }\n str = leftNum + \".\" + rightNum;\n } else {\n str = str.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, \"$1,\");\n }\n return str;\n } else {\n return \"\";\n }\n };\n\n // 修改框添加千分符取整\n const inputAddMicrometer = (wsllp: any) => {\n let str;\n str = wsllp + \"\";\n if (str) {\n str = str.replace(/,/g, \"\");\n str = parseFloat(str) + \"\";\n str = str.replace(/(\\d{1,3})(?=(\\d{3})+(?:$|\\.))/g, \"$1,\");\n return str;\n } else {\n return \"\";\n }\n };\n\n // 千分符转化为number\n const removeWsllpMicrometer = (wsllp: any) => {\n let number = 0;\n let str = wsllp + \"\";\n str = str.replace(/,/g, \"\");\n if (str) {\n number = parseFloat(str);\n } else {\n number = 0;\n }\n return number;\n };\n\n // 去除千分符\n const removeMicrometer = (wsllp: any) => {\n let str = wsllp + \"\";\n str = str.replace(/,/g, \"\");\n return str;\n };\n\n // 数据wsllp加千分符\n const dataWsllpMicrometer = () => {\n queryListData.value.length &&\n queryListData.value.forEach((item: any) => {\n item.wsVolume = addMicrometer(item.wsVolume);\n item.wsllp = addMicrometer(item.wsllp);\n if (item.children && item.children.length) {\n item.children.forEach((item: any) => {\n item.wsVolume = addMicrometer(item.wsVolume);\n item.wsllp = addMicrometer(item.wsllp);\n if (item.children && item.children.length) {\n item.children.forEach((item: any) => {\n item.wsVolume = addMicrometer(item.wsVolume);\n item.wsllp = addMicrometer(item.wsllp);\n });\n }\n });\n }\n });\n };\n\n // 判断是否是数字\n const isNumber = (num: any) => {\n if (num === \"\" || num === null || num === undefined) {\n return false;\n }\n return !isNaN(num);\n };\n\n // 减法计算\n const accSub = (num1: number, num2: number) => {\n let r1: any = \"\";\n let r2: any = \"\";\n let m: any = \"\";\n let n: any = \"\";\n try {\n r1 = num1.toString().split(\".\")[1].length;\n } catch (e) {\n r1 = 0;\n }\n try {\n r2 = num2.toString().split(\".\")[1].length;\n } catch (e) {\n r2 = 0;\n }\n m = Math.pow(10, Math.max(r1, r2)); //last modify by deeka //动态控制精度长度\n n = r1 >= r2 ? r1 : r2;\n return ((num1 * m - num2 * m) / m).toFixed(n);\n };\n\n // 加法计算\n const accAdd = (num1: number, num2: number) => {\n let r1: any = \"\";\n let r2: any = \"\";\n let m: any = \"\";\n let c: any = \"\";\n try {\n r1 = num1.toString().split(\".\")[1].length;\n } catch (e) {\n r1 = 0;\n }\n try {\n r2 = num2.toString().split(\".\")[1].length;\n } catch (e) {\n r2 = 0;\n }\n c = Math.abs(r1 - r2);\n m = Math.pow(10, Math.max(r1, r2));\n if (c > 0) {\n const cm = Math.pow(10, c);\n if (r1 > r2) {\n num1 = Number(num1.toString().replace(\".\", \"\"));\n num2 = Number(num2.toString().replace(\".\", \"\")) * cm;\n } else {\n num1 = Number(num1.toString().replace(\".\", \"\")) * cm;\n num2 = Number(num2.toString().replace(\".\", \"\"));\n }\n } else {\n num1 = Number(num1.toString().replace(\".\", \"\"));\n num2 = Number(num2.toString().replace(\".\", \"\"));\n }\n return (num1 + num2) / m;\n };\n\n let backUpAwsllp = \"\";\n const initData = async () => {\n await getPBPData({ mcId: props.makeId }).then(res => {\n paramsData.BIwsVolume = addWsllpMicrometer(res.aggVOs[0].wsVolume);\n paramsData.updateWsVolume = addWsllpMicrometer(\n res.aggVOs[0].updateWsVolume\n );\n BIwsllpTitle.value = res.aggVOs[0].wsllp;\n paramsData.updateWsllp = addWsllpMicrometer(res.aggVOs[0].updateWsllp);\n paramsData.BIwsllp = addMicrometer(res.aggVOs[0].wsllp);\n if (res.copaWsVolume) {\n paramsData.COPAwsVolume = addWsllpMicrometer(res.copaWsVolume);\n const num1 = removeWsllpMicrometer(paramsData.COPAwsVolume);\n const num2 = removeWsllpMicrometer(paramsData.updateWsVolume);\n const gap = parseFloat(accSub(num1, num2));\n if (gap == 0) {\n paramsData.GapwsVolume = \"\";\n } else {\n paramsData.GapwsVolume = addWsllpMicrometer(gap);\n }\n }\n if (res.copaWslLp) {\n backUpAwsllp = paramsData.COPAwsllp = addWsllpMicrometer(\n res.copaWslLp\n );\n // const num1 = removeWsllpMicrometer(paramsData.COPAwsllp);\n const num2 = removeWsllpMicrometer(paramsData.updateWsllp); \n // const temp: number =parseInt(removeMicrometer(res.copaWslLp)) \n const numBi = removeWsllpMicrometer(paramsData.COPAwsllp); \n const gap = parseFloat(accSub(numBi,num2));\n if (gap == 0) {\n GapwsllpTitle.value = \"\";\n paramsData.Gapwsllp = \"\";\n GapwsllpRed.value = false;\n } else {\n GapwsllpTitle.value = inputAddWsllpMicrometer(gap);\n paramsData.Gapwsllp = addMicrometer(gap);\n GapwsllpRed.value = true;\n }\n }\n copaId.value = res.copaId;\n queryListTmpData = deepClone(res.aggVOs);\n queryListData.value = deepClone(res.aggVOs);\n const generate = (arr: any[]) => {\n arr.forEach(item => {\n if (item.children?.length > 0) {\n generate(item.children);\n } else {\n item.brand = \"\";\n item.typeClass = \"\";\n item.make = \"\";\n }\n });\n };\n generate(queryListData.value);\n allData = deepClone(res.aggVOs);\n });\n tempData = getAllData();\n changeData = deepClone(tempData);\n dataWsllpMicrometer();\n expandTypeClass();\n };\n initData();\n\n // 因expandedRowKeys设置之后展开行会有问题 所以重写点击行逻辑\n const onExpand = (expanded: boolean, record: any) => {\n if (expanded) {\n // 设置展开窗Key,代表展开操作\n expandedRowKeys.value.push(record.id);\n } else {\n // 代表折叠操作\n if (expandedRowKeys.value.length) {\n expandedRowKeys.value = expandedRowKeys.value.filter((v: any) => {\n return v !== record.id;\n });\n }\n }\n };\n\n // COPAwsVolumeChange\n const COPAwsVolumeChange = (e: Event) => {\n if (e.target && (e.target as any).value) {\n paramsData.COPAwsVolume = addMicrometer(paramsData.COPAwsVolume);\n const num1 = removeWsllpMicrometer(paramsData.COPAwsVolume);\n const num2 = removeWsllpMicrometer(paramsData.updateWsVolume);\n const gap = parseFloat(accSub(num1, num2));\n if (gap == 0) {\n paramsData.GapwsVolume = \"\";\n } else {\n paramsData.GapwsVolume = addWsllpMicrometer(gap);\n }\n } else {\n paramsData.GapwsVolume = \"\";\n }\n };\n // COPAwsllpChange\n const COPAwsllpChange = (e: Event) => {\n if (e.target && (e.target as any).value) {\n backUpAwsllp = paramsData.COPAwsllp = inputAddWsllpMicrometer(\n paramsData.COPAwsllp\n );\n const num1 = removeWsllpMicrometer(paramsData.COPAwsllp);\n const num2 = removeWsllpMicrometer(paramsData.updateWsllp);\n const gap = parseFloat(accSub(num1, num2));\n if (gap == 0) {\n GapwsllpTitle.value = \"\";\n paramsData.Gapwsllp = \"\";\n GapwsllpRed.value = false;\n } else {\n GapwsllpTitle.value = inputAddWsllpMicrometer(gap);\n paramsData.Gapwsllp = addMicrometer(gap);\n GapwsllpRed.value = true;\n }\n } else {\n GapwsllpTitle.value = \"\";\n paramsData.Gapwsllp = \"\";\n GapwsllpRed.value = false;\n }\n };\n // 计算父级的和\n const calAdd = (arg: any, key: string) => {\n let sum = 0;\n if (key === \"updateWsVolume\") {\n arg.forEach((item: any) => {\n sum += Number(removeMicrometer(item.updateWsVolume));\n });\n } else {\n arg.forEach((item: any) => {\n if (parseFloat(removeMicrometer(item[key])) > 0) {\n sum = accAdd(sum, parseFloat(removeMicrometer(item[key])));\n }\n });\n }\n return sum;\n };\n // 公用change调用\n const setChange = (record: any, key: string) => {\n queryListData.value.forEach((item: any) => {\n (item.children || []).forEach((ele: any) => {\n (ele.children || []).forEach((element: any) => {\n element[key] = calAdd(element.children, key);\n });\n ele[key] = calAdd(ele.children, key);\n });\n item[key] = calAdd(item.children, key);\n });\n if (key === \"updateWsllp\") {\n BIwsllpTitle.value = inputAddWsllpMicrometer(\n queryListData.value[0].updateWsllp\n );\n paramsData.updateWsllp = addMicrometer(\n queryListData.value[0].updateWsllp\n );\n if (paramsData.COPAwsllp) {\n paramsData.COPAwsllp = addWsllpMicrometer(paramsData.COPAwsllp);\n const num1 = removeWsllpMicrometer(paramsData.COPAwsllp);\n const num2 = removeWsllpMicrometer(\n queryListData.value[0].updateWsllp\n );\n const gap = parseFloat(accSub(num1, num2));\n GapwsllpTitle.value = inputAddWsllpMicrometer(gap);\n paramsData.Gapwsllp = addMicrometer(gap);\n GapwsllpRed.value = true;\n } else {\n GapwsllpTitle.value = \"\";\n paramsData.Gapwsllp = \"\";\n GapwsllpRed.value = false;\n }\n } else {\n paramsData.updateWsVolume = addWsllpMicrometer(\n queryListData.value[0].updateWsVolume\n );\n if (paramsData.COPAwsVolume) {\n paramsData.COPAwsVolume = addWsllpMicrometer(paramsData.COPAwsVolume);\n const num1 = removeWsllpMicrometer(paramsData.COPAwsVolume);\n const num2 = removeWsllpMicrometer(\n queryListData.value[0].updateWsVolume\n );\n const gap = parseFloat(accSub(num1, num2));\n if (gap == 0) {\n paramsData.GapwsVolume = \"\";\n } else {\n paramsData.GapwsVolume = addWsllpMicrometer(gap);\n }\n } else {\n paramsData.GapwsVolume = \"\";\n }\n }\n // dataWsllpMicrometer();\n };\n\n // wsVolume change时调用\n const wsVolumeChange = (record: any) => {\n record.updateWsVolume = record.updateWsVolume.trim();\n const isNum = isNumber(removeWsllpMicrometer(record.updateWsVolume));\n if (removeWsllpMicrometer(record.updateWsVolume) > 9007199254740991) {\n record.wsVolume = 9007199254740991;\n }\n if (isNum) {\n record.updateWsVolume = addMicrometer(record.updateWsVolume);\n } else {\n record.updateWsVolume = \"\";\n }\n setChange(record, \"updateWsVolume\");\n };\n\n // updateWsllp focus时调用\n const wsllpFocus = (record: any) => {\n changeData.length &&\n changeData.forEach((item: any) => {\n if (item.id == record.id) {\n record.updateWsllp = item.updateWsllp;\n }\n });\n };\n\n // updateWsllp change时调用\n const wsllpChange = (record: any) => {\n record.updateWsllp = record.updateWsllp.trim();\n const isNum = isNumber(removeWsllpMicrometer(record.updateWsllp));\n if (isNum) {\n record.updateWsllp = inputAddWsllpMicrometer(record.updateWsllp);\n } else {\n record.updateWsllp = \"\";\n }\n if (changeData) {\n changeData.forEach((item: any) => {\n if (item.id == record.id) {\n item.updateWsllp = record.updateWsllp;\n }\n });\n }\n setChange(record, \"updateWsllp\");\n };\n\n // wsllp blur时调用\n const wsllpBlur = (record: any) => {\n record.updateWsllp = addMicrometer(record.updateWsllp);\n };\n\n // save\n const save = () => {\n const arr: any = [];\n const tempArr = deepClone(queryListData.value);\n tempArr.length &&\n tempArr.forEach((item: any) => {\n item.children.forEach((el: any) => {\n el.children.forEach((element: any) => {\n element.children.forEach((ele: any) => {\n changeData.forEach((c: any) => {\n if (ele.id === c.id) {\n ele.wsllp = parseFloat(removeMicrometer(c.updateWsllp));\n }\n });\n ele.wsVolume = removeWsllpMicrometer(ele.updateWsVolume);\n arr.push(ele);\n });\n });\n });\n });\n\n const generate = (tempArr: any[]) => {\n tempArr.forEach(item => {\n if (item.children?.length > 0) {\n generate(item.children);\n } else {\n arr.forEach((element: any) => {\n if (element.id === item.id) {\n element.make = item.make;\n element.typeClass = item.typeClass;\n element.brand = item.brand;\n }\n });\n }\n });\n };\n generate(queryListTmpData);\n const params = {\n makeId: props.makeId,\n dataList: arr,\n copaId: copaId.value,\n copaWsVolume: removeWsllpMicrometer(paramsData.COPAwsVolume),\n copaWslLp: removeWsllpMicrometer(backUpAwsllp)\n };\n savePBPData(params)\n .then((res: any) => {\n if (res.code === \"60000\") {\n message.error(res.message);\n }\n })\n .catch(() => {\n message.error(\"保存失败\");\n });\n };\n const COPAwsllpBlur = () => {\n paramsData.COPAwsllp = Math.round(\n Number(removeWsllpMicrometer(backUpAwsllp))\n ).toString();\n paramsData.COPAwsllp = addWsllpMicrometer(paramsData.COPAwsllp);\n };\n const COPAwsllpFocus = () => {\n paramsData.COPAwsllp = backUpAwsllp;\n };\n return {\n columns,\n paramsData,\n BIwsllpTitle,\n GapwsllpTitle,\n GapwsllpRed,\n checked,\n queryListData,\n queryListTmpData,\n isNumber,\n copaId,\n accSub,\n accAdd,\n initData,\n changeData,\n allData,\n addWsllpMicrometer,\n addMicrometer,\n inputAddWsllpMicrometer,\n inputAddMicrometer,\n removeMicrometer,\n removeWsllpMicrometer,\n expandModel,\n expandTypeClass,\n expandedRowKeys,\n onExpand,\n COPAwsVolumeChange,\n COPAwsllpChange,\n getTypeClassId,\n getAllData,\n wsVolumeChange,\n wsllpFocus,\n wsllpChange,\n wsllpBlur,\n save,\n tableHeight,\n COPAwsllpBlur,\n COPAwsllpFocus,\n finalVersion,\n goBack\n };\n }\n});\n","import { render } from \"./Pbp.vue?vue&type=template&id=81332104&ts=true\"\nimport script from \"./Pbp.vue?vue&type=script&lang=ts\"\nexport * from \"./Pbp.vue?vue&type=script&lang=ts\"\n\nimport \"./Pbp.vue?vue&type=style&index=0&id=81332104&lang=scss&scope=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]])\n\nexport default __exports__","\nimport { defineComponent, nextTick, ref, watch } from \"vue\";\nimport Basic from \"@/views/Closing/Tab/BasicSetting.vue\";\nimport DataPreparation from \"@/views/Closing/Tab/DataPreparation.vue\";\nimport GenerateClosing from \"@/views/Closing/Tab/GenerateClosing.vue\";\nimport FinalView from \"@/views/Closing/Tab/FinalView.vue\";\nimport Pbp from \"@/views/Closing/Tab/Pbp/Pbp.vue\";\nenum TabType {\n BasicSetting,\n DataPreparation,\n GenerateClosing,\n FinalView\n}\nexport default defineComponent({\n components: {\n Basic,\n DataPreparation,\n GenerateClosing,\n FinalView,\n Pbp\n },\n setup() {\n const activeKey = ref(\"BasicSetting\");\n // 是否跳转到Blue Invoice\n const activeName = ref(\"\");\n const cbVersion = ref(\"\");\n const basicSetting = ref();\n const dataPreparation = ref();\n const finalView = ref();\n const make = ref(\"\");\n const makeYear = ref(\"\");\n const makeMonth = ref(\"\");\n const generateClosing = ref();\n const breadcrumbVersion = ref(\"\");\n // 接收传入的ID\n const makeId = ref();\n const breadcrumbName = ref(\"Homepage\");\n const handleChangeTab = () => {\n activeKey.value === \"BasicSetting\" && basicSetting.value.initData();\n if (activeKey.value === \"BasicSetting\") {\n breadcrumbName.value = \"Homepage\";\n }\n\n nextTick(() => {\n dataPreparation.value?.timer.value && clearInterval(dataPreparation.value.timer.value);\n activeKey.value === \"FinalView\" && finalView.value.initState();\n activeKey.value === \"DataPreparation\" &&\n dataPreparation.value.initNew();\n });\n };\n watch(\n () => activeKey.value,\n () => {\n activeKey.value !== \"DataPreparation\" &&\n dataPreparation.value?.timer &&\n clearInterval(dataPreparation.value.timer);\n }\n );\n // 是否显示pbp表格\n const showPbp = ref(false);\n const handleShowPbp = () => {\n \n showPbp.value = true;\n console.log(showPbp.value )\n };\n const showPbpFalse=()=>{\n showPbp.value = false;\n }\n const tabChangEvent = (\n tab: string,\n closingMake = \"\",\n version = \"\",\n id = -1,\n month = \"\",\n year = \"\",\n jumpName = \"\"\n ) => {\n activeKey.value = tab;\n make.value = closingMake;\n // 重置 Data Preparation 显示页面\n showPbp.value = false;\n makeId.value = id;\n makeYear.value = year;\n makeMonth.value = month;\n if (tab === \"BasicSetting\") {\n breadcrumbName.value = \"Homepage\";\n } else {\n breadcrumbName.value = `${closingMake} > ${version}`;\n }\n cbVersion.value = version;\n breadcrumbVersion.value = version;\n activeName.value = jumpName;\n nextTick(() => {\n console.log(dataPreparation)\n tab === \"DataPreparation\" && dataPreparation.value.initNew();\n tab === \"FinalView\" && finalView.value.initState();\n tab === \"GenerateClosing\" &&\n jumpName !== \"blueInvoice\" &&\n generateClosing.value.programBase.reset();\n });\n };\n const changeMakeId = (id = -1) => {\n makeId.value = id;\n };\n const isfinal = ref(true);\n const changeFinal=(value: any)=>{\nisfinal.value=value;\n }\n return {\n changeFinal,\n activeKey,\n activeName,\n tabChangEvent,\n changeMakeId,\n make,\n showPbp,\n handleShowPbp,\n breadcrumbName,\n makeId,\n basicSetting,\n dataPreparation,\n handleChangeTab,\n makeMonth,\n makeYear,\n breadcrumbVersion,\n generateClosing,\n finalView,\n cbVersion,\n TabType,\n showPbpFalse,\n isfinal\n };\n }\n});\n","import { render } from \"./index.vue?vue&type=template&id=c49c417a&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=c49c417a&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-c49c417a\"]])\n\nexport default __exports__","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=28ae398f&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!./BlueInvoice.vue?vue&type=style&index=0&id=0319e622&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!./MaintainModel.vue?vue&type=style&index=0&id=5f489ea0&lang=scss&scoped=true\"","import GC from '@grapecity/spread-sheets'\nimport { NstMappingProps } from './types'\n\nconst columnsWidth = {\n \"Brand\": 80,\n \"Type Class\": 90,\n \"NST Group\": 150,\n \"NST Group Name(IPlan)\": 200,\n \"NST Group Name\": 200,\n \"*IMPACT Code\": 150,\n \"*IMPACT Model Name\": 200,\n \"*IMPACT Name\": 250,\n \"Validation\": 100,\n \"Remark\": 120,\n \"Tag\": 100\n}\n\n// 处理数据 \nexport const handlerSheetsData = (data: NstMappingProps[], isInit = true) => {\n data.forEach(item => {\n if (isInit) {\n if (item.Validation) {\n item.Validation = \"\"\n } else if (!item.Validation) {\n item.Validation = \"!\"\n }\n } else {\n if (item.Validation) {\n item.Validation = false\n } else if (!item.Validation) {\n item.Validation = true\n }\n }\n })\n return data\n}\n\nexport const isMustfill = (data: NstMappingProps[]): boolean => {\n let isBools = true\n data.forEach((item) => {\n if (item['*IMPACT Code'] != '0' && !item['*IMPACT Code']) {\n isBools = false\n }\n if (item['*IMPACT Model Name'] != '0' && !item['*IMPACT Model Name']) {\n isBools = false\n }\n if (!item['Brand'] || !item['Type Class']) {\n isBools = false\n }\n })\n return isBools\n}\n\nconst findReadOnly = (spread: GC.Spread.Sheets.Workbook, data: NstMappingProps[], ) => {\n const readOnlyArr = ['*IMPACT Code', '*IMPACT Model Name', 'Remark', 'Tag']\n const sheet = spread.getActiveSheet()\n let style = new GC.Spread.Sheets.Style();\n style.locked = false\n style.backColor = '#ffffff'\n const spreadNS = GC.Spread.Sheets;\n // style.backColor = '#ffff00'\n const headerArr = Object.keys(data[0])\n data.forEach((items, col) => {\n if (!items['*IMPACT Code'] || !items['*IMPACT Model Name'] || !items['Brand'] || !items['Type Class']) {\n style = new GC.Spread.Sheets.Style();\n style.locked = false\n style.backColor = '#ffff00'\n\n } else {\n style = new GC.Spread.Sheets.Style();\n style.locked = false\n style.backColor = '#ffffff'\n }\n headerArr.forEach((item, row) => {\n if (readOnlyArr.includes(item)) { \n sheet.setStyle(col + 1, row - 1, style)\n sheet.getCell(col + 1, row - 1).setBorder( new spreadNS.LineBorder( '#d4d4d4' , spreadNS.LineStyle.thin),\n { all: true }\n ); \n }\n })\n })\n}\n\n\n\n// 设置表头及其单元格类型\nconst setHeaderType = (spread: GC.Spread.Sheets.Workbook, data: NstMappingProps[]) => {\n const tableColumns: GC.Spread.Sheets.Tables.TableColumn[] = []\n const headerArr = Object.keys(data[0])\n const sheet = spread.getActiveSheet()\n headerArr.forEach((item, index) => {\n let column: GC.Spread.Sheets.Tables.TableColumn\n if (item !== 'id') {\n sheet.setColumnWidth(index - 1, columnsWidth[item])\n if (item === 'Tag') {\n column = new GC.Spread.Sheets.Tables.TableColumn(index - 1, item, item, '', new GC.Spread.Sheets.CellTypes.CheckBox())\n } else {\n column = new GC.Spread.Sheets.Tables.TableColumn(index - 1, item, item)\n }\n tableColumns.push(column)\n }\n })\n return tableColumns\n}\n\n// 设置背景色和叹号文字颜色\nconst setRowBackColor = (spread: GC.Spread.Sheets.Workbook, rowIndex: number, data: NstMappingProps[], isNullRow = true) => {\n const headerArr = Object.keys(data[0])\n const rowLength = data.length\n const sheet = spread.getActiveSheet()\n // style.backColor = '#e6e6e6'\n headerArr.forEach((item, column) => {\n if (isNullRow) {\n const style = new GC.Spread.Sheets.Style();\n style.backColor = '#ffff00'\n sheet.setStyle(rowIndex + 1, column, style)\n if (item === 'Validation') {\n // const style = new GC.Spread.Sheets.Style();\n style.foreColor = '#f5222d'\n // style.backColor = '#ffff00'\n sheet.setStyle(rowIndex + 1, column - 1, style)\n }\n } else {\n const style = new GC.Spread.Sheets.Style();\n style.backColor = '#f0f0f0'\n sheet.setStyle(rowIndex + 1, column, style)\n if (item === 'Validation') {\n const style = new GC.Spread.Sheets.Style();\n style.backColor = '#f0f0f0'\n style.foreColor = '#f5222d'\n sheet.setStyle(rowIndex + 1, column - 1, style)\n }\n }\n })\n}\n\n// 判断是否为空行\nexport const isNullRowSetBg = (spread: GC.Spread.Sheets.Workbook, data: NstMappingProps[]) => {\n spread.suspendPaint();\n data.forEach((item, index: number) => {\n if (!item['*IMPACT Code'] || !item['*IMPACT Model Name'] || !item['Type Class'] || !item['Brand']) {\n setRowBackColor(spread, index, data)\n } else {\n setRowBackColor(spread, index, data, false)\n }\n })\n findReadOnly(spread, data)\n spread.resumePaint();\n}\n\nexport const bindDataTable = (spread: GC.Spread.Sheets.Workbook, data: NstMappingProps[]) => {\n const sheet = spread.getActiveSheet();\n spread.suspendPaint();\n const rowLength = data.length\n const columnLength = Object.keys(data[0]).length-1\n sheet.setRowCount(rowLength + 1)\n sheet.setColumnCount(columnLength)\n const table = sheet.tables.add('tableSales', 0, 0, rowLength, columnLength, GC.Spread.Sheets.Tables.TableThemes.light1);\n table.rowFilter().filterDialogVisibleInfo().sortByColor = false;\n table.autoGenerateColumns(false);\n table.bind(setHeaderType(spread, data), '', data);\n // sheet.getRange(1, 1, 1, -1, GC.Spread.Sheets.SheetArea.viewport).backColor('#ffff00')\n // table.highlightLastColumn(true)\n // 不显示过滤按钮\n table.filterButtonVisible(9, false)\n sheet.getRange(-1, 3, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign.center);\n isNullRowSetBg(spread, data)\n // sheet.setRowHeight(0, 40, GC.Spread.Sheets.SheetArea.viewport);\n for (let i = 1; i <= data.length; i++) {\n // sheet.setRowHeight(i + 1, 70, GC.Spread.Sheets.SheetArea.viewport);\n // sheet.autoFitRow(i + 1);\n // sheet.setRowHeight(i + 1, 100, GC.Spread.Sheets.SheetArea.viewport);\n sheet.autoFitRow(i + 1);\n (i % 2 === 0) && sheet.getRange(i, -1, 1, -1, GC.Spread.Sheets.SheetArea.viewport).backColor('#f0f0f0')\n }\n // 设置是否可编辑\n // findReadOnly(spread, data)\n sheet.frozenRowCount(1)\n const option = {\n allowSelectLockedCells: true,\n allowSelectUnlockedCells: true,\n allowFilter: true,\n allowSort: true,\n allowResizeRows: true,\n allowResizeColumns: true,\n allowEditObjects: false,\n allowDragInsertRows: false,\n allowDragInsertColumns: false,\n allowInsertRows: false,\n allowInsertColumns: false,\n allowDeleteRows: false,\n allowDeleteColumns: false\n };\n sheet.options.protectionOptions = option;\n spread.resumePaint();\n\n}\n\nexport const inputEventToFormula = (spread: GC.Spread.Sheets.Workbook, data: NstMappingProps[]) => {\n const sheet = spread.getActiveSheet();\n const headerArr = Object.keys(data[0])\n const spreadNS = GC.Spread.Sheets;\n const codeIndex = headerArr.findIndex(item => item === '*IMPACT Code') - 1\n const nameIndex = headerArr.findIndex(item => item === '*IMPACT Model Name') - 1\n const modelIndex = headerArr.findIndex(item => item === '*IMPACT Name') - 1\n const validationIndex = headerArr.findIndex(item => item === 'Validation') - 1\n sheet.bind(GC.Spread.Sheets.Events.ValueChanged, (e: any, info: any) => {\n //事件挂起\n sheet.suspendEvent();\n const nstGroupValue = sheet.getCell(info.row, 2).text().substring(0, 6)\n const codeValue = sheet.getCell(info.row, codeIndex).text().substring(0, 6)\n const nameValue = sheet.getCell(info.row, nameIndex).text()\n sheet.getCell(info.row, info.col).backColor('#fff')\n sheet.getCell(info.row, info.col).setBorder( new spreadNS.LineBorder( '#d4d4d4' , spreadNS.LineStyle.thin),\n { all: true }\n ); \n if (codeValue && nameValue) {\n sheet.setValue(info.row, modelIndex, nameValue + ' ' + '(' + codeValue + ')')\n }\n if (nstGroupValue == codeValue) {\n sheet.setValue(info.row, validationIndex, '')\n sheet.resumeEvent();\n return;\n } else {\n sheet.setValue(info.row, validationIndex, '!')\n sheet.resumeEvent();\n return;\n }\n // 恢复事件\n // sheet.resumeEvent();\n })\n sheet.bind(GC.Spread.Sheets.Events.RangeChanged, (e: any, info: any) => {\n //事件挂起\n sheet.suspendEvent();\n const spreadNS = GC.Spread.Sheets;\n info.changedCells.forEach((item: any) => {\n if (info.action === 3) {\n sheet.getCell(item.row, item.col).backColor('#fff')\n sheet.getCell(item.row, item.col).setBorder( new spreadNS.LineBorder( '#d4d4d4' , spreadNS.LineStyle.thin),\n { all: true }\n ); \n const nstGroupValue = sheet.getCell(item.row, 2).text().substring(0, 6)\n const codeValue = sheet.getCell(item.row, codeIndex).text().substring(0, 6)\n const nameValue = sheet.getCell(item.row, nameIndex).text()\n if (codeValue && nameValue) {\n sheet.setValue(item.row, modelIndex, nameValue + ' ' + '(' + codeValue + ')')\n // sheet.setValue(info.row, modelIndex, nameValue + ' ' + '(' + codeValue + ')')\n }\n if (nstGroupValue == codeValue) {\n sheet.setValue(item.row, validationIndex, '')\n sheet.resumeEvent();\n return;\n } else {\n sheet.setValue(item.row, validationIndex, '!')\n sheet.resumeEvent();\n return;\n }\n }\n })\n // 恢复事件\n sheet.resumeEvent();\n })\n sheet.resumeEvent();\n}\n\nexport const ssHotTop = (spread: GC.Spread.Sheets.Workbook, data: any) => {\n spread.suspendPaint();\n const sheet = spread.getActiveSheet();\n // sheet是否显示x\n spread.options.tabNavigationVisible = false\n spread.options.tabStripVisible = false\n // 滚动条常用设置\n spread.options.scrollbarMaxAlign = true\n // 设置整个表格不能插入, 删除行列\n // allowInsertRows不允许插入行,allowInsertColumns不允许插入列\n // allowDeleteRows不允许删除行, allowDeleteColumns不允许删除列\n sheet.options.protectionOptions.allowInsertRows = false\n sheet.options.protectionOptions.allowInsertColumns = false\n sheet.options.protectionOptions.allowDeleteRows = false\n sheet.options.protectionOptions.allowDeleteColumns = false\n\n // sheet.options.clipBoardOptions = GC.Spread.Sheets.ClipboardPasteOptions.values;\n //填充铺满整个canvas\n spread.options.scrollbarMaxAlign = true;\n spread.options.scrollByPixel = true;\n //禁止拖动填充\n spread.options.allowUserDragFill = false;\n spread.options.allowUserDragDrop = false;\n //自适应的时候同时测量 header 区域和 Viewport 区域\n spread.options.autoFitType = GC.Spread.Sheets.AutoFitType.cellWithHeader;\n // 设置隐藏头和列\n sheet.options.rowHeaderVisible = false\n // sheet.options.colHeaderVisible = false\n // 要设置允保护,不允许的才能生效\n sheet.options.isProtected = true\n // 不允许单个格子编辑,是样式控制\n const sheetStyle = sheet.getDefaultStyle();\n //修改并设置表的默认样式locked为false.\n // sheetStyle.locked = false;\n sheetStyle.backColor = '#bfbfbf'\n //默认对其方式\n sheetStyle.hAlign = GC.Spread.Sheets.HorizontalAlign.center;\n sheetStyle.vAlign = GC.Spread.Sheets.VerticalAlign.center;\n sheet.setDefaultStyle(sheetStyle);\n //禁止缩放\n spread.options.allowUserZoom = false;\n\n\n // 设置数据\n bindDataTable(spread, data)\n // 绑定事件\n inputEventToFormula(spread, data)\n spread.resumePaint();\n\n}\n\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!./index.vue?vue&type=style&index=0&id=c49c417a&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!./ImpactModel.vue?vue&type=style&index=0&id=2f4d7b6e&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!./DataPreparation.vue?vue&type=style&index=0&id=2cb29b60&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!./Pbp.vue?vue&type=style&index=0&id=81332104&lang=scss&scope=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!./Upload.vue?vue&type=style&index=0&id=4d4d11da&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!./DealerStockYearly.vue?vue&type=style&index=0&id=245631c5&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!./Third.vue?vue&type=style&index=0&id=a6a90df0&lang=scss&scoped=true\"","import GC from '@grapecity/spread-sheets'\nimport { reactive, toRefs, onMounted, } from 'vue';\nimport { KufirPanelData } from './types'\ninterface TablePosition {\n tableHeight: number;\n}\n\nconst columnsWidth = {\n 'Brand': 70,\n 'Type Class': 85,\n 'NST group': 160,\n 'NST Group Name': 160,\n 'FC Name': 180,\n}\n\n// 计算表格的高度\nexport const usetableHeight = (id: string, idTop?: string) => {\n // debugger\n const tablePosition = reactive({tableHeight: 400});\n const resizeHandler = (): void => {\n try {\n // 获取body的高度\n const clientHeight: number = document.body.clientHeight;\n const tableOffsetTop: number = (document.querySelector(id) as HTMLDivElement).getBoundingClientRect().top;\n \n tablePosition.tableHeight = clientHeight - tableOffsetTop - 15;\n (document.querySelector(id) as HTMLDivElement).style.height = tablePosition.tableHeight + 'px'\n } catch (e) {\n console.log(e);\n }\n }\n onMounted(() => {\n resizeHandler();\n window.addEventListener('resize', resizeHandler);\n })\n\n return toRefs(tablePosition);\n\n}\n\n// 设置这一列是否需要过滤的功能 汇总的公式设置\nconst setFilter = (spread: GC.Spread.Sheets.Workbook, frozenIndex: number ,table: GC.Spread.Sheets.Tables.Table, data: KufirPanelData) => {\n const keyArr = Object.keys(data)\n const sheet = spread.getActiveSheet();\n for (let index = 0; index < keyArr.length; index++) {\n if (index > frozenIndex) {\n // 不显示过滤按钮\n table.filterButtonVisible(index, false)\n // 设置汇总\n table.setColumnFormula(index, `=SUBTOTAL(109,[${keyArr[index]}])`);\n sheet.getRange(-1, index, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign.right)\n sheet.getCell(0, index).hAlign(GC.Spread.Sheets.HorizontalAlign.right)\n sheet.setFormatter(-1, index, \"#,##0\", GC.Spread.Sheets.SheetArea.viewport);\n } else if (index === frozenIndex) {\n table.setColumnValue(index, \"Total\");\n sheet.getRange(-1, index, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign.left)\n sheet.getCell(0, index).hAlign(GC.Spread.Sheets.HorizontalAlign.left)\n\n }\n // else {\n // table.setColumnValue(index, \"\");\n // sheet.getRange(-1, index, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign.left)\n // sheet.getCell(0, index).hAlign(GC.Spread.Sheets.HorizontalAlign.left)\n // }\n }\n sheet.getRange(-1, 0, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign.center)\n sheet.getRange(-1, 1, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign.center)\n}\n\n// 设置宽度\nconst setColumnWidth = (sheet: GC.Spread.Sheets.Worksheet, data: KufirPanelData) => {\n const keyArr = Object.keys(data)\n keyArr.forEach((item, index) => {\n if (!columnsWidth[item]) {\n sheet.setColumnWidth(index, 100)\n } else {\n sheet.setColumnWidth(index, columnsWidth[item])\n }\n })\n}\n\n// 绑定数据\nexport const bindDataTable = (spread: GC.Spread.Sheets.Workbook, data: KufirPanelData[]) => {\n // 挂起\n spread.suspendPaint();\n const sheet = spread.getActiveSheet();\n // 自定义边框样式\n const spreadNS = GC.Spread.Sheets;\n sheet.getRange(0, 0, data.length + 2, 18).setBorder(new spreadNS.LineBorder('#fff', spreadNS.LineStyle.thin), {\n all: true\n })\n sheet.setRowCount(data.length + 2);\n sheet.setColumnCount(Object.keys(data[0]).length);\n \n const table = sheet.tables.addFromDataSource(\"Table\" , 0, 0, data, GC.Spread.Sheets.Tables.TableThemes.light1);\n table.rowFilter().filterDialogVisibleInfo().sortByColor = false;\n // 取消交替的样式\n table.bandRows(false);\n // 设置行数 表头和汇总行要多两行\n \n // 设置冻结列\n const frozenIndex = Object.keys(data[0]).findIndex(item => item === 'FC Name')\n // sheet.frozenColumnCount(frozenIndex + 2)\n // 设置冻结行 表头\n sheet.frozenRowCount(1)\n table.showFooter(true);\n table.showHeader(true);\n sheet.getRange(-1, frozenIndex + 1, -1, 1).font('bold 11pt Calibri')\n // table.highlightFirstColumn(true);\n table.highlightLastColumn(false);\n // 设置宽度\n setColumnWidth(sheet, data[0])\n sheet.options.rowHeaderVisible = false\n // sheet.autoFitColumn(3);\n // sheet.setRowHeight(0, 40, GC.Spread.Sheets.SheetArea.viewport);\n sheet.getRange(0, -1, 1, -1, GC.Spread.Sheets.SheetArea.viewport).backColor('#bfbfbf')\n sheet.getRange(data.length + 1, -1, 1, -1, GC.Spread.Sheets.SheetArea.viewport).backColor('#bfbfbf')\n sheet.setRowHeight(data.length + 1, 40, GC.Spread.Sheets.SheetArea.viewport);\n // sheet.setRowHeight(1, 40, GC.Spread.Sheets.SheetArea.viewport);\n\n sheet.autoFitRow(1);\n\n for (let i = 1; i <= data.length; i++) {\n // sheet.setRowHeight(i + 1, 40, GC.Spread.Sheets.SheetArea.viewport);\n sheet.autoFitRow(i + 1);\n (i % 2 === 0) && sheet.getRange(i, -1, 1, -1, GC.Spread.Sheets.SheetArea.viewport).backColor('#f9f9f9')\n\n }\n // sheet.bind(GC.Spread.Sheets.Events.EditEnded, function (e: any, info: any) {\n // sheet.autoFitRow(info.row);\n // });\n // 设置过滤的\n setFilter(spread, frozenIndex, table, data[0])\n // 固定最后一行\n sheet.frozenTrailingRowCount(1)\n const option = {\n allowSelectLockedCells: true,\n allowSelectUnlockedCells: true,\n allowFilter: true,\n allowSort: true,\n allowResizeRows: true,\n allowResizeColumns: true,\n allowEditObjects: false,\n allowDragInsertRows: true,\n allowDragInsertColumns: true,\n allowInsertRows: false,\n allowInsertColumns: false,\n allowDeleteRows: false,\n allowDeleteColumns: false,\n };\n sheet.options.protectionOptions = option;\n \n spread.resumePaint();\n}\n\n// 初始化配置\nexport const ssHotTop = (spread: GC.Spread.Sheets.Workbook, data: any) => {\n spread.suspendPaint();\n const sheet = spread.getActiveSheet();\n \n // 滚动条样式\n // sheet是否显示x\n spread.options.tabNavigationVisible = false\n spread.options.tabStripVisible = false\n // 滚动条常用设置\n spread.options.scrollbarMaxAlign = true\n // 设置整个表格不能插入, 删除行列\n // allowInsertRows不允许插入行,allowInsertColumns不允许插入列\n // allowDeleteRows不允许删除行, allowDeleteColumns不允许删除列\n sheet.options.protectionOptions.allowInsertRows = false\n sheet.options.protectionOptions.allowInsertColumns = false\n sheet.options.protectionOptions.allowDeleteRows = false\n sheet.options.protectionOptions.allowDeleteColumns = false\n\n sheet.options.gridline.showHorizontalGridline = false\n sheet.options.gridline.showVerticalGridline = false\n\n sheet.options.clipBoardOptions = GC.Spread.Sheets.ClipboardPasteOptions.values;\n //填充铺满整个canvas\n spread.options.scrollbarMaxAlign = true;\n spread.options.scrollByPixel = true;\n //禁止拖动填充\n // spread.options.allowUserDragFill = false;\n // spread.options.allowUserDragDrop = false;\n //自适应的时候同时测量 header 区域和 Viewport 区域\n spread.options.autoFitType = GC.Spread.Sheets.AutoFitType.cellWithHeader;\n // 设置隐藏头和列\n // sheet.options.rowHeaderVisible = false\n // sheet.options.colHeaderVisible = false\n // sheet.options.colHeaderVisible = false\n // 要设置允保护,不允许的才能生效\n sheet.options.isProtected = true\n \n // 不允许单个格子编辑,是样式控制\n const sheetStyle = sheet.getDefaultStyle();\n //修改并设置表的默认样式locked为false.\n sheetStyle.locked = true;\n //默认对其方式\n // sheetStyle.hAlign = GC.Spread.Sheets.HorizontalAlign.center;\n sheetStyle.vAlign = GC.Spread.Sheets.VerticalAlign.center;\n // sheetStyle.wordWrap = true\n sheet.setDefaultStyle(sheetStyle);\n //禁止缩放\n spread.options.allowUserZoom = false;\n \n //禁止缩放\n spread.options.allowUserZoom = false;\n // 绑定数据\n if (data.length > 0) bindDataTable(spread, data)\n spread.resumePaint();\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!./Release.vue?vue&type=style&index=0&id=5055b28b&lang=scss&scoped=true\"","module.exports = __webpack_public_path__ + \"img/icon_download.59a31c7b.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!./Second.vue?vue&type=style&index=0&id=256751e5&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!./BlueUpload.vue?vue&type=style&index=0&id=170ad68a&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!./First.vue?vue&type=style&index=0&id=8f3c0108&lang=scss&scoped=true\"","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","import { fetchGet, fetchPut, fetchPost, fetchGetMess } from './index'\nimport { DataAdminParam } from '@/views/RetailValidation/DataAdmin/types'\nimport { KufriPanelProps, KufirPanelData } from '@/views/System/Kufri/KufriPanelControl/types'\nimport { KufriActiveProps } from '@/views/System/Kufri/KufriActive/types'\nimport { NstMappingProps } from '@/views/System/Kufri/NstMapping/types'\nimport { UpdateMSRPProps } from '@/views/System/Kufri/UpdateMSRP/types'\nimport { NstGroupProps, VATRateProps } from '@/views/System/NSTGroupMSRP/types'\nimport { ImPACTMSRPProps } from '@/views/System/IMPACTMSRP/types'\n\nexport const getBasicData = (): Promise => {\n return fetchGet('/rvapi/basic/v1/settings/one')\n}\n\nexport const updateDeferDays = (arg: string) => {\n return fetchPut(`/rvapi/basic/v1/settings/deferDays?deferDays=${arg}`)\n}\n\nexport const updateDeferExtendDays = (arg: string) => {\n return fetchPut(`/rvapi/basic/v1/settings/deferExtendDays?deferExtendDays=${arg}`)\n}\n\nexport const updateMdfStopDays = (arg: string) => {\n return fetchPut(`/rvapi/basic/v1/settings/mdfStopDays?mdfStopDays=${arg}`)\n}\n\nexport const updateVanLicenseDeferDays = (arg: string) => {\n return fetchPut(`/rvapi/basic/v1/settings/vanLicenseDeferDays?vanLicenseDeferDays=${arg}`)\n}\n\n// kufri\nexport const getKufriPanelData = (params = {}): Promise => {\n return fetchGet('/vapi/kufri/control/init', params)\n}\n\nexport const getKufriPanelActiveVersionData = (): Promise => {\n return fetchGet('/vapi/kufri/activeVersion')\n}\n\nexport const findKufriPanelData = (params = {}): Promise => {\n return fetchGet('/vapi/kufri/control/data', params)\n}\n\n// Kufri Active\nexport const getKufriActiveData = (params = {}): Promise => {\n return fetchGet('/vapi/kufri/active/search', params)\n}\n\n// Run Kufri Active\nexport const runKufriActive = (params = {}): Promise => {\n return fetchGetMess('/vapi/kufri/active/first/three', params)\n}\n\n// Active Kufri Active\nexport const activeKufriActive = (params = {}): Promise => {\n return fetchGetMess('/vapi/kufri/active/last/two', params)\n}\n\n// 获取KPI\nexport const getKpiList = (): Promise => {\n return fetchGet('/vapi/kufri/kpis')\n}\n\n// nst Mapping \nexport const getMappingData = (params = {}): Promise => {\n return fetchGet('/vapi/kufri/nstGroup/mapping', params)\n}\n\n// save nst Mapping\nexport const saveNstMapping = (params = {}) => {\n return fetchPost('/vapi/kufri/nstGroup/mapping', params)\n}\n\n// IMPACT 通过nstGroupMapping批量获取IMPACT CODE的接口\nexport const getImpactData = (params = {}): Promise => {\n return fetchPost('/vapi/kufri/nstGroup/mapping/impact/list', params);\n}\n\n// update MSRP\nexport const getMSRPData = (params = {}): Promise => {\n return fetchGet('/vapi/msrp/detail', params)\n}\n\n// save MSRP\nexport const saveMSRPData = (params = {}) => {\n return fetchPost('/vapi/msrp/detail', params)\n}\n\n// Nst Group\nexport const getNstGroup = (params = {}): Promise => {\n return fetchGet('/vapi/msrp/nstGroup', params)\n}\n\n// \nexport const getMakeYearList = (): Promise => {\n return fetchGet(`/vapi/msrp/makeYearList`)\n}\n\n// 根据make获取有数据的version\nexport const getVersionBymake = (params = {}): Promise<{active: boolean; value: string}[]> => {\n return fetchGet(`/vapi/msrp/version`, { params })\n}\n\n// save Nst Group MSRP\nexport const saveNstGroupData = (params = {}) => {\n return fetchPost('/vapi/msrp/nstGroup', params)\n}\n\n// confirm Nst Group MSRP\nexport const confirmNstGroupData = (params: any = {}) => {\n return fetchPut(`/vapi/msrp/nstGroup?version=${params.version}&make=${params.make}&year=${params.year}`)\n}\n\n// VAT Rate\nexport const getVATRate = (params = {}): Promise => {\n return fetchGet('/vapi/msrp/vat', params)\n}\n\n// get IMPACT MSRP Override\nexport const getIMPACTMSRP = (params = {}): Promise => {\n return fetchGet('/vapi/msrp/impact', params)\n}\n\n// save IMPACT MSRP Override\nexport const saveIMPACTMSRP = (params = {}) => {\n return fetchPost('/vapi/msrp/impact', params)\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!./BasicSetting.vue?vue&type=style&index=0&id=3cbb7668&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!./SpecialAdjustment.vue?vue&type=style&index=0&id=7fbfcbe9&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!./BasicUpload.vue?vue&type=style&index=0&id=3ed2b568&lang=scss&scoped=true\"","/*\n * @Author: hanxi\n * @Date: 2021-06-08 15:27:45\n * @Description: 千分位符处理,处理后的数字保留两位小数\n */\nexport const toThousandsAndTwoDecimal = (count: number | string): string => {\n if (count === undefined || count === null) {\n return \"\";\n }\n if (typeof count === \"string\") {\n if (count.indexOf(\",\") !== -1) {\n if (count.indexOf(\".\") !== -1) {\n return count;\n } else {\n return count + \".00\";\n }\n }\n count = Number(count);\n }\n count = count.toFixed(2);\n return count\n .toString()\n .replace(/(\\d)(?=(\\d{3})+\\.)/g, function($0, $1) {\n return $1 + \",\";\n })\n .replace(/\\.$/, \"\");\n};\n\nexport const toThousands = (count: number | string): string => {\n if (count === undefined) {\n return \"\";\n }\n if (typeof count === \"string\") {\n if (count.indexOf(\",\") !== -1) {\n if (count.indexOf(\".\") !== -1) {\n return count.substring(0, count.indexOf(\".\") + 1)\n } else {\n return count;\n }\n }\n count = Number(count);\n }\n count = Math.round(count)\n return count\n .toString()\n .replace(/(\\d)(?=(?:\\d{3})+$)/g,'$1,')\n};","import { h } from 'vue'\nimport { toThousandsAndTwoDecimal } from './numberFormat'\nconst useThousandsAndTwoDecimal = () => {\n return ({text}: {\n text: number | string;\n }) => {\n return h('span', toThousandsAndTwoDecimal(text));\n };\n };\n export default useThousandsAndTwoDecimal;\n "],"sourceRoot":""}