{"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?3d3a","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/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/Closing/Tab/Components/ImpactModel.vue?9e00","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","icon","ExclamationCircleOutlined","content","msg","okText","cancelText","onOk","info","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","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","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","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-4a2f3035.69a3e016.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-d75ea96a\"),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, createVNode } 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\";\nimport {Modal} from \"ant-design-vue\";\nimport { ExclamationCircleOutlined } from '@ant-design/icons-vue'\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).then((res: any) => {\n if (!res.data || !res.data.length || res.data.length === 0) {\n message.success(\"Save successful!\");\n emit(\"update:visible\", false); //保存成功关闭弹窗\n } else {\n const errorList = res.data.map((item: string) => createVNode('div', {}, item))\n Modal.confirm({\n title: 'Tips',\n width: 500,\n icon: createVNode(ExclamationCircleOutlined),\n content: createVNode('div', {style: 'text-align: center; margin-left: -38px;'}, res.msg),\n okText: 'Detail',\n cancelText: 'Close',\n onOk: () => {\n Modal.info({\n title: 'Tips',\n width: 500,\n icon: createVNode(ExclamationCircleOutlined),\n content: createVNode('div', {style: 'text-align: center; margin-left: -38px;'}, errorList),\n okText: 'Cancel'\n });\n }\n });\n }\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=d75ea96a&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=d75ea96a&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-d75ea96a\"]])\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!./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\"","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=d75ea96a&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, fetchPostPic } 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 fetchPostPic('/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":""}