{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/views/Budget/BudgetAllocation/index.vue?854d","webpack:///./src/views/User/Index.vue?4c68","webpack:///./src/store/modules/approve.ts","webpack:///./src/store/modules/claim.ts","webpack:///./src/store/modules/payment.ts","webpack:///./src/store/modules/approvalChain.ts","webpack:///./src/store/modules/spotChecking.ts","webpack:///./src/store/modules/finance.ts","webpack:///./src/store/modules/localRegistration.ts","webpack:///./src/store/modules/salesReport.ts","webpack:///./src/store/index.ts","webpack:///./src/App.vue?9e4b","webpack:///./src/views/User/UserSetting.vue?8a9d","webpack:///./src/API/user.ts","webpack:///./src/utils/approve/index.ts","webpack:///./src/components/Breadcrumb.vue?65db","webpack:///./src/views/User/PGSetting.vue?ff8a","webpack:///./src/hooks/claim/useEventbus.ts","webpack:///./src/assets/images/header.png","webpack:///./src/components/Breadcrumb.vue?913b","webpack:///./src/components/Breadcrumb.vue","webpack:///./src/components/Breadcrumb.vue?6297","webpack:///./src/views/User/UserRoleMatrix/User.vue?7539","webpack:///./src/hooks/useFetch.ts","webpack:///./src/API/payment.ts","webpack:///./src/views/Budget/OfferFleet.vue?693c","webpack:///./src/views/User/UserRoleMatrix/User.vue?49cc","webpack:///./src/views/User/User.vue?5968","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/views/Program/components/NavigationBar.vue?a87d","webpack:///./src/views/Budget/OfferList.vue?9eac","webpack:///./src/components/SideNav.vue?742f","webpack:///./src/views/Program/components/NavigationBar.vue?5fe0","webpack:///./src/views/Program/components/NavigationBar.vue","webpack:///./src/views/Program/components/NavigationBar.vue?ed2b","webpack:///./src/API/approvalChain.ts","webpack:///./src/assets/images/submit-icon.svg","webpack:///./src/views/Budget/AddOfferRight.vue?cd2b","webpack:///./src/assets/images/header-bg.jpg","webpack:///./src/hooks/useTableHeight.ts","webpack:///./src/assets/images/decreaseIndicator.png","webpack:///./src/views/Budget/OfferType.vue?082e","webpack:///./src/views/User/RoleSetting.vue?0c2a","webpack:///./src/components/Header.vue?732e","webpack:///./src/views/Budget/FleetConfiguration.vue?1163","webpack:///./src/locales/lang/en.ts","webpack:///./src/locales/lang/zh.ts","webpack:///./src/locales/index.ts","webpack:///./src/API/program.ts","webpack:///./src/assets/images/reject.svg","webpack:///./src/views/Budget/BudgetInput/licensen.ts","webpack:///./src/assets/images/refresh-icon.svg","webpack:///./src/hooks/Program/useNavBar.ts","webpack:///./src/assets/images/side-nav-bg.jpg","webpack:///./src/views/Budget/AddOfferLeft.vue?28f1","webpack:///./src/views/Budget/BudgetInput/BudgetInputSet.vue?6122","webpack:///./src/API/index.ts","webpack:///./src/utils/blobDownload.ts","webpack:///./src/views/Home.vue?141a","webpack:///./src/views/Home.vue","webpack:///./src/views/Home.vue?1790","webpack:///./src/views/User/Index.vue?ecda","webpack:///./src/hooks/useSearch.ts","webpack:///./src/utils/htmlentities.ts","webpack:///./src/hooks/useAddEdit.ts","webpack:///./src/views/User/Index.vue","webpack:///./src/views/User/Index.vue?887a","webpack:///./src/views/User/Role.vue?1692","webpack:///./src/hooks/useAddEditRole.ts","webpack:///./src/views/User/Role.vue","webpack:///./src/views/User/Role.vue?12b2","webpack:///./src/views/User/User.vue?f223","webpack:///./src/hooks/useUserAddEdit.ts","webpack:///./src/views/User/User.vue","webpack:///./src/views/User/User.vue?de32","webpack:///./src/views/User/PGSetting.vue?b6ce","webpack:///./src/views/User/PGSetting.vue","webpack:///./src/views/User/PGSetting.vue?6577","webpack:///./src/views/User/RoleSetting.vue?8e9e","webpack:///./src/views/User/RoleSetting.vue","webpack:///./src/views/User/RoleSetting.vue?a775","webpack:///./src/views/User/UserSetting.vue?571e","webpack:///./src/views/User/UserSetting.vue","webpack:///./src/views/User/UserSetting.vue?774c","webpack:///./src/views/User/types.ts","webpack:///./src/views/User/UserRoleMatrix/Role.vue","webpack:///./src/views/User/UserRoleMatrix/Role.vue?cfa7","webpack:///./src/views/User/UserRoleMatrix/User.vue","webpack:///./src/views/User/UserRoleMatrix/User.vue?4bc9","webpack:///./src/views/User/UserRoleMatrix/index.vue","webpack:///./src/views/User/UserRoleMatrix/index.vue?14a6","webpack:///./src/views/Budget/BudgetInput/BudgutInput.vue?52a5","webpack:///./src/views/Budget/BudgetInput/BudgetInputSet.vue?3d96","webpack:///./src/views/Budget/data.ts","webpack:///./src/views/Budget/BudgetInput/BudgetInputSet.vue","webpack:///./src/views/Budget/BudgetInput/BudgetInputSet.vue?b8f1","webpack:///./src/views/Budget/BudgetInput/utils.ts","webpack:///./src/views/Budget/BudgetInput/BudgutInput.vue","webpack:///./src/views/Budget/BudgetInput/BudgutInput.vue?fe11","webpack:///./src/views/Budget/BudgetInput/BudgutInputControlling.vue?4c5c","webpack:///./src/views/Budget/BudgetInput/BudgutInputControlling.vue","webpack:///./src/views/Budget/BudgetInput/BudgutInputControlling.vue?7d5a","webpack:///./src/views/Budget/DownloadExcel.vue?85da","webpack:///./src/views/Budget/DownloadExcel.vue","webpack:///./src/views/Budget/DownloadExcel.vue?aeb4","webpack:///./src/views/Budget/BudgetReport/index.vue?1a64","webpack:///./src/views/Budget/BudgetReport/index.vue","webpack:///./src/views/Budget/BudgetReport/index.vue?bec6","webpack:///./src/views/Budget/BudgetAllocation/index.vue?8c72","webpack:///./src/utils/spreadjs.ts","webpack:///./src/views/Budget/BudgetAllocation/index.vue","webpack:///./src/views/Budget/BudgetAllocation/index.vue?2942","webpack:///./src/API/log.ts","webpack:///./src/router/rv.ts","webpack:///./src/router/claim.ts","webpack:///./src/router/checking.ts","webpack:///./src/router/payment.ts","webpack:///./src/router/systemRouters.ts","webpack:///./src/router/dealerMasterData.ts","webpack:///./src/router/closing.ts","webpack:///./src/router/forecast.ts","webpack:///./src/router/planning.ts","webpack:///./src/router/vl.ts","webpack:///./src/router/setting.ts","webpack:///./src/router/taskCenter.ts","webpack:///./src/router/delay.ts","webpack:///./src/router/communication.ts","webpack:///./src/router/delayCallback.ts","webpack:///./src/router/delayUsedCar.ts","webpack:///./src/router/SalesReportiong.ts","webpack:///./src/router/guidang.ts","webpack:///./src/router/reporting.ts","webpack:///./src/router/localRegistration.ts","webpack:///./src/router/faq.ts","webpack:///./src/views/Budget/OfferType.vue?a11a","webpack:///./src/views/Budget/index.vue?5dbc","webpack:///./src/views/Budget/ConfigurationNav.vue?8638","webpack:///./src/views/Budget/ConfigurationNav.vue","webpack:///./src/views/Budget/ConfigurationNav.vue?4b2e","webpack:///./src/views/Budget/index.vue","webpack:///./src/views/Budget/index.vue?69ee","webpack:///./src/views/Budget/OfferList.vue?632b","webpack:///./src/views/Budget/OfferList.vue","webpack:///./src/views/Budget/OfferList.vue?7def","webpack:///./src/views/Budget/OfferFleet.vue?ca2f","webpack:///./src/views/Budget/OfferFleet.vue","webpack:///./src/views/Budget/OfferFleet.vue?6a68","webpack:///./src/views/Budget/OfferType.vue","webpack:///./src/views/Budget/OfferType.vue?bbb3","webpack:///./src/views/Budget/AddOffer.vue?c786","webpack:///./src/views/Budget/AddOfferLeft.vue?0961","webpack:///./src/views/Budget/AddOfferLeft.vue","webpack:///./src/views/Budget/AddOfferLeft.vue?4f21","webpack:///./src/views/Budget/AddOfferRight.vue?8bc5","webpack:///./src/views/Budget/AddOfferRight.vue","webpack:///./src/views/Budget/AddOfferRight.vue?4012","webpack:///./src/views/Budget/AddOffer.vue","webpack:///./src/views/Budget/AddOffer.vue?5843","webpack:///./src/views/Budget/BudgetTemplate.vue?175f","webpack:///./src/views/Budget/BudgetTemplate.vue","webpack:///./src/views/Budget/BudgetTemplate.vue?b9c0","webpack:///./src/views/Budget/FleetConfiguration.vue?3b7b","webpack:///./src/views/Budget/FleetConfiguration.vue","webpack:///./src/views/Budget/FleetConfiguration.vue?eeef","webpack:///./src/router/index.ts","webpack:///./src/assets/images/increaseIndicator.png","webpack:///./src/views/Budget/ConfigurationNav.vue?881b","webpack:///./src/assets/images/fulfill.svg","webpack:///./src/views/User/UserRoleMatrix/index.vue?d295","webpack:///./src/views/Budget/BudgetReport/utils.ts","webpack:///./src/views/Budget/BudgetTemplate.vue?f289","webpack:///./src/utils/payment/useWait.ts","webpack:///./src/views/User/UserRoleMatrix/Role.vue?8d0d","webpack:///./src/utils/deepClone.ts","webpack:///./src/App.vue?30fa","webpack:///./src/components/Header.vue?d80d","webpack:///./src/components/Header.vue","webpack:///./src/components/Header.vue?fe54","webpack:///./src/components/SideNav.vue?af8d","webpack:///./src/components/SideNav.vue","webpack:///./src/components/SideNav.vue?ad72","webpack:///./src/App.vue","webpack:///./src/App.vue?6484","webpack:///./src/utils/permission.ts","webpack:///./src/components/MainWrapper.vue?cd51","webpack:///./src/components/MainWrapper.vue","webpack:///./src/components/MainWrapper.vue?cb6f","webpack:///./src/main.ts","webpack:///./src/API/approve.ts","webpack:///./src/views/Budget/BudgetInput/BudgutInput.vue?d00d","webpack:///./src/assets/images/pending.svg","webpack:///./src/utils/index.ts","webpack:///./src/components/MainWrapper.vue?44d4","webpack:///./src/views/Budget/BudgetInput/BudgutInputControlling.vue?aa0c","webpack:///./src/hooks/checking/useFixTable.ts","webpack:///./src/utils/payment/downloadFile.ts","webpack:///./src/views/Budget/BudgetReport/Content.vue?4874","webpack:///./src/views/Budget/BudgetReport/Content.vue","webpack:///./src/views/Budget/BudgetReport/Content.vue?d3f3","webpack:///./src/views/User/UserRoleMatrix/Role.vue?d983","webpack:///./src/views/Budget/BudgetReport/Content.vue?a896","webpack:///./src/assets/images/mercedes-benz-logo-desktop.png","webpack:///./src/API/budget.ts","webpack:///./src/views/User/Role.vue?0580"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","approve","namespaced","state","programIds","pendingApproveCount","mutations","updateProgramIds","program","updatePendingApproveCount","count","claim","afcLcType","saveParamsData","docDocumentsData","docExtendData","extendInfoData","claimMethodData","updateAfcLcType","updateSaveParamsData","option","rawData","updateDocDocumentsData","updateDocExtendData","updateExtendInfoData","updateClaimMethodData","updateClearParamsData","updateClearDocDocumentsData","updateClearDocExtendData","updateClearExtendInfoData","updateClearClaimMethodData","payment","approvealTableCount","selectProgramRows","breakdownRow","id","breakdownParams","payoutRoumd","entity","maxFileCount","maxFileSize","updateApprovealTableCount","updateSelectProgramRows","updateBreakdown","curRow","updateBreakdownParams","params","approvalChain","BUTreeData","BUListData","updateBUTreeData","updateBUListData","spotChecking","curPayoutRowData","payoutRoundData","packageData","packageFinanceData","sampleCheckPackagecodeId","sampleCheckPackagecode","sampleCheckPayoutRound","spotCheckConfirmPackageDealer","spotCheckConfirmProgramDealer","spotCheckConfirmPackageFl","spotCheckConfirmProgramFl","spotCheckStatus","updateSpotCheckStatus","updatePayoutCurRow","updatePayoutRoundData","updatePackageData","updatePackageFinanceData","updateSampleCheckPackagecodeId","updateSampleCheckPackagecode","updateSampleCheckPayoutRound","payoutRound","updateSpotCheckConfirmPackageDealer","updateSpotCheckConfirmProgramDealer","updateSpotCheckConfirmPackageFl","updatespotCheckConfirmProgramFl","finance","stateParmas","status","offer","offerType","brand","bu","customerType","updateStateParmast","thirdPartyDataError","curveSelectionUploadError","updateThirdPartyDataError","updateCurveSelectionUploadError","salesReport","fcSearchParams","make","startYear","closeOrNot","yearList","possibleReleaseRowData","setFCSearchParams","log","setPossibleReleaseRowData","rowData","vuexLocal","storage","sessionStorage","supportCircular","store","user","fulnm","menulist","userroles","Authorization","lang","scrollHeight","spinning","pageSpinning","maintain","operable","pgmData","pgmAny","tableId","isPolling","pgmCategory","pgmGroup","pgmGroupCategorys","pgmCombinability","programId","internal","left","right","other","category","offerOther","specialUsage","faCrossTerm","checked","sideNavCollapsed","sideNavKeys","openKeys","selectedKeys","pgmInsetCol","customerSelected","loginForward","keepAliveComponentNames","programHomeParams","combinabilityResetKey","showScrollContent","userClosedScrollContent","lastScrollEndTime","getters","isDealer","legalEntity","entityCode","updateLang","updateIsPolling","updatedHeight","screenWidth","updateUser","updateAuthorization","setItem","updateSpinning","updatePageSpinning","updateMaintain","updateOperable","updatePgmData","updatePgmDataProgramCode","programCode","updatepgmAny","updatePgmCategory","updatePgmGroup","updatePgmGroupCategorys","updatePgmCombinability","assign","updatePgmCombinabilityspecialUsage","updatePgmCombinabilityfaCrossTerm","updateSideNavCollapsed","vue","updateSideNavKeys","updatePgmInsetCol","updateLoginForward","updateCustomerSelected","updateMake","addKeepAliveComponentName","componentName","indexOf","removeKeepAliveComponentName","index","addProgramHomeParams","removeProgramHomeParams","updateCombinabilityResetKey","Date","getTime","toString","updateShowScrollContent","updateUserClosedScrollContent","updateLastScrollEndTime","actions","commit","res","local","global","locale","catch","usrnm","updateLogout","location","authAndUser","permissionCode","dispatch","buId","businessUnit","selected","offerTypes","keys","customer","localRegistration","plugins","plugin","PGFindall","PGchangestatus","PGsavegroup","PGupdategroup","PGfindgroupbyid","PGfindmnuall","PGfindapiall","PGsaveassignment","PGfindassignment","rolesFindall","rolesSaverole","rolesUpdaterole","PGfindgroupbytype","PGfindgroupbytypes","rolesFindrolebyid","PGfindalllist","rolesChangestatus","roleFindbyprivgrpid","roleFindassignmen","roleSaveassignment","usersFindall","checkUserExisted","userSaveuser","userUpdateuser","userFinduserbyid","userChangestatus","usrFinduserbyorgid","usrFinduserrole","getBuSelected","deleteBuSelected","roleFindrolebytype","getBuDealer","dealerId","usrImportsetting","usrSaveuserrole","usrSaveuserorg","removeUserRole","findCurrentUser","getToken","outLogin","ssoLogout","getLegalEntityOptions","getEntityOptions","getOrganizationOptions","parentId","saveBuAndRegion","getBuTreeList","getEntityList","getRoleMatrixRoleOptions","getRoleMatrixRoleOptionsByGrpId","grpId","grpid","getRoleMatrixList","exportRoleMatrix","a","post","responseType","exportRoleMatrixLog","getUserMatrixUserOptions","getUserMatrixList","exportUserMatrix","exportUserMatrixLog","toNumber","reg","RegExp","test","Number","replace","toThousands","saveDecimal","_value","includes","$0","$1","parseInt","emitter","customEmit","eventName","arg","emit","customOn","on","useEventbus","clear","_hoisted_1","class","render","_ctx","_cache","$props","$setup","$data","$options","_component_CloseOutlined","_component_router_link","_component_a_breadcrumb_item","_component_a_breadcrumb","breadcrumbWrapper","className","style","outSideStyle","scrollContainerStyle","scrollBoxLineHeight","scrollText","onClick","closeScrollContainer","args","breadCrumb","scrollBreadCrumbStyle","separator","default","crumbLists","item","to","mnuuri","$i18n","mnunmcn","mnunmen","_","dataSource","path","$slots","props","Array","required","String","lineHeight","paddingBottom","outSideHeight","components","CloseOutlined","setup","route","familyTree","arrTree","temp","forFn","arr","mnuid","parentid","children","findURL","url","openKey","selectedKey","obj","map","ret","currentScrollEndTime","showScrollContainer","height","reverse","fullPath","startsWith","lampData","contents","endTime","currentTime","now","lastScrollEndTimeDate","__exports__","useFetch","initData","fetchFuc","isPagination","callback","pagination","pageSize","page","total","refreshFetch","_params","totalCount","pageAt","totalNum","content","getPayountRoundByYearForSearch","getInitSelectedDataForSearch","getMBAFCTable","getDealerTrackingList","getFinanceTrackingList","getDealerPendingList","getFinancePendingList","getFinanceAFCPendingList","getFinanceLCPendingList","getUploadFileData","batchDelete","ids","batchSubmit","batchWidthDraw","getInvioceView","delAttachment","getDealer2RoundDetail","getDealer2RoundDetailForPayout","getDealer2RoundDetailForPeding","fetchPaymentApprove","fetchPaymentReject","getAFCTrackingList","getLCTrackingList","getPayoutCodeTable","getPendingPayoutCodeTable","getSearchResultForDealerPayoutOverview","getCreatePayoutBatchDetail","callAddPayoutBatchButton","batchDeletePrograms","batchDeletePayoutCodes","batchWithDrawPrograms","batchSubmitPrograms","createPayoutSaveButton","createPayoutSubmitButton","getDealerPayoutOverviewList","getFlPayoutOverviewList","getDealerDataList","getListDealerNumber","getBuFlPayoutOverviewList","getDealerPayoutCondition","getRoundListByDate","getRoundListByDateAndStatus","getCodeListByRound","getInitCondition","getPayoutRoundListApproved","getPayoutRoundListNotApproved","getRoundYearList","getRoundFinanceList","getDealerNewRound","getListChainByEntityAndBus","getSalesOverviewList","getVehicleList","getVendorList","getDownloadFileList","getSalesUploadFile","formData","getFileList","source","getSalesDownloadFile","fileId","getDealerBreakdownAttachmentFile","getSalesDeleteFile","getVoucherList","importVoucher","uploadVoucher","dealerBreakdownList","salesBreakDownInitSelect","getDealerApproveRoundNameCN","salesBreakDownList","salesBreakDownFileList","salesBreakDownBatchRelease","config","salesBreakDownBatchWithdraw","salesBreakDownApprove","salesBreakDownReject","salesBreakDownCommentList","breakDownDetailList","breakDownDetailFileList","dealerDetailApproveId","breakDownDetailApprove","breakDownDetailReject","paymentClaimExport","getTrackingLogicList","currPage","fetchDgrcDownloadList","deleteDgrcUploadFile","getPendingDetailAL","payoutCode","getPendingDetailD","getFinanceDetail","payoutCodeId","getDealerDetail","fetchListDealerSettingSIPayout","fetchListDealerSetting","fetchListDealerSettingForTracking","getDcnTemplate","setDcnTemplate","downloadPendingDealerPayoutCodeFile","downloadPendingAFCPayoutCodeFile","saveConditionDealerStatus","deleteCondition","conditionAllDealerStatus","addSummaryLog","getSummaryLogList","downloadPayOutSummaryByVersion","versionNameList","getUploadFilesByDate","dateStr","updateAttachmentInfo","deleteAttachmentInfo","downloadAttachment","downloadAttachmentWatermark","downloadOverviewPayoutCodeSheet","payoutCodes","payoutCodeParam","isArray","join","getApprovalPackageByCreated","getPayoutRoundByYear","year","getDealerSalesStatus","getSalesList","getSetList","getPayoutCodeStatus","getPayoutCodeListByPayoutRoundAndEntity","getDealerBreakdownOverview","summaryLogCheck","downloadPaymentOverview","redInvoiceNoticePayoutRoundList","redInvoiceNoticeList","dealerCode","dealerName","pageNumber","redInvoiceNoticeExport","getVendorCodeBlankButtonHighlight","getVendorCodeBlankList","getDealerNameUpdateButtonHighlight","getDealerNameUpdateList","getReleaseListApi","generateFileApi","getPreviewDataApi","releaseRound","postReleaseApi","getDCDDealersApi","putDCDReleaseApi","dealerCodes","putDCDWithdrawApi","demoCarDeductionDealerDownload","demoCarDeductionDownload","getDemoCarDeductionFileList","getDemoCarDeductionZipFileDisplay","exportCheck400Code","download400CodeCheckFailed","getLastSubmissionDeadline","getSubmissionByRound","updateNormalDealerDpStatus","getNowActiveLampData","webpackContext","req","webpackContextResolve","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","alt","_hoisted_6","_hoisted_7","_component_a_tooltip","_component_a_badge","navArr","query","pgmId","$event","routeSelect","disabled","title","toolTipContent","activeKey","getApprovalChainSetting","roleType","insertFLRole","insertNormalRole","updateNormalRole","updateFLRole","getRoleDetail","roleId","deleteRoleDetail","getListProgramApproval","ToActiveApprovalChain","chainId","ToInactiveApprovalChain","addNewApprovalChain","newVersionForCopy","getListFLPayoutApproval","getListDealerPayoutApproval","getApprovalChainDetail","getAllRolesByUser","userId","getAllUsersByRole","searchKey","saveApprovalRole","editableCheckApprovalChain","addApprovalChainNewVersion","getEffectiveDate","businessId","getBuList","getUserList","userName","useTableHeight","isOthersDom","othersDom","isResizeHandler","tablePosition","tableHeight","resizeHandler","paginationHeight","clientHeight","body","tableOffsetTop","querySelector","getBoundingClientRect","top","tableTheadHeight","offsetHeight","addEventListener","search","save","navTip","navRole","navUser","fulnmm","userType","password","filterName","filterpgName","filterRoleName","filterType","edit","deactivate","setting","cnName","enName","description","operation","menuName","API","grg","org","orgFul","email","findUser","findRole","importUser","pleaseInput","inputNameEn","inputNameCn","inputRoleCode","inputDescription","inputName","inputFullName","inputEmailName","pgName","delConfirm","roleName","roleCode","names","approvalChianSetting","programApprovalChain","payoutApprovalChain","configuration","sampleCheckRule","NGMSRPOverride","IMPACTMSRP","addTable","addRow","delete","upload","download","refresh","retailValidation","rv","dealer","controlling","sicco","sipo","placeholder","retailClaim","RT","RTClaimDetail","WS","WSClaimDetail","VINBased","checking","plan","sourceDataManagement","AG","TA","TDTA","EnquiryProgram","spotCheckingControlling","spotCheckingPendingApproval","approvalReview","programDetail","vinDetail","spotCheckOverview","spotCheckConfirm","allClaimsReview","payoutPreparation","paymentMBAFC","paymentApprove","paymentBuManagement","entitySiPayout","buSiPayout","paymentDealerNo","paymentBuApprove","createPayoutCode","paymentSalesManagement","dcnTemplateSet","vendorCode","vehicleList","paymentDealerStatus","paymentBBACSales","voucherAttachment","DgrcAccounting","Breakdown","BreakdownDetail","dealerBreakdownReport","paymentTracking","demoCDView","closing","home","setPMT","forecast","vehiclelicense","homepage","taskCenter","systemSetting","taskJob","packageTask","planning","delay","claimDelayRule","dealerDelayClaim","sipoApprove","regionApprove","communication","appeal","history","salesmeasure","detail","batchname","releasedate","programcode","programnamecn","programnameen","programname","reset","selectprogram","selectattch","salesmeasurelist","smlfilename","period","attachmentname","pleaseSelect","expand","releaseperiod","collapse","programcount","dealerData","dealerNameEn","dealerNameCn","gsCode","dealerGroup","provinceEn","cityEn","view","dealerDataEdit","active","baseInfo","legalNameCn","legalNameEn","additionalNameCn","additionalNameEn","provinceCn","provinceEn2","cityCn","cityEn2","addressCn","addressEn","zipCode","format","contactEmail","fixPhone","dealerGroup2","swtCode","mbafcCode","languageValue","dosCode","isGovernmentRelated","salesInfo","dealerType","yes","no","changeHistory","changeDate","changeBefore","changeAfter","operationUser","dealer400Code","dealerVINBasedEnquiry","searchConditions","vinNO","vehicleClassification","vehicleCode","vehicleName","modelYear","wholesaleSource","wholesaleDate","retailDate","dealerNameCN","dealerNameEN","exportVehicleCompatibility","compatible","incompatible","beginTime","claimEnquiry","dealerSwtCode","projectPeriod","appealStatus","projectNO","projectType","optionName","paymentRound","checkResults","estimatedAmountOfCustomerPolicy","actualAmount","createTime","dealerCommunicationDeadline","exemptionDeadline","dealerAcceptedTime","export","cannotWithdraw","ok","cancel","withdrawSuccessful","close","applyDeferredWithdraw","retailDateStr","programPeriod","region","automaticDeduction","retailValidationSipo","exportQueryResult","more","vin","model","dealerCodeCofico","dealerCodeSWT","customerName","retailType","submissionStatus","eligibilityStatus","failureReason","file","vehicleSort","commissionNo","typeClass","powertrain","dealerSort","dateSort","invoiceDate","registrationDate","checkResultSort","vinBatchEnquiry","vinList","commissionNoBatchEnquiry","commissionNoList","clearAll","confirm","failureReasonDetails","feedbackTime","invoice","license","relationProof","details","retailDataDetails","basicInformtion","dealerInformtion","vehicleRetailHistory","operationRecord","retailStatus","vehicleUsage","role","action","operationTime","ssscOrder","updatedTime","fin","packageValidFrom","errorMessage","startSystemClaimDate","claimID","createdTime","activateDate","packageName","outletId","productCode","wholesalePrice","iconContractNumber","programCodeMapping","startSystemClaim","dealerQueryDetail","siProgram","programName","programCategory","retail","eligibility","vehicleLicense","claimDetail","checkResult","amount","comment","dealerCommunication","roundClosing","lastCommunication","applicationDocument","appeal1","appeal2","messages","en","zh","i18n","getItem","globalInjection","budgetGenerate","programTemplate","programProgramId","pgapiProgramPost","searchHeaderProgram","getRestrictedData","sjsExcel","getOfferGroup","pgmaddColumn","removeColumn","designRefreshIncentive","searchSsscCandidate","searchVehicle","searchNstGroupName","searchRepurchaseVehicle","searchOptions","searchRepairCode","searchDealer","refreshFormula","getDesignSetting","parasm","refreshComments","searchRankingCriteria","getAreasDate","saveLocalReg","getRegList","getSpecialData","getSpecialDataEdit","getSpecialParametersData","getSpecialValueData","delSpecialData","saveSpacialRule","specialRuleWithVehicle","loadCombinability","filterCombinability","storeCombinability","wordingPreview","wordingInit","getReplacedWordingPdf","deleteReplacedWordingPdf","wordingCompare","getEditableContent","saveEditedContent","getReleaseBatchCovereContent","saveReleaseBatchCover","getAvaiDesData","confinParams","getFinacDesData","getFlDesData","getEqFlDesData","getAgDesData","getDesignFa","getChooseCalculator","findDesignDetail","getFlBuyDownData","getEQCBuyDownData","downloadDocxPdfWording","isWordingUploadAll","getProgramAllStatus","viewCombinabilityDocument","resetCombinability","getProgramCombinabilityDisplay","getProgramLogs","Sheets","LicenseKey","navToolTipContentMaps","fulfill","pending","AllNavStatusMaps","Temporary","NonTemporary","Draft","Default","Confirmed","ToBeConfirmed","N","Y","useNavBar","currentProgramId","newVal","forEach","nav","changeNavStatus","tabStatus","currentNavStatus","design","programAllStatus","budget","combinability","parameter","getTabStatus","notLoadUrl","baseURL","defaults","paramsSerializer","stringify","arrayFormat","requestNumber","isNoLoading","interceptors","use","filter","headers","response","authorization","codeHandler","Blob","text","JSON","parse","msg","atob","fetchGet","fetchPost","fetchGetMess","fetchPostPic","fetchPut","put","fetchPutPic","fetchDelete","fetchDeletePic","fetch","options","method","fileName","size","userFileName","split","decodeURIComponent","contentType","blob","downloadElement","URL","createObjectURL","click","revokeObjectURL","routes","breadcrumbName","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_component_Breadcrumb","_component_a_input","_component_a_select_option","_component_a_select","_component_a_button","_component_a_form_item","_component_a_textarea","_component_a_form","_component_a_modal","_component_a_table","$t","errorInp","boolSearch","onChange","searchChange","onPressEnter","searchSubmit","ref","allowClear","legalEntityOptions","entityName","$btnPermissions","handleAddPG","visible","onCancel","handleCancel","centered","modalTitle","footer","isAdd","submitAddPG","ruleFormRef","form","rules","labelCol","wrapperCol","label","grpnmen","grpnmcn","grptpnm","grptpChange","$store","usrtp","grpdsc","rowKey","privilegeGroup","privgrpid","columns","pageOptions","scroll","y","changePage","rowClassName","record","customTitle","customType","customDescription","customOperation","handleEdit","handleDisable","$router","useSearch","searchType","trim","pageIndex","totalElements","current","re","htmlentities","str","useAddEdit","span","grptp","crtby","crtbynm","crted","trigger","max","pattern","myFromRef","el","validate","success","reload","resetFields","row","addNumber","dataIndex","width","slots","customRender","innerHeight","pageSizeOptions","showSizeChanger","showQuickJumper","getLegalEntity","PGFindallFn","initTableData","delVisible","onOk","privGroupId","nowState","Math","random","searchPG","getPermission","privcd","rolnmen","rolnmcn","roltpnm","grpnm","grpChange","prgOptions","roldsc","rolid","customName","customPG","customDsc","grpname","privgrpnmcn","privgrpnmen","getGPbyType","typeid","roltp","findNmById","groupOption","resetForm","resetLegalEntity","roleid","immediate","rolesFindallFn","useAddEditRole","_withScopeId","_hoisted_23","_component_a_checkbox","_component_a_checkbox_group","expotToExcel","handleChangeNameToUpperCase","usrtpnm","dealerItAdmin","orgnm","isShowEntity","showEntity","entityIds","entityOptions","entityChange","usrid","customFulnm","customOrg","orgnmcn","orgnmen","customEmail","orgid","usrtpcode","useUserAddEdit","singleData","copyUser","copyOrg","defaultDealerItAdminFormData","judgeUsrnm","existedParams","validateAsync","rule","valiorgAsync","validator","getOrganization","find","toUpperCase","deepClone","getUserInfo","stateData","screen","router","ruleForm","getEntity","blobDownload","_component_a_tree","_component_a_divider","_component_a_tab_pane","_component_ArrowRightOutlined","_component_a_tabs","tab","checkable","treeData","expandedKeys","clickKeys","checkedKeys","replaceFields","onSelect","onCheck","tableMenuKey","selectedRowKeys","onSelectChange","getCheckboxProps","getPermissions","tableData","customCode","privnmcn","privnmen","apiMenu","apigrpnm","clickApiMenu","tableApiKey","selectedRowKeysAPI","onSelectChangeAPI","columnsAPI","tableDataAPI","customApinm","customApidsc","submitPGSetting","ArrowRightOutlined","tableCheckedData","selectTable","clickTreeNode","findMenuItem","menuItem","formatMenuSelect","tree","formatActionSelect","privids","val","privid","formatActionSelectObj","formatAPISelect","apiid","formatTree","disableCheckbox","init","mnulist","privlist","apilist","treeSelectedKeys","info","node","dataRef","checkedIndex","hasChecked","findIndex","selectedRows","selectPriv","checkedData","pgAPISubmit","objP","findParentIds","parentIds","getParentId","pgMenuSubmitParams","arrConcat","from","Set","concat","pgActionSubmitParams","arr1","flat","params1","mnuList","privList","apiList","rolmnuid","$route","userSelect","onFocus","findUserData","findUserChange","userDataList","imoprtUser","handleAddRole","assignedRoleList","group","removeRole","usrrolid","handlesubBUs","subData","buid","removeUserOrgEvent","usrorgid","allBuRegionIdArr","regionDto","regionItem","subRegionEn","isShowRegion","regionSave","addvisibleRole","handleOkAssRole","handleCancelRole","roleselect","findRoleChange","rolesData","addvisibleBUs","handleOkSubBU","handleCancelSubBU","defaultCheckedKeys","checkStrictly","title0010","roleValue","optionsUser","optionsRole","roleOption","initUser","buValueArr","some","buRegionValue","roleList","addFieldKey","child","subScribe","findParent","saveBUsParams","nameCn","nameEn","orgtp","orgtpnm","typeName","orgcode","usrorgId","usrId","getBuRegion","idArr","buRegionValueArr","buRegionArr","selectedRegion","UserRoleMatrixTab","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","__props","conditions","userGroup","userGroupNameEn","menu1","menuNameEn1","menu2","menuNameEn2","menu3","menuNameEn3","fetchingUserGroup","roleOptions","allRoleOptions","typeids","types","handleFoucsUserGroup","entityNameEn","getRoleOptionsByGrpId","getRoleOptions","menu1Options","menu2Options","menu3Options","getMenu","resetMenu2","resetMenu3","menu1Change","menu2Change","menu3Change","tableSize","roleMatrixData","getData","legalEntityList","userGroupName","firstMenuNameEn","secondMenuNameEn","thirdMenuNameEn","handleChangePage","handleChangeShowSize","handleSearch","handleReset","handleExport","handleExportHistory","_component_a_spin","_component_a_pagination","fn","showSearch","optionFilterProp","icon","x","EllipsisText","onShowSizeChange","SHOW_ALL","fullName","userOptions","getUserOptions","userInput","userInputChange","input","buOptions","getBuOptions","userMatrixData","list","buNameList","_component_a_tree_select","onSearch","innerHTML","treeCheckStrictly","stateStep","Role","User","_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","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","_hoisted_51","_hoisted_52","_hoisted_53","_hoisted_54","_hoisted_55","_hoisted_56","_hoisted_57","_component_breadcrumb","_component_Navbar","_component_BudgetInputSet","_component_main_wrapper","spinFlagSave","wrapperClassName","header","handleRegenerate","offerTypeValue","offerTypeId","handlerToggleOfferType","offerTypeName","siOfferData","siOfferValue","siOfferId","handlerToggleSiOffer","byMonthStatus","kufriVersion","viewTag","placement","programInfoVo","updateKufriVersion","latestVersion","fleetCustomerList","isOverview","customerValue","changeCustomer","budgetId","activeMakeValue","round","pbpKufri","pbpBudget","cbuKufri","cbuBudget","vanKufri","vanBudget","denzaKufri","denzaBudget","isVisibleSpecialIndex","visibleOfferList","handlerCheckboxChange","handleRefresh","handlerSaveClick","handleSetVolumeBaseClick","handlerCopyKufriClick","budgetPeriod","spinFlag","handlerOk","handleOk","$emit","inputVolumeBase","volumeBase","manualArr","inputsetPeriod","inputsetVehicleView","inputsetCostBase","salesList","salesnm","salesid","incentiveCategoryName","incentiveCategoryId","othersData","fieldOptions","logicOptions","display","formula","Boolean","emits","context","inputPeriod","inputVehicleView","inputCostBase","tipText","toolTipElement","getHitInfo","cellStyle","cellRect","col","sheetArea","sheet","processMouseEnter","hitinfo","this","div","position","border","boxShadow","font","background","padding","whiteSpace","innerText","transform","toolTipElementWidth","offsetWidth","totalWidth","Zs","bounds","processMouseLeave","hitInfo","Spread","CellTypes","ColumnHeader","customCopyConVEvent","spread","getActiveSheet","ctrlKey","isProtected","SUMMARY","isEditCell","isSummaryCell","bindDataTable","locked","suspendPaint","setRowCount","SheetArea","viewport","autoFitColumnIndex","currentText","getCell","textIndent","setRowHeight","autoAutoFitColumn","readOnly","align","hAlign","HorizontalAlign","backColor","wordWrap","setColumnWidth","contentsType","setValue","setFormatter","autoFitColumn","resumePaint","setHeader","headerData","setColumnCount","getRange","colHeader","alignLeftKey","frozenColumnCount","frozenlineColor","autoHeaderFitColumn","autoFitColumnKeys","commandManager","allowUndo","execute","cmd","sheetName","isRowHeader","autoFitType","AutoFitType","cellWithHeader","updateClipboardPastedData","rowIndex","colIndex","cellData","inputTableCell","edited","getClipboardPastedValues","eventData","cellRange","values","colCount","rowCount","getValue","inputEventToFormula","Events","ClipboardPasted","sender","inputCellData","rowValues","ValueChanged","suspendEvent","isNaN","newValue","oldValue","resumeEvent","pipelineOverrideIndex","setHeaderCellTypeTip","tipCellTypes","setCellType","columnNumber","cell","tips","ssHotTop","bindEvent","getElementById","range","Range","rowFilter","Filter","HideRowFilter","filterDialogVisibleInfo","sortByValue","sortByColor","filterByColor","filterByValue","listFilterArea","protectionOptions","allowOutlineRows","allowOutlineColumns","allowFilter","allowSort","tabNavigationVisible","tabStripVisible","scrollbarMaxAlign","allowInsertRows","allowInsertColumns","allowDeleteRows","allowDeleteColumns","clipBoardOptions","ClipboardPasteOptions","scrollByPixel","allowUserDragFill","allowUserDragDrop","rowHeaderVisible","sheetStyle","getDefaultStyle","center","vAlign","VerticalAlign","setDefaultStyle","allowUserZoom","styleUnEdit","Style","styleEdit","hasValue","handlerSheetsData","isCheckoutMonth","headerArr","inputHeaderFixedKeys","inputHeaderFixedKeysIndex","percentCellIndex","mutexHeaderCellKeys","mutexHeaderCellIndex","textKeyIndex","percentDecimalKeys","smallWidthKeys","kufriWidthKeys","fixedCol","isModelYear","isModel","isPeriod","refValPeriod","refVal","bindDataTableSmall","setDataSource","bindColumn","displayName","ite","ssHostSmall","showHorizontalScrollbar","showVerticalScrollbar","setStyle","offerTypeArr","offerArr","tableHeaderListSummery","tableHeaderListSummery2","BudgetInputSet","Navbar","oldTableData","newTableData","worksheet","workbook","worksheetSmall","workbookSmall","currentTab","budgetInfoData","dataSmall","latestKufriVersion","budgetTableData","budgetKufriData","budgetTableDataH","budgetAllocationTableDataH","getAllDirtyCells","sels","getSelections","cells","getDirtyCells","ssHotTopInit","Workbook","ssHotSmallInit","spreadSmall","sheetSmall","fetchLastVersion","fetchBudGetInfo","getBudgetId","siofferId","siOfferList","budgetIdList","siOfferCustomerVo","fetchBudgetTableData","unbindAll","destroy","warning","fetchBudgetKufriData","summaryTypes","closeWindowEventHandler","preventDefault","returnValue","_budgetTableData","removeEventListener","volumeBaseKeys","volumeBaseIndex","ToggleOfferType","activeOfferType","ToggleSiOffer","kufriVersionn","siOffer","CustomerList","objCustomer","handleMounted","okText","cancelText","allowSelectLockedCells","allowSelectUnlockedCells","allowResizeRows","allowResizeColumns","allowEditObjects","allowDragInsertRows","allowDragInsertColumns","handleReturn","handleDownload","excelIo","spreadInit","excelFilePath","open","json","workbookObj","fromJSON","addRows","toJSON","saveAs","_component_budget_report_content","BudgetReportContent","allocationTableCell","isAllocation","scrollbarAppearance","ScrollbarAppearance","mobile","headerFixedKeys","headerFixedKeysIndex","getRowContents","indexList","hasRepeat","setCellVisible","summaryContents","entries","typeClassIndex","budgetAllocationTableData","ssHotBotInit","fetchBudgetAllocationData","PageView","rvRouters","component","claimRouters","checkingRouters","meta","showInTab","permission","redirect","activeTabName","pmtRouters","isMobile","systemVehicleRouters","dealerMasterDataRouters","closingRouters","forecastRouters","planningRouters","vlRouters","settingRouters","taskCenterRouters","delayRouters","communicationRouters","delayCallbackRouters","delayUsedCarRouters","salesRepotringRouters","guiDangRouters","reportingRouters","localRegistrationRouters","keepAlive","faqRouters","_component_offer_list","_component_offer_fleet","_component_a_row","zIndex","visibleStatus","cancelStatus","confirmStaus","checkboxArr","optionsData","visibleSI","_component_navbar","_component_a_menu_item","_component_a_menu","_component_a_dropdown","handleAddOffer","handleExpand","expandIcon","expandIconColumnIndex","expandIconAsCell","onExpand","expandedRowKeys","expKeys","offerTypeActive","handleChangeStaus","overlay","activeText","tableChange","visibleOffer","cancelOffer","createOffer","offerRef","sales","selectChange","incaentiveList","copySiName","siname","changeKey","sikey","filterSIoffer","sioffer","defaultData","filterTableData","_incaentiveList","filters","siOffarr","judgeType","isRepeat","hash","shortValue","field","siOfferName","siOfferNameAdd","getofferRef","clickExpand","expanded","expandBool","v","isSIoffer","paramss","handleEditOffer","getOfferType","offerData","handleDisableOffer","InactiveToActive","paramsOffer","siOfferArr","lastActive","programTypeKind","handleChangeOffer","visibleFleetOffer","expotToExcelFleet","fleetColumns","fleetSource","activeFleeText","tableFleetChange","editCustormerType","createCustormerType","custormerType","custormerCategory","initCustormerCategoryData","custormerCategoryList","categoryId","categoryName","visibleEdit","createMultipleCustormerType","onBlur","getSIvalue","customerTypeValue","fleetCategoryName","custormerCategoryItem","deepCloneData","deepCloneFleetData","filtersData","attr","initTable","initFleetTable","offerTypeKind","customerCategory","customerTypeName","fleetCustomerCategory","customerTypeArr","customerTypeId","handlerAddCustomerType","categoryNameId","OfferList","OfferFleet","offerStatus","_component_AddOfferLeft","_component_AddOfferRight","showQuickVisble","saveOffer","quickVisble","cancelQuick","createQuick","changeQuick","offerTypeData","checkDatas","appendable","handleAddAttr","attribute","manual","ref_for","manualFixed","exclusive","onRadio","visbleAttr","cancelAttr","createAttr","formRef","changeField","updatedArr","exclusvie","independent","judgeSave","vbaseBool","cbaseBool","needMaintain","budgetTemplate","getFormRef","selectQuickData","showConfirm","getAttributeArr","arrValue","radioData","exclus","stringToBoolean","confimLayout","leftIcon","upRemove","downRemove","startRemove","endRemove","clickColumn","layoutList","canMoveLeft","removed","clickElement","currentElementIndex","rightIcon","initLayouData","isLeft","idLocal","querySelectorAll","rawArr","rawObj","removeObj","maxIndex","AddOfferLeft","AddOfferRight","pathData","_component_a_collapse_panel","_component_a_collapse","activeTabKey","bordered","charAt","activeFleetKey","logic","switchvalue","pageChange","sizeChange","settingColumns","asTableData","overview","enabled","auto","autoManual","budgetForm","ProgramDesign","Design","CombinabilitySetting","SSSCIndex","CalculatorMaintain","CalculatorStatus","FaSetting","EstimatedPer","CalculatorVersion","CalcelatorReopen","ProgramHome","OverallCombinabilityMatrix","CreatePackage","PackageHome","ReleasePackageHome","ReleaseSetting","MgPackageHome","MgPackageDetail","ControllingProgramHome","WordingBudget","ApproveFA","uamRouters","PGSetting","RoleSetting","UserSetting","UserRoleMatrix","budgetRouters","AddOffer","FleetConfiguration","BudgutInput","BudgutInputControlling","BudgetAllocation","BudgetReport","OfferType","beforeEnter","BudgetTemplate","programRouters","faRouters","approvalRouters","batchId","releaseId","Home","routerNext","next","localStorage","beforeEach","button","menu","initOutlineColumn","outlineColumn","columnIndex","showImage","showCheckBox","expandIndicator","collapseIndicator","maxLevel","showRowOutline","addSpan","setCollapsed","isCollapsed","level","rowOutlines","borderRight","LineBorder","LineStyle","thin","mdeviation","foreColor","ydeviation","setRowVisible","initSpread","defaultStyle","transEmptyData","excludeKey","compare","object1","object2","val1","val2","transformData","_data","listMake","listTypeclass","sort","listModel","useWait","toRun","wait","copy","_component_Header","_component_SideNav","_component_router_view","_component_MainWrapper","Component","include","gotoFaq","helpCenterStr","hanlderLogout","users","token","methods","handleChange","removeItem","helpCenterUrl","hasHelpCenter","helpCenterMenuList","_component_a_sub_menu","collapsed","isFixed","ghost","toggleCollapsed","theme","onOpenChange","childrenNav","thirdChildNav","menuKeyPaths","menuKeys","menuKey","documentElement","scrollTop","Header","SideNav","echarts","screenHeight","protocolStr","protocol","hostStr","host","urlStrHome","replaceState","app","App","Breadcrumb","MainWrapper","globalProperties","$echarts","mount","submitProgram","copyProgram","deleteProgram","reviseProgram","cancelProgram","callbackProgram","confirmProgram","getProgramCategory","getProgramCategoryFleet","getHistoryComments","getLog","getProgramHomePageData","getReleaseAddList","createPackage","savePackage","submitCreatePackage","getPackageList","maintainBatchStatus","releaseBatchStatus","getPackageDetail","submitPackage","discardPackage","withdrawPackage","saveReleaseBatch","sendReleaseBatch","sendReleaseEmail","getReleaseBatchDetail","getReleaseBatchList","searchReleaseBatch","searchReleaseBatchContent","createReleaseBatch","confirmReleaseBatch","sendReleaseBatchList","controllingModifyStatus","discardReleaseBatch","getMgPendingApprove","getMgPackageDetail","approvePackage","getBatchTracking","getProgramTracking","getCurrentUserApprovalStatus","controllingConfirmProgram","getControllingProgramData","scenrioList","getApproveProgress","getApproveStatus","getSubscribedBu","getAllParentBu","getProgramStatus","getBrand","includeBrand","getVehicleTypeClass","getWording","image","getBudget2","pdfPreview","getSearchValue","setSearchValue","deleteProgramCollection","getBatchList","findComments","setComments","findFinancingBatchList","findApprovalListBybu","getApprovalChainPath","findBuVehicleList","getentityAll","getRegionList","geAvailBatchList","pathParams","getReleaseData","findEntityByids","releaseAddGroup","addPath","releaseAddUser","releaseAddList","releaseDeleteById","deletePath","deleteSml","viewSml","generateSml","isWordingUploadAllBatch","searchCombinability","compareCombinability","filterCombProgram","searchCombinabilityDealer","compareCombinabilityDealer","filterCombProgramDealer","sendApprovalRemindNoticeByBatchId","addDataKey","callFied","callbackType","callbackKey","callType","btnPermissions","toLowerCase","formatData","tableCell","constructor","isEdit","isAuto","getCategory","formatPgmCategory","sourceData","getGroup","vehicle","param","groupId","groupName","formatRequestData","tableCellSelect","guid","handleChangePre","findColumnIdBytitle","childrenArr","colArr","dataId","parent","elementSize","element","elementDom","getSize","navigator","userAgent","getUrlParams","fromEntries","searchParams","getMonth","date","_getFirstLevelBU","buTree","buItem","getFirstLevelBU","buTreeList","docHeight","usedHeight","onresize","downloadFromStream","matches","match","filename","downloadFromUrl","downloadFromUrls","urls","iframesSet","add","setInterval","iframe","contentDocument","readyState","clearInterval","resFileName","contentDisposition","suffixIndex","suffix","substr","fileNameIndex","_component_a_date_picker","valueFormat","openYear","handlerOpenChange","onPanelChange","handlerPanelChange","SHOW_PARENT","handleChangeBu","handleFocus","brandOptions","rtOrWs","rtWsOptions","submitStatus","programStatusOptions","qm","qmOptions","makeOptions","kufri","activeStatus","planningName","handlerResetClick","reportView","reportViewOptions","check","inited","defaultBuIds","queryParams","yearQm","getDefaultQm","quarter","reportData","typeClassOptions","intoFull","initVehicleMake","initBuTree","buList","deleted","b","buMap","Map","set","_findBuNameById","buTreeItems","buIds","buNames","buTreeItem","findBuNameById","_findBuTreeDataItemByName","matchTreeDataItem","_findChildrenBuIds","findBuIdsByParentName","buTreeDataItem","buIdsWithChildren","allIds","_filterBuTree","has","filteredBuOptions","buOption","initVehicleBu","queryBrand","initVehicleBrand","time","_year","guideLineConfig","OverviewFindall","getProgramType","CheckExisted","AddOverview","systemSettingProgramType","UpdateOfferStatus","UpdateSiStatus","BudgettpFindall","Savebudgettp","AddbudgettpAttr","BudgetFormLayout","ConfimFormLayout","GetbudgetTemplate","getBudgetInfo","offerTypeID","getBudgetTableData","findbudgetDataOverview","fleetBudgetDataSummary","updateInputData","getBudgetKufriData","getBudgetAllocationData","psiOfferCustomerId","getVersion","updateVersion","getBudgetReportData","updateProgramView","budgetExportView","getFillInMonthlyData","getCancelFillInMonthlyData","findbudgetExist","getOfferFleetTable","getFleetTable","addOfferFleetTable","addFleetCustomerCategory","getCustomerCategoryData","addCustomerType","editCustomerType","getFleetByOffetId","offerId","changeFleetStatus","changeFleetOfferStatus","getGuideLineConfig","saveGuideLineConfig","getGuideLineTodoCount","getGuideLineDataList","brandList","typeClassList","saveGuideLineData"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,GAAG9B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,MAIh3R,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,GAClsLR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,GAAGxC,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,i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F,MAAO,KAET,CACExlB,MAAO,UACPulB,UAAW,WACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,YACPulB,UAAW,WACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,eACPulB,UAAW,cACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,eACPulB,UAAW,UACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,QACPulB,UAAW,QACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,aACPulB,UAAW,gBACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,aACPulB,UAAW,WACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,WACPulB,UAAW,SACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,cACPulB,UAAW,aACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,aACPulB,UAAW,YACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,WACPulB,UAAW,UACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,iBACPulB,UAAW,gBACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,eACPulB,UAAW,cACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,aACPulB,UAAW,YACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,aACPulB,UAAW,YACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,cACPulB,UAAW,YACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,KAET,CACExlB,MAAO,iBACPulB,UAAW,YACXE,MAAO,CAAEC,aAAc,gBACvBF,MAAO,MAIL2Q,EAAY,eAAY,eAExBgC,EAAiB,iBAAsB,IAEvC5jC,EAAa,sBAAS,CAC1BG,MA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","file":"js/app.515bf861.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0109f4e6\":\"9eabc311\",\"chunk-01171bf1\":\"32258ff3\",\"chunk-0197dd4b\":\"5a2bbde1\",\"chunk-01c9ae66\":\"dc85ebd2\",\"chunk-03ae6d42\":\"5ac46460\",\"chunk-045324ee\":\"a08a87e7\",\"chunk-05598773\":\"2eaf46d9\",\"chunk-06c89462\":\"763863d6\",\"chunk-073d2c31\":\"f19e4534\",\"chunk-07469620\":\"90e943ad\",\"chunk-075d9caf\":\"6fc1624d\",\"chunk-27ae075a\":\"6846c645\",\"chunk-379d96ee\":\"4a26f2f4\",\"chunk-08c6e5db\":\"404c3231\",\"chunk-08c9a90a\":\"3a8bef02\",\"chunk-08f3419f\":\"009bb4b5\",\"chunk-0a4a99da\":\"b6252fba\",\"chunk-1bc06dc4\":\"6f825147\",\"chunk-4d114baa\":\"4b2377f7\",\"chunk-0b7563cb\":\"36871285\",\"chunk-0bc01f6e\":\"e447d8b8\",\"chunk-0bcd5bfe\":\"5b4d2a8f\",\"chunk-13ec2dcc\":\"ad3d53c5\",\"chunk-2ec25502\":\"74d06e83\",\"chunk-d0cfe2bc\":\"2d7ff385\",\"chunk-0ca1cbfe\":\"edfa5e65\",\"chunk-0d9e3ed4\":\"08943514\",\"chunk-0df44fd2\":\"34c65e41\",\"chunk-0e560b14\":\"e7a0be28\",\"chunk-0eaa2e3e\":\"e68cfaff\",\"chunk-0eae8e60\":\"a73b3ad1\",\"chunk-0fddd1fc\":\"32eb8a3b\",\"chunk-1072ca06\":\"2468f4e6\",\"chunk-2a191298\":\"4e76c8e1\",\"chunk-111138a2\":\"d60669c3\",\"chunk-113ed3d2\":\"c6167d5b\",\"chunk-130f61cc\":\"4a5c3f32\",\"chunk-1316207e\":\"fe9d3a65\",\"chunk-136f683c\":\"d4c7a987\",\"chunk-13923db2\":\"7ae8df37\",\"chunk-139d65d3\":\"9a8b17b1\",\"chunk-14bfe527\":\"3f887c5e\",\"chunk-159fb95a\":\"fb75054a\",\"chunk-11e40546\":\"17a57787\",\"chunk-157251be\":\"f1755f3b\",\"chunk-16f2769e\":\"b80b8916\",\"chunk-1aab556a\":\"76e93e80\",\"chunk-1b849f9f\":\"dc7cd1ba\",\"chunk-1bdf313c\":\"d1b9955a\",\"chunk-1d29382c\":\"7bc17600\",\"chunk-7d11d0a4\":\"903cc9c1\",\"chunk-1d5591cb\":\"3b07f8c3\",\"chunk-1db20294\":\"747d3417\",\"chunk-1de75d35\":\"1e729296\",\"chunk-0cbe7d67\":\"a08cf073\",\"chunk-17540196\":\"66dcb01b\",\"chunk-1ee95d22\":\"67b1d9a2\",\"chunk-1f7fc382\":\"0c961868\",\"chunk-20001510\":\"65ad4259\",\"chunk-21bb3064\":\"ed084b03\",\"chunk-21e2d02b\":\"e81fe09e\",\"chunk-21f424c1\":\"5b21d3de\",\"chunk-23ddbae8\":\"892928a8\",\"chunk-243597c1\":\"a3a5920f\",\"chunk-2475c74a\":\"52aff219\",\"chunk-2552252d\":\"70f98fda\",\"chunk-25dcfa4e\":\"597c92d0\",\"chunk-26c5efca\":\"d7e7639c\",\"chunk-27929f85\":\"b1fff40d\",\"chunk-27a11f44\":\"ba55de29\",\"chunk-28290b81\":\"685bb0f7\",\"chunk-283cf5d4\":\"152874e7\",\"chunk-28a9e610\":\"219211d0\",\"chunk-2afefe05\":\"431b650c\",\"chunk-2b83838c\":\"af4fa2b6\",\"chunk-2c0a961e\":\"683cc965\",\"chunk-2d2302a2\":\"19a89fec\",\"chunk-2dd963a1\":\"37d4933f\",\"chunk-2e1ed858\":\"d9c4ce27\",\"chunk-f646e6b2\":\"6ad7d86c\",\"chunk-38827b02\":\"1406d2c6\",\"chunk-645c58d2\":\"1537cb06\",\"chunk-29163132\":\"e763d953\",\"chunk-31e8db75\":\"ebdda9d7\",\"chunk-75497902\":\"84d37806\",\"chunk-ce8aa226\":\"0f82f4cd\",\"chunk-2e5ef7de\":\"32328743\",\"chunk-4c097ee6\":\"c80e7eee\",\"chunk-7dd4bc8e\":\"ab69f738\",\"chunk-2eae00ab\":\"f88713c4\",\"chunk-2f416ef8\":\"d7f7d9c1\",\"chunk-2f9352e8\":\"fb00c6a0\",\"chunk-2f93f80c\":\"26f35db2\",\"chunk-3009c26b\":\"c1270820\",\"chunk-302c7768\":\"cc2156e8\",\"chunk-305ed2b6\":\"38646cb6\",\"chunk-3190a166\":\"07166800\",\"chunk-324a87ce\":\"69f9e8bb\",\"chunk-32664b16\":\"84eae305\",\"chunk-32aa78ee\":\"a24dd1cd\",\"chunk-33d99ceb\":\"25be1d29\",\"chunk-340ae7ef\":\"fa034b12\",\"chunk-4f815b50\":\"5f14bef8\",\"chunk-ab4e5584\":\"564a9606\",\"chunk-355e956b\":\"94e8f90a\",\"chunk-0d45805e\":\"1e0642c7\",\"chunk-16ed512a\":\"2e5e9f93\",\"chunk-0e763656\":\"8b02d811\",\"chunk-7e7455b4\":\"d9311471\",\"chunk-543a8cc0\":\"a3b9a9c9\",\"chunk-76d6da46\":\"c214496d\",\"chunk-35a8827c\":\"3bda50cb\",\"chunk-364e22dd\":\"2c6d273e\",\"chunk-36a13ccb\":\"12cc015c\",\"chunk-37610db1\":\"ff46624b\",\"chunk-31586b96\":\"6cb3e08a\",\"chunk-3d9f65ac\":\"c2e0f0d6\",\"chunk-3783bc56\":\"f826ecd9\",\"chunk-37874756\":\"76ee8643\",\"chunk-381751cb\":\"9f9d37b2\",\"chunk-382d54f2\":\"9f7a1691\",\"chunk-382fd096\":\"1e0dbe1f\",\"chunk-38488f3f\":\"fc53291e\",\"chunk-388e4c1e\":\"bd8b9fd1\",\"chunk-39043b3d\":\"069c9ccb\",\"chunk-399b8c0e\":\"58e14366\",\"chunk-39c10f7d\":\"4253a6eb\",\"chunk-3a04464d\":\"d633913a\",\"chunk-3b506107\":\"da1ce2d2\",\"chunk-3c6e7a54\":\"c9249bb0\",\"chunk-704d6453\":\"a14c287e\",\"chunk-8eae50ac\":\"f0100e47\",\"chunk-3ddae99a\":\"88d36536\",\"chunk-3e0dfe32\":\"5c296684\",\"chunk-3ea06c10\":\"2d7fd898\",\"chunk-3f662f2d\":\"d9490be4\",\"chunk-3f6beb52\":\"f494636b\",\"chunk-3fcf4c38\":\"31ea0193\",\"chunk-40b7ae07\":\"e3c3d940\",\"chunk-41d4a5e3\":\"62a7342f\",\"chunk-421b5ca8\":\"dc25833d\",\"chunk-429a9330\":\"1f4e2784\",\"chunk-42cf024f\":\"0b9f0d27\",\"chunk-4494ca31\":\"431d2c3c\",\"chunk-450d0654\":\"593e3955\",\"chunk-464b7177\":\"ce10d9b3\",\"chunk-465edcc2\":\"d9cb9c66\",\"chunk-47a7436c\":\"397f0e0e\",\"chunk-4963adde\":\"9bb18634\",\"chunk-49ff0fa4\":\"8a08473f\",\"chunk-4c7b4b47\":\"af2f9af5\",\"chunk-4d6918b5\":\"9484869c\",\"chunk-4e37585a\":\"602534ce\",\"chunk-4e5d60a8\":\"f5b62438\",\"chunk-105e96eb\":\"b4751f7a\",\"chunk-22da8000\":\"ca8a2c29\",\"chunk-541c7d16\":\"1a1b6ed2\",\"chunk-6772b0e2\":\"56af98a9\",\"chunk-4f42eabb\":\"8a6177bb\",\"chunk-4f5bd75a\":\"3fc0e5c9\",\"chunk-4fca11d2\":\"b5908e3f\",\"chunk-50aad0c0\":\"04ecdd41\",\"chunk-50afbaae\":\"5a82c142\",\"chunk-5179b551\":\"e73f875a\",\"chunk-5341ef0c\":\"d3bb8bc5\",\"chunk-55532d96\":\"fea1bdd3\",\"chunk-55f2a36c\":\"61349fee\",\"chunk-561a1780\":\"93568d6b\",\"chunk-57594e5b\":\"6398b671\",\"chunk-57e1e61c\":\"6b7aaeab\",\"chunk-3bfeb4a1\":\"4296abb9\",\"chunk-5d391ca2\":\"e12b9ddd\",\"chunk-57ea6066\":\"bb2d08cd\",\"chunk-58c83840\":\"f8b47c0f\",\"chunk-59a9c57c\":\"22ee1435\",\"chunk-59ade898\":\"3bed6e9b\",\"chunk-5a34616c\":\"e310ea8b\",\"chunk-5b7196bd\":\"38a5b3a6\",\"chunk-5b8dd06b\":\"12fc9ac2\",\"chunk-5c141b23\":\"3b6fc6e7\",\"chunk-5cee4623\":\"e8152130\",\"chunk-5def5492\":\"9b551300\",\"chunk-5e077ef1\":\"0a7edd9b\",\"chunk-5e5ba564\":\"5e71c37d\",\"chunk-5ebef18b\":\"66eb8822\",\"chunk-2c6ef769\":\"75a82444\",\"chunk-66f4e0a9\":\"5b9a4656\",\"chunk-ddb1aafa\":\"e4d66b55\",\"chunk-eb219702\":\"f571284b\",\"chunk-608db5ea\":\"0d3e4970\",\"chunk-60c3072e\":\"7c34efd4\",\"chunk-61285700\":\"2a306838\",\"chunk-61851364\":\"3958104e\",\"chunk-4cdcd703\":\"5507f472\",\"chunk-76629266\":\"a7532e93\",\"chunk-bc4820d0\":\"48b0c954\",\"chunk-ebbe88c2\":\"130bea12\",\"chunk-f203d5fc\":\"3ea74090\",\"chunk-f97509c4\":\"144ef7de\",\"chunk-626ff4fe\":\"3cd5c522\",\"chunk-63e5f5dc\":\"3db5c21b\",\"chunk-649972c2\":\"de89fdc0\",\"chunk-65495a00\":\"00f1f6be\",\"chunk-65b493bc\":\"d558a9e9\",\"chunk-66a515f2\":\"df968cdb\",\"chunk-66dd3375\":\"6a32f88c\",\"chunk-672cecfc\":\"12572475\",\"chunk-67a24c3d\":\"69cb4640\",\"chunk-4d630f38\":\"c463acc5\",\"chunk-5ea2c406\":\"3a2e1e9a\",\"chunk-7a1e35e2\":\"75d72d3d\",\"chunk-85d015c8\":\"12c63598\",\"chunk-67caeab5\":\"98ce3a0a\",\"chunk-6925c1a6\":\"40a5ced6\",\"chunk-340cd501\":\"4ccf7533\",\"chunk-72d9778a\":\"dcadc085\",\"chunk-195a3152\":\"96da2a70\",\"chunk-4ea0edf6\":\"dd4ef1a2\",\"chunk-4fb53ab8\":\"21329fd5\",\"chunk-755f75a0\":\"2ac1e0f9\",\"chunk-1ad5c6da\":\"13c5cbb1\",\"chunk-1d593f6a\":\"9d73db39\",\"chunk-7cb28a2c\":\"d2490ac3\",\"chunk-69efaf82\":\"904fd17d\",\"chunk-6a402ced\":\"f1e82b0b\",\"chunk-6b3a5f5a\":\"b3b542d2\",\"chunk-6bac8fc2\":\"038a8e69\",\"chunk-6bc7c3ee\":\"3b9de25c\",\"chunk-6bee928a\":\"05b23dc7\",\"chunk-6c122f92\":\"cbe862ca\",\"chunk-6c6a4d0c\":\"dff71b6f\",\"chunk-6cbb7906\":\"6d92010f\",\"chunk-6e0a5878\":\"5bc8e3f5\",\"chunk-6f3050d9\":\"b732ba4f\",\"chunk-6fac29ea\":\"a5130104\",\"chunk-6ff70f64\":\"4e0e3676\",\"chunk-70962fe2\":\"91c38360\",\"chunk-71cdc261\":\"b9af10db\",\"chunk-7328e203\":\"8573011b\",\"chunk-734a1cf0\":\"ba3d3aaf\",\"chunk-74c60a36\":\"dfcc2916\",\"chunk-75290580\":\"5ce25cd5\",\"chunk-9ad84d00\":\"f93a8943\",\"chunk-b6b0c8ce\":\"8a96162a\",\"chunk-7614c6e2\":\"da58bee1\",\"chunk-763b517b\":\"d6bfd407\",\"chunk-76e49e2e\":\"1cf57893\",\"chunk-77483a0d\":\"45905556\",\"chunk-2464a0f2\":\"850e795e\",\"chunk-6bf74c10\":\"b28d6c83\",\"chunk-774add42\":\"c6d9d694\",\"chunk-7754c1ce\":\"089b65b7\",\"chunk-78377c79\":\"b4852f64\",\"chunk-7861469c\":\"25d68517\",\"chunk-7a6007fe\":\"b4f5bd1f\",\"chunk-7a78510e\":\"836aaa71\",\"chunk-7a989230\":\"2de97925\",\"chunk-7acb159a\":\"2d7e939f\",\"chunk-7af2b37a\":\"b9c5efa7\",\"chunk-7b1a0ba5\":\"af3d9fa2\",\"chunk-7bc3eefc\":\"9edf66b3\",\"chunk-7bf2ea62\":\"da500fd6\",\"chunk-172ced64\":\"8de38f92\",\"chunk-7730e9ba\":\"393fa2b0\",\"chunk-7d9de06a\":\"40201b8d\",\"chunk-7e32c630\":\"e9096a34\",\"chunk-7e3b717a\":\"73a29309\",\"chunk-7ee99054\":\"23abcc1f\",\"chunk-7eec6efd\":\"28f46bd8\",\"chunk-7f483aec\":\"d029b2bc\",\"chunk-7f52f099\":\"e3ec3c4a\",\"chunk-7f769f09\":\"410da86e\",\"chunk-7f9d4103\":\"9f5ce597\",\"chunk-830f657c\":\"61fa9ddf\",\"chunk-8732459e\":\"daadc4fb\",\"chunk-88bd05e0\":\"7212eb83\",\"chunk-89e544a2\":\"f058419a\",\"chunk-8bb5f8ac\":\"3da392ac\",\"chunk-8c2f99ea\":\"3cb3b6d0\",\"chunk-9b480162\":\"346f37ec\",\"chunk-9edbd59a\":\"dbef0331\",\"chunk-a1a55f30\":\"b1e7bf39\",\"chunk-a1eb0a36\":\"a0e5f2d0\",\"chunk-a2a86b40\":\"004d5fa7\",\"chunk-a65616ca\":\"3f9232ca\",\"chunk-ab5247b0\":\"2114f214\",\"chunk-acb1ff40\":\"aff9ffbe\",\"chunk-b7f1e708\":\"79067b8b\",\"chunk-b98c76f8\":\"f5931e43\",\"chunk-bb8b5564\":\"e59a4d6d\",\"chunk-c0074cc0\":\"c9ddd205\",\"chunk-c09cea7e\":\"bfe279fd\",\"chunk-5ab36b1a\":\"2ff244ba\",\"chunk-b40976a4\":\"96e35fd0\",\"chunk-c2c8ca06\":\"719a37d8\",\"chunk-c517f2b0\":\"ecab5965\",\"chunk-ce0925f4\":\"38fb1f48\",\"chunk-cecf6d8e\":\"a286914c\",\"chunk-cf05ba3c\":\"1400881f\",\"chunk-d0004484\":\"54bc24d1\",\"chunk-d03892d0\":\"c398cf8f\",\"chunk-d36c7a2e\":\"632ad7b3\",\"chunk-d655a104\":\"6618cb05\",\"chunk-d6b25030\":\"0c06e969\",\"chunk-d935a846\":\"bf78611a\",\"chunk-d9f7eb20\":\"1078d770\",\"chunk-0cc530e8\":\"cc47c863\",\"chunk-30d861c0\":\"f34cc42d\",\"chunk-357a68e7\":\"4769078a\",\"chunk-dcd6c874\":\"9ef24abe\",\"chunk-e2ab5294\":\"b355c4d8\",\"chunk-e6d52898\":\"d4f28a9f\",\"chunk-e894c84c\":\"21fad6fd\",\"chunk-ea260b92\":\"3b9d381e\",\"chunk-f04179a0\":\"cba64e8f\",\"chunk-f18e334c\":\"b7932b0e\",\"chunk-f3ad07f2\":\"c01078a5\",\"chunk-f94650b6\":\"e22517b9\",\"chunk-f962b26e\":\"08498b76\",\"chunk-fb6754b6\":\"e9687353\",\"chunk-fedc8a1c\":\"0c92a077\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-0109f4e6\":1,\"chunk-01171bf1\":1,\"chunk-0197dd4b\":1,\"chunk-01c9ae66\":1,\"chunk-03ae6d42\":1,\"chunk-045324ee\":1,\"chunk-05598773\":1,\"chunk-06c89462\":1,\"chunk-073d2c31\":1,\"chunk-07469620\":1,\"chunk-075d9caf\":1,\"chunk-27ae075a\":1,\"chunk-379d96ee\":1,\"chunk-08c6e5db\":1,\"chunk-08c9a90a\":1,\"chunk-08f3419f\":1,\"chunk-0a4a99da\":1,\"chunk-1bc06dc4\":1,\"chunk-4d114baa\":1,\"chunk-0b7563cb\":1,\"chunk-0bc01f6e\":1,\"chunk-0bcd5bfe\":1,\"chunk-13ec2dcc\":1,\"chunk-2ec25502\":1,\"chunk-d0cfe2bc\":1,\"chunk-0ca1cbfe\":1,\"chunk-0d9e3ed4\":1,\"chunk-0df44fd2\":1,\"chunk-0e560b14\":1,\"chunk-0eaa2e3e\":1,\"chunk-0eae8e60\":1,\"chunk-0fddd1fc\":1,\"chunk-2a191298\":1,\"chunk-111138a2\":1,\"chunk-113ed3d2\":1,\"chunk-130f61cc\":1,\"chunk-1316207e\":1,\"chunk-136f683c\":1,\"chunk-13923db2\":1,\"chunk-139d65d3\":1,\"chunk-14bfe527\":1,\"chunk-159fb95a\":1,\"chunk-11e40546\":1,\"chunk-157251be\":1,\"chunk-16f2769e\":1,\"chunk-1aab556a\":1,\"chunk-1b849f9f\":1,\"chunk-1bdf313c\":1,\"chunk-1d29382c\":1,\"chunk-7d11d0a4\":1,\"chunk-1d5591cb\":1,\"chunk-1db20294\":1,\"chunk-1de75d35\":1,\"chunk-0cbe7d67\":1,\"chunk-17540196\":1,\"chunk-1ee95d22\":1,\"chunk-1f7fc382\":1,\"chunk-20001510\":1,\"chunk-21bb3064\":1,\"chunk-21e2d02b\":1,\"chunk-21f424c1\":1,\"chunk-23ddbae8\":1,\"chunk-243597c1\":1,\"chunk-2475c74a\":1,\"chunk-2552252d\":1,\"chunk-25dcfa4e\":1,\"chunk-26c5efca\":1,\"chunk-27929f85\":1,\"chunk-27a11f44\":1,\"chunk-28290b81\":1,\"chunk-283cf5d4\":1,\"chunk-28a9e610\":1,\"chunk-2afefe05\":1,\"chunk-2b83838c\":1,\"chunk-2c0a961e\":1,\"chunk-2dd963a1\":1,\"chunk-f646e6b2\":1,\"chunk-38827b02\":1,\"chunk-ce8aa226\":1,\"chunk-2e5ef7de\":1,\"chunk-4c097ee6\":1,\"chunk-7dd4bc8e\":1,\"chunk-2eae00ab\":1,\"chunk-2f416ef8\":1,\"chunk-2f9352e8\":1,\"chunk-2f93f80c\":1,\"chunk-3009c26b\":1,\"chunk-302c7768\":1,\"chunk-305ed2b6\":1,\"chunk-3190a166\":1,\"chunk-324a87ce\":1,\"chunk-32664b16\":1,\"chunk-32aa78ee\":1,\"chunk-33d99ceb\":1,\"chunk-4f815b50\":1,\"chunk-ab4e5584\":1,\"chunk-355e956b\":1,\"chunk-0d45805e\":1,\"chunk-16ed512a\":1,\"chunk-0e763656\":1,\"chunk-7e7455b4\":1,\"chunk-543a8cc0\":1,\"chunk-76d6da46\":1,\"chunk-35a8827c\":1,\"chunk-364e22dd\":1,\"chunk-36a13ccb\":1,\"chunk-37610db1\":1,\"chunk-31586b96\":1,\"chunk-3d9f65ac\":1,\"chunk-3783bc56\":1,\"chunk-37874756\":1,\"chunk-381751cb\":1,\"chunk-382d54f2\":1,\"chunk-382fd096\":1,\"chunk-38488f3f\":1,\"chunk-388e4c1e\":1,\"chunk-39043b3d\":1,\"chunk-399b8c0e\":1,\"chunk-39c10f7d\":1,\"chunk-3a04464d\":1,\"chunk-3b506107\":1,\"chunk-704d6453\":1,\"chunk-8eae50ac\":1,\"chunk-3ddae99a\":1,\"chunk-3e0dfe32\":1,\"chunk-3ea06c10\":1,\"chunk-3f662f2d\":1,\"chunk-3f6beb52\":1,\"chunk-3fcf4c38\":1,\"chunk-40b7ae07\":1,\"chunk-41d4a5e3\":1,\"chunk-421b5ca8\":1,\"chunk-429a9330\":1,\"chunk-42cf024f\":1,\"chunk-4494ca31\":1,\"chunk-450d0654\":1,\"chunk-464b7177\":1,\"chunk-465edcc2\":1,\"chunk-47a7436c\":1,\"chunk-4963adde\":1,\"chunk-49ff0fa4\":1,\"chunk-4c7b4b47\":1,\"chunk-4d6918b5\":1,\"chunk-4e37585a\":1,\"chunk-4e5d60a8\":1,\"chunk-105e96eb\":1,\"chunk-22da8000\":1,\"chunk-541c7d16\":1,\"chunk-6772b0e2\":1,\"chunk-4f42eabb\":1,\"chunk-4f5bd75a\":1,\"chunk-4fca11d2\":1,\"chunk-50aad0c0\":1,\"chunk-50afbaae\":1,\"chunk-5179b551\":1,\"chunk-5341ef0c\":1,\"chunk-55532d96\":1,\"chunk-55f2a36c\":1,\"chunk-561a1780\":1,\"chunk-57594e5b\":1,\"chunk-57e1e61c\":1,\"chunk-3bfeb4a1\":1,\"chunk-5d391ca2\":1,\"chunk-57ea6066\":1,\"chunk-58c83840\":1,\"chunk-59a9c57c\":1,\"chunk-59ade898\":1,\"chunk-5a34616c\":1,\"chunk-5b7196bd\":1,\"chunk-5b8dd06b\":1,\"chunk-5c141b23\":1,\"chunk-5cee4623\":1,\"chunk-5def5492\":1,\"chunk-5e077ef1\":1,\"chunk-5e5ba564\":1,\"chunk-5ebef18b\":1,\"chunk-2c6ef769\":1,\"chunk-66f4e0a9\":1,\"chunk-ddb1aafa\":1,\"chunk-eb219702\":1,\"chunk-608db5ea\":1,\"chunk-60c3072e\":1,\"chunk-61285700\":1,\"chunk-61851364\":1,\"chunk-4cdcd703\":1,\"chunk-76629266\":1,\"chunk-bc4820d0\":1,\"chunk-ebbe88c2\":1,\"chunk-f203d5fc\":1,\"chunk-f97509c4\":1,\"chunk-626ff4fe\":1,\"chunk-63e5f5dc\":1,\"chunk-649972c2\":1,\"chunk-65495a00\":1,\"chunk-65b493bc\":1,\"chunk-66a515f2\":1,\"chunk-66dd3375\":1,\"chunk-672cecfc\":1,\"chunk-4d630f38\":1,\"chunk-5ea2c406\":1,\"chunk-7a1e35e2\":1,\"chunk-85d015c8\":1,\"chunk-67caeab5\":1,\"chunk-340cd501\":1,\"chunk-195a3152\":1,\"chunk-4ea0edf6\":1,\"chunk-4fb53ab8\":1,\"chunk-755f75a0\":1,\"chunk-1ad5c6da\":1,\"chunk-1d593f6a\":1,\"chunk-7cb28a2c\":1,\"chunk-69efaf82\":1,\"chunk-6a402ced\":1,\"chunk-6b3a5f5a\":1,\"chunk-6bac8fc2\":1,\"chunk-6bc7c3ee\":1,\"chunk-6bee928a\":1,\"chunk-6c122f92\":1,\"chunk-6c6a4d0c\":1,\"chunk-6cbb7906\":1,\"chunk-6e0a5878\":1,\"chunk-6f3050d9\":1,\"chunk-6fac29ea\":1,\"chunk-6ff70f64\":1,\"chunk-70962fe2\":1,\"chunk-71cdc261\":1,\"chunk-7328e203\":1,\"chunk-734a1cf0\":1,\"chunk-74c60a36\":1,\"chunk-9ad84d00\":1,\"chunk-b6b0c8ce\":1,\"chunk-7614c6e2\":1,\"chunk-763b517b\":1,\"chunk-76e49e2e\":1,\"chunk-77483a0d\":1,\"chunk-2464a0f2\":1,\"chunk-6bf74c10\":1,\"chunk-774add42\":1,\"chunk-7754c1ce\":1,\"chunk-78377c79\":1,\"chunk-7861469c\":1,\"chunk-7a6007fe\":1,\"chunk-7a78510e\":1,\"chunk-7a989230\":1,\"chunk-7acb159a\":1,\"chunk-7af2b37a\":1,\"chunk-7b1a0ba5\":1,\"chunk-7bc3eefc\":1,\"chunk-172ced64\":1,\"chunk-7730e9ba\":1,\"chunk-7d9de06a\":1,\"chunk-7e32c630\":1,\"chunk-7e3b717a\":1,\"chunk-7ee99054\":1,\"chunk-7eec6efd\":1,\"chunk-7f483aec\":1,\"chunk-7f52f099\":1,\"chunk-7f769f09\":1,\"chunk-7f9d4103\":1,\"chunk-830f657c\":1,\"chunk-8732459e\":1,\"chunk-88bd05e0\":1,\"chunk-89e544a2\":1,\"chunk-8bb5f8ac\":1,\"chunk-8c2f99ea\":1,\"chunk-9b480162\":1,\"chunk-9edbd59a\":1,\"chunk-a1a55f30\":1,\"chunk-a1eb0a36\":1,\"chunk-a2a86b40\":1,\"chunk-a65616ca\":1,\"chunk-ab5247b0\":1,\"chunk-acb1ff40\":1,\"chunk-b7f1e708\":1,\"chunk-b98c76f8\":1,\"chunk-bb8b5564\":1,\"chunk-c0074cc0\":1,\"chunk-c09cea7e\":1,\"chunk-5ab36b1a\":1,\"chunk-b40976a4\":1,\"chunk-c2c8ca06\":1,\"chunk-c517f2b0\":1,\"chunk-ce0925f4\":1,\"chunk-cecf6d8e\":1,\"chunk-cf05ba3c\":1,\"chunk-d0004484\":1,\"chunk-d03892d0\":1,\"chunk-d36c7a2e\":1,\"chunk-d655a104\":1,\"chunk-d6b25030\":1,\"chunk-d935a846\":1,\"chunk-d9f7eb20\":1,\"chunk-0cc530e8\":1,\"chunk-30d861c0\":1,\"chunk-357a68e7\":1,\"chunk-dcd6c874\":1,\"chunk-e2ab5294\":1,\"chunk-e6d52898\":1,\"chunk-e894c84c\":1,\"chunk-f04179a0\":1,\"chunk-f18e334c\":1,\"chunk-f3ad07f2\":1,\"chunk-f94650b6\":1,\"chunk-f962b26e\":1,\"chunk-fb6754b6\":1,\"chunk-fedc8a1c\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0109f4e6\":\"40434c6b\",\"chunk-01171bf1\":\"47e51d1b\",\"chunk-0197dd4b\":\"e2613bdc\",\"chunk-01c9ae66\":\"dba9baaa\",\"chunk-03ae6d42\":\"0e4013cc\",\"chunk-045324ee\":\"0dcab3dd\",\"chunk-05598773\":\"7faef4ff\",\"chunk-06c89462\":\"876a809f\",\"chunk-073d2c31\":\"212daee4\",\"chunk-07469620\":\"b4d88f05\",\"chunk-075d9caf\":\"7d20df6f\",\"chunk-27ae075a\":\"d691bf27\",\"chunk-379d96ee\":\"03236a8d\",\"chunk-08c6e5db\":\"9317106d\",\"chunk-08c9a90a\":\"342528ce\",\"chunk-08f3419f\":\"9aa15b34\",\"chunk-0a4a99da\":\"cd33de7a\",\"chunk-1bc06dc4\":\"cfbba969\",\"chunk-4d114baa\":\"982f5abc\",\"chunk-0b7563cb\":\"59ee086d\",\"chunk-0bc01f6e\":\"64f8364f\",\"chunk-0bcd5bfe\":\"feb22359\",\"chunk-13ec2dcc\":\"81b37339\",\"chunk-2ec25502\":\"01d334f2\",\"chunk-d0cfe2bc\":\"7bb2f83d\",\"chunk-0ca1cbfe\":\"46c722cf\",\"chunk-0d9e3ed4\":\"fe770f90\",\"chunk-0df44fd2\":\"96981d0e\",\"chunk-0e560b14\":\"957f60fc\",\"chunk-0eaa2e3e\":\"5ad1f767\",\"chunk-0eae8e60\":\"9763c16f\",\"chunk-0fddd1fc\":\"f4b86d02\",\"chunk-1072ca06\":\"31d6cfe0\",\"chunk-2a191298\":\"e4e10276\",\"chunk-111138a2\":\"0501ce44\",\"chunk-113ed3d2\":\"144d7cf2\",\"chunk-130f61cc\":\"e4281b92\",\"chunk-1316207e\":\"11dfbb76\",\"chunk-136f683c\":\"a01500be\",\"chunk-13923db2\":\"c221abbd\",\"chunk-139d65d3\":\"1b39cc66\",\"chunk-14bfe527\":\"8fd49397\",\"chunk-159fb95a\":\"19ed8a3b\",\"chunk-11e40546\":\"e13d1707\",\"chunk-157251be\":\"35b7d04d\",\"chunk-16f2769e\":\"978c038f\",\"chunk-1aab556a\":\"d52e4653\",\"chunk-1b849f9f\":\"69fb2c9a\",\"chunk-1bdf313c\":\"a5f51daa\",\"chunk-1d29382c\":\"c98a93ce\",\"chunk-7d11d0a4\":\"015bd3c0\",\"chunk-1d5591cb\":\"7fa5892b\",\"chunk-1db20294\":\"8efa9c87\",\"chunk-1de75d35\":\"53a2b1fa\",\"chunk-0cbe7d67\":\"c0c8c337\",\"chunk-17540196\":\"bb10a541\",\"chunk-1ee95d22\":\"99a6b537\",\"chunk-1f7fc382\":\"d7007cae\",\"chunk-20001510\":\"6cc1be2b\",\"chunk-21bb3064\":\"4598083d\",\"chunk-21e2d02b\":\"45d68fd8\",\"chunk-21f424c1\":\"c05fc4b2\",\"chunk-23ddbae8\":\"02b2c0d2\",\"chunk-243597c1\":\"625a1c0d\",\"chunk-2475c74a\":\"e2c72676\",\"chunk-2552252d\":\"7cd0a870\",\"chunk-25dcfa4e\":\"3eb40f4e\",\"chunk-26c5efca\":\"917e3bbf\",\"chunk-27929f85\":\"9455f5de\",\"chunk-27a11f44\":\"77488279\",\"chunk-28290b81\":\"30703527\",\"chunk-283cf5d4\":\"00741b66\",\"chunk-28a9e610\":\"b68c6e11\",\"chunk-2afefe05\":\"ce143c21\",\"chunk-2b83838c\":\"cefce3d5\",\"chunk-2c0a961e\":\"49462538\",\"chunk-2d2302a2\":\"31d6cfe0\",\"chunk-2dd963a1\":\"a031354f\",\"chunk-2e1ed858\":\"31d6cfe0\",\"chunk-f646e6b2\":\"2656c0e8\",\"chunk-38827b02\":\"aa0406b9\",\"chunk-645c58d2\":\"31d6cfe0\",\"chunk-29163132\":\"31d6cfe0\",\"chunk-31e8db75\":\"31d6cfe0\",\"chunk-75497902\":\"31d6cfe0\",\"chunk-ce8aa226\":\"cbafb726\",\"chunk-2e5ef7de\":\"9aa319d0\",\"chunk-4c097ee6\":\"d1508d61\",\"chunk-7dd4bc8e\":\"25ffe113\",\"chunk-2eae00ab\":\"cf34a8db\",\"chunk-2f416ef8\":\"d71798a9\",\"chunk-2f9352e8\":\"5d16c3d4\",\"chunk-2f93f80c\":\"ebbe084e\",\"chunk-3009c26b\":\"16759f8f\",\"chunk-302c7768\":\"0b7a34ce\",\"chunk-305ed2b6\":\"332b1f6a\",\"chunk-3190a166\":\"203c0ad4\",\"chunk-324a87ce\":\"56b9b8ad\",\"chunk-32664b16\":\"43197aea\",\"chunk-32aa78ee\":\"b6cd76aa\",\"chunk-33d99ceb\":\"0013f6f7\",\"chunk-340ae7ef\":\"31d6cfe0\",\"chunk-4f815b50\":\"582771ae\",\"chunk-ab4e5584\":\"f0ff3db1\",\"chunk-355e956b\":\"e81d1d86\",\"chunk-0d45805e\":\"b8459e67\",\"chunk-16ed512a\":\"92370134\",\"chunk-0e763656\":\"44c270d9\",\"chunk-7e7455b4\":\"ffca7e25\",\"chunk-543a8cc0\":\"a773cbde\",\"chunk-76d6da46\":\"1aac61a9\",\"chunk-35a8827c\":\"3eb40f4e\",\"chunk-364e22dd\":\"03bdcd93\",\"chunk-36a13ccb\":\"0530a30c\",\"chunk-37610db1\":\"7902b35b\",\"chunk-31586b96\":\"3f590c30\",\"chunk-3d9f65ac\":\"5f0a0f69\",\"chunk-3783bc56\":\"7bdae214\",\"chunk-37874756\":\"1cf8d5ea\",\"chunk-381751cb\":\"30aff082\",\"chunk-382d54f2\":\"ca0f1dc0\",\"chunk-382fd096\":\"3eb40f4e\",\"chunk-38488f3f\":\"199fd00a\",\"chunk-388e4c1e\":\"9bf45ed4\",\"chunk-39043b3d\":\"27655b61\",\"chunk-399b8c0e\":\"2efa26e0\",\"chunk-39c10f7d\":\"19128b3c\",\"chunk-3a04464d\":\"9a377c61\",\"chunk-3b506107\":\"7d9a80dc\",\"chunk-3c6e7a54\":\"31d6cfe0\",\"chunk-704d6453\":\"5741584d\",\"chunk-8eae50ac\":\"bbe3da5b\",\"chunk-3ddae99a\":\"0e52ee25\",\"chunk-3e0dfe32\":\"7168a527\",\"chunk-3ea06c10\":\"cec08470\",\"chunk-3f662f2d\":\"532c28c1\",\"chunk-3f6beb52\":\"16432a7a\",\"chunk-3fcf4c38\":\"f69f24db\",\"chunk-40b7ae07\":\"0b7e62f8\",\"chunk-41d4a5e3\":\"42208ad5\",\"chunk-421b5ca8\":\"a45a81f3\",\"chunk-429a9330\":\"bd20811a\",\"chunk-42cf024f\":\"b9d35e1f\",\"chunk-4494ca31\":\"326c6d1c\",\"chunk-450d0654\":\"77a664d4\",\"chunk-464b7177\":\"53461f75\",\"chunk-465edcc2\":\"24b96d0c\",\"chunk-47a7436c\":\"203fd581\",\"chunk-4963adde\":\"9f8397d2\",\"chunk-49ff0fa4\":\"0b2f875e\",\"chunk-4c7b4b47\":\"7b820049\",\"chunk-4d6918b5\":\"6bb596d4\",\"chunk-4e37585a\":\"90768a7f\",\"chunk-4e5d60a8\":\"ad14cd9e\",\"chunk-105e96eb\":\"eb960903\",\"chunk-22da8000\":\"677c7df7\",\"chunk-541c7d16\":\"ad5bc57a\",\"chunk-6772b0e2\":\"c82507be\",\"chunk-4f42eabb\":\"f657bc27\",\"chunk-4f5bd75a\":\"090cfca1\",\"chunk-4fca11d2\":\"d83f89ab\",\"chunk-50aad0c0\":\"8934ef5a\",\"chunk-50afbaae\":\"ea8a4857\",\"chunk-5179b551\":\"1bd6f10a\",\"chunk-5341ef0c\":\"3eb40f4e\",\"chunk-55532d96\":\"b13cb23b\",\"chunk-55f2a36c\":\"6f964d55\",\"chunk-561a1780\":\"1c38eb76\",\"chunk-57594e5b\":\"cf91e19d\",\"chunk-57e1e61c\":\"f426cc98\",\"chunk-3bfeb4a1\":\"48f0aaf4\",\"chunk-5d391ca2\":\"3a895ac8\",\"chunk-57ea6066\":\"e097fb8f\",\"chunk-58c83840\":\"6de777aa\",\"chunk-59a9c57c\":\"9fba0fec\",\"chunk-59ade898\":\"461bb4e1\",\"chunk-5a34616c\":\"1f658eb9\",\"chunk-5b7196bd\":\"a0ec6ebc\",\"chunk-5b8dd06b\":\"dcfa4ee7\",\"chunk-5c141b23\":\"a211ff82\",\"chunk-5cee4623\":\"098d0061\",\"chunk-5def5492\":\"d1232568\",\"chunk-5e077ef1\":\"fd9c753f\",\"chunk-5e5ba564\":\"695767d5\",\"chunk-5ebef18b\":\"f6deb2f2\",\"chunk-2c6ef769\":\"1555280c\",\"chunk-66f4e0a9\":\"4837908c\",\"chunk-ddb1aafa\":\"319c5d70\",\"chunk-eb219702\":\"ea346eef\",\"chunk-608db5ea\":\"a8c3f036\",\"chunk-60c3072e\":\"e4acb272\",\"chunk-61285700\":\"6c54790c\",\"chunk-61851364\":\"69e1d22b\",\"chunk-4cdcd703\":\"5eb30c04\",\"chunk-76629266\":\"7c1caa50\",\"chunk-bc4820d0\":\"56606dae\",\"chunk-ebbe88c2\":\"57c6b940\",\"chunk-f203d5fc\":\"015bc421\",\"chunk-f97509c4\":\"345dab2b\",\"chunk-626ff4fe\":\"b2727a38\",\"chunk-63e5f5dc\":\"f0e85e58\",\"chunk-649972c2\":\"94363169\",\"chunk-65495a00\":\"8ed16108\",\"chunk-65b493bc\":\"993ba6c3\",\"chunk-66a515f2\":\"7495c00f\",\"chunk-66dd3375\":\"1cb1afc8\",\"chunk-672cecfc\":\"ac0dc5a4\",\"chunk-67a24c3d\":\"31d6cfe0\",\"chunk-4d630f38\":\"37d6043f\",\"chunk-5ea2c406\":\"d309d1e8\",\"chunk-7a1e35e2\":\"1e174f10\",\"chunk-85d015c8\":\"80e13b54\",\"chunk-67caeab5\":\"70a61e91\",\"chunk-6925c1a6\":\"31d6cfe0\",\"chunk-340cd501\":\"7d3686f1\",\"chunk-72d9778a\":\"31d6cfe0\",\"chunk-195a3152\":\"49f41347\",\"chunk-4ea0edf6\":\"40fbfe31\",\"chunk-4fb53ab8\":\"a5a296fa\",\"chunk-755f75a0\":\"bd836b9d\",\"chunk-1ad5c6da\":\"bd6cc9cd\",\"chunk-1d593f6a\":\"46452e5e\",\"chunk-7cb28a2c\":\"ee9a5893\",\"chunk-69efaf82\":\"e9611baa\",\"chunk-6a402ced\":\"8649dba9\",\"chunk-6b3a5f5a\":\"cbefb6ee\",\"chunk-6bac8fc2\":\"b0cb2ed9\",\"chunk-6bc7c3ee\":\"a2141d46\",\"chunk-6bee928a\":\"fbde87ce\",\"chunk-6c122f92\":\"32d7ecf2\",\"chunk-6c6a4d0c\":\"7fd3360a\",\"chunk-6cbb7906\":\"7c3587de\",\"chunk-6e0a5878\":\"cd6eb652\",\"chunk-6f3050d9\":\"de237a31\",\"chunk-6fac29ea\":\"46039eba\",\"chunk-6ff70f64\":\"1f9571c8\",\"chunk-70962fe2\":\"53abca62\",\"chunk-71cdc261\":\"39b5211f\",\"chunk-7328e203\":\"112d4124\",\"chunk-734a1cf0\":\"62050f2b\",\"chunk-74c60a36\":\"cd3322a8\",\"chunk-75290580\":\"31d6cfe0\",\"chunk-9ad84d00\":\"bf427dd4\",\"chunk-b6b0c8ce\":\"7df13f1a\",\"chunk-7614c6e2\":\"677db67e\",\"chunk-763b517b\":\"48cef855\",\"chunk-76e49e2e\":\"7bf7dffc\",\"chunk-77483a0d\":\"8ece1151\",\"chunk-2464a0f2\":\"2a58a820\",\"chunk-6bf74c10\":\"107c2560\",\"chunk-774add42\":\"2d1c6eba\",\"chunk-7754c1ce\":\"9a27bc42\",\"chunk-78377c79\":\"f4597cb3\",\"chunk-7861469c\":\"91d3b8ea\",\"chunk-7a6007fe\":\"1cb7d5a6\",\"chunk-7a78510e\":\"13847c62\",\"chunk-7a989230\":\"a65ab237\",\"chunk-7acb159a\":\"00ca1c61\",\"chunk-7af2b37a\":\"d4af443a\",\"chunk-7b1a0ba5\":\"dc6fc939\",\"chunk-7bc3eefc\":\"a9466f84\",\"chunk-7bf2ea62\":\"31d6cfe0\",\"chunk-172ced64\":\"05c65491\",\"chunk-7730e9ba\":\"83337010\",\"chunk-7d9de06a\":\"537f5f53\",\"chunk-7e32c630\":\"aa0eefca\",\"chunk-7e3b717a\":\"7bcb5f91\",\"chunk-7ee99054\":\"9d12aff4\",\"chunk-7eec6efd\":\"e66f2b94\",\"chunk-7f483aec\":\"3d169f61\",\"chunk-7f52f099\":\"43926430\",\"chunk-7f769f09\":\"dd264701\",\"chunk-7f9d4103\":\"d07096b2\",\"chunk-830f657c\":\"ec007ec7\",\"chunk-8732459e\":\"94bb3141\",\"chunk-88bd05e0\":\"f9e66fe5\",\"chunk-89e544a2\":\"82e439c8\",\"chunk-8bb5f8ac\":\"7bed6541\",\"chunk-8c2f99ea\":\"1c9129af\",\"chunk-9b480162\":\"fc8c3c1d\",\"chunk-9edbd59a\":\"41a17204\",\"chunk-a1a55f30\":\"92627868\",\"chunk-a1eb0a36\":\"f58eb270\",\"chunk-a2a86b40\":\"07ddc114\",\"chunk-a65616ca\":\"b30a3a7d\",\"chunk-ab5247b0\":\"6b308ad0\",\"chunk-acb1ff40\":\"567652ba\",\"chunk-b7f1e708\":\"263d822f\",\"chunk-b98c76f8\":\"83b125b9\",\"chunk-bb8b5564\":\"f6d03b85\",\"chunk-c0074cc0\":\"e3afb658\",\"chunk-c09cea7e\":\"4524ed54\",\"chunk-5ab36b1a\":\"06324a00\",\"chunk-b40976a4\":\"baaabeab\",\"chunk-c2c8ca06\":\"1b1b9415\",\"chunk-c517f2b0\":\"765d60f0\",\"chunk-ce0925f4\":\"b2cd15fa\",\"chunk-cecf6d8e\":\"5a1dc44f\",\"chunk-cf05ba3c\":\"88c78d07\",\"chunk-d0004484\":\"0a741294\",\"chunk-d03892d0\":\"03115add\",\"chunk-d36c7a2e\":\"c0a493cc\",\"chunk-d655a104\":\"27dc91ea\",\"chunk-d6b25030\":\"705a5419\",\"chunk-d935a846\":\"b3ba58c5\",\"chunk-d9f7eb20\":\"e6dca0f7\",\"chunk-0cc530e8\":\"a7df737b\",\"chunk-30d861c0\":\"40bbbe39\",\"chunk-357a68e7\":\"351a2470\",\"chunk-dcd6c874\":\"041ce188\",\"chunk-e2ab5294\":\"aee00839\",\"chunk-e6d52898\":\"2b780a3b\",\"chunk-e894c84c\":\"d1dbfe1e\",\"chunk-ea260b92\":\"31d6cfe0\",\"chunk-f04179a0\":\"23a1f1cf\",\"chunk-f18e334c\":\"7f7e8ba4\",\"chunk-f3ad07f2\":\"7265921b\",\"chunk-f94650b6\":\"97ec2bef\",\"chunk-f962b26e\":\"4734bb3c\",\"chunk-fb6754b6\":\"71fc4d9c\",\"chunk-fedc8a1c\":\"bd56f17e\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\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=e7b92ca0&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Index.vue?vue&type=style&index=0&id=397f2a04&lang=scss\"","import { Module } from 'vuex';\nimport { GlobalDataProps } from '@/store/index';\nexport interface ApproveDataProps {\n programIds: string[];\n pendingApproveCount: number;\n}\n\nconst approve: Module = {\n namespaced: true,\n state: {\n programIds: [],\n pendingApproveCount: 0\n },\n mutations: {\n updateProgramIds(state, program) {\n state.programIds = program;\n },\n updatePendingApproveCount(state, count) {\n state.pendingApproveCount = count;\n }\n }\n}\n\nexport default approve;\n","import { Module } from 'vuex';\nimport { parameterSave, parameterSave2 } from '@/API/claim/claimParameter';\nimport { message } from 'ant-design-vue';\nconst claim: Module = {\n namespaced: true,\n state: {\n afcLcType: 'AFC',\n saveParamsData: {},\n docDocumentsData: [],\n docExtendData: [],\n extendInfoData: [],\n claimMethodData: []\n },\n mutations: {\n updateAfcLcType(state, data) {\n state.afcLcType = data;\n },\n updateSaveParamsData(state, option) {\n state.saveParamsData[option.name] = option.rawData;\n },\n updateDocDocumentsData(state, data) {\n state.docDocumentsData = data;\n },\n updateDocExtendData(state, data) {\n state.docExtendData = data;\n },\n updateExtendInfoData(state, data) {\n state.extendInfoData = data;\n },\n updateClaimMethodData(state, data) {\n state.claimMethodData = data;\n },\n updateClearParamsData(state) {\n state.saveParamsData = {};\n },\n updateClearDocDocumentsData(state) {\n state.docDocumentsData = [];\n },\n updateClearDocExtendData(state) {\n state.docExtendData = [];\n },\n updateClearExtendInfoData(state) {\n state.extendInfoData = [];\n },\n updateClearClaimMethodData(state) {\n state.claimMethodData = [];\n }\n }\n};\n\nexport default claim;\n","import { Module } from 'vuex';\nimport { GlobalDataProps } from '@/store/index';\nimport { PayoutBatchTableData } from \"@/views/Payment/BU/types\"\nimport { DataProps as BreakdownDataProps }from '@/views/Payment/DealerBreakdown/type' \nexport interface PaymentDataProps {\n approvealTableCount: number;\n selectProgramRows: PayoutBatchTableData[];\n // Breakdown传到详情页的参数\n breakdownRow: BreakdownDataProps;\n // entitySiPayoutApplication传到Dealer Breakdown Report\n breakdownParams: { payoutRoumd: string; entity: string };\n // 上传文件最大数量\n maxFileCount: number;\n // 上传文件最大附件大小\n maxFileSize: number;\n}\n\nconst payment: Module = {\n namespaced: true,\n state: {\n approvealTableCount: 0,\n selectProgramRows: [],\n breakdownRow: {id: ''},\n breakdownParams: { payoutRoumd: '', entity: '' },\n maxFileCount: 5,\n maxFileSize: 10\n },\n mutations: {\n updateApprovealTableCount: (state, approvealTableCount) => {\n state.approvealTableCount = approvealTableCount\n },\n updateSelectProgramRows: (state,selectProgramRows) =>{\n state.selectProgramRows = selectProgramRows\n },\n updateBreakdown: (state, curRow) => {\n state.breakdownRow = curRow\n },\n updateBreakdownParams: (state, params) => {\n state.breakdownParams = params\n }\n }\n}\nexport default payment;","import { Module } from 'vuex';\nimport { GlobalDataProps } from '@/store/index';\nimport { TreeDataItem } from \"@/views/User/ApprovalProcess/components/buTreeType\"\nexport interface ApprovalChainDataProps {\n BUTreeData: TreeDataItem[];\n BUListData: string[];\n}\n\nconst approvalChain: Module = {\n namespaced: true,\n state: {\n BUTreeData: [],\n BUListData: []\n },\n mutations: {\n updateBUTreeData: (state, data) => {\n state.BUTreeData = data\n },\n updateBUListData: (state, data) => {\n state.BUListData = data\n },\n }\n}\nexport default approvalChain;","import { Module } from 'vuex';\nimport { GlobalDataProps } from '@/store/index';\nimport { TableData } from \"@/hooks/checking/spotChecking/usePaymentPreparation\"\nexport interface ApprovalChainDataProps {\n curPayoutRowData: Partial;\n payoutRoundData: Partial;\n packageData: Partial;\n packageFinanceData: Partial;\n sampleCheckPackagecodeId: string;\n sampleCheckPackagecode: string;\n sampleCheckPayoutRound: {\n payoutRoundId?: string;\n payoutRound?: string;\n type?: string;\n };\n spotCheckConfirmPackageDealer: any;\n spotCheckConfirmProgramDealer: any;\n spotCheckConfirmPackageFl: any;\n spotCheckConfirmProgramFl: any;\n spotCheckStatus: any;\n \n}\nconst spotChecking: Module = {\n namespaced: true,\n state: {\n curPayoutRowData: {},\n payoutRoundData: {},\n packageData: {},\n packageFinanceData: {},\n sampleCheckPackagecodeId: '',\n sampleCheckPackagecode: '',\n sampleCheckPayoutRound: {},\n spotCheckConfirmPackageDealer: {},\n spotCheckConfirmProgramDealer: {},\n spotCheckConfirmPackageFl: {},\n spotCheckConfirmProgramFl: {},\n spotCheckStatus: {} // checkStatus 原始数据\n },\n mutations: {\n updateSpotCheckStatus: (state, data) => {\n state.spotCheckStatus = data\n },\n updatePayoutCurRow: (state, data) => {\n state.curPayoutRowData = data\n },\n updatePayoutRoundData: (state, data) => {\n state.payoutRoundData = data\n },\n updatePackageData: (state, data) => {\n state.packageData = data\n },\n updatePackageFinanceData: (state, data) => {\n state.packageFinanceData = data\n },\n updateSampleCheckPackagecodeId: (state, id) => {\n state.sampleCheckPackagecodeId = id\n },\n updateSampleCheckPackagecode: (state, code) => {\n state.sampleCheckPackagecode = code\n },\n updateSampleCheckPayoutRound: (state, payoutRound) => {\n state.sampleCheckPayoutRound = payoutRound\n },\n // 4717 -> 4720\n updateSpotCheckConfirmPackageDealer: (state, data) => {\n state.spotCheckConfirmPackageDealer = data\n },\n // 4720 -> 4722\n updateSpotCheckConfirmProgramDealer: (state, data) => {\n state.spotCheckConfirmProgramDealer = data\n },\n // 4717 -> 4721\n updateSpotCheckConfirmPackageFl: (state, data) => {\n state.spotCheckConfirmPackageFl = data\n },\n // 4721 -> 4723\n updatespotCheckConfirmProgramFl: (state, data) => {\n state.spotCheckConfirmProgramFl = data\n }\n }\n}\nexport default spotChecking;","import { Module } from 'vuex';\nimport { GlobalDataProps } from '@/store/index';\n// status=unconfirm&offerType=fa&bu=&brand=MB&customerType=&offer=\ninterface FinanceProps {\n stateParmas: {\n status: string;\n offerType: string;\n bu: string;\n brand: string;\n customerType: string;\n offer: string;\n };\n \n}\n\nconst finance: Module = {\n namespaced: true,\n state: {\n stateParmas: {\n status: '',\n offer: '',\n offerType: '',\n brand: '',\n bu: '',\n customerType: '',\n }\n \n },\n mutations: {\n updateStateParmast: (state, stateParmas) => {\n state.stateParmas = stateParmas\n }\n }\n}\n\nexport default finance","import { Module } from 'vuex';\nimport { GlobalDataProps } from '@/store/index';\nimport type {\n ThirdPartyDataError,\n CurveSelectionUploadError\n} from '@/views/LocalRegistration/type'\n\nexport interface LocalRegistrationDataProps {\n thirdPartyDataError: ThirdPartyDataError[];\n curveSelectionUploadError: CurveSelectionUploadError[];\n}\n\nexport default {\n namespaced: true,\n state: {\n thirdPartyDataError: [],\n curveSelectionUploadError: []\n },\n mutations: {\n updateThirdPartyDataError: (state, data: ThirdPartyDataError[]) => {\n state.thirdPartyDataError = data\n },\n updateCurveSelectionUploadError: (state, data: CurveSelectionUploadError[]) => {\n state.curveSelectionUploadError = data\n }\n }\n} as Module","/*\n * @Author: zhengda.lv\n * @Date: 2021-12-23 10:22:27\n * @LastEditTime: 2021-12-23 14:52:51\n * @LastEditors: zhengda.lv\n * @Description:\n */\nimport { Module } from 'vuex';\n\nconst salesReport: Module = {\n namespaced: true,\n state: {\n fcSearchParams: {\n make: '',\n startYear: '',\n closeOrNot: '',\n yearList: [],\n },\n possibleReleaseRowData: [],\n },\n mutations: {\n setFCSearchParams(state, params) {\n for (const key in state.fcSearchParams) {\n state.fcSearchParams[key] = params[key];\n }\n console.log(state.fcSearchParams);\n },\n setPossibleReleaseRowData(state, rowData) {\n state.possibleReleaseRowData = rowData;\n console.log('store', rowData);\n },\n },\n};\n\nexport default salesReport;\n","import { createStore } from 'vuex';\nimport VuexPersistence from 'vuex-persist';\nimport { CategoryProps, APIDataProps, ColumnsProps } from '@/types';\nimport { TreeProps, RoleProps } from '@/views/User/types';\nimport approve from '@/store/modules/approve';\nimport claim from '@/store/modules/claim';\nimport payment from '@/store/modules/payment';\nimport approvalChain from '@/store/modules/approvalChain';\nimport spotChecking from '@/store/modules/spotChecking';\nimport finance from './modules/finance';\nimport localRegistration from '@/store/modules/localRegistration';\nimport { isMobile } from '@/utils/index';\nimport { CustomerTypeProps, getDesignSetting } from '@/API/program';\nimport { getToken, findCurrentUser, ssoLogout } from '@/API/user';\nimport { message } from 'ant-design-vue';\nimport i18n from '@/locales/index';\nimport salesReport from './modules/salesReport';\nconst vuexLocal = new VuexPersistence({\n storage: window.sessionStorage,\n supportCircular: isMobile()\n});\n\n// 兼容性Category表格的数据\nexport interface TableCellProps {\n id: string;\n key: string;\n isVisble: boolean;\n\n [key: string]: any;\n}\n\nexport interface SelfProps {\n offerTypeKey: string;\n offerTypeName: string;\n table: CulTable[];\n}\n\nexport interface OtherProps {\n category: [];\n program: [];\n offer: SelfProps[];\n}\n\nexport interface CulTable extends APIDataProps {\n columns: ColumnsProps[];\n}\n\nexport interface BuDataProps {\n orgcode: string;\n orgid: string;\n orgnmcn: string;\n orgnmen: string;\n}\n\nexport interface BuProps {\n id: number;\n nameCn: string;\n nameEn: string;\n}\n\nexport interface BuTreeProps extends BuProps {\n children: BuTreeProps[];\n}\n\nexport interface EntityProps {\n id: number;\n entityCode: string;\n entityName: string;\n entityType: string;\n}\n\nexport interface LegalEntityProps {\n id: number;\n parentId: number | null;\n entityCode: string;\n entityName: string;\n entityNameEn: string;\n entityType: string;\n}\n\nexport interface OrganizationProps {\n id: string;\n parentId: string | null;\n entityCode: string;\n entityName: string;\n entityNameEn: string;\n entityType: string;\n}\n\nexport interface UserProps {\n email?: string;\n fulnm: string;\n orgid?: string;\n orgnm?: string;\n state?: boolean;\n menulist: TreeProps[];\n userroles: RoleProps[];\n usrid?: string;\n usrnm?: string;\n usrtp?: number;\n usrtpnm?: string;\n bu?: BuDataProps;\n buList?: BuProps[];\n buTreeList?: BuTreeProps[];\n entityList?: EntityProps[];\n legalEntity?: LegalEntityProps;\n organization?: OrganizationProps;\n}\n\nexport interface GlobalDataProps {\n user: UserProps;\n lang: string;\n scrollHeight: number;\n spinning: boolean;\n pageSpinning: boolean;\n Authorization: string;\n maintain: boolean;\n operable: boolean;\n // program\n pgmData: any;\n pgmAny: any;\n isPolling: boolean;\n pgmCategory: CategoryProps[];\n pgmGroup: any;\n pgmGroupCategorys: {\n groupName: string;\n offerType: CategoryProps[];\n }[];\n pgmCombinability: {\n programId: string;\n internal: {\n left: SelfProps[];\n right: [];\n };\n other: OtherProps;\n offerOther: Record;\n target: Record;\n specialUsage: [];\n faCrossTerm: {\n from?: string;\n to?: string;\n checked: boolean;\n };\n };\n //侧边栏是否收起\n sideNavCollapsed: boolean;\n sideNavKeys: {\n openKeys: string[];\n selectedKeys: string[];\n };\n pgmInsetCol: Record;\n loginForward?: string;\n customerSelected: CustomerTypeProps[];\n make: string;\n keepAliveComponentNames: string[];\n programHomeParams: any;\n combinabilityResetKey: any;\n showScrollContent:boolean;\n userClosedScrollContent:boolean;\n lastScrollEndTime:string\n}\n\nconst store = createStore({\n state: {\n user: {\n fulnm: '',\n menulist: [],\n userroles: []\n },\n Authorization: '',\n lang: 'en',\n scrollHeight: 301,\n spinning: false,\n pageSpinning: false,\n maintain: true,\n operable: true,\n pgmData: {},\n // 表格插入列\n pgmAny: {\n tableId: ''\n },\n //轮询\n isPolling: true,\n // 拼接在一起的比如fa, overall,下面的组循环显示用\n pgmCategory: [],\n //\n pgmGroup: [],\n // base info循环用\n pgmGroupCategorys: [],\n // pgm Combinability setting\n pgmCombinability: {\n programId: '',\n internal: {\n left: [],\n right: []\n },\n other: {\n category: [],\n program: [],\n offer: []\n },\n offerOther: {},\n target: {},\n specialUsage: [],\n faCrossTerm: {\n checked: false\n }\n },\n sideNavCollapsed: false,\n sideNavKeys: {\n openKeys: [],\n selectedKeys: []\n },\n // 插入列的table数据\n pgmInsetCol: {},\n customerSelected: [],\n loginForward: '/',\n make: '',\n keepAliveComponentNames: [],\n programHomeParams: null,\n combinabilityResetKey: '',\n showScrollContent:false,\n userClosedScrollContent:false,\n lastScrollEndTime:''\n },\n getters: {\n isDealer(state) {\n return state.user.legalEntity?.entityCode === 'Dealer' || state.user.legalEntity?.entityCode === 'Dealer Group';\n }\n },\n mutations: {\n updateLang(state, rawData) {\n state.lang = rawData;\n },\n updateIsPolling(state, rawData) {\n state.isPolling = rawData;\n },\n updatedHeight(state, screenWidth) {\n if (screenWidth < 1280) {\n state.scrollHeight = 160;\n }\n if (screenWidth >= 1280) {\n state.scrollHeight = 220;\n }\n if (screenWidth >= 1440) {\n state.scrollHeight = 251;\n // state.scrollHeight = 380\n }\n if (screenWidth >= 1680) {\n state.scrollHeight = 460;\n }\n if (screenWidth >= 1920) {\n state.scrollHeight = 470;\n // state.scrollHeight = 610\n }\n },\n updateUser(state, rawData) {\n state.user = rawData;\n },\n updateAuthorization(state, rawData) {\n sessionStorage.setItem('Authorization', rawData);\n state.Authorization = rawData;\n },\n updateSpinning(state, rawData) {\n state.spinning = rawData;\n },\n updatePageSpinning(state, rawData) {\n state.pageSpinning = rawData;\n },\n updateMaintain(state, rawData) {\n state.maintain = rawData;\n },\n // 控制addoffer是否可操作\n updateOperable(state, rawData) {\n state.operable = rawData;\n },\n updatePgmData(state, rawData) {\n state.pgmData = rawData;\n },\n updatePgmDataProgramCode(state, rawData) {\n state.pgmData.programCode = rawData;\n },\n updatepgmAny(state, rawData) {\n state.pgmAny.tableId = rawData;\n },\n updatePgmCategory(state, rawData) {\n state.pgmCategory = rawData;\n },\n updatePgmGroup(state, rawData) {\n state.pgmGroup = rawData;\n },\n updatePgmGroupCategorys(state, rawData) {\n state.pgmGroupCategorys = rawData;\n },\n updatePgmCombinability(state, rawData) {\n Object.assign(state.pgmCombinability, rawData);\n // state.pgmCombinability = rawData;\n },\n updatePgmCombinabilityspecialUsage(state, rawData) {\n state.pgmCombinability.specialUsage = rawData;\n },\n updatePgmCombinabilityfaCrossTerm(state, rawData) {\n state.pgmCombinability.faCrossTerm = rawData;\n },\n\n // 更新侧边栏是否展开参数\n updateSideNavCollapsed(state, vue) {\n state.sideNavCollapsed = vue;\n },\n updateSideNavKeys(state, rawData) {\n state.sideNavKeys = rawData;\n },\n updatePgmInsetCol(state, rawData) {\n state.pgmInsetCol = rawData;\n },\n // 记录跳转到登录页前的路由信息\n updateLoginForward(state, loginForward) {\n state.loginForward = loginForward;\n },\n updateCustomerSelected(state, rawData) {\n state.customerSelected = rawData;\n },\n updateMake(state, rawData) {\n state.make = rawData;\n },\n addKeepAliveComponentName(state, componentName) {\n if (state.keepAliveComponentNames.indexOf(componentName) === -1) {\n state.keepAliveComponentNames.push(componentName);\n }\n },\n removeKeepAliveComponentName(state, componentName) {\n const index = state.keepAliveComponentNames.indexOf(componentName);\n if (index !== -1) {\n state.keepAliveComponentNames.splice(index, 1);\n }\n },\n addProgramHomeParams(state, data) {\n state.programHomeParams = data;\n },\n removeProgramHomeParams(state) {\n state.programHomeParams = null;\n },\n updateCombinabilityResetKey(state) {\n state.combinabilityResetKey = new Date().getTime().toString();\n },\n updateShowScrollContent(state, data) {\n state.showScrollContent = data;\n },\n updateUserClosedScrollContent(state, data) {\n state.userClosedScrollContent = data;\n },\n updateLastScrollEndTime(state, data) {\n state.lastScrollEndTime = data;\n },\n },\n actions: {\n updateAuthorization({ dispatch }, params) {\n return getToken(params);\n },\n updateUser({ commit }) {\n return new Promise((resolve, reject) => {\n findCurrentUser()\n .then((res) => {\n const local =\n res.legalEntity.entityCode === 'Dealer' || res.legalEntity.entityCode === 'Dealer Group' ? 'zh' : 'en';\n store.state.lang = local;\n store.commit('updateLang', local);\n sessionStorage.setItem('getLocale', local);\n i18n.global.locale = local;\n commit('updateUser', res);\n resolve(res);\n })\n .catch((e) => {\n commit('updateAuthorization', '');\n store.state.user.usrnm = '';\n reject();\n });\n });\n },\n updateLogout() {\n return new Promise((resolve, reject) => {\n ssoLogout()\n .then((res: string) => {\n // 获取重定向地址\n store.commit('updateAuthorization', '');\n resolve(true);\n window.location.href = res;\n })\n .catch(() => {\n reject();\n });\n });\n },\n authAndUser({ dispatch }, permissionCode) {\n return dispatch('updateAuthorization', permissionCode).then((res) => {\n if (res.code != 0) {\n message.error(res.message);\n // 用户不存在或openId认证失败\n // 请求这个接口退出\n return dispatch('updateLogout');\n } else {\n return dispatch('updateUser');\n }\n });\n },\n updateCustomerSelected({ commit }) {\n /**\n * 更换接口和获取节点\n * */\n\n const params = {\n buId: store.state.pgmData.businessUnit.selected,\n offerTypes: Object.keys(store.state.pgmData.offer),\n programId: store.state.pgmData.programId\n };\n getDesignSetting(params).then((res) => {\n commit('updateCustomerSelected', res.customer);\n });\n }\n },\n modules: {\n approve,\n claim,\n payment,\n approvalChain,\n spotChecking,\n finance,\n salesReport,\n localRegistration\n },\n // plugins: process.env.NODE_ENV !== 'production' ? [vuexLocal.plugin, createLogger() ] : [vuexLocal.plugin]\n plugins: [vuexLocal.plugin]\n});\nexport default store;\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!./App.vue?vue&type=style&index=0&id=37582065&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserSetting.vue?vue&type=style&index=0&id=081e4bce&lang=scss\"","import { fetchGet, fetchPost, fetchPostPic, fetchPut, fetchDelete, fetchPutPic } from './index'\nimport { CurrentuserProps, TypeProps, PGProps, RoleProps, TreeProps, APIMenuProps, SelectMenuCheckedProps, PrgProps, RoleTreeProps, SelectMenuRoleCheckedProps, OrgProps, OrgDealerProps, UserProps, SaveBUsProps, BuTreeProps, OrgParamsProps, OutLoginProps, LegalEntity, Entity, OrganizationProps, Bu } from '@/views/User/types'\nimport { ResProps } from './types'\nimport axios, { AxiosResponse } from 'axios'\n// privilage Group\n\nexport const PGFindall = (params = {}): Promise => {\n return fetchGet('/usapi/privgroups/findall', params)\n}\nexport const PGchangestatus = (params = {}): Promise => {\n return fetchPut('/usapi/privgroups/changestatus', params)\n}\nexport const PGsavegroup = (params = {}) => {\n return fetchPost('/usapi/privgroups/savegroup', params)\n}\nexport const PGupdategroup = (params = {}): Promise => {\n return fetchPut('/usapi/privgroups/updategroup', params)\n}\nexport const PGfindgroupbyid = (params = {}): Promise => {\n return fetchGet('/usapi/privgroups/findgroupbyid', params)\n}\n\n// privilage Group Setting\nexport const PGfindmnuall = (params = {}): Promise => {\n return fetchGet('/usapi/resources/findmnuall', params)\n}\nexport const PGfindapiall = (params = {}): Promise => {\n return fetchGet('/usapi/resources/findapiall', params)\n}\nexport const PGsaveassignment = (params = {}) => {\n return fetchPut('/usapi/privgroups/saveassignment', params)\n}\nexport const PGfindassignment = (params = {}): Promise => {\n return fetchGet('/usapi/privgroups/findassignment', params)\n}\n\n\n// role\nexport const rolesFindall = (params = {}): Promise => {\n return fetchGet('/usapi/roles/findall', params)\n}\nexport const rolesSaverole = (params = {}) => {\n return fetchPost('/usapi/roles/saverole', params)\n}\nexport const rolesUpdaterole = (params = {}): Promise => {\n return fetchPut('/usapi/roles/updaterole', params)\n}\nexport const PGfindgroupbytype = (params = {}): Promise => {\n return fetchGet('/usapi/privgroups/findgroupbytype', params)\n}\nexport const PGfindgroupbytypes = (params = {}): Promise => {\n return fetchGet('/usapi/privgroups/findgroupbytypes', params)\n}\nexport const rolesFindrolebyid = (params = {}): Promise => {\n return fetchGet('/usapi/roles/findrolebyid', params)\n}\nexport const PGfindalllist = (params = {}): Promise => {\n return fetchGet('/usapi/privgroups/findalllist', params)\n}\nexport const rolesChangestatus = (params = {}): Promise => {\n return fetchPut('/usapi/roles/changestatus', params)\n}\n// role setting\nexport const roleFindbyprivgrpid = (params = {}): Promise => {\n return fetchGet('/usapi/roles/findbyprivgrpid', params)\n}\nexport const roleFindassignmen = (params = {}): Promise => {\n return fetchGet('/usapi/roles/findassignment', params)\n}\nexport const roleSaveassignment = (params = {}) => {\n return fetchPut('/usapi/roles/saveassignment', params)\n}\n\n\n\n\n// user\nexport const usersFindall = (params = {}): Promise => {\n return fetchGet('/usapi/users/findall', params)\n}\nexport const bizFindbuall22 = (params = {}): Promise => {\n return fetchGet('/mdapi/bizunits/findbuall', params)\n}\nexport const bizFindbuall = (params = {}): Promise => {\n return fetchGet('/mdapi/bu/no-tree', params)\n}\n// 以前的获取dealers\nexport const deaFinddealerall22 = (params = {}): Promise => {\n return fetchGet('/mdapi/dealers/finddealerall', params)\n}\n// ---- 新的获取dealers\nexport const deaFinddealerall = (params = {}): Promise => {\n return fetchGet('/mdapi/dealers', params)\n}\nexport const checkUserExisted = (params = {}): Promise => {\n return fetchGet('/usapi/users/existed', params)\n}\nexport const userSaveuser = (params = {}) => {\n return fetchPostPic('/usapi/users/saveuser', params)\n}\nexport const userUpdateuser = (params = {}): Promise => {\n return fetchPutPic('/usapi/users/updateuser', params)\n}\nexport const userFinduserbyid = (params = {}): Promise => {\n return fetchGet('/usapi/users/finduserbyid', params)\n}\nexport const userChangestatus = (params = {}): Promise => {\n return fetchPut('/usapi/users/changestatus', params)\n}\n// user setting\nexport const usrFinduserbyorgid = (params = {}): Promise => {\n return fetchGet('/usapi/users/finduserbyorgid', params)\n}\n\nexport const usrFinduserrole = (params = {}): Promise => {\n return fetchGet('/usapi/users/finduserrole', params)\n}\n\nexport const usrFindsubscribedbu = (params = {}): Promise => {\n return fetchGet('/usapi/users/findsubscribedbu', params)\n}\n\nexport const getBuSelected = (params = {}): Promise => {\n return fetchGet('/usapi/users/bu/selected', params)\n}\n\nexport const deleteBuSelected = (params = {}) => {\n return fetchDelete('/usapi/users/bu/selected', params)\n}\n\nexport const roleFindrolebytype = (params = {}): Promise => {\n return fetchGet('/usapi/roles/findrolebytype', params)\n}\n\nexport const bizBu2subscribe = (params = {}): Promise => {\n return fetchGet('/mdapi/bizunits/findbu2subscribe', params)\n}\n\n// 获取bu (不用之前的接口获取)\nexport const getBuList = (): Promise => {\n return fetchGet('/mdapi/bu')\n}\n\nexport const getBuListByDealer = (params= {}): Promise => {\n return fetchGet('mdapi/bu/dealer', params)\n}\n\nexport const getBuDealer = ({ params }: any): Promise => {\n return fetchGet(`/usapi/bu/dealer/${params.dealerId}`)\n}\nexport const dealerBu2subscribe = (params = {}): Promise => {\n return fetchGet('/mdapi/dealers/findbu2subscribe', params)\n}\n\nexport const usrImportsetting = (params = {}) => {\n return fetchPost('/usapi/users/importsetting', params)\n}\n\nexport const usrSaveuserrole = (params = {}) => {\n return fetchPost('/usapi/users/saveuserrole', params)\n}\n\nexport const usrSaveuserorg = (params = {}) => {\n return fetchPost('/usapi/users/saveuserorg', params)\n}\n\nexport const removeUserRole = (params = {}) => {\n return fetchDelete('/usapi/users/removeuserrole', params)\n}\n\nexport const removeUserOrg = (params = {}) => {\n return fetchDelete('/usapi/users/removeuserorg', params)\n}\n\nexport const findCurrentUser = (params = {}): Promise => {\n return fetchGet('/usapi/users/currentuser', params)\n}\n\n// 获取type\nexport const findbyLkpmaincode = (params = {}): Promise => {\n return fetchGet('/mdapi/lookupdetails/findbylkpmaincode', params)\n}\n\n// 获取token,token在response headers中返回authorization,axios响应拦截中将authorization存储到stroe和缓存中\nexport const getToken = (params = {}): any => {\n return fetchPostPic('/oauth/token/exchange', params)\n}\n\nexport const outLogin = (params = {}): Promise => {\n return fetchPost('/oauth/token/revocation', params)\n}\n\nexport const ssoLogout = (): Promise => {\n return fetchPost('oauth/sso/logout')\n}\n\n// 获取legal entity下拉数据\nexport const getLegalEntityOptions = (params = {}): Promise => {\n return fetchGet('/usapi/entity/legalEntity', params)\n}\n\n// 获取entity下拉数据\nexport const getEntityOptions = (params = {}): Promise => {\n return fetchGet('/usapi/entity/entity', params)\n}\n\n// 获取Organization下拉数据\nexport const getOrganizationOptions = (params: any = {}): Promise => {\n return fetchGet(`usapi/entity/children/${params.params.parentId}`)\n}\n\nexport const saveBuAndRegion = (params = {}) => {\n return fetchPost('/usapi/bu/saveBuAndRegion', params)\n}\n\n// 获取全部bu\nexport const getBuTreeList = (params= {}): Promise => {\n return fetchGet('/usapi/bu/treeList', params)\n}\n\n// 获取全部entity\n\nexport const getEntityList = (params= {}): Promise => {\n return fetchGet('/usapi/entity/entity', params)\n}\n\n// User Role Matrix\n// 角色名称下拉框\nexport const getRoleMatrixRoleOptions = (): Promise => {\n return fetchGet('/usapi/roles/findRolnmenList')\n}\n\nexport const getRoleMatrixRoleOptionsByGrpId = (grpId: string): Promise => {\n return fetchGet('/usapi/roles/findbygrpid', { params: { grpid: grpId } })\n}\n\n// 分页查询role列表接口\nexport const getRoleMatrixList = (data = {}): Promise => {\n return fetchPost('/usapi/rolepriv/page/list', data)\n}\n\n// 导出Role permission Matrix列表接口\nexport const exportRoleMatrix = (data = {}): Promise> => {\n return axios.post('/usapi/rolepriv/export', data, {\n responseType: 'blob'\n })\n}\n\n// 导出role log接口\nexport const exportRoleMatrixLog = (): Promise> => {\n return axios.post('/usapi/rolePrivChangeLog/export', undefined, {\n responseType: 'blob'\n })\n}\n\n// fullname下拉框列表\nexport const getUserMatrixUserOptions = (): Promise => {\n return fetchGet('/usapi/users/searchFullNameOrUserName')\n}\n\n// User BU下拉框\n\n// 分页查询user列表接口\nexport const getUserMatrixList = (data = {}): Promise => {\n return fetchPost('/usapi/users/page/list', data)\n}\n\n// 导出Role permission Matrix列表接口\nexport const exportUserMatrix = (data = {}): Promise> => {\n return axios.post('/usapi/users/export', data, {\n responseType: 'blob'\n })\n}\n\n// 导出role log接口\nexport const exportUserMatrixLog = (): Promise> => {\n return axios.post('/usapi/userRoleChangeLog/export', undefined, {\n responseType: 'blob'\n })\n}","//千分数转数字\nexport const toNumber = (value: number | string): string => {\n const reg = RegExp(/%/g);\n if (reg.test(value.toString())) {\n return (Number((value || 0).toString().replace(/,|%/g, '')) / 100).toString();\n }\n return (value || 0).toString().replace(/,|%/g, '');\n}\n\n\n//转换千分数\nexport const toThousands = (value: number | string, saveDecimal= false): string => {\n if (!value) {\n return ''\n }\n if (!saveDecimal) {\n let _value = value.toString();\n _value.includes(',') && (_value = toNumber(_value).toString());\n return parseInt(_value).toString().replace(/(\\d)(?=(?:\\d{3})+$)/g, '$1,');\n } else {\n let _value = value.toString();\n _value.includes(',') && (_value = toNumber(_value).toString());\n _value.includes('.') && (_value += '.');\n return _value.replace(/(\\d)(?=(\\d{3})+\\.)/g, function ($0, $1) {\n return $1 + ',';\n }).replace(/\\.$/, '');\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!./Breadcrumb.vue?vue&type=style&index=0&id=65f95717&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./PGSetting.vue?vue&type=style&index=0&id=1c3e4958&lang=scss\"","import { onUnmounted } from 'vue'\nimport mitt from 'mitt';\n\nconst emitter: mitt.Emitter = mitt();\n\n// 自定义触发器\nconst customEmit = (eventName: any, arg?: any) => {\n emitter.emit(eventName, arg)\n}\n\n// 自定义接收器\nconst customOn = (eventName: any, arg?: any) => {\n emitter.on(eventName, arg)\n}\n\nconst useEventbus = () => {\n onUnmounted(() => {\n emitter.all.clear()\n })\n return {\n customEmit,\n customOn\n }\n}\nexport default useEventbus\n","module.exports = __webpack_public_path__ + \"img/header.3bd56369.png\";","import { toDisplayString as _toDisplayString, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, normalizeClass as _normalizeClass, renderSlot as _renderSlot, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-65f95717\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"logo\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_CloseOutlined = _resolveComponent(\"CloseOutlined\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_a_breadcrumb_item = _resolveComponent(\"a-breadcrumb-item\")!\n const _component_a_breadcrumb = _resolveComponent(\"a-breadcrumb\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([_ctx.breadcrumbWrapper, _ctx.className]),\n style: _normalizeStyle(_ctx.outSideStyle)\n }, [\n (_ctx.showScrollContainer)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"scroll-container\",\n style: _normalizeStyle(_ctx.scrollContainerStyle)\n }, [\n _createElementVNode(\"div\", {\n class: \"scroll-box\",\n style: _normalizeStyle(_ctx.scrollBoxLineHeight)\n }, _toDisplayString(_ctx.scrollText), 5),\n _createElementVNode(\"div\", {\n class: \"scroll-closed\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.closeScrollContainer && _ctx.closeScrollContainer(...args)))\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_CloseOutlined)\n ])\n ])\n ], 4))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass(_ctx.breadCrumb),\n style: _normalizeStyle(_ctx.scrollBreadCrumbStyle)\n }, [\n _createVNode(_component_a_breadcrumb, { separator: \">\" }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.crumbLists, (item, index) => {\n return (_openBlock(), _createBlock(_component_a_breadcrumb_item, { key: index }, {\n default: _withCtx(() => [\n (item.mnuuri)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: item.mnuuri\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === \"zh\" ? item.mnunmcn : item.mnunmen), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === \"zh\" ? item.mnunmcn : item.mnunmen), 1)\n ], 64))\n ]),\n _: 2\n }, 1024))\n }), 128)),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.dataSource, (item, index) => {\n return (_openBlock(), _createBlock(_component_a_breadcrumb_item, { key: index }, {\n default: _withCtx(() => [\n (item.path)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: item.path\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.name), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(item.name), 1)\n ], 64))\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n })\n ], 6),\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true)\n ], 6))\n}","\n import { defineComponent, PropType, onMounted, ref, computed } from \"vue\";\n import { useStore } from \"vuex\";\n import { TreeProps } from \"@/views/User/types\";\n import { useRoute } from \"vue-router\";\n import { CloseOutlined } from \"@ant-design/icons-vue\";\n import { getNowActiveLampData } from \"@/API/payment\";\nimport store from \"@/store\";\n interface Breadcrumb {\n name: string;\n path: string;\n }\n export default defineComponent({\n name: \"Breadcrumb\",\n props: {\n dataSource: {\n type: Array as PropType,\n required: true,\n default() {\n return [];\n },\n },\n className: {\n type: String,\n },\n scrollHeight: {\n type: Number,\n default: -1,\n },\n lineHeight: {\n type: Number,\n default: -1,\n },\n paddingBottom: {\n type: Number,\n default: -1,\n },\n outSideHeight: {\n type: Number,\n default: -1,\n }\n },\n components: {\n CloseOutlined\n },\n setup(props) {\n const { commit, state } = useStore();\n const route = useRoute();\n const crumbLists = ref<\n { mnunmcn: string; mnunmen: string; mnuuri: string }[]\n >([]);\n \n // 找到树形菜单,当前mnuid的,所有父级\n const familyTree = (arrTree: TreeProps[], id: string) => {\n const temp: TreeProps[] = [];\n const forFn = (arr: TreeProps[], id: string | undefined) => {\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n if (item.mnuid === id) {\n temp.push(item);\n forFn(arrTree, item.parentid); // 注意这里是传入的tree,不要写成data了,不然遍历的时候一直都是node.children,不是从最顶层开始遍历的\n break;\n } else {\n if (item.children) {\n forFn(item.children, id);\n }\n }\n }\n };\n forFn(arrTree, id);\n return temp;\n };\n \n // 找到对应需要的参数,菜单和面包屑需要要的\n const findURL = (arr: TreeProps[], url: string): any => {\n if (arr === null) return [];\n let openKey: string[] = [];\n const selectedKey: string[] = [];\n for (const obj of arr) {\n if (obj.mnuuri === url) {\n if (obj.parentid !== \"0\") {\n openKey = [\n ...familyTree(state.user.menulist, obj.mnuid).map(\n (item: TreeProps) => item.mnuid\n ),\n ];\n } else {\n openKey.push(obj.mnuid);\n }\n // 当前路由需要,当前菜单选中项\n selectedKey.push(obj.mnuid);\n // 当前页面时面包屑,当时的页面时\n // 更新vuex\n commit(\"updateSideNavKeys\", {\n openKeys: openKey,\n selectedKeys: selectedKey,\n });\n return [obj];\n }\n const ret = findURL(obj.children, url);\n if (ret.length > 0) return ret;\n }\n return [];\n };\n \n // const breadcrumbWrapper = ref('breadcrumb-wrapper bg-fff');\n\n const scrollText = ref('');\n const currentScrollEndTime = ref('');\n const showScrollContainer = computed(() => store.state.showScrollContent && !store.state.userClosedScrollContent);\n const breadcrumbWrapper = computed(() => showScrollContainer.value ? 'breadcrumb-wrapper-scroll bg-fff' : 'breadcrumb-wrapper bg-fff');\n const breadCrumb = computed(() => showScrollContainer.value ? 'breadcrumb breadcrumb-scroll d-f align-c' : 'breadcrumb d-f align-c');\n const scrollContainerStyle = computed(() => {\n return {\n height: (props as any).scrollHeight > 0 ? `${(props as any).scrollHeight}px` : '28px',\n };\n });\n\n\n const scrollBreadCrumbStyle = computed(() => {\n return (props as any).paddingBottom > 0 && showScrollContainer.value ? { 'padding-bottom' : `${(props as any).paddingBottom}px`} : {};\n });\n\n const outSideStyle = computed(() => {\n return (props as any).outSideHeight > 0 ? { height : `${(props as any).outSideHeight}px`} : {};\n });\n\n const scrollBoxLineHeight = computed(() => {\n return (props as any).lineHeight > 0 ? { 'line-height' : `${(props as any).lineHeight}px`} : {};\n });\n\n console.log(\"bofore mounted state showScrollContent value is:\" + state.showScrollContent);\n console.log(\"bofore mounted state userClosedScrollContent value is:\" + state.userClosedScrollContent);\n\n onMounted(async() => {\n // // 直接从复制URL的情况: 如果是菜单里有的路由,没有问题,没有的呢\n if (\n findURL(state.user.menulist, route.path).length < 1 &&\n state.sideNavKeys.selectedKeys.length < 1\n ) {\n commit(\"updateSideNavKeys\", {\n openKeys: [],\n selectedKeys: [],\n });\n }\n // 针对从正常情况进来,菜单和导航\n crumbLists.value = familyTree(\n state.user.menulist,\n state.sideNavKeys.selectedKeys[0]\n ).reverse();\n if (route.fullPath.startsWith(\"/faq\")) {\n crumbLists.value = [];\n }\n\n const lampData = await getNowActiveLampData();\n if (lampData && lampData.contents) {\n scrollText.value = lampData.contents;\n const endTime = new Date(lampData.endTime).getTime();\n const currentTime = Date.now();\n currentScrollEndTime.value = lampData.endTime;\n console.log(\"api get endtime:\" + lampData.endTime);\n if (currentTime < endTime) {\n store.commit(\"updateShowScrollContent\", true);\n }\n const lastScrollEndTime = store.state.lastScrollEndTime;\n console.log(\"lastScrollEndTime:\" + lastScrollEndTime)\n if (lastScrollEndTime && store.state.userClosedScrollContent) {\n const lastScrollEndTimeDate = new Date(lastScrollEndTime).getTime();\n if (lastScrollEndTimeDate < endTime) {\n store.commit(\"updateUserClosedScrollContent\", false);\n }\n }\n } else {\n store.commit(\"updateShowScrollContent\", false);\n }\n\n console.log(\"after mounted state showScrollContent value is:\" + state.showScrollContent);\n console.log(\"after mounted state userClosedScrollContent value is:\" + state.userClosedScrollContent);\n });\n\n\n\n const closeScrollContainer = () => {\n console.log('close scroll container');\n // breadcrumbWrapper.value = 'breadcrumb-wrapper bg-fff';\n // breadCrumb.value = 'breadcrumb d-f align-c';\n store.commit(\"updateShowScrollContent\", false);\n store.commit(\"updateUserClosedScrollContent\", true)\n store.commit(\"updateLastScrollEndTime\", currentScrollEndTime.value)\n };\n\n\n return {\n crumbLists,\n showScrollContainer,\n closeScrollContainer,\n breadcrumbWrapper,\n breadCrumb,\n scrollContainerStyle,\n scrollText,\n scrollBreadCrumbStyle,\n outSideStyle,\n scrollBoxLineHeight\n };\n },\n });\n ","import { render } from \"./Breadcrumb.vue?vue&type=template&id=65f95717&scoped=true&ts=true\"\nimport script from \"./Breadcrumb.vue?vue&type=script&lang=ts\"\nexport * from \"./Breadcrumb.vue?vue&type=script&lang=ts\"\n\nimport \"./Breadcrumb.vue?vue&type=style&index=0&id=65f95717&scoped=true&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-65f95717\"]])\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!./User.vue?vue&type=style&index=1&id=5ce90e2a&lang=scss\"","import { onMounted, reactive, ref } from 'vue';\n\ninterface Pagination {\n pageSize: number;\n page: number;\n current?: number;\n total: number;\n}\n\ninterface Params extends Partial {\n [key: string]: any;\n}\n\n/**\n * 字段不统一兼容很多格式,同一的数据格式请使用useFetchCommon\n * @param params\n * @param initData\n * @param fetchFuc\n * @param isPagination\n * @param callback\n */\nfunction useFetch(params: {}, initData: T, fetchFuc: Function, isPagination = false, callback?: Function) {\n const pagination = reactive({\n pageSize: 'pageSize' in params ? params['pageSize'] : 10,\n page: 1,\n total: 0,\n })\n const data = ref(initData);\n const refreshFetch = (page?: number): void => {\n let _params: Params = {};\n if (isPagination) {\n _params = !page ? Object.assign({}, params, pagination) : Object.assign({}, params, pagination, { page: page });\n 'total' in _params && delete _params.total;\n } else {\n _params = params;\n }\n fetchFuc({ params: _params }).then((res: any) => {\n callback && callback(res);\n //格式一\n if ('totalCount' in res && 'pageSize' in res) {\n Object.assign(pagination, { total: res.totalCount, pageSize: res.pageSize, page: res.pageAt || res.page });\n }\n //格式二\n if ('totalNum' in res && 'pageSize' in res) {\n Object.assign(pagination, { total: res.totalNum, pageSize: res.pageSize, page: res.pageAt });\n }\n //格式三\n if ('totalNum' in res && 'pageSize' in res) {\n Object.assign(pagination, { total: res.totalNum, pageSize: res.pageSize, page: res.page });\n }\n //处理返回的res.content 和 res.data\n if ('content' in res) {\n data.value = res.content;\n } else if ('data' in res) {\n data.value = res.data;\n } else {\n data.value = res;\n }\n\n })\n }\n\n onMounted(refreshFetch);\n\n return {\n pagination,\n data,\n refreshFetch\n };\n}\n\n\nexport default useFetch;\n","import {\n fetchGet,\n fetchPost,\n fetchPostPic,\n fetchGetMess,\n fetchPut,\n} from \"./index\";\nimport axios from \"axios\";\nimport type { AxiosResponse } from \"axios\";\nimport { AttachmentData } from \"@/views/Payment/FlRt/types\";\nexport const getBasicDetail = (params = {}): Promise => {\n return fetchGet(\"/rvapi/basic/apply/retailInfo\", params);\n};\nexport const getOperRecordDetail = (params = {}): Promise => {\n return fetchGet(\"/rvapi/basic/apply/operationDetails\", params);\n};\nexport const getPayountRoundByYearForSearch = (params = {}): Promise => {\n //获取查询区点击“年”的payout Round数据\n return fetchGet(\"/ptapi/overview/findPayoutRoundByYear\", params);\n};\nexport const getInitSelectedDataForSearch = (params = {}): Promise => {\n //获取初始化查询区数据\n return fetchGet(\"/ptapi/overview/initPayoutFormSelect\", params);\n};\nexport const getMBAFCTable = (params = {}): Promise => {\n //获取MBAFC列表数据\n return fetchPost(\"/ptapi/overview/list\", params);\n};\nexport const getApprovealMainTable = (params = {}): Promise => {\n //获取审批菜单主页面列表数据\n return fetchPost(\"/ptapi/overview/pendingList\", params);\n};\n\nexport const getApprovealPaymentTrackingTable = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPost(\"/ptapi/overview/trackingList\", params);\n};\n// 替换接口\nexport const getDealerTrackingList = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPost(\"/ptapi/overview/dealerTrackingList\", params);\n};\n// 替换接口\nexport const getFinanceTrackingList = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPost(\"/ptapi/overview/financeTrackingList\", params);\n};\n// 替换接口\nexport const getDealerPendingList = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPost(\"/ptapi/overview/dealer/pendingList\", params);\n};\n// 替换接口\nexport const getFinancePendingList = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPost(\"/ptapi/overview/finance/pendingList\", params);\n};\n// MBAFC pending list 替换接口\nexport const getFinanceAFCPendingList = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPost(\"/ptapi/overview/finance/AFCPendingList\", params);\n};\n// MBLC pending list 替换接口\nexport const getFinanceLCPendingList = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPost(\"/ptapi/overview/finance/LCPendingList\", params);\n};\nexport const getUploadFileData = (params = {}): Promise => {\n return fetchGet(\"/ptapi/fileList\", params);\n};\n// 删除\nexport const batchDelete = (ids: number[]): Promise => {\n return fetchPost(\"/ptapi/overview/batchDelete\", ids);\n};\n// 提交\nexport const batchSubmit = (ids: number[]): Promise => {\n return fetchPostPic(\"/ptapi/overview/batchSubmit\", ids);\n};\n// 撤回\nexport const batchWidthDraw = (data: any[]): Promise => {\n return fetchPostPic(\"/ptapi/overview/widthDraw\", data);\n};\nexport const getRetailHistory = (params = {}): Promise => {\n return fetchGet(\"/rvapi//basic/apply/retailHistory\", params);\n};\nexport const getlicenseView = (params = {}): Promise => {\n return fetchGet(\"/rvapi/basic/certificate/licenseView\", params);\n};\nexport const getInvioceView = (params = {}): Promise => {\n return fetchGet(\"/rvapi/basic/certificate/invoiceView\", params);\n};\nexport const delAttachment = (params = {}): Promise => {\n return fetchGetMess(\"/ptapi/overview/deleteFile\", params);\n};\nexport const getExportSearchResult = (params = {}): Promise => {\n return fetchPost(\"/rvapi/basic/apply/resultExport\", params);\n};\nexport const submitInvoiceFile = (\n invoiceConfig = {},\n vinNo = \"\",\n params = {}\n): Promise => {\n return fetchPost(\n \"/rvapi/basic/certificate/invoice/upload?vinNo=\" + vinNo,\n params,\n invoiceConfig\n );\n};\nexport const uploadAttachment = (\n invoiceConfig = {},\n paymentId = \"\",\n params = {}\n): Promise => {\n return fetchPostPic(\n \"/ptapi/overview/uploadFile?paymentId=\" + paymentId,\n params,\n invoiceConfig\n );\n};\nexport const submitLicenseFile = (\n licenseConfig = {},\n paymentId = \"\",\n params = {}\n): Promise => {\n return fetchPost(\n \"/ptapi/overview/uploadFile?paymentId=\" + paymentId,\n params,\n licenseConfig\n );\n};\n//#region [Payment aproval折叠面板相关接口]\n// 获取payoutRound下拉列表\nexport const fetchPaymentAprovalPendingList = (params = {}): Promise => {\n return fetchPost(\"/ptapi/overview/pendingList\", params);\n};\nexport const fetchPaymentAprovalTrackingList = (params = {}): Promise => {\n return fetchPost(\"/ptapi/overview/trackingList\", params);\n};\n\n// 此处查询round 详情数据,分为两类 mgmt为第一类 controlling/payment tracking dealer payout overview 为第二类\n// 根据传过来的payoutRound获取面板的详情(第一类)\nexport const getDealer2RoundDetail = (\n payoutRound: string\n): Promise => {\n return fetchGet(`/ptapi/detail/dealerPayoutOverview/${payoutRound}`);\n};\n// 根据传过来的payoutRound获取面板的详情(第二类)\nexport const getDealer2RoundDetailForPayout = (\n payoutRound: string\n): Promise => {\n return fetchGet(`/ptapi/detail/dealer2RoundDetail/${payoutRound}`);\n};\n// pending aprroval\nexport const getDealer2RoundDetailForPeding = (\n payoutRound: string\n): Promise => {\n return fetchGet(`/ptapi/detail/dealerPayoutOverview/${payoutRound}`);\n};\n// 审批\nexport const fetchPaymentApprove = (params = {}): Promise => {\n return fetchPostPic(\"/ptapi/overview/approve\", params);\n};\n// 拒绝审批\nexport const fetchPaymentReject = (params = {}): Promise => {\n return fetchPostPic(\"/ptapi/overview/reject\", params);\n};\n//获取MBAFC和MBLC下的payoutRound下拉框\nexport const getApprovePayoutSelectedData = (params = {}): Promise => {\n return fetchGet(\"/ptapi/overview/initSelectForApprove\", params);\n};\n//获取MBAFC和MBLC审批的列表\nexport const getApprovalMBAFCandLCTable = (params = {}): Promise => {\n //获取MBAFC和MBLC审批的列表数据\n return fetchPost(\"/ptapi/overview/overviewList\", params);\n};\n// 替换接口\nexport const getAFCTrackingList = (params = {}): Promise => {\n //获取MBAFC和MBLC审批的列表数据\n return fetchPost(\"/ptapi/overview/AFCTrackingList\", params);\n};\n// 替换接口\nexport const getLCTrackingList = (params = {}): Promise => {\n //获取MBAFC和MBLC审批的列表数据\n return fetchPost(\"/ptapi/overview/LCTrackingList\", params);\n};\n//获取Payout Code列表 add by renyin\nexport const getPayoutCodeTable = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPostPic(\"/ptapi/program/dealer/payoutCodeList\", params);\n};\n//获取Pending Create Payout Code列表 add by renyin\nexport const getPendingPayoutCodeTable = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPostPic(\"/ptapi/program/dealer/pendingPayoutCodeList\", params);\n};\n\n//获取Dealer Payout Overview列表页的初始化查询区数据 add by renyin\nexport const getSearchResultForDealerPayoutOverview = (): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchGetMess(\"/ptapi/program/dealer/init/condition\");\n};\n//获取CreatePayoutBatch编辑展示页接口 add by renyin\nexport const getCreatePayoutBatchDetail = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchGetMess(\"/ptapi/program/dealer/payoutLinkCreatePayout\", params);\n};\n//获取CreatePayoutBatch页面添加按钮接口 add by renyin\nexport const callAddPayoutBatchButton = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPostPic(\"/ptapi/program/dealer/createPayoutAddButton\", params);\n};\n//批量删除programs接口 add by renyin\nexport const batchDeletePrograms = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPostPic(\"/ptapi/program/dealer/deleteProgramCode\", params);\n};\n//批量删除payoutCode接口 add by renyin\nexport const batchDeletePayoutCodes = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPostPic(\"/ptapi/program/dealer/deletePayoutCode\", params);\n};\n//批量撤销按钮接口 add by renyin\nexport const batchWithDrawPrograms = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPostPic(\"/ptapi/program/dealer/withdraw\", params);\n};\n//批量提交programs按钮接口 add by renyin\nexport const batchSubmitPrograms = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPostPic(\"/ptapi/program/dealer/managementSubmit\", params);\n};\n//createPayoutSaveButton按钮接口 add by renyin\nexport const createPayoutSaveButton = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPostPic(\"/ptapi/program/dealer/createPayoutSaveButton\", params);\n};\n//createPayoutSubmitButton按钮接口 add by renyin\nexport const createPayoutSubmitButton = (params = {}): Promise => {\n //获取审批菜单跟踪列表数据\n return fetchPostPic(\"/ptapi/program/dealer/createPayoutSubmitButton\", params);\n};\n// 获取Dealer Payout Overview列表\nexport const getDealerPayoutOverviewList = (params = {}): Promise => {\n return fetchPost(\"/ptapi/overview/payoutOverviewList\", params);\n};\n\n// 获取F&L Payout Overview列表\nexport const getFlPayoutOverviewList = (params = {}): Promise => {\n return fetchPost(\"/ptapi/overview/flpayoutOverviewList\", params);\n};\n//#endregion\n\n//#region [Payment BU相关接口]\nexport const getDealerDataList = (buId: number): Promise => {\n return fetchGet(\"/dapi/noAuth/dealer/dealerData\", { params: { buId } });\n};\nexport const getListDealerNumber = (params = {}): Promise => {\n return fetchGet(\"/ptapi/detail/listDealerNumberDetail\", params);\n};\n// 查询F&L列表接口\nexport const getBuFlPayoutOverviewList = (params = {}): Promise => {\n return fetchPost(\"/ptapi/overview/buFlPayoutOverviewList\", params);\n};\n// 初始化年月\nexport const getDealerPayoutCondition = (): Promise => {\n return fetchGet(\"/ptapi/program/dealer/init/condition\");\n};\nexport const getRoundListByDate = (params = {}): Promise => {\n return fetchGet(\"/ptapi/payoutRound/list\", params);\n};\n// [OASIS-20680]\nexport const getRoundListByDateApprove = (params = {}): Promise => {\n return fetchPost(\"/ptapi/payoutRound/list/condition/approve\", params);\n};\n// BBAC 获取round list的替换接口 需传入status列表\nexport const getRoundListByDateAndStatus = (params = {}): Promise => {\n return fetchPost(\"/ptapi/payoutRound/list/condition\", params);\n};\nexport const getCodeListByRound = (\n payoutRound: string | null\n): Promise => {\n return fetchPost(\n \"/ptapi/overview/payout/code/list?payoutRound=\" + payoutRound\n );\n};\nexport const getInitCondition = (): Promise => {\n return fetchGet(\"/ptapi/program/dealer/init/condition\");\n};\nexport const getPayoutRoundListApproved = (params = {}): Promise => {\n return fetchPost(\n \"/apapi/payment/approval/getPayoutRoundListApproved\",\n params\n );\n};\nexport const getPayoutRoundListNotApproved = (params = {}): Promise => {\n return fetchPost(\n \"/apapi/payment/approval/getPayoutRoundListNotApproved\",\n params\n );\n};\n// 获取payoutRound的Year列表信息\nexport const getRoundYearList = (): Promise => {\n return fetchGet(\"/ptapi/payoutRound/year/list\");\n};\n// 根据年条件获取payout_round金融列表\nexport const getRoundFinanceList = (params = {}): Promise => {\n return fetchGet(\"/ptapi/payoutRound/finance/list\", params);\n};\n// 获取最新dealer的payoutRound信息\nexport const getDealerNewRound = (): Promise => {\n return fetchGet(\"/ptapi/payoutRound/dealer/new\");\n};\n// F&L 点击payoutCode下载\nexport const getPayoutCodeExcel = (params = {}): Promise => {\n return fetchPost(\"/ptapi/detail/excel\", params);\n};\n// bu management 补充接口\n// 通过BUs和entity查询可用审批流,返回buList\nexport const getListChainByEntityAndBus = (params = {}): Promise => {\n return fetchPost(\"/apapi/payment/approval/listChainByEntityAndBus\", params);\n};\n//#endregion\n\n//#region [Payment Sales相关接口]\n// Sales页面列表\nexport const getSalesOverviewList = (params = {}): Promise => {\n console.log(\"params: \", params);\n\n return fetchPost(\"/ptapi/overview/salesOverviewList\", params);\n};\n\n// Vehicle页面列表\nexport const getVehicleList = (params = {}): Promise => {\n console.log(\"params: \", params);\n\n return fetchPost(\"/ptapi/vehicle/vendorList\", params);\n};\n\n// Vendor页面列表\nexport const getVendorList = (params = {}): Promise => {\n console.log(\"params: \", params);\n\n return fetchPost(\"/ptapi/vendor/vendorList\", params);\n};\n\n// Sales页面Release to Dealer按钮\nexport const paymentRelease2Dealer = (params = {}): Promise => {\n console.log(\"params: \", params);\n\n return fetchPost(\"/ptapi/program/dealer/paymentRelease2Dealer\", params);\n};\n\n// Sales页面下载按钮文件列表\nexport const getDownloadFileList = (entity: string): Promise => {\n return fetchPost(\"/ptapi/export/excel/document?entity=\" + entity);\n};\n\n// Sales页面上传按钮上传文件\nexport const getSalesUploadFile = (\n payoutRound: string,\n formData: FormData,\n entity: string\n): Promise => {\n return fetchPostPic(`/ptapi/upload/sales`, formData, {\n params: { payoutRound, entity },\n });\n};\n\n// Sales页面上传按钮文件列表:根据source获取文件列表\nexport const getFileList = (\n payoutRound: string,\n source: string\n): Promise => {\n return fetchGet(`/ptapi/file/list/${payoutRound}/${source}`);\n};\n\n// Sales页面上传按钮下载文件\nexport const getSalesDownloadFile = (fileId: string): Promise => {\n return fetchGet(`/ptapi/download/document/${fileId}`);\n};\n\nexport const getDealerBreakdownAttachmentFile = (\n fileId: string\n): Promise => {\n return fetchGet(`/ptapi/download/document/watermark/${fileId}`);\n};\n\n// Sales页面上传按钮删除文件\nexport const getSalesDeleteFile = (fileId: string): Promise => {\n return fetchGet(`/ptapi/delete/document/${fileId}`);\n};\n\n// Voucher页面列表\nexport const getVoucherList = (params = {}): Promise => {\n console.log(\"params: \", params);\n\n return fetchPost(\"/ptapi/voucher/voucherList\", params);\n};\n\n// Voucher页面文件上传(校验 + 保存)\nexport const importVoucher = (\n formData: FormData,\n params = {}\n): Promise => {\n console.log(\"params: \", formData, params);\n\n return fetchPostPic(\"/ptapi/voucher/importFile\", formData, { params });\n};\n\n// Voucher页面列表文件上传(校验)\nexport const uploadVoucher = (\n formData: FormData,\n params = {}\n): Promise => {\n console.log(\"params: \", formData, params);\n\n return fetchPostPic(\"/ptapi/voucher/uploadFile\", formData, { params });\n};\n// 经销商付款准备文件\nexport const dealerBreakdownList = (params = {}): Promise => {\n return fetchPost(\n \"/ptapi/dealer/approve/dealerBreakdownOverview/list/dealer\",\n params\n );\n};\n// Dealer Breakdown Overview(sales)页面下拉值初始化\nexport const salesBreakDownInitSelect = (entity: string): Promise => {\n return fetchGet(\"/ptapi/dealer/approve/dealerBreakdownOverview/initSelect\", {\n params: { entity },\n });\n};\n// Dealer Breakdown Overview(sales)页面payoutRound中文\nexport const getDealerApproveRoundNameCN = (): Promise => {\n return fetchGet(\"/ptapi/payoutRound/dealer/approve/nameCN\");\n};\n\n// Dealer Breakdown Overview(sales)页面列表\nexport const salesBreakDownList = (params = {}): Promise => {\n return fetchPost(\n \"/ptapi/dealer/approve/dealerBreakdownOverview/list\",\n params\n );\n};\n\n// Dealer Breakdown Overview(sales)文件列表\nexport const salesBreakDownFileList = (params = {}): Promise => {\n return fetchGet(\n \"/ptapi/dealer/approve/dealerBreakdownOverview/fileNameList\",\n { params }\n );\n};\n\n// Dealer Breakdown Overview(sales)批量release\nexport const salesBreakDownBatchRelease = (params = {}, config = {}): Promise => {\n return fetchPostPic(\n \"/ptapi/dealer/approve/dealerBreakdownOverview/batchRelease\",\n params, config\n );\n};\n\n// Dealer Breakdown Overview(sales)批量withdraw\nexport const salesBreakDownBatchWithdraw = (params = {}): Promise => {\n return fetchPostPic(\n \"/ptapi/dealer/approve/dealerBreakdownOverview/batchWithdraw\",\n params\n );\n};\n\n// Dealer Breakdown Overview(sales) Approve\nexport const salesBreakDownApprove = (params = {}) => {\n return fetchGetMess(\n \"/ptapi/dealer/approve/dealerBreakdownOverview/file/approve\",\n { params }\n );\n};\n\n// Dealer Breakdown Overview(sales) Reject\nexport const salesBreakDownReject = (params = {}) => {\n return fetchGetMess(\n \"/ptapi/dealer/approve/dealerBreakdownOverview/file/reject\",\n { params }\n );\n};\n\n// Dealer Breakdown Overview(sales) Reject comment话术列表\nexport const salesBreakDownCommentList = () => {\n return fetchGet(\n \"/ptapi/dealer/approve/dealerBreakdownOverview/rejectCommentList\"\n );\n};\n\n// Dealer Breakdown 详情 Breakdown列表\nexport const breakDownDetailList = (params = {}): Promise => {\n return fetchPost(\"/ptapi/dealer/approve/dealerDetailList\", {}, { params });\n};\n\n// Dealer Breakdown 详情 根据dealerDetailApproveId获取上传附件列表\nexport const breakDownDetailFileList = (\n dealerDetailApproveId: string\n): Promise => {\n return fetchGet(`/ptapi/dealer/approve/file/list/${dealerDetailApproveId}`);\n};\n\n// Dealer Breakdown 详情 Approve\nexport const breakDownDetailApprove = (params = {}, formData: FormData) => {\n return fetchPostPic(\n \"/ptapi/dealer/approve/dealerUploadFile/submit/confirm\",\n formData,\n { params }\n );\n};\n\n// Dealer Breakdown 详情 Reject\nexport const breakDownDetailReject = (params = {}) => {\n return fetchGetMess(\"/ptapi/dealer/approve/dealerUploadFile/submit/reject\", {\n params,\n });\n};\n\n// Dealer Breakdown 车辆明细下载\nexport const paymentClaimExport = (params = {}) => {\n return axios.post(\"/ptapi/vehicle/paymentClaimExport\", params, {\n responseType: \"blob\",\n });\n};\n\n// DGRC Accounting 列表\nexport const getTrackingLogicList = (\n params = {},\n currPage: number,\n pageSize: number\n): Promise => {\n return fetchPost(\n `/ptapi/overview/trackingLogicList/${currPage}/${pageSize}`,\n params\n );\n};\n// export const fetchDgrcDownloadList = (params = {}): Promise => {\n// return fetchPost('/ptapi/vendor/vendorListA3', params);\n// }\nexport const fetchDgrcDownloadList = (params = {}): Promise => {\n return fetchGet(\"/ptapi/file/list/source/upload_tracking_log\");\n // return fetchGet('/ptapi/file/list/date/2021-03-04/upload_tracking_log');\n};\n// 删除\nexport const deleteDgrcUploadFile = (id: string): Promise => {\n return fetchGet(`/ptapi/delete/document/${id}`);\n};\n//#endregion\n\n//#region [Payment 移动端相关接口]\nexport const getPendingDetailAL = (payoutCode: any): Promise => {\n return fetchPost(`/ptapi/detail/detailAL?payoutCode=${payoutCode}`);\n};\n\nexport const getPendingDetailD = (id: any): Promise => {\n return fetchPost(\"/ptapi/detail/detailD?id=\" + id);\n};\n// 查询金融详情\nexport const getFinanceDetail = (payoutCodeId: string): Promise => {\n return fetchPost(\"/ptapi/detail/finance?payoutCodeId=\" + payoutCodeId);\n};\n// 查dealer\nexport const getDealerDetail = (payoutCodeId: string): Promise => {\n return fetchPost(\"/ptapi/detail/dealer?payoutCodeId=\" + payoutCodeId);\n};\n//#endregion\n//#region [Dealer Setting相关接口]\n// DealerSetting 条件查询\nexport const fetchListDealerSettingSIPayout = (params = {}): Promise => {\n return fetchPost(\"/ptapi/dealer/setting/listDealerSetting\", params);\n};\n// DealerSetting 条件查询 替换接口\nexport const fetchListDealerSetting = (params = {}): Promise => {\n return fetchPost(\"/ptapi/dealer/setting/dealerStatusTracking\", params);\n};\n// payment tracking -- dealer status tracking 接口替换\nexport const fetchListDealerSettingForTracking = (\n payoutRound: string,\n entity: string\n) => {\n return fetchPost(`/ptapi/dealer/setting/dealerStatusTracking`, {\n payoutRound,\n entity,\n });\n};\n//#endregion\n// 获取DCN模板设置\nexport const getDcnTemplate = (entity: string, payoutRound: string) => {\n return fetchGet(`/ptapi/dcn/template/${entity}/${payoutRound}`);\n};\n// 保存DCN模板设置\nexport const setDcnTemplate = (entity: string, payoutRound: string, data: unknown[]) => {\n console.log(\"request entity:\"+ entity + \"payoutRound:\"+ payoutRound);\n return fetchPost(\"/ptapi/dcn/template/add\", data, { params: { 'entity': entity, 'payoutRound': payoutRound } });\n};\n// 上传DCN模板文件\nexport const uploadDcnTemplate = (params: object) => {\n return fetchPost(\"/ptapi/upload/dcnTemplate\", params);\n};\n\nexport const downloadPayoutCodeFile = (payoutCodes: string[] | string) => {\n const payoutCodeParam = Array.isArray(payoutCodes)\n ? payoutCodes\n : [payoutCodes];\n return axios.post(\n \"/ptapi/program/dealer/excelByCode\",\n {},\n {\n params: { payoutCode: payoutCodeParam.join(\",\") },\n responseType: \"blob\",\n }\n );\n};\n\nexport const downloadPendingDealerPayoutCodeFile = (payoutCode: string) => {\n return axios.get(\"/ptapi/export/pending/download/dealer\", {\n params: { payoutCode },\n responseType: \"blob\",\n });\n};\n\nexport const downloadPendingAFCPayoutCodeFile = (payoutCode: string) => {\n return axios.get(\"/ptapi/export/pending/download/afc\", {\n params: { payoutCode },\n responseType: \"blob\",\n });\n};\n\n//#region Dealer Status Tracking收藏查询条件\n// 增加条件数据\nexport const saveConditionDealerStatus = (params: object) => {\n return fetchPost(\"/ptapi/condition/saveConditionDealerStatus\", params);\n};\n\n// 删除条件数据\nexport const deleteCondition = (id: string) => {\n return fetchGet(`/ptapi/condition/deleteCondition/${id}`);\n};\n\n// 查询条件数据\nexport const conditionAllDealerStatus = () => {\n return fetchGet(\"/ptapi/condition/conditionAllDealerStatus\");\n};\n//#endregion\n\n// 生成Round Summary Page version\nexport const addSummaryLog = (params: object) => {\n return fetchPost(\"/ptapi/summary/log/add\", params);\n};\n\n// 获取Round Summary Page version列表\nexport const getSummaryLogList = (payoutRound: string, entity: string) => {\n return fetchGet(`/ptapi/summary/log/list/${payoutRound}/${entity}`);\n};\n\n// 下载Round Summary\nexport const downloadPayOutSummaryByVersion = (\n payoutRound: string,\n versionNameList: string[],\n entity: string\n) => {\n return axios.get(\"/ptapi/export/summary/version/download/dealer\", {\n params: { payoutRound, versionNameList, entity },\n responseType: \"blob\",\n });\n};\n//A3 tracking 附件列表接口\nexport const getUploadFileDataResut = (\n payoutRound: string,\n source = \"upload_tracking_log\"\n): Promise => {\n return fetchGetMess(`/ptapi/file/list/${payoutRound}/${source}`);\n};\n//A3 tracking 预览接口\nexport const getPreviewExcel = (\n payoutRound: string,\n dealerCode: string\n): Promise => {\n return fetchGet(`/ptapi/previewExcelFile/{payoutRound}/{dealerCode}`);\n};\n//A3 tracking 根据日期查询附件列表\nexport const getUploadFilesByDate = (\n dateStr: string,\n source = \"upload_tracking_log\"\n): Promise => {\n return fetchGet(`/ptapi/file/list/date/${dateStr}/${source}`);\n};\n//A3 tracking 附件更新接口\nexport const updateAttachmentInfo = (\n fileId: string,\n payoutRound: string\n): Promise => {\n return fetchGetMess(\n \"/ptapi/dealer/approve/tracking/update?fileId=\" +\n fileId +\n \"&payoutRound=\" +\n payoutRound\n );\n};\n//A3 tracking 附件删除接口----\nexport const deleteAttachmentInfo = (\n fileId: string\n): Promise => {\n return fetchGet(`/ptapi/delete/document/${fileId}`);\n};\n//A3 tracking 附件下载接口\nexport const downloadAttachmentInfo = (\n fileId: string\n): Promise => {\n return fetchGet(`/ptapi/download/document/${fileId}`);\n};\n//A3 tracking 附件下载接口(返回流)\nexport const downloadAttachment = (fileId: string): Promise<{ data: Blob }> => {\n return axios.get(\"/ptapi/downloadFile\", {\n params: { fileId },\n responseType: \"blob\",\n });\n};\nexport const downloadAttachmentWatermark = (\n fileId: string\n): Promise<{ data: Blob }> => {\n return axios.get(\"/ptapi/downloadFile/watermark\", {\n params: { fileId },\n responseType: \"blob\",\n });\n};\nexport const downloadOverviewPayoutCodeSheet = (\n payoutCodes: string[] | string\n) => {\n const payoutCodeParam = (\n Array.isArray(payoutCodes) ? payoutCodes : [payoutCodes]\n ).join(\",\");\n return axios.get(`/ptapi/overview/clickPayoutCodeSheet/${payoutCodeParam}`, {\n responseType: \"blob\",\n });\n};\n//#region审批流相关接口\n\n//根据payoutCodeId获取审批流内容供前台展示图使用\nexport const getApprovalPackage = (payoutCodeId: string) => {\n return fetchGetMess(\n `/apapi/payment/approval/getApprovalPackage/${payoutCodeId}`\n );\n};\n//根据payoutCodeId获取审批流内容供前台展示图使用(created状态)\nexport const getApprovalPackageByCreated = (params: object) => {\n return fetchPostPic(`/ptapi/overview/fetchCreateStatusChain`, params);\n};\n//审批通过\nexport const chainApprove = (params: object) => {\n return fetchPostPic(\"/apapi/payment/approval/approvalPackageList\", params);\n};\n//审批拒绝\nexport const chainReject = (params: object) => {\n return fetchPostPic(\"/apapi/payment/approval/rejectApproval\", params);\n};\n//审批撤销\nexport const chainWithdraw = (params: object) => {\n return fetchPostPic(\"/apapi/payment/approval/withdrawApproval\", params);\n};\n//#endregion\n\n//#region sales management 需求变更接口\nexport const getPayoutRoundByYear = (year: string, entity: string) => {\n return fetchGet(\n `/ptapi/payout/Application/initPayoutRoundSelect?year=${year}&entity=${entity}`\n );\n};\nexport const getDealerSalesStatus = (): Promise => {\n return fetchGet(\"/ptapi/payout/Application/initStatusList\");\n};\nexport const getSalesList = (params = {}): Promise => {\n return fetchPost(\"/ptapi/payout/Application/salesOverviewList\", params);\n};\nexport const getSetList = (entity: string): Promise => {\n return fetchGet(`/ptapi/payout/Application/initSetList?entity=${entity}`);\n};\nexport const getPayoutCodeStatus = (params = {}): Promise => {\n return fetchPost(\"/ptapi/payout/Application/payoutCodeStatus\", params);\n};\n//#endregion\n// 通过round和entity查询code\nexport const getPayoutCodeListByPayoutRoundAndEntity = (\n payoutRound: string,\n entity: string\n): Promise => {\n return fetchPost(\n `/ptapi/overview/payout/entity/code/list?payoutRound=${payoutRound}&entity=${entity}`\n );\n};\n// Entity SI Payout Application next confirm后调用的接口\nexport const getDealerBreakdownOverview = (\n entity: string,\n payoutRound: string\n): Promise => {\n return fetchGet(\n `/ptapi/dealer/approve/dealerBreakdownOverview/next/confirm?entity=${entity}&payoutRound=${payoutRound}`\n );\n};\n// 下载 sample check form\nexport const getProgramOfferTypeByPayoutRound = (\n payoutRound: string\n): Promise => {\n return fetchGet(\n `/ptapi/program/dealer/getProgramOfferTypeByPayoutRound?payoutRound=${payoutRound}`\n );\n};\n// 校验Signed A3文件是否可下载\nexport const summaryLogCheck = (payoutRound: string, entity: string) => {\n return fetchGet(`/ptapi/summary/log/check/${payoutRound}/${entity}`, {\n params: {\n entity,\n payoutRound,\n },\n });\n};\n// Payment Overview下载\nexport const downloadPaymentOverview = (\n payoutRound: string\n): Promise> => {\n return axios.get(`/ptapi/export/downloadPaymentOverview`, {\n params: {\n payoutRound,\n },\n responseType: \"blob\",\n });\n};\n// Historical Red Invoice Notice Readiness payoutRound列表\nexport const redInvoiceNoticePayoutRoundList = (\n entity = \"MBCL\"\n): Promise => {\n return fetchPost(\"/ptapi/uploadRedInvoiceNoticeReceivedLog/payoutRoundList\", {\n entity,\n });\n};\n// Historical Red Invoice Notice Readiness 列表\nexport const redInvoiceNoticeList = (\n payoutRound: string,\n dealerCode: string,\n dealerName: string,\n pageNumber: number,\n pageSize: number,\n entity = \"MBCL\"\n): Promise => {\n return fetchPost(\"/ptapi/uploadRedInvoiceNoticeReceivedLog/list\", {\n payoutRound,\n dealerCode,\n dealerName,\n pageNumber,\n pageSize,\n entity,\n });\n};\n// Historical Red Invoice Notice Readiness 导出\nexport const redInvoiceNoticeExport = (\n payoutRound: string,\n dealerCode: string,\n dealerName: string,\n entity = \"MBCL\"\n): Promise => {\n return axios.post(\n \"/ptapi/uploadRedInvoiceNoticeReceivedLog/export\",\n {\n payoutRound,\n dealerCode,\n dealerName,\n entity,\n },\n {\n responseType: \"blob\",\n }\n );\n};\nexport const getVendorCodeBlankButtonHighlight = (payoutRound: string): Promise => {\n return fetchGet(`/ptapi/vendor/vendor-code-blank-button-highlight/${payoutRound}`);\n};\nexport const getVendorCodeBlankList = (payoutRound: string): Promise => {\n return fetchGet(`/ptapi/vendor/vendor-code-blank-list/${payoutRound}`);\n};\nexport const getDealerNameUpdateButtonHighlight = (params: object) => {\n return fetchPost(\n `/ptapi/program/dealer/dealer-name-update-button-heighlight`,\n params\n );\n};\nexport const getDealerNameUpdateList = (params: object): Promise => {\n return fetchPost(\"/ptapi/program/dealer/dealer-name-change-list\", params);\n};\nexport const getReleaseListApi = (\n payoutRound: any,\n entity: any\n): Promise => {\n return fetchGet(\n `/ptapi/demo-car-deduction/${entity}/${payoutRound}/candidate-release-rounds`\n );\n};\nexport const generateFileApi = (data: object): Promise => {\n return fetchPost(\"/ptapi/demo-car-deduction/confirm-release-round\", data);\n};\nexport const getPreviewDataApi = (\n releaseRound: any,\n entity: any\n): Promise => {\n return fetchGet(\n `/ptapi/demo-car-deduction/${entity}/${releaseRound}/preview`\n );\n};\nexport const postReleaseApi = (\n releaseRound: any,\n entity: any\n): Promise => {\n return fetchPost(\n `/ptapi/demo-car-deduction/${entity}/${releaseRound}/release`\n );\n};\nexport const getDCDDealersApi = (params: any = {}): Promise => {\n return fetchGet(\n `/ptapi/demo-car-deduction/dealers`, { params }\n );\n};\nexport const putDCDReleaseApi = (releaseRound: string, entity: string, dealerCodes: []): Promise => {\n return fetchPut(`/ptapi/demo-car-deduction/dealers/release`, {}, {\n params: {\n releaseRound,\n entity,\n dealerCodes\n }\n });\n};\nexport const putDCDWithdrawApi = (releaseRound: string, entity: string, dealerCodes: []): Promise => {\n return fetchPut(`/ptapi/demo-car-deduction/dealers/withdraw`, {}, {\n params: {\n releaseRound,\n entity,\n dealerCodes\n }\n });\n};\nexport const demoCarDeductionDealerDownload = (releaseRound: string, entity: string, dealerCode: string): Promise> => {\n return axios.get(`/ptapi/demo-car-deduction/${entity}/${releaseRound}/${dealerCode}/dealer-download`, {\n responseType: \"blob\",\n });\n};\nexport const demoCarDeductionDownload = (releaseRound: string, entity: string, fileId: string[]): Promise> => {\n return axios.get(`/ptapi/demo-car-deduction/${entity}/${releaseRound}/download`, {\n params: {\n fileId\n },\n responseType: \"blob\",\n });\n};\nexport const getDemoCarDeductionFileList = (\n releaseRound: any,\n entity: any\n): Promise => {\n return fetchGet(\n `/ptapi/demo-car-deduction/${entity}/${releaseRound}/file-list`\n );\n};\nexport const getDemoCarDeductionZipFileDisplay = (\n entity: any,\n releaseRound: any\n): Promise => {\n return fetchGet(\n `/ptapi/demo-car-deduction/${entity}/${releaseRound}/zip-file-display`\n );\n};\nexport const exportCheck400Code = (params = {}): Promise => {\n return fetchGet(\"/ptapi/export/check400Code\", {\n params\n });\n};\nexport const download400CodeCheckFailed = (params = {}): Promise => {\n return axios.get(\"/ptapi/export/download400CodeCheckFailed\", {\n params,\n responseType: \"blob\",\n });\n};\nexport const getLastSubmissionDeadline = (payoutRound: string) => {\n return fetchGet(`/ptapi/dealer/approve/getLastSubmissionDeadline/${payoutRound}`);\n}\nexport const getSubmissionByRound = (payoutRound: string) => {\n return fetchGet(`/ptapi/dealer/approve/getSubmissionByRound/${payoutRound}`);\n}\nexport const updateNormalDealerDpStatus = (params = {}): Promise => {\n return fetchPostPic(\"ptapi/normal-dealer-readiness-setting/auto-dp-status-process\", {}, params);\n}\n\nexport const updateNormalDealerTemplate = (params: FormData): Promise => {\n return fetchPost(\"ptapi/normal-dealer-readiness-setting/manual-dp-status-process\", params);\n}\n//走马灯\nexport const getNowActiveLampData = (): Promise => {\n return fetchGet('/ptapi/lamp/getNowActiveLamp');\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!./OfferFleet.vue?vue&type=style&index=0&id=405f177f&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!./User.vue?vue&type=style&index=0&id=5ce90e2a&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!./User.vue?vue&type=style&index=0&id=0e69d3ae&lang=scss&scoped=true\"","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","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!./NavigationBar.vue?vue&type=style&index=0&id=5e64bd91&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./OfferList.vue?vue&type=style&index=0&id=68d5dede&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./SideNav.vue?vue&type=style&index=0&id=5803f4ca&lang=scss\"","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass } from \"vue\"\nimport _imports_0 from '@/assets/images/fulfill.svg'\nimport _imports_1 from '@/assets/images/pending.svg'\nimport _imports_2 from '@/assets/images/reject.svg'\n\n\nconst _hoisted_1 = { class: \"navbar\" }\nconst _hoisted_2 = { id: \"mian\" }\nconst _hoisted_3 = { style: {\"font-size\":\"16px\",\"font-weight\":\"600\"} }\nconst _hoisted_4 = {\n key: 0,\n class: \"icon-img\"\n}\nconst _hoisted_5 = {\n key: 0,\n src: _imports_0,\n alt: \"\"\n}\nconst _hoisted_6 = {\n key: 1,\n src: _imports_1,\n alt: \"\"\n}\nconst _hoisted_7 = {\n key: 2,\n src: _imports_2,\n alt: \"\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_tooltip = _resolveComponent(\"a-tooltip\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_a_badge = _resolveComponent(\"a-badge\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.navArr, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: \"navtag\",\n key: item.id\n }, [\n _createVNode(_component_a_badge, {\n count: item.count\n }, {\n default: _withCtx(() => [\n _createVNode(_component_router_link, {\n to: item.query ? { path: item.path, query: { pgmId: item.query.pgmId } } : item.path,\n onClick: ($event: any) => (_ctx.routeSelect(item.id)),\n class: _normalizeClass(item.disabled ? 'a-disabled' : '')\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(item.title), 1),\n (!item.disabled)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, [\n _createVNode(_component_a_tooltip, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.toolTipContent), 1)\n ]),\n default: _withCtx(() => [\n (item.status === 'fulfill')\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_5))\n : (item.status === 'pending')\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_6))\n : (_openBlock(), _createElementBlock(\"img\", _hoisted_7))\n ]),\n _: 2\n }, 1024)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1032, [\"to\", \"onClick\", \"class\"])\n ]),\n _: 2\n }, 1032, [\"count\"])\n ]))\n }), 128))\n ])\n ])\n ]))\n}","\nimport { defineComponent, PropType } from 'vue';\nimport { NavbarProps } from '@/API/types';\nexport default defineComponent({\n props: {\n navArr: {\n default: () => [],\n type: Array as PropType\n },\n activeKey: {\n type: String\n }\n },\n name: 'Navigation Bar',\n setup(props, { emit }) {\n const routeSelect = (id: any) => {\n emit('update:activeKey', id);\n };\n return { routeSelect };\n }\n});\n","import { render } from \"./NavigationBar.vue?vue&type=template&id=5e64bd91&ts=true\"\nimport script from \"./NavigationBar.vue?vue&type=script&lang=ts\"\nexport * from \"./NavigationBar.vue?vue&type=script&lang=ts\"\n\nimport \"./NavigationBar.vue?vue&type=style&index=0&id=5e64bd91&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import {\n fetchGet,\n fetchGetMess,\n fetchPost,\n fetchPostPic,\n fetchPut,\n} from \"./index\";\nimport axios from \"axios\";\n// 获取 fa maintain的数据\n\n// 获取Approval Chain Setting列表\nexport const getApprovalChainSetting = (roleType: string) => {\n console.log(\"roleType====\", roleType);\n return fetchPostPic(\"/apapi/RoleSetting/approvalRole?roleType=\" + roleType);\n};\n// 插入角色- FL\nexport const insertFLRole = (params = {}) => {\n return fetchPostPic(\"/apapi/RoleSetting/insertFLRole\", params);\n};\n// 插入角色- Normal\nexport const insertNormalRole = (params = {}) => {\n return fetchPostPic(\"/apapi/RoleSetting/insertNormalRole\", params);\n};\n// 更新角色- Normal\nexport const updateNormalRole = (params = {}) => {\n return fetchPostPic(\"/apapi/RoleSetting/updateNormalRole\", params);\n};\n// 更新角色- FL\nexport const updateFLRole = (params = {}) => {\n return fetchPost(\"/apapi/RoleSetting/updateFLRole\", params);\n};\n// 获取Role编辑详情\nexport const getRoleDetail = (roleId: string, roleType: string) => {\n console.log(\"roleType====\", roleId, roleType);\n return fetchPostPic(\n \"/apapi/RoleSetting/editRole?roleId=\" + roleId + \"&roleType=\" + roleType\n );\n};\n// 删除Role\nexport const deleteRoleDetail = (params = {}) => {\n return fetchPostPic(\"/apapi/RoleSetting/deleteRole\", params);\n};\n//下载fl\nexport const downloadNormal = (payoutCode: string) => {\n return axios.get(\"/apapi/RoleSetting/downloadApprovalRoleDetailExcel\", {\n params: { payoutCode },\n responseType: \"blob\",\n });\n};\n//下载Normal\nexport const downloadFL = (payoutCode: string) => {\n return axios.get(\"/apapi/RoleSetting/downloadFLRoleDetailExcel\", {\n params: { payoutCode },\n responseType: \"blob\",\n });\n};\n// 保存fa setting 的配置\nexport const saveFaSetting = (\n brand: string,\n buId: string,\n sheetName: string,\n programId: string | number,\n tableId: string | number,\n params = {}\n) => {\n return fetchPost(\n `pgapi/setting/commu_stting/${brand}/${buId}/${sheetName}/${programId}/${tableId}/save`,\n params\n );\n};\n// 查询version 信息\nexport const getVersionList = (params = {}) => {\n return fetchGet(\"/pgapi/prog/setting/fa/getVersionList\", params);\n};\n//#region [program]\n// 查询program列表\nexport const getListProgramApproval = (params = {}) => {\n return fetchPost(\"/apapi/approvalSetting/listProgramApproval\", params);\n};\n// 切换工作流状态\nexport const ToActiveApprovalChain = (chainId: string) => {\n return fetchGetMess(`/apapi/approvalSetting/activeApprovalChain/${chainId}`);\n};\nexport const ToInactiveApprovalChain = (chainId: string) => {\n return fetchGetMess(\n `/apapi/approvalSetting/inactiveApprovalChain/${chainId}`\n );\n};\n// 新增工作流\nexport const addNewApprovalChain = (params = {}) => {\n return fetchPostPic(\"/apapi/approvalSetting/addNewApprovalChain\", params);\n};\nexport const newVersionForCopy = (params = {}) => {\n return fetchPostPic(\"/apapi/approvalSetting/newVersionForCopy\", params);\n};\n//#endregion\n//#region [payout]\n// 查询FL列表\nexport const getListFLPayoutApproval = (params = {}) => {\n return fetchPost(\"/apapi/approvalSetting/listFLPayoutApproval\", params);\n};\n// 查询Dealer列表\nexport const getListDealerPayoutApproval = (params = {}) => {\n return fetchPost(\"/apapi/approvalSetting/listDealerPayoutApproval\", params);\n};\n//#endregion\n\n// 获取审批流详细信息\nexport const getApprovalChainDetail = (chainId: string) => {\n return fetchGet(\n \"/apapi/approvalSetting/getDetailApprovalChainInfo?approvalBusinessId=\" +\n chainId\n );\n};\n// 获取当前生效日期\nexport const getEffectiveInfo = (businessId: string) => {\n return fetchGet(\n \"/apapi/approvalSetting/effectiveInfoSearch?businessId=\" + businessId\n );\n};\n// 获取approvalRole下拉列表--by user\nexport const getAllRolesByUser = (chainId = \"\", userId: string) => {\n return fetchGet(\"/apapi/approvalSetting/getAllRoleSelective\", {\n params: { chainId, userId },\n });\n};\n// 获取user下拉列表--by role\nexport const getAllUsersByRole = (\n chainId = \"\",\n roleId = \"\",\n searchKey = \"\"\n) => {\n return fetchGet(\"/apapi/approvalSetting/getAllUserSelective\", {\n params: { chainId, roleId, searchKey },\n });\n};\n// 保存审批流- Normal\nexport const saveApprovalRole = (params = {}) => {\n return fetchPostPic(\"/apapi/approvalSetting/saveData\", params);\n};\n//校验编辑审批流\nexport const editableCheckApprovalChain = (chainId: string) => {\n return fetchGetMess(\"/apapi/approvalSetting/editableCheck\", {\n params: { chainId },\n });\n};\n//新增审批流-version\nexport const addApprovalChainNewVersion = (params = {}) => {\n return fetchPostPic(\"/apapi/approvalSetting/newVersion\", params);\n};\n// 查询有效版本等信息\nexport const getEffectiveDate = (businessId: string) => {\n return fetchGet(\"/apapi/approvalSetting/getEffectiveDate\", {\n params: { businessId },\n });\n};\n\nexport const getCopiedApprovalChainName = (type: number) => {\n return fetchGet(\"/apapi/approvalSetting/getEffectiveDate\", {\n params: { type },\n });\n};\n\n// 查询BU列表\nexport const getBuList = () => {\n return fetchGet(\"/usapi/noAuth/bu/list\");\n};\n// 查询BU树\nexport const getBuTreeList = () => {\n return fetchGet(\"/usapi/noAuth/bu/treeList\");\n};\n// 查询user\nexport const getUserList = (userName: string) => {\n return fetchGet(`/usapi/users/${userName}`);\n};","module.exports = __webpack_public_path__ + \"img/submit-icon.07362586.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!./AddOfferRight.vue?vue&type=style&index=0&id=40342c38&lang=scss\"","module.exports = __webpack_public_path__ + \"img/header-bg.96b67ab7.jpg\";","import { reactive, onMounted, toRefs } from 'vue';\n\ninterface TablePosition {\n tableHeight: number;\n}\n\n/**\n *\n * @param othersDom 分页的class或者其他的 class .pagination-container\n * @param isOthersDom 是否获取其他的dom\n */\nfunction useTableHeight(isOthersDom = true, othersDom = '.pagination-container', isResizeHandler = false) {\n const tablePosition = reactive({tableHeight: 200});\n const resizeHandler = (): void => {\n try {\n let paginationHeight = 0;\n const clientHeight: number = document.body.clientHeight;\n const tableOffsetTop: number = (document.querySelector('.ant-table') as HTMLDivElement).getBoundingClientRect().top;\n const tableTheadHeight: number = (document.querySelector('.ant-table-thead') as HTMLDivElement).offsetHeight;\n if (othersDom && isOthersDom) {\n paginationHeight = (document.querySelector(othersDom) as HTMLUListElement)?.offsetHeight;\n }\n tablePosition.tableHeight = clientHeight - tableOffsetTop - paginationHeight - tableTheadHeight - 5;\n } catch (e) {\n console.log(e)\n }\n }\n onMounted(() => {\n window.addEventListener('resize', resizeHandler);\n resizeHandler();\n })\n if (isResizeHandler) {\n resizeHandler()\n }\n return toRefs(tablePosition);\n}\n\nexport default useTableHeight;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAGAAAAADiNXWtAAAAnElEQVRIDWNkuPqfjeHmxyYGhv9xDP8ZJBmoARgZnjMwMC5iUOevY2RY96GD4f//cmqYi2EGI2Mn0IL3z6jmcnQbgD5hopnhIMuAQc6Ebim1+aMWEAzR0SAiGEQsuFT8DxLAJYVVnHHdB6ziNI8DnD7A5SKszsQjSHMfjFqAJ/QhUqNBREQQgStogurIUwCuMkG1P80A4yJGWjdbAL2jJXOgfbJ9AAAAAElFTkSuQmCC\"","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!./OfferType.vue?vue&type=style&index=0&id=00b6bdd5&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./RoleSetting.vue?vue&type=style&index=0&id=d590a296&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Header.vue?vue&type=style&index=0&id=1c1a24bc&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./FleetConfiguration.vue?vue&type=style&index=0&id=78cc7792&lang=scss&scoped=true\"","export default {\n search: \"Search\",\n save: \"Saved success!\",\n user: {\n navTip: \"System Setting\",\n navRole: \"Role\",\n navUser: \"User\",\n name: \"Account\",\n fulnmm: \"Full Name\",\n userType: \"Legal Entity\",\n password: \"Password\",\n filterName: \"Filtered by Name\",\n filterpgName: \"Filtered by User Group\",\n filterRoleName: \"Filtered by Role\",\n filterType: \"Please select\",\n edit: \"Edit\",\n deactivate: \"Deactivate\",\n setting: \"Setting\",\n cnName: \"Name(Cn)\",\n enName: \"Name(En)\",\n type: \"Legal Entity\",\n description: \"Description\",\n operation: \"Operation\",\n menuName: \"Menu&Action\",\n API: \"API\",\n grg: \"User Group\",\n org: \"Org\",\n orgFul: \"Organization\",\n email: \"Email\",\n findUser: \"Find an user\",\n findRole: \"Find a role\",\n importUser: \"Import Setting\",\n pleaseInput: \"Please input\",\n inputNameEn: \"Please input English name\",\n inputNameCn: \"Please input Chinese name\",\n inputRoleCode: \"Please input role code\",\n inputDescription: \"Please input description\",\n inputName: \"Please input name\",\n inputFullName: \"Please input full name\",\n inputEmailName: \"Please input email\",\n pgName: \"User Group Name\",\n delConfirm: \"Are you sure to change the status of user group?\",\n roleName: \"Role Name\",\n roleCode: \"Role Code\",\n roleType: \"Legal Entity\",\n names: \"Name\",\n code: \"Code\",\n approvalChianSetting: \"Approval Chain Setting\",\n programApprovalChain: \"Program Approval Chain\",\n payoutApprovalChain: \"Payout Approval Chain\",\n configuration: \"Configuration\",\n sampleCheckRule: \"Sample Check Rule\",\n entity: \"Entity\",\n NGMSRPOverride: \"NST Group MSRP Override\",\n IMPACTMSRP: \"IMPACT MSRP Override\",\n },\n program: {\n addTable: \"Add new table\",\n addRow: \"Add new row\",\n delete: \"Delete\",\n upload: \"Upload\",\n download: \"Download\",\n refresh: \"Refresh\",\n },\n retailValidation: {\n rv: \"Retail Validation\",\n dealer: \" Dealer Overview\",\n controlling: \"Controlling Overview\",\n sicco: \"SICCO Overview\",\n sipo: \"Retail Information Overview\",\n },\n placeholder: \"Please Input\",\n retailClaim: {\n dealer: \"Dealer Claim\",\n claim: \"Sales Incentive Claim\",\n RT: \"F&L Retail Claim\",\n RTClaimDetail: \"F&L Claim Detail\",\n WS: \"AFC WS Claim\",\n WSClaimDetail: \"AFC WS Claim Detail\",\n query: \"Claim Enquiry\",\n VINBased: \"VIN Based Enquiry\",\n },\n checking: {\n plan: \"Checking Plan\",\n checking: \"Checking\",\n sourceDataManagement: \"Source Data Management\",\n AG: \"AG Management\",\n TA: \"Sign TA Management\",\n TDTA: \"TDTA Management\",\n EnquiryProgram: \"Enquiry Program\",\n sicco: \"SICCO Checking\",\n spotChecking: \"Spot Checking\",\n spotCheckingControlling: \"Spot checking rewiew & confirm\",\n spotCheckingPendingApproval: \"Pending Approval\",\n approvalReview: \"Approval Review\",\n programDetail: \"Program Detail\",\n vinDetail: \"VIN Detail\",\n spotCheckOverview: \"Spot Check Overview\",\n spotCheckConfirm: \"Spot Check Confirm\",\n allClaimsReview: \"All Claims Review\",\n payoutPreparation: \"Payout Preparation\",\n dealer: \"Dealer Communication\",\n sipo: \"Incentive Checking Communication\",\n },\n payment: {\n payment: \"Payment\", //payment\n paymentMBAFC: \"F&L Payment Management - RT\",\n paymentApprove: \"Mgmt. Payment Approve\",\n paymentBuManagement: \"BU payment Management\",\n entitySiPayout: \"Entity SI Payout Application\",\n buSiPayout: \"SI Payout Application\",\n paymentDealerNo: \"Delear No. Overview\",\n paymentBuApprove: \"BU Payment Management\",\n createPayoutCode: \"Create payout code\",\n paymentSalesManagement: \"Sales Payment Management\",\n dcnTemplateSet: \"DCN Template Set\",\n vendorCode: \"Vendor Code Overview\",\n upload: \"Upload\",\n vehicleList: \"Vehicle List\",\n paymentDealerStatus: \"Dealer Readiness Setting\",\n paymentBBACSales: \"BBAC Payment Management\",\n voucherAttachment: \"Voucher Attachment Set\",\n DgrcAccounting: \"DGRC Accounting\",\n Breakdown: \"Dealer Breakdown\",\n BreakdownDetail: \"经销商付款准备文件明细\",\n dealerBreakdownReport: \"Dealer Breakdown Report\",\n paymentTracking: \"Payment Tracking\",\n demoCDView: \"Demo Car Deduction Detail\",\n },\n closing: {\n home: \"Monthly Closing\",\n configuration: \"Configuration\",\n setPMT: \"Set PMT Closing Rule\",\n },\n forecast: {\n home: \"Monthly Forecast\",\n configuration: \"Configuration\",\n setPMT: \"Set PMT Forecast Rule\",\n },\n vehiclelicense: {\n homepage: \"新车零售行驶证上传\",\n },\n taskCenter: {\n systemSetting: \"System Setting\",\n taskCenter: \"Task Center\",\n taskJob: \"Task Job\",\n packageTask: \"Package Task\",\n },\n planning: {\n planning: \"Planning\",\n homepage: \"Homepage\",\n },\n delay: {\n claimDelayRule: \"Claim Delay Rule\",\n dealerDelayClaim: \"Dealer Delay Claim\",\n sipoApprove: \"SIPO Approve\",\n regionApprove: \"Region Approve\",\n },\n communication: {\n communication: \"沟通\",\n appeal: \"销售激励项目审核结果沟通\",\n history: \"查询历史沟通记录\",\n },\n salesmeasure: {\n detail: \"Program Detail\",\n batchname: \"Batch Name\",\n releasedate: \"Release Date\",\n programcode: \"Program Code\",\n programnamecn: \"Program Name(CN)\",\n programnameen: \"Program Name(EN)\",\n programname: \"Program Name\",\n reset: \"Reset\",\n search: \"Search\",\n download: \"Download\",\n selectprogram: \"Select Download Program\",\n selectattch: \"Select Download Attachment\",\n salesmeasurelist: \"Sales Measure Summary\",\n smlfilename: \"File Name\",\n period: \"Eligible Period/Submission Period\",\n attachmentname: \"Attachment Name\",\n pleaseSelect: \"Please Select!\",\n bu: \"BU\",\n expand: \"Expand\",\n releaseperiod: \"Release Period\",\n collapse: \"Collapse\",\n programcount: \"Program Count\",\n },\n dealerData: {\n dealerCode: \"Dealer Code\",\n dealerNameEn: \"DealerName(EN)\",\n dealerNameCn: \"DealerName(CN)\",\n search: \"Search\",\n reset: \"Reset\",\n status: \"Status\",\n gsCode: \"GS Code\",\n dealerGroup: \"Dealer Group\",\n provinceEn: \"Province(EN)\",\n cityEn: \"City(EN)\",\n operation: \"Operation\",\n edit: \"Edit\",\n view: \"View\",\n },\n dealerDataEdit: {\n dealerCode: \"Dealer Code\",\n dealerNameEn: \"DealerName(EN)\",\n dealerNameCn: \"DealerName(CN)\",\n search: \"Search\",\n reset: \"Reset\",\n status: \"Status\",\n gsCode: \"GS Code\",\n dealerGroup: \"Dealer Group\",\n provinceEn: \"Province(EN)\",\n cityEn: \"City(EN)\",\n operation: \"Operation\",\n edit: \"Edit\",\n view: \"View\",\n active: \"Active\",\n save: \"Save\",\n baseInfo: \"Base Info\",\n legalNameCn: \"LegalNameCN\",\n legalNameEn: \"LegalNameEN\",\n additionalNameCn: \"AddtionalName_CN\",\n additionalNameEn: \"AddtionalName_EN\",\n provinceCn: \"ProvinceCN\",\n provinceEn2: \"ProvinceEN\",\n cityCn: \"CityCN\",\n cityEn2: \"CityEN\",\n addressCn: \"AddressCN\",\n addressEn: \"AddressEN\",\n zipCode: \"ZIPCode\",\n format: \"Format\",\n contactEmail: \"ContactEmail\",\n fixPhone: \"FixPhone\",\n dealerGroup2: \"DealerGroup\",\n swtCode: \"SWTCode\",\n vendorCode: \"VendorCode\",\n mbafcCode: \"MBAFCCode\",\n languageValue: \"LanguageValue\",\n dosCode: \"DOSCode\",\n isGovernmentRelated: \"IsGovernmentRelated\",\n salesInfo: \"Sales Info\",\n dealerType: \"Dealer Type\",\n yes: \"Yes\",\n no: \"No\",\n businessUnit: \"Business Unit\",\n changeHistory: \"Change History\",\n changeDate: \"Change Date\",\n changeBefore: \"Change Before\",\n changeAfter: \"Change After\",\n operationUser: \"Operation User\",\n dealer400Code: \"400Code\"\n },\n dealerVINBasedEnquiry: {\n searchConditions: \"Search Conditions\",\n vinNO: \"VIN\",\n vehicleClassification: \"Type Class\",\n vehicleCode: \"Meterial No\",\n vehicleName: \"Model Name\",\n modelYear: \"Model Year\",\n wholesaleSource: \"Wholesale Source\",\n wholesaleDate: \"Wholesale Date\",\n retailDate: \"Retail Date\",\n dealerCode: \"Dealer Code\",\n dealerNameCN: \"Dealer Name(CN)\",\n dealerNameEN: \"Dealer Name(EN)\",\n pleaseInput: \"Please input...\",\n pleaseSelect: \"Please select\",\n exportVehicleCompatibility: \"Export Vehicle Compatibility\",\n compatible: \"Compatible\",\n incompatible: \"Incompatible\",\n beginTime: \"Begin Time\",\n endTime: \"End Time\",\n search: \"Search\",\n reset: \"Reset\",\n },\n claimEnquiry: {\n dealerCode: \"Dealer Code\",\n dealerSwtCode: \"SWT Code\",\n vehicleName: \"Model Name\",\n vinNO: \"VIN\",\n projectPeriod: \"Program Period\",\n dealerNameCN: \"Dealer Name(CN)\",\n modelYear: \"Model Year\",\n appealStatus: \"Appeal Status\",\n projectNO: \"Program Code\",\n projectType: \"Program Category\",\n optionName: \"Option Name\",\n paymentRound: \"Payout Round\",\n checkResults: \"Check Result\",\n estimatedAmountOfCustomerPolicy: \"Estimated Amount Of Customer Policy\",\n actualAmount: \"Final Bonus\",\n createTime: \"Create Time\",\n status: \"Status\",\n dealerCommunicationDeadline: \"Dealer communication Deadline\",\n exemptionDeadline: \"Exemption Deadline\",\n dealerAcceptedTime: \"Dealer Accepted Time\",\n operation: \"Operation\",\n search: \"Search\",\n reset: \"Reset\",\n export: \"Export\",\n cannotWithdraw: \"Cannot Withdraw\",\n ok: \"Ok\",\n cancel: \"Cancel\",\n withdrawSuccessful: \"Withdraw Sucessful\",\n close: \"Close\",\n applyDeferredWithdraw: \"Apply Deferred Withdraw\",\n retailDateStr: \"Retail Date\",\n programPeriod: \"Program Period\",\n bu: \"BU\",\n region: \"Region\",\n automaticDeduction: \"Automatic Deduction\",\n },\n retailValidationSipo: {\n searchConditions: \"Search Conditions\",\n exportQueryResult: \"Export Query Result\",\n search: \"Search\",\n reset: \"Reset\",\n more: \"More\",\n vin: \"VIN\",\n model: \"Model\",\n brand: \"Brand\",\n dealerNameCN: \"Dealer Name(CN)\",\n dealerCodeCofico: \"Dealer Code(Cofico)\",\n dealerCodeSWT: \"Dealer Code(SWT)\",\n region: \"Region\",\n customerName: \"Customer Name\",\n retailType: \"Retail Type\",\n retailDate: \"Retail Date\",\n specialUsage: \"Special Usage\",\n submissionStatus: \"Submission Status\",\n eligibilityStatus: \"Eligibility Status\",\n failureReason: \"Failure Reason\",\n file: \"File\",\n operation: \"Operation\",\n vehicleSort: \"Vehicle Sort\",\n commissionNo: \"Commission No\",\n typeClass: \"Type Class\",\n modelYear: \"Model Year\",\n entity: \"Entity\",\n powertrain: \"Powertrain\",\n dealerSort: \"Dealer Sort\",\n dealerNameEN: \"Dealer Name(EN)\",\n dateSort: \"Date Sort\",\n invoiceDate: \"Invoice Date\",\n registrationDate: \"Registration Date\",\n checkResultSort: \"Check Result Sort\",\n collapse: \"Collapse\",\n vinBatchEnquiry: \"VIN Batch Enquiry\",\n vinList: \"VIN List\",\n commissionNoBatchEnquiry: \"Commission No Batch Enquiry\",\n commissionNoList: \"Commission No List\",\n clearAll: \"Clear All\",\n confirm: \"Confirm\",\n failureReasonDetails: \"Failure Reason Details\",\n feedbackTime: \"Feedback Time\",\n view: \"View\",\n invoice: \"IN\",\n license: \"RE\",\n relationProof: \"RP\",\n details: \"Details\",\n retailDataDetails: \"Retail Data Details\",\n basicInformtion: \"Basic Informtion\",\n dealerInformtion: \"Dealer Informtion\",\n vehicleRetailHistory: \"Vehicle Retail History\",\n operationRecord: \"Operation Record\",\n retailStatus: \"Retail Status\",\n vehicleUsage: \"Vehicle Usage\",\n role: \"Role\",\n action: \"Action\",\n content: \"Content\",\n operationTime: \"Operation Time\",\n pleaseInput: \"Please input\",\n beginTime: \"Begin Time\",\n endTime: \"End Time\",\n },\n ssscOrder: {\n brand: \"Brand\",\n updatedTime: \"Updated Time\",\n fin: \"FIN\",\n vin: \"VIN\",\n programCode: \"Program Code\",\n packageValidFrom: \"Package Valid From\",\n typeClass: \"Type Class\",\n status: \"Status\",\n description: \"Description\",\n result: \"Result\",\n errorMessage: \"Error message\",\n startSystemClaimDate: \"Start system claim date\",\n claimID: \"Claim ID\",\n createdTime: \"Created Time\",\n activateDate: \"Activate Date\",\n packageName: \"Package Name\",\n dealerCode: \"Dealer Code\",\n outletId: \"Outlet Id\",\n dealerName: \"Dealer Name\",\n productCode: \"Product Code\",\n wholesalePrice: \"Wholesale Price\",\n iconContractNumber: \"Icon Contract Number\",\n reset: \"Reset\",\n search: \"Search\",\n export: \"Export\",\n cancel: \"Cancel\",\n confirm: \"Confirm\",\n programCodeMapping: \"Program Code Mapping\",\n startSystemClaim: \"Start System Claim\",\n pleaseInput: \"Please input...\",\n pleaseSelect: \"Please select\",\n beginTime: \"Start date\",\n endTime: \"End date\",\n },\n dealerQueryDetail: {\n siProgram: \"SI Program\",\n programCode: \"Programe Code\",\n programName: \"Program Name\",\n programCategory: \"Program Categroy\",\n retail: \"Retail\",\n vin: \"VIN\",\n model: \"Model\",\n modelYear: \"Model Year\",\n invoiceDate: \"Invoice Date\",\n registrationDate: \"Registration Date\",\n customerName: \"Customer Name\",\n retailType: \"Retail Type\",\n eligibility: \"Eligibility\",\n invoice: \"Invoice\",\n vehicleLicense: \"Vehicle License\",\n claimDetail: \"Claim Detail\",\n checkResult: \"Check Result\",\n amount: \"Amount\",\n comment: \"Comment\",\n dealerCommunication: \"Dealer Communication\",\n dealerCommunicationDeadline: \"Dealer Communication Deadline\",\n roundClosing: \"Round Closing\",\n lastCommunication: \"Last Communication\",\n document: \"Document\",\n type: \"Type\",\n applicationDocument: \"Application Document\",\n appeal1: \"Appeal 1\",\n appeal2: \"Appeal 2\",\n operationRecord: \"Operation Record\",\n action: \"Action\",\n operationUser: \"Operation User\",\n operationTime: \"Operation Time\",\n },\n};\n","export default {\n search: \"搜索\",\n save: \"保存成功\",\n user: {\n navTip: \"系统管理\",\n navRole: \"角色管理\",\n navUser: \"用户管理\",\n name: \"用户名\",\n fulnmm: \"全名\",\n userType: \"类型\",\n password: \"密码\",\n filterName: \"过滤用户名\",\n filterpgName: \"过滤权限组\",\n filterRoleName: \"过滤角色\",\n filterType: \"请选择类型\",\n edit: \"编辑\",\n deactivate: \"软删除\",\n setting: \"设置\",\n cnName: \"中文名字\",\n enName: \"英文名字\",\n type: \"类型\",\n description: \"描述\",\n operation: \"操作\",\n menuName: \"菜单&操作\",\n API: \"接口\",\n grg: \"权限组\",\n org: \"组织\",\n orgFul: \"组织\",\n email: \"邮箱\",\n findUser: \"查找一个用户\",\n findRole: \"查找一个角色\",\n importUser: \"导入设置\",\n pleaseInput: \"请输入\",\n inputNameEn: \"请输入英文名称\",\n inputNameCn: \"请输入中文名称\",\n inputRoleCode: \"请输入角色编码\",\n inputDescription: \"请输入描述\",\n inputName: \"请输入用户名\",\n inputFullName: \"请输入全名\",\n inputEmailName: \"请输入邮箱\",\n pgName: \"权限组名称\",\n delConfirm: \"您确定修改该权限组的状态吗?\",\n roleName: \"角色\",\n roleCode: \"角色编码\",\n roleType: \"角色类型\",\n names: \"名称\",\n code: \"编码\",\n approvalChianSetting: \"Approval Chain Setting\",\n programApprovalChain: \"Program Approval Chain\",\n payoutApprovalChain: \"Payout Approval Chain\",\n configuration: \"Configuration\",\n sampleCheckRule: \"Sample Check Rule\",\n entity: \"Entity\",\n NGMSRPOverride: \"NST Group MSRP Override\",\n IMPACTMSRP: \"IMPACT MSRP Override\",\n },\n program: {\n addTable: \"添加新的表格\",\n addRow: \"添加新的行\",\n delete: \"删除\",\n upload: \"上传\",\n download: \"下载\",\n refresh: \"刷新\",\n },\n retailValidation: {\n rv: \"零售校验\",\n dealer: \"新车零售发票上传\",\n controlling: \"controlling overview\",\n sicco: \"SICCO overview\",\n sipo: \"Retail Information Overview\",\n },\n placeholder: \"请输入\",\n retailClaim: {\n dealer: \"Dealer Claim\",\n claim: \"SALES INCENTIVE CLAIM\",\n RT: \"F&L Retail CLAIM\",\n RTClaimDetail: \"F&L CLAIM detail\",\n WS: \"AFC WS CLAIM\",\n WSClaimDetail: \"AFC WS CLAIM detail\",\n query: \"Claim Enquiry\",\n VINBased: \"VIN Based Enquiry\",\n EnquiryProgram: \"Enquiry Program\",\n },\n checking: {\n plan: \"Checking Plan\",\n checking: \"Checking\",\n sourceDataManagement: \"Source Data Management\",\n AG: \"AG Management\",\n TA: \"Sign TA Management\",\n TDTA: \"TDTA Management\",\n sicco: \"SICCO Checking\",\n spotChecking: \"Spot Checking\",\n spotCheckingControlling: \"Spot checking rewiew & confirm\",\n spotCheckingPendingApproval: \"Pending Approval\",\n approvalReview: \"Approval Review\",\n programDetail: \"Program Detail\",\n vinDetail: \"VIN Detail\",\n spotCheckOverview: \"Spot Check Overview\",\n spotCheckConfirm: \"Spot Check Confirm\",\n allClaimsReview: \"All Claims Review\",\n payoutPreparation: \"Payout Preparation\",\n dealer: \"Dealer Communication\",\n sipo: \"Incentive Checking Communication\",\n },\n payment: {\n payment: \"支付\",\n paymentMBAFC: \"F&L Payment Management - RT\",\n paymentApprove: \"Mgmt. Payment Approve\",\n paymentBuManagement: \"BU payment Management\",\n buSiPayout: \"Bu SI Payout Application\",\n paymentDealerNo: \"Delear No. Overview\",\n paymentBuApprove: \"BU Payment Management\",\n createPayoutCode: \"Create payout code\",\n paymentSalesManagement: \"Sales Payment Management\",\n dcnTemplateSet: \"DCN Template Set\",\n vendorCode: \"Vendor Code Overview\",\n upload: \"Upload\",\n vehicleList: \"Vehicle List\",\n paymentDealerStatus: \"Dealer Readiness Setting\",\n paymentBBACSales: \"BBAC Payment Management\",\n voucherAttachment: \"Voucher Attachment Set\",\n BreakdownDetail: \"经销商付款准备文件明细\",\n dealerBreakdownReport: \"Dealer Breakdown Report\",\n Breakdown: \"销售激励付款查询\",\n demoCDView: \"Demo Car Deduction Detail\",\n },\n closing: {\n home: \"Monthly Closing\",\n configuration: \"Configuration\",\n setPMT: \"Set PMT Closing Rule\",\n },\n forecast: {\n home: \"Monthly Forecast\",\n configuration: \"Configuration\",\n setPMT: \"Set PMT Forecast Rule\",\n },\n taskCenter: {\n systemSetting: \"System Setting\",\n taskCenter: \"Task Center\",\n taskJob: \"Task Job\",\n packageTask: \"Package Task\",\n },\n planning: {\n planning: \"Planning\",\n homepage: \"Homepage\",\n },\n delay: {\n claimDelayRule: \"Claim Delay Rule\",\n dealerDelayClaim: \"Dealer Delay Claim\",\n sipoApprove: \"SIPO Approve\",\n regionApprove: \"Region Approve\",\n },\n communication: {\n communication: \"沟通\",\n appeal: \"销售激励项目审核结果沟通\",\n history: \"查询历史沟通记录\",\n },\n salesmeasure: {\n detail: \"项目明细\",\n batchname: \"政策名称\",\n releasedate: \"发布时间\",\n programcode: \"项目编码\",\n programnamecn: \"项目名称(中文)\",\n programnameen: \"项目名称(英文)\",\n programname: \"项目名称\",\n reset: \"清空\",\n search: \"搜索\",\n download: \"下载文件\",\n selectprogram: \"选择需要下载的项目\",\n selectattch: \"选择需要下载的项目附件\",\n salesmeasurelist: \"客户政策销售顾问速览表\",\n smlfilename: \"文件名称\",\n period: \"项目期间/提交期间\",\n attachmentname: \"文件名称\",\n pleaseSelect: \"请选择!\",\n bu: \"业务部门\",\n expand: \"展开\",\n releaseperiod: \"发布期间\",\n collapse: \"折叠\",\n programcount: \"项目数量\",\n },\n dealerData: {\n dealerCode: \"经销商编号\",\n dealerNameEn: \"经销商名称(EN)\",\n dealerNameCn: \"经销商名称(CN)\",\n search: \"查询\",\n reset: \"重置\",\n status: \"状态\",\n gsCode: \"GS编号\",\n dealerGroup: \"经销商集团\",\n provinceEn: \"省(EN)\",\n cityEn: \"城市(EN)\",\n operation: \"操作\",\n edit: \"编辑\",\n view: \"查看\",\n },\n dealerDataEdit: {\n dealerCode: \"经销商编号\",\n dealerNameEn: \"经销商名称(EN)\",\n dealerNameCn: \"经销商名称(CN)\",\n search: \"查询\",\n reset: \"重置\",\n status: \"状态\",\n gsCode: \"GS编号\",\n dealerGroup: \"经销商集团\",\n provinceEn: \"省(EN)\",\n cityEn: \"城市(EN)\",\n operation: \"操作\",\n edit: \"编辑\",\n view: \"查看\",\n active: \"激活\",\n save: \"保存\",\n baseInfo: \"基础信息\",\n legalNameCn: \"法定名称(CN)\",\n legalNameEn: \"法定名称(EN)\",\n additionalNameCn: \"附加名称(CN)\",\n additionalNameEn: \"附加名称(EN)\",\n provinceCn: \"省(CN)\",\n provinceEn2: \"省(EN)\",\n cityCn: \"城市(CN)\",\n cityEn2: \"城市(EN)\",\n addressCn: \"地址(CN)\",\n addressEn: \"地址(EN)\",\n zipCode: \"ZIP编码\",\n format: \"格式\",\n contactEmail: \"联系邮箱\",\n fixPhone: \"固定电话\",\n dealerGroup2: \"经销商集团\",\n swtCode: \"SWT编码\",\n vendorCode: \"Vendor编码\",\n mbafcCode: \"MBAFC编码\",\n languageValue: \"语言\",\n dosCode: \"DOS编码\",\n isGovernmentRelated: \"是否与政府相关\",\n salesInfo: \"销售信息\",\n dealerType: \"经销商类型\",\n yes: \"是\",\n no: \"否\",\n businessUnit: \"业务单元\",\n changeHistory: \"修改历史\",\n changeDate: \"修改时间\",\n changeBefore: \"修改前\",\n changeAfter: \"修改后\",\n operationUser: \"操作人\",\n dealer400Code: \"400编码\"\n },\n dealerVINBasedEnquiry: {\n searchConditions: \"筛选条件\",\n vinNO: \"车架号\",\n vehicleClassification: \"车型分类\",\n vehicleCode: \"车型编码\",\n vehicleName: \"车型名称\",\n modelYear: \"年款\",\n wholesaleSource: \"批发来源\",\n wholesaleDate: \"批发日期\",\n retailDate: \"零售日期\",\n dealerCode: \"经销商编码\",\n dealerNameCN: \"经销商名称(CN)\",\n dealerNameEN: \"经销商名称(EN)\",\n pleaseInput: \"请输入...\",\n pleaseSelect: \"请选择\",\n exportVehicleCompatibility: \"导出车辆兼容性\",\n compatible: \"兼容\",\n incompatible: \"不兼容\",\n beginTime: \"开始时间\",\n endTime: \"结束时间\",\n search: \"查询\",\n reset: \"重置\",\n },\n claimEnquiry: {\n dealerCode: \"经销商编码\",\n dealerSwtCode: \"SWT Code\",\n vehicleName: \"车型名称\",\n vinNO: \"车架号\",\n projectPeriod: \"项目期间\",\n dealerNameCN: \"经销商名称(中文)\",\n modelYear: \"年款\",\n appealStatus: \"申诉状态\",\n projectNO: \"项目编号\",\n projectType: \"项目类型\",\n optionName: \"选项名称\",\n paymentRound: \"支付轮次\",\n checkResults: \"检查结果\",\n estimatedAmountOfCustomerPolicy: \"客户政策预估金额\",\n actualAmount: \"实际金额\",\n createTime: \"创建时间\",\n status: \"状态\",\n operation: \"操作\",\n search: \"查询\",\n reset: \"重置\",\n export: \"导出\",\n cannotWithdraw: \"无法撤回\",\n ok: \"确定\",\n cancel: \"取消\",\n withdrawSuccessful: \"撤销成功\",\n close: \"关闭\",\n applyDeferredWithdraw: \"申请延期撤回\",\n retailDateStr: \"零售时间\",\n programPeriod: \"项目期间\",\n bu: \"业务单元\",\n region: \"经销商所在区域\",\n automaticDeduction: \"是否自动扣款\",\n },\n retailValidationSipo: {\n searchConditions: \"筛选条件\",\n exportQueryResult: \"导出查询结果\",\n search: \"查询\",\n reset: \"重置\",\n more: \"更多\",\n vin: \"车架号\",\n model: \"车型\",\n brand: \"品牌\",\n dealerNameCN: \"经销商中文名称\",\n dealerCodeCofico: \"经销商代码 (cofico)\",\n dealerCodeSWT: \"经销商代码 (SWT)\",\n region: \"区域\",\n customerName: \"客户名称\",\n retailType: \"零售类型\",\n retailDate: \"零售日期\",\n specialUsage: \"特殊车辆用途\",\n submissionStatus: \"提交状态\",\n eligibilityStatus: \"激励适用性\",\n failureReason: \"失败原因\",\n file: \"文件\",\n operation: \"操作\",\n vehicleSort: \"车辆类别\",\n commissionNo: \"生产编号\",\n typeClass: \"车型分类\",\n modelYear: \"年款\",\n entity: \"批发来源\",\n powertrain: \"动力类型\",\n dealerSort: \"经销商类别\",\n dateSort: \"日期类别\",\n invoiceDate: \"发票日期\",\n registrationDate: \"上牌日期\",\n checkResultSort: \"审核结果类别\",\n collapse: \"收起\",\n vinBatchEnquiry: \"车架号批量查询\",\n vinList: \"车架号列表\",\n commissionNoBatchEnquiry: \"生产编号批量查询\",\n commissionNoList: \"生产编号列表\",\n clearAll: \"清除\",\n confirm: \"确定\",\n failureReasonDetails: \"失败原因查看\",\n feedbackTime: \"反馈时间\",\n view: \"查看\",\n invoice: \"发票\",\n license: \"行驶证\",\n relationProof: \"关系证明\",\n details: \"详情\",\n retailDataDetails: \"零售数据详细信息\",\n basicInformtion: \"基本信息\",\n dealerInformtion: \"经销商信息\",\n vehicleRetailHistory: \"车辆零售历史信息\",\n operationRecord: \"操作记录\",\n retailStatus: \"车辆零售状态\",\n vehicleUsage: \"车辆用途\",\n role: \"操作角色\",\n action: \"动作\",\n content: \"内容\",\n operationTime: \"操作时间\",\n pleaseInput: \"请输入\",\n beginTime: \"开始时间\",\n endTime: \"结束时间\",\n },\n ssscOrder: {\n brand: \"品牌/车型\",\n updatedTime: \" 更新时间\",\n fin: \"车架号(FIN)\",\n vin: \"车架号\",\n programCode: \"项目编号\",\n packageValidFrom: \"礼包有效开始时间\",\n typeClass: \"类型\",\n status: \"状态\",\n description: \"描述\",\n result: \"处理结果\",\n errorMessage: \"错误原因\",\n startSystemClaimDate: \"处理时间\",\n claimID: \"申请编号\",\n createdTime: \"创建时间\",\n activateDate: \"激活时间\",\n packageName: \"礼包名称\",\n dealerCode: \"经销商编号\",\n outletId: \"经销商GS编号\",\n dealerName: \"经销商名称(中文)\",\n productCode: \"产品编码\",\n wholesalePrice: \"金额\",\n iconContractNumber: \"合同号\",\n reset: \"重置\",\n search: \"查询\",\n export: \"导出\",\n cancel: \"取消\",\n confirm: \"确认\",\n programCodeMapping: \"项目编号匹配\",\n startSystemClaim: \"开始处理\",\n pleaseInput: \"请输入...\",\n pleaseSelect: \"请选择\",\n beginTime: \"开始日期\",\n endTime: \"结束日期\",\n },\n dealerQueryDetail: {\n siProgram: \"项目信息\",\n programCode: \"项目编码\",\n programName: \"项目名称\",\n programCategory: \"项目类型\",\n retail: \"车辆信息\",\n vin: \"车架号\",\n model: \"车型\",\n modelYear: \"年款\",\n invoiceDate: \"发票日期\",\n registrationDate: \"上牌日期\",\n customerName: \"客户姓名\",\n retailType: \"零售类型\",\n eligibility: \"激励适用性\",\n invoice: \"发票\",\n vehicleLicense: \"行驶证\",\n claimDetail: \"申请审核信息\",\n checkResult: \"检查结果\",\n amount: \"金额\",\n comment: \"备注\",\n dealerCommunication: \"沟通信息\",\n dealerCommunicationDeadline: \"沟通截止日期\",\n roundClosing: \"本轮结清\",\n lastCommunication: \"最后一次沟通\",\n document: \"支持文档\",\n type: \"文件类型\",\n applicationDocument: \"申请文件\",\n appeal1: \"申诉1\",\n appeal2: \"申诉2\",\n operationRecord: \"操作记录\",\n action: \"操作\",\n operationUser: \"操作人\",\n operationTime: \"操作时间\",\n },\n};\n","import { createI18n } from \"vue-i18n\";\nimport enLocale from \"./lang/en\";\nimport zhLocale from \"./lang/zh\";\n\nconst messages = {\n en: {\n ...enLocale,\n },\n zh: {\n ...zhLocale,\n },\n};\n\nconst i18n = createI18n({\n locale: sessionStorage.getItem(\"getLocale\") || \"en\", // set locale\n messages, // set locale messages\n globalInjection: true,\n});\nexport default i18n;\n","import { fetchDelete, fetchGet, fetchPost, fetchGetMess } from './index';\n\nimport { MaintainColProps, MaintainTableProps, WordingProps } from '@/views/Program/types';\nimport { AutoTableCellProps, APIDataProps } from '@/types';\nimport axios from 'axios';\ninterface MappingProps {\n id: number;\n name: string;\n enabled: boolean;\n}\n\ninterface MappingDataProps {\n mapping: MappingProps[];\n}\n\n// formula start\nexport interface FormulaProps {\n id?: string;\n code?: string;\n display?: string;\n tag?: string;\n operator?: string;\n}\nexport interface FormulaGroupProps {\n precondition: FormulaProps[];\n incentive: FormulaProps[];\n vehicleLicense: FormulaProps[];\n formula: FormulaProps[];\n}\nexport interface OverallProps {\n formula: FormulaGroupProps;\n incentiveAmount: [];\n offerTypeId: string;\n offerTypeName: string;\n precondition: [];\n vehicleLicense: [];\n}\nexport interface PgapiProgramProps {\n programId?: string;\n programCode?: string;\n programName?: string;\n businessUnit?: any;\n eligibility?: any;\n offerType?: {\n overall?: OverallProps;\n fa?: any;\n sssc: any;\n };\n offer?: OverallProps;\n select?: any;\n customer: any;\n}\n// formula end\ninterface RebateProps {\n matched: [];\n}\n\ninterface FinancingProps {\n tableNameList: [];\n}\nexport interface DesignSettingProps {\n customer: CustomerTypeProps[];\n}\nexport interface CustomerTypeProps {\n description: {\n customVehicleDescription: string;\n defaultDescription: string;\n };\n customVehicleDescription: string;\n defaultDescription: string;\n id: string;\n name: string;\n nameCn: string;\n requireTradeIn: boolean;\n}\n\n// 新建一个program\n\n// budgeting\nexport const budgetGenerate = (id: string | string[]): Promise => {\n return fetchGetMess('/bgapi/budget/generate/' + id);\n};\n// /program/{program-id}/preview\n// Program 预览 PDF\nexport const programPreview = (id: string | string[]): Promise => {\n return fetchGet(`/pgapi/program/${id}/preview`);\n};\nexport const programTemplate = (): Promise => {\n return fetchPost('/pgapi/program/data/create_program');\n};\nexport const programProgramId = (params: {}): Promise => {\n return fetchGet('/pgapi/program/data/load_program', params);\n};\nexport const pgapiProgram = (): Promise => {\n return fetchGet('/pgapi/program');\n};\nexport const pgapiProgramPost = (data = {}, params = {}): Promise<{ programCode: string; requireNewCode: boolean }> => {\n return fetchPost('/pgapi/program/data/store_program', data, params);\n};\nexport const pgapiProgramPra = (id: string | string[]): Promise => {\n return fetchGet('/pgapi/program/' + id);\n};\n\nexport const searchHeaderProgram = (params = {}): Promise => {\n return fetchPost('/pgapi/program/design/search_header_program', params);\n};\n\n// 获取限号城市\n// export const getRestrictedData = () => {\n// return fetchGet('/mdapi/restricted-cities')\n// }\nexport const getRestrictedData = (params = {}) => {\n return fetchGet('/pgapi/program/local_registration/rule', params);\n};\n// 获取 Overall OfferGroup\nexport const overallOfferGroup = (params = {}): Promise<{ offerGroup: MaintainColProps }> => {\n return fetchGet('/pgapi/offer_type/overall/offer_group', params);\n};\n// 接受 Spread JS Excel multipart file\nexport const sjsExcel = (params = {}): Promise => {\n return fetchPost('/pgapi/program/setting/sjs/excel', params);\n};\nexport const settingSjsExcel = (params = {}): Promise => {\n return fetchGet('/pgapi/program/setting/sjs_excel', params);\n};\n\n// 获取 Overall OfferGroup 新接口\nexport const getOfferGroup = (params = {}): Promise<{ offerGroup: MaintainColProps }> => {\n return fetchGet('/pgapi/program/design/get_offer_group', params);\n};\n\nexport const pgmaddColumn = (params = {}): Promise => {\n return fetchPost('/pgapi/program/design/add_colm', params);\n};\n\nexport const removeColumn = (params = {}): Promise => {\n return fetchPost('/pgapi/program/design/remove_colm', params);\n};\n\n// 将 Eligibility Vehicle 拿到 incentive 中 new接口\nexport const designRefreshIncentive = (params = {}): Promise => {\n return fetchPost('/pgapi/program/design/refresh_incentive', params);\n};\n\n// 获得 modelName/baumuster 可选列表\nexport const searchCandidate = (params = {}): Promise => {\n return fetchPost('/pgapi/offer_type/sssc/search_candidate', params);\n};\n\n// 获得 SSSC 可选列表\nexport const searchSsscCandidate = (params = {}): Promise<{ [key: string]: string }[]> => {\n return fetchPost('/pgapi/offer_type/sssc/search_sssc_candidate', params);\n};\n\n// 通用下拉接口\n// api/pgapi/vehicle/search_vehicle\nexport const searchVehicle = (params = {}): Promise => {\n return fetchPost('/pgapi/program/design/search_eligible_vehicle', params);\n};\nexport const searchNstGroupName = (params = {}): Promise => {\n return fetchPost('/pgapi/program/design/search_nst_group_name', params);\n};\n// 新增的下拉接口\nexport const searchRepurchaseVehicle = (params = {}): Promise => {\n return fetchPost('/pgapi/program/design/search_repurchase_vehicle', params);\n};\n// 根据关联的group得到下拉\nexport const searchOptions = (params = {}): Promise => {\n return fetchPost('/pgapi/program/design/search_options', params);\n};\n\n// Repair Code下拉接口\nexport const searchRepairCode = (params = {}): Promise => {\n return fetchPost('/pgapi/program/design/search_repair_code', params);\n};\n\n// Dealer下拉接口\nexport const searchDealer = (params = {}): Promise => {\n return fetchPost('/pgapi/program/design/search_eligible_dealer', params);\n};\n\n// 刷新并生成公式\nexport const refreshFormula = (params = {}): Promise => {\n return fetchPost('/pgapi/program/design/refresh_formula', params);\n};\n\n// customer\n//\nexport const getCustomerType = (): Promise => {\n return fetchGet('/pgapi/program/setting/get_customer_type');\n};\n\n// 小图 更换接口\nexport const getDesignSetting = (parasm = {}): Promise => {\n // return fetchPost('/pgapi/program/design/get_design_setting', parasm)\n return fetchPost('/pgapi/program/design/get_customer_types', parasm);\n};\nexport const refreshComments = (params = {}): Promise => {\n return fetchPost('/pgapi/program/design/refresh_comments', params);\n};\n\n// ranking\n// rogram/design/search_ranking_criteria\nexport const searchRankingCriteria = (params = {}): Promise<{ [key: string]: string }[]> => {\n return fetchPost('/pgapi/program/design/search_ranking_criteria', params);\n};\n\n// 获取返利信息\nexport const getRebate = (): Promise => {\n return fetchGet('/pgapi/sale/all/rebate');\n};\n\n// 获取省份城市 限牌城市\nexport const getAreasDate = () => {\n return fetchGet('/pgapi/program/design/areas');\n};\n// 保存 限牌城市\nexport const saveLocalReg = (params = {}) => {\n return fetchPost('/pgapi/program/local_registration/rule', params);\n};\n\n// 获取列表Reg\nexport const getRegList = (params = {}) => {\n return fetchGet('/pgapi/program/local_registration/restricted_city', params);\n};\n\n// 获取special rule\nexport const getSpecialData = (params = {}) => {\n // return fetchGet('/pgapi/program/local_registration/special_rule', params)\n return fetchPost('/pgapi/program/local_registration/special_rule', params);\n};\n\nexport const getSpecialDataEdit = (params = {}) => {\n return fetchGet('/pgapi/program/local_registration/special_rule/global', params);\n};\n\n// 本地上牌的获取\nexport const findLocalData = (params = {}) => {\n return fetchPost('/pgapi/program/local_registration', params);\n};\n\nexport const getSpecialParametersData = () => {\n return fetchGet('/pgapi/program/local_registration/special_rule/vehicle_parameters');\n};\n\nexport const getSpecialValueData = (params = {}) => {\n return fetchGet('/pgapi/program/local_registration/special_rule/vehicle_parameter_value', params);\n};\n\nexport const delSpecialData = (params = {}) => {\n return fetchDelete('/pgapi/program/local_registration/special_rule', params);\n};\n\n// 保存special rule\nexport const saveSpacialRule = (params = {}, specialRuleWithVehicle = {}) => {\n return fetchPost('/pgapi/program/local_registration/special_rule', params, specialRuleWithVehicle);\n};\n// 不保存这次本地上牌的配置\nexport const delLocalRule = (params = {}) => {\n return fetchDelete('/pgapi/program/local_registration', params);\n};\n\n// 兼容性----------------------------------------\n// Program 兼容性 - 生成\nexport const loadCombinability = (params = {}): Promise => {\n return fetchGet('/pgapi/program/combinability/load_combinability', params);\n};\n// Program 兼容性 - 获取兼容性列表\nexport const filterCombinability = (params = {}): Promise => {\n return fetchPost('/pgapi/program/combinability/filter_combinability', params);\n};\n// [OASIS-613] Program 兼容性 - 配置兼容性\nexport const storeCombinability = (params = {}): Promise => {\n return fetchPost('/pgapi/program/combinability/store_combinability', params);\n};\n\n// 兼容性----------------------------------------\n\n// 获取 Parameter\nexport const getParameterData = (params = {}) => {\n return fetchGet('/mdapi/parameters', params);\n};\n\n// preview wording\nexport const wordingPreview = (params = {}): Promise => {\n return fetchGet(`/pgapi/program/wording/preview`, params);\n};\n\n// init wording\nexport const wordingInit = (params = {}): Promise => {\n return fetchGet(`/pgapi/program/wording/initialize_wording`, { params });\n};\n\n// replace wording\n// pgapi/program/wording/get_replaced_wording_pdf?programId=4a77724a-5337-4fbb-8741-9c70e7082df3&type=Internal&lang=en\nexport const getReplacedWordingPdf = (\n params = {}\n): Promise<{\n programId: string;\n type: string;\n lang: string;\n fileName: string;\n fileUrl: string;\n}> => {\n return fetchGet(`/pgapi/program/wording/get_replaced_wording_pdf`, params);\n};\nexport const deleteReplacedWordingPdf = (params = {}): Promise => {\n return fetchGet(`/pgapi/program/wording/delete_replaced_wording_pdf`, params);\n};\n\n// compare wording\nexport const wordingCompare = (params = {}): Promise => {\n return fetchGet(`/pgapi/program/wording/compare`, params);\n};\n// 查询wording\nexport const getEditableContent = (params = {}): Promise => {\n return fetchGet(`/pgapi/program/wording/get_editable_content`, params);\n};\n//保存wording\nexport const saveEditedContent = (params = {}): Promise => {\n return fetchPost('/pgapi/program/wording/save_edited_content', params);\n};\n\n// Get Release batch cover\nexport const getReleaseBatchCovereContent = (\n params = {}\n): Promise<{ batchId: string; coverCn: string; coverEn: string }> => {\n return fetchGet(`/pgapi/maintain/get_release_batch_cover`, params);\n};\nexport const saveReleaseBatchCover = (params = {}): Promise => {\n return fetchPost('/pgapi/maintain/save_release_batch_cover', params);\n};\n\n// Fa 部分\n// 获取表格 显示百分比\nexport const getAvaiDesData = (confinParams: any, params = {}): Promise => {\n return fetchPost(`/pgapi/prog/setting/fa/select_available_calculator`, params, { params: confinParams });\n};\n\n// 获取Financing Design表格数据\nexport const getFinacDesData = (confinParams: any, params = {}): Promise => {\n return fetchPost(`/pgapi/prog/setting/fa/financingDesign`, params, { params: confinParams });\n};\n\n// 获取 Fl\nexport const getFlDesData = (confinParams: any, params = {}): Promise => {\n return fetchPost(`/pgapi/prog/setting/fa/flWithBalloonDesign`, params, { params: confinParams });\n};\n\n// 获取 EQ Fl\nexport const getEqFlDesData = (confinParams: any, params = {}): Promise => {\n return fetchPost(`/pgapi/prog/setting/fa/nevFLWithBalloonDesign`, params, { params: confinParams });\n};\n\n// 获取\nexport const getAgDesData = (confinParams: any, params = {}): Promise => {\n return fetchPost(`pgapi/prog/setting/fa/agilityDesign`, params, { params: confinParams });\n};\n\n// 回显FA信息\nexport const getDesignFa = (\n params = {}\n): Promise<{\n financingDesignTableDTO: { [key: string]: string }[];\n flDesignTableDTO: { [key: string]: string }[];\n}> => {\n return fetchGet('pgapi/prog/setting/fa/getDesignTable', params);\n};\n\n// 获取计算器勾选的key\nexport const getChooseCalculator = (params = {}): Promise => {\n return fetchGet('pgapi/prog/setting/fa/selectChooseCalculator', params);\n};\n\n// 是否升级版本\nexport const findDesignDetail = (params = {}): Promise => {\n return fetchGet('pgapi/prog/setting/fa/findDesignDetail', params);\n};\n\n// 升级版本\nexport const updatedVersion = (params = {}): Promise => {\n return fetchGet('/pgapi/prog/setting/fa/progVersionUp', params);\n};\n\n// buy down fl\nexport const getFlBuyDownData = (confinParams: any, params = {}): Promise => {\n return fetchPost(`/pgapi/prog/setting/fa/flBuyDownBalloonDesign`, params, { params: confinParams });\n};\n\nexport const getEQCBuyDownData = (confinParams: any, params = {}): Promise => {\n return fetchPost(`/pgapi/prog/setting/fa/eqcBuyDownBalloonDesign`, params, { params: confinParams });\n};\n\nexport const checkBudgetPeriod = (params = {}): Promise => {\n return fetchPost('/pgapi/program/data/check_budget_period', params);\n};\n\nexport const downloadDocxPdfWording = (params = {}): Promise => {\n return fetchGet('/pgapi/program/wording/download_docx_pdf_wording', params);\n};\n\nexport const isWordingUploadAll = (params = {}): Promise => {\n return fetchGet('/pgapi/program/wording/wording_is_upload_all', { params });\n};\n\n// oasis-25896\nexport const getProgramAllStatus = (programId: string): Promise => {\n return fetchGet(`/pgapi/program/detail/status/${programId}`);\n};\n\nexport const clearProgramAllData = (programId: string) => {\n return fetchDelete(`/pgapi/program/detail/clear-data/${programId}`);\n};\n\nexport const checkBindingCalculators = (params = {}): Promise => {\n return fetchGet('/pgapi/prog/setting/fa/checkBindingCalculators', { params });\n};\n\n// oasis-25997\nexport const viewCombinabilityDocument = (params: any): Promise => {\n return axios.get(`/pgapi/program/combinability/document/view`, { params, responseType: 'blob' });\n};\n\n// oasis-25999\nexport const resetCombinability = (params: any): Promise => {\n return fetchGet(`/pgapi/program/combinability/reset`, { params });\n};\n\n// oasis-25999\nexport const getProgramCombinabilityDisplay = (params: any): Promise => {\n return fetchGetMess(`/pgapi/program/combinability/preview`, { params });\n};\n\nexport const getProgramLogs = (programId: string): Promise => {\n return fetchGet(`/pgapi/program/detail/logs/${programId}`);\n};\n","module.exports = __webpack_public_path__ + \"img/reject.8cc98fb6.svg\";","import * as GC from '@grapecity/spread-sheets'\n\nGC.Spread.Sheets.LicenseKey = 'oasis.mercedes-benz.com.cn|oasis-dev.mercedes-benz.com.cn|oasis-qa.mercedes-benz.com.cn|oasis-training.mercedes-benz.com.cn|oasis-uat.mercedes-benz.com.cn,858593977834555#B0WSK5WcvIVWah7Z5lXOIdGW7ZmN6czQ7wmeGJTOKpWdpFFTUNlUnF6dztiSKpkNUdzU6gzK95mRHRFbr2UUlZ5avoVSPhjVrFVMDtURsF5NvgzKtZ7YNpEO7ZUOWFVTsZ7V8Qkezl6c4hnbC36V84GbjpmNENkYxIGexU5ZtJDdr4WdmZ7RndUMzRjUv2WUwYnQnlkQHZle6Q6LzAXd8QFWwMjUNN6cT34LPF7LXJTbmhjSHNTb9wWRvdXMQhDVkFGVINWb7tWYwkUc7FEb8EEczpFSvgzRrc5LxdnQOhXeaRVWwV7TThHRqtGejl6SLNndxwkZhhlauFjb8YkRTRjaihmaIhWcodGRxFjaLJ7dN3kVahUchRkNONHOQJHdoN5YYtyN5hWZ8RGStJTcMVXaVRUeyEzK9oHZQR7MI3kI0IyUiwiIDFEODZkM7cjI0ICSiwiNyATOwUTN6QTM0IicfJye#4Xfd5nIFVUSWJiOiMkIsICNx8idgAyUKBCZhVmcwNlI0IiTis7W0ICZyBlIsISN4gzM6ADI9IDOwIjMwIjI0ICdyNkIsIibj9SbvNmL09WZi5yclRWZjJXZt9CdhVXLzl6ch3GLuNmLt36YuonblJWLzVGZlNmcl5mLn9WaulWYyRXLzl6ch3GLuNmLt36YuonblJWLzVGZlNmcl5mLhFXLzl6ch3GLuNmLt36YuonblJWLzVGZlNmcl5mL6VGZtMXazF6bs86Yu46bj9ieuVmYtMXZkV6YyVWbuMXazF6biojIz5GRiwiI8+Y9sWY9QmZ0Jyp9EWL0Vqo90yY9O6Y9tiL9nSa9SuY9Gea94io9iojIh94QiwiI5UTN4MDO7cTOzkTN8UDOiojIklkIs4XZzxWYmpjIyNHZisnOiwmbBJye0ICRiwiI34zdjhHUQVTNUplRBdlTPlXOhZVazJRWuM';\n","module.exports = __webpack_public_path__ + \"img/refresh-icon.6210b1a0.svg\";","import { ref, reactive, computed, watch } from 'vue';\nimport { useRoute } from 'vue-router';\nimport { useStore } from 'vuex';\nimport { getProgramAllStatus } from '@/API/program';\n\nconst navToolTipContentMaps = {\n fulfill: 'Content saved',\n reject: 'Content not saved or generated',\n pending: 'Content needs to be confirmed'\n};\n\nconst AllNavStatusMaps = {\n // Design\n Temporary: 'reject',\n NonTemporary: 'fulfill',\n // Combinability parameter\n Draft: 'reject',\n Default: 'fulfill',\n Confirmed: 'fulfill',\n ToBeConfirmed: 'pending',\n // Budget\n N: 'reject',\n Y: 'fulfill'\n};\n\nexport default function useNavBar() {\n const store = useStore();\n const route = useRoute();\n const activeKey = ref('1');\n const navArr = ref();\n\n const currentProgramId = computed(() => {\n return store.state.pgmData.programId;\n });\n\n navArr.value = [\n {\n title: 'Design',\n key: 'design',\n path: '/programdesign/design',\n id: '1',\n query: {\n pgmId: !route.query.pgmId ? '' : route.query.pgmId\n }\n },\n {\n title: 'Combinability',\n key: 'combinability',\n id: '4',\n path: '/programdesign/combinabilitysetting',\n query: {\n pgmId: !route.query.pgmId ? '' : route.query.pgmId\n }\n },\n {\n title: 'Parameter',\n key: 'parameter',\n path: '/parametersetup',\n id: '3',\n query: {\n pgmId: !route.query.pgmId ? store.state.pgmData.programId : route.query.pgmId\n }\n },\n {\n title: 'Budget',\n key: 'budget',\n path: '/budgetinput',\n id: '2',\n query: {\n pgmId: !route.query.pgmId ? store.state.pgmData.programId : route.query.pgmId\n }\n }\n ];\n\n watch(currentProgramId, (newVal: any) => {\n if (newVal !== '' && newVal !== undefined) {\n navArr.value?.forEach((nav: any) => {\n nav.query.pgmId = newVal;\n });\n console.log('watch navArr.value', navArr.value);\n }\n });\n\n const changeNavStatus = (tabStatus: any) => {\n navArr.value?.forEach((item: any) => {\n const currentNavStatus =\n item.key === 'design' && tabStatus.design !== 'Temporary' ? 'NonTemporary' : tabStatus[item.key];\n item['status'] = AllNavStatusMaps[currentNavStatus];\n if (tabStatus.design === 'Temporary') {\n if (item.key !== 'design') {\n item.disabled = true;\n }\n } else {\n item.disabled = false;\n }\n item.toolTipContent = item.status ? navToolTipContentMaps[item.status] : null;\n });\n };\n\n const programAllStatus = ref({\n budget: 'Y',\n combinability: 'Confirmed',\n design: 'Sales Submitted',\n parameter: 'Confirmed'\n });\n\n const getTabStatus = async () => {\n const res = await getProgramAllStatus(currentProgramId.value);\n Object.assign(programAllStatus.value, res);\n changeNavStatus(res);\n };\n\n return {\n activeKey,\n navArr,\n changeNavStatus,\n getTabStatus,\n programAllStatus\n };\n}\n","module.exports = __webpack_public_path__ + \"img/side-nav-bg.2f18a359.jpg\";","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!./AddOfferLeft.vue?vue&type=style&index=0&id=77543d2f&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./BudgetInputSet.vue?vue&type=style&index=0&id=4b3c3145&lang=scss&scoped=true\"","import axios, { AxiosRequestConfig } from 'axios';\nimport qs from 'qs';\nimport { message } from 'ant-design-vue';\nimport store from '@/store';\nimport router from '@/router';\n// 错误状态\n// import { errStatus } from '@/utils/api/errStatus'\nconst notLoadUrl = [\n '/bgapi/allocation/budget/export/view',\n '/bgapi/budget/findbudget_data',\n '/bgapi/budget/sum_kufri_budget',\n '/rvapi/basic/certificate/batchInvoice/upload',\n '/rvapi/basic/certificate/batchLicense/upload',\n '/rvapi/basic/apply/progress',\n '/pcapi/closing/dataPreparation/importDealerStock',\n '/pcapi/closing/dataPreparation/importRT',\n '/pcapi/closing/dataPreparation/importWSBI',\n '/pcapi/closing/dataPreparation/upload',\n '/pcapi/closing/dataPreparation/collectInterfaceData/result',\n '/rvapi/vl/handlefile/license/upload',\n '/rvapi/vl/singleSubmitResult',\n '/rvapi/vl/handlefile/progress',\n '/rvapi/vl/handlefile/batchLicense/upload',\n '/rvapi/delay/batchUpload/license',\n '/rvapi/delay/batchUpload/invoice',\n '/claimapi/ocr/claim/idCard',\n '/claimapi/ocr/claim/batchRegistration',\n '/claimapi/ocr/claim/batchUCInvoice',\n '/claimapi//ocr/claim/idCard',\n '/claimapi/ocr/claim/registration',\n '/claimapi/ocr/claim/ucInvoice',\n '/rvapi/ucOrcResult/listPage'\n];\nexport const baseURL = '/oasis';\naxios.defaults.baseURL = baseURL;\naxios.defaults.paramsSerializer = (params) => qs.stringify(params, { arrayFormat: 'repeat' });\n\nlet requestNumber = 0;\nconst isNoLoading = (url: string) => {\n return notLoadUrl.includes(url);\n};\n\naxios.interceptors.request.use((config) => {\n if (store.state.isPolling) {\n if (!isNoLoading(config.url as string)) {\n requestNumber = requestNumber + 1;\n }\n store.commit(\n 'updateSpinning',\n !notLoadUrl.filter((url) => {\n return String(config.url).includes(url);\n }).length\n );\n }\n\n // 本地调试使用\n // store.commit(\n // 'updateAuthorization',\n // 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJPQUFETUlOIiwiaXNzIjoiT0FTSVMiLCJleHAiOjE2ODc5MzMwNDc2MTYsImlhdCI6MTY4NTM0MTA0N30.SwGW5V3e6uZHjr1x6HBJg1bPJaVc_fVgk8o41vMPM0Jp73OZCWMO6cRx93kUgWuo4rKHoEgf35Q0hUdM1c5e0g'\n // );\n // uat 环境使用\n // store.commit(\n // \"updateAuthorization\",\n // \"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJMSUFOR0tBIiwiaXNzIjoiT0FTSVMiLCJleHAiOjE2Nzg0NDIxMzk3MjAsImlhdCI6MTY3NTg1MDEzOX0.e77Sy7ghxWh5J1PqdqicK6beWy0tgIwA9pVl-WiEy5q0642XIle_sU0jQaAh4Cl7XtfyQeDD60uGVLFW2THEaw\"\n // );\n // tranining 环境使用\n // store.commit('updateAuthorization', 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJPQUFETUlOIiwiaXNzIjoiT0FTSVMiLCJleHAiOjE2NDM4NzQ4ODYxNjIsImlhdCI6MTY0MTI4Mjg4Nn0.w2CUnmWgT6Sm9sWKesz7Fu8AkaHHVL73-8COSWt_i_owSWkyoGj3sZgSusctxQ3bp57XWpvRwG3yInclSeRtjw')\n // NST Group MSRP Override 的权限账号\n // store.commit('updateAuthorization', 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJMWUlOR05BIiwiaXNzIjoiT0FTSVMiLCJleHAiOjE2Mzg0MzM5NDk1OTEsImlhdCI6MTYzNTg0MTk0OX0.7EeVONG6i1c8bj2j9bAWglbpYuY1quqRDDhEdal9pGJCfNpLzPMB23tSBYv4dhhcXkvoUrZp9BduDKkQp4EAEA')\n const Authorization = store.state.Authorization;\n Authorization && (config.headers['Authorization'] = Authorization);\n\n // config.headers['Authorization'] = store.state.Authorization;\n // (config.headers['Authorization'] = \"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJPQUFETUlOIiwiaXNzIjoiT0FTSVMiLCJleHAiOjE2Mzc5NzIxMTcxNzAsImlhdCI6MTYzNTM4MDExN30.sFkZvZ42xtD7RuGa8_DP_j50ZVutl2H6ggL_jIQmaZht1BUjuj9l1MDgYS1y5I098E2kHxpGQm4_Li2jdy0QlA\")\n\n config.headers['Authorization'] = store.state.Authorization;\n config.headers['accept'] = '*/*';\n // config.headers['X-USER-INFO'] = 'eyJ1c3JpZCI6ImZmODA4MDgxNzYxOGFmZjgwMTc2MThiMGJmZGQwMDA4IiwidXNybm0iOiJPRU1JVEFETUlOIiwiZnVsbm0iOiJPRU0gSVQgQWRtaW4iLCJlbWFpbCI6Ik9BU0lTMDlAT0FTSVMuY29tIiwidXNydHAiOjEwMDAxLCJ1c3J0cG5tIjoiT0VNIiwib3JnaWQiOiIyZGU5ZjQ3NGE4N2E0NGEwYTE3OTM4YjIxYmRjODdlOSIsIm9yZ25tY24iOm51bGwsIm9yZ25tZW4iOm51bGwsInN0YXRlIjp0cnVlLCJjcnRlZCI6MTYwNjgxNzU5NzY0NywiY3J0YnkiOiJPQVNJU0lUQURNSU4wOSIsImNydGJ5bm0iOiJPQVNJU0lUQURNSU4wOSJ9';\n\n return config;\n});\n\n/* TODO 注释代码是和登录拦截相关的,勿删 */\naxios.interceptors.response.use(\n (config) => {\n // /oauth/token/exchange接口验证通过在headers中返回authorization\n if (!isNoLoading(config.config.url as string)) {\n requestNumber = requestNumber - 1;\n }\n if (requestNumber === 0) {\n store.commit('updateSpinning', false);\n }\n const authorization = config.headers['authorization'];\n authorization && store.commit('updateAuthorization', authorization);\n if (config.config.codeHandler !== 'ignore' && config.config.headers['code-handler'] !== 'ignore') {\n if (config.data.code && config.data.code !== '0') {\n message.error(config.data.message);\n }\n }\n return config;\n },\n (error) => {\n const url = error.response && error.response.config && error.response.config.url;\n\n if (!isNoLoading(url as string)) {\n requestNumber = requestNumber - 1;\n }\n if (requestNumber === 0) {\n store.commit('updateSpinning', false);\n }\n // 401 token失效或code无效\n if (error.response.status === 401 && (url === '/oauth/token/exchange' || url === '/usapi/users/currentuser')) {\n if (process.env.VUE_APP_SSO === 'yes') {\n // 获取重定向地址\n const data = atob(error.response.data.data);\n // token失效清除Authorization\n store.commit('updateAuthorization', '');\n data && (window.location.href = data);\n } else {\n router.push('/login');\n }\n } else {\n if (error.response && error.response.data.path !== '/pgapi/prog/setting/fa/upload_calculator') {\n if (error.config.codeHandler !== 'ignore' && error.config.headers['code-handler'] !== 'ignore') {\n if (error.response.data instanceof Blob && error.response.data.type === 'application/json') {\n error.response.data.text().then((res: any) => {\n message.error(JSON.parse(res).message);\n });\n } else if ('message' in error.response.data) {\n message.error(error.response.data.message);\n } else {\n message.error(error.response.data.msg);\n }\n }\n }\n }\n\n return Promise.reject(error);\n }\n);\n/* TODO 注释代码是和登录拦截相关的,勿删 end */\n\nexport const fetchGet = (url: string, params = {}): Promise => {\n return new Promise((resolve, reject) => {\n axios\n .get(url, params)\n .then((res) => {\n resolve(res.data.data);\n })\n .catch((error) => {\n reject(error);\n });\n });\n};\nexport const fetchPost = (url: string, data = {}, params = {}): Promise => {\n return new Promise((resolve, reject) => {\n axios\n .post(url, data, params)\n .then((res) => {\n if (res.data.code !== '0') {\n reject(res.data.data);\n }\n resolve(res.data.data);\n })\n .catch((error) => {\n reject(error);\n });\n });\n};\nexport const fetchGetMess = (url: string, params = {}): Promise => {\n return new Promise((resolve, reject) => {\n axios\n .get(url, params)\n .then((res) => {\n resolve(res.data);\n })\n .catch((error) => {\n reject(error);\n });\n });\n};\nexport const fetchPostPic = (url: string, data = {}, params = {}): Promise => {\n return new Promise((resolve, reject) => {\n axios\n .post(url, data, params)\n .then((res) => {\n resolve(res.data);\n })\n .catch((error) => {\n reject(error);\n });\n });\n};\nexport const fetchPut = (url: string, data = {}, params = {}): Promise => {\n return new Promise((resolve, reject) => {\n axios\n .put(url, data, params)\n .then((res) => {\n resolve(res.data.data);\n })\n .catch((error) => {\n reject(error);\n });\n });\n};\nexport const fetchPutPic = (url: string, data = {}, params = {}): Promise => {\n return new Promise((resolve, reject) => {\n axios\n .put(url, data, params)\n .then((res) => {\n resolve(res.data);\n })\n .catch((error) => {\n reject(error);\n });\n });\n};\nexport const fetchDelete = (url: string, params = {}): Promise => {\n return new Promise((resolve, reject) => {\n axios\n .delete(url, params)\n .then((res) => {\n resolve(res.data.data);\n })\n .catch((error) => {\n reject(error);\n });\n });\n};\nexport const fetchDeletePic = (url: string, params = {}): Promise => {\n return new Promise((resolve, reject) => {\n axios\n .delete(url, params)\n .then((res) => {\n resolve(res.data);\n })\n .catch((error) => {\n reject(error);\n });\n });\n};\n\nexport const fetch = (config: AxiosRequestConfig): Promise => {\n return new Promise((resolve, reject) => {\n axios(config)\n .then((res) => {\n resolve(res.data);\n })\n .catch((error) => {\n reject(error);\n });\n });\n};\n","/*\n * @Author: guowu\n * @Date: 2021-11-15 13:43:50\n * @LastEditTime: 2021-11-29 17:39:27\n */\nimport axios from 'axios'\nimport { AxiosRequestConfig } from '@/API/types'\nimport { message } from \"ant-design-vue\"\n\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 };\n if (method === \"get\") {\n config[\"params\"] = params;\n } else {\n config[\"data\"] = params;\n }\n console.log(config,'config');\n return new Promise((resolve, reject) => {\n axios(config)\n .then((res: any) => {\n if (res.data.size > 0) {\n let userFileName = ''\n if (!fileName) {\n console.log(res.headers)\n userFileName = res.headers['content-disposition'].split('filename=')[1]\n if (userFileName && userFileName.includes('\"')) userFileName = userFileName.slice(1, -1);\n userFileName = decodeURIComponent(userFileName)\n } else {\n userFileName = fileName\n }\n\n // 文件格式\n const contentType = res.headers['content-type']\n const blob = new Blob([res.data], { type: contentType }) //指定格式为vnd.ms-excel\n const downloadElement = document.createElement('a')\n const href = window.URL.createObjectURL(blob) //创建下载的链接\n downloadElement.href = href\n downloadElement.download = !userFileName ? Date.now().toString() : userFileName //下载后文件名\n document.body.appendChild(downloadElement)\n downloadElement.click() //点击下载\n document.body.removeChild(downloadElement) //下载完成移除元素\n window.URL.revokeObjectURL(href) //释放掉blob对象\n resolve(res)\n } else {\n message.error('Data is null!')\n }\n\n })\n .catch(function (error: string) {\n console.log(error)\n return reject(error)\n })\n })\n}\n\n","import { openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"flex-div\",\n style: {\"height\":\"100%\",\"font-size\":\"50px\"}\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, \" OASIS \"))\n}","\n import { defineComponent, ref, onMounted } from 'vue'\n import { useStore } from 'vuex';\n interface Route {\n path: string;\n breadcrumbName: string;\n children?: Array<{\n path: string;\n breadcrumbName: string;\n }>;\n }\n\n export default defineComponent({\n setup() {\n const { commit } = useStore()\n const routes = ref([\n {\n path: 'index',\n breadcrumbName: 'home',\n },\n {\n path: 'first',\n breadcrumbName: 'first',\n children: [\n {\n path: '/general',\n breadcrumbName: 'General',\n },\n {\n path: '/layout',\n breadcrumbName: 'Layout',\n },\n {\n path: '/navigation',\n breadcrumbName: 'Navigation',\n },\n ],\n },\n {\n path: 'second',\n breadcrumbName: 'second',\n },\n ]);\n onMounted(() => {\n console.log(111)\n commit('updateSideNavKeys', {\n openKeys: [],\n selectedKeys: []\n })\n })\n return {\n routes,\n }\n }\n })\n","import { render } from \"./Home.vue?vue&type=template&id=44145947&ts=true\"\nimport script from \"./Home.vue?vue&type=script&lang=ts\"\nexport * from \"./Home.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, withCtx as _withCtx, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"privilegeGroup\",\n class: \"table-screen\"\n}\nconst _hoisted_2 = { class: \"flex-div justify-s m-t-10 bg-fff selt-select-w\" }\nconst _hoisted_3 = { style: {\"padding\":\"10px\"} }\nconst _hoisted_4 = { class: \"m-r-8\" }\nconst _hoisted_5 = { class: \"m-l-35 m-r-8\" }\nconst _hoisted_6 = { class: \"operation-chunk bg-fff p-l-10\" }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"i\", { style: {\"font-size\":\"20px\"} }, \"+\", -1)\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"Add \")\nconst _hoisted_9 = [\n _hoisted_7,\n _hoisted_8\n]\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\"Cancel\")\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_12 = { class: \"bg-fff p-10 m-t-10\" }\nconst _hoisted_13 = { class: \"ellipsis\" }\nconst _hoisted_14 = { class: \"ellipsis\" }\nconst _hoisted_15 = {\n key: 0,\n class: \"m-r-20\"\n}\nconst _hoisted_16 = [\"onClick\"]\nconst _hoisted_17 = {\n key: 1,\n class: \"m-r-20\"\n}\nconst _hoisted_18 = [\"onClick\"]\nconst _hoisted_19 = {\n key: 2,\n class: \"m-r-20\",\n style: {\"min-width\":\"65px\",\"display\":\"inline-block\"}\n}\nconst _hoisted_20 = [\"onClick\"]\nconst _hoisted_21 = {\n key: 3,\n class: \"m-r-20\"\n}\nconst _hoisted_22 = [\"onClick\"]\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_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_form_item = _resolveComponent(\"a-form-item\")!\n const _component_a_textarea = _resolveComponent(\"a-textarea\")!\n const _component_a_form = _resolveComponent(\"a-form\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Breadcrumb, { dataSource: [] }),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('user.grg')) + \":\", 1),\n (_ctx.$i18n.locale === 'zh')\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 0,\n value: _ctx.cnName,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.cnName) = $event)),\n placeholder: _ctx.$t('user.filterpgName'),\n class: _normalizeClass([{errorInp: !_ctx.boolSearch}, \"m-l-10\"]),\n onChange: _ctx.searchChange,\n onPressEnter: _ctx.searchSubmit\n }, null, 8, [\"value\", \"placeholder\", \"class\", \"onChange\", \"onPressEnter\"]))\n : (_openBlock(), _createBlock(_component_a_input, {\n key: 1,\n value: _ctx.enName,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.enName) = $event)),\n class: _normalizeClass([{errorInp: !_ctx.boolSearch}, \"m-l-10\"]),\n onChange: _ctx.searchChange,\n onPressEnter: _ctx.searchSubmit,\n placeholder: _ctx.$t('user.filterpgName')\n }, null, 8, [\"value\", \"class\", \"onChange\", \"onPressEnter\", \"placeholder\"])),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t('user.userType')) + \":\", 1),\n _createVNode(_component_a_select, {\n class: \"m-l-10\",\n value: _ctx.userType,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.userType) = $event)),\n ref: \"select\",\n placeholder: _ctx.$t('user.filterType'),\n allowClear: \"\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.legalEntityOptions, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.id,\n key: item.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.entityName), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"m-l-35 my-btn-s my-btn\",\n onClick: _ctx.searchSubmit\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('search')), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n (_ctx.$btnPermissions('ADD'))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"cursor-p f-l m-l-10 btn-operation\",\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.handleAddPG && _ctx.handleAddPG(...args)))\n }, _hoisted_9))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(_component_a_modal, {\n visible: _ctx.visible,\n \"onUpdate:visible\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.visible) = $event)),\n onCancel: _ctx.handleCancel,\n centered: \"\",\n class: \"my-modal\",\n title: _ctx.modalTitle\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"back\",\n class: \"modal-h\",\n onClick: _ctx.handleCancel\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n key: \"submit\",\n class: \"f-l modal-h my-btn\",\n type: \"primary\",\n disabled: _ctx.isAdd === 2 ? true: false,\n onClick: _ctx.submitAddPG\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n }, 8, [\"disabled\", \"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_form, {\n ref: _ctx.ruleFormRef,\n model: _ctx.form,\n rules: _ctx.rules,\n \"label-col\": _ctx.labelCol,\n \"wrapper-col\": _ctx.wrapperCol\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_form_item, {\n ref: \"grpnmen\",\n label: _ctx.$t('user.enName'),\n name: \"grpnmen\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_input, {\n value: _ctx.form.grpnmen,\n \"onUpdate:value\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.form.grpnmen) = $event)),\n placeholder: _ctx.$t('user.inputNameEn'),\n disabled: _ctx.isAdd === 2 ? true: false\n }, null, 8, [\"value\", \"placeholder\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_a_form_item, {\n ref: \"grpnmcn\",\n label: _ctx.$t('user.cnName'),\n name: \"grpnmcn\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_input, {\n value: _ctx.form.grpnmcn,\n \"onUpdate:value\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.form.grpnmcn) = $event)),\n placeholder: _ctx.$t('user.inputNameCn'),\n disabled: _ctx.isAdd === 2 ? true: false\n }, null, 8, [\"value\", \"placeholder\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_a_form_item, {\n label: _ctx.$t('user.type'),\n name: \"grptpnm\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select, {\n value: _ctx.form.grptpnm,\n \"onUpdate:value\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.form.grptpnm) = $event)),\n placeholder: _ctx.$t('user.filterType'),\n onChange: _ctx.grptpChange,\n disabled: _ctx.isAdd !== 1 || _ctx.$store.state.user.usrtp === 10002 ? true: false\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.legalEntityOptions, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.entityName,\n key: item.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.entityName), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\", \"onChange\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_a_form_item, {\n ref: \"grpdsc\",\n label: _ctx.$t('user.description'),\n name: \"grpdsc\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_textarea, {\n value: _ctx.form.grpdsc,\n \"onUpdate:value\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.form.grpdsc) = $event)),\n placeholder: _ctx.$t('user.inputDescription'),\n disabled: _ctx.isAdd === 2 ? true: false\n }, null, 8, [\"value\", \"placeholder\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _: 1\n }, 8, [\"model\", \"rules\", \"label-col\", \"wrapper-col\"])\n ]),\n _: 1\n }, 8, [\"visible\", \"onCancel\", \"title\"]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(_component_a_table, {\n class: \"m-t-20 tab-container self-table-text-ellipsis\",\n rowKey: privilegeGroup => privilegeGroup.privgrpid,\n columns: _ctx.columns,\n \"data-source\": _ctx.privilegeGroup,\n pagination: _ctx.pageOptions,\n scroll: { y: _ctx.tableHeight - 50 },\n onChange: _ctx.changePage,\n rowClassName: (record, index) => (index % 2 === 1 ? 'table-striped' : null)\n }, {\n customTitle: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.grg')), 1)\n ]),\n name: _withCtx(({ record }) => [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$i18n.locale === 'zh' ? record.grpnmcn : record.grpnmen), 1)\n ]),\n customType: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.type')), 1)\n ]),\n customDescription: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.description')), 1)\n ]),\n description: _withCtx(({ record }) => [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(record.grpdsc), 1)\n ]),\n customOperation: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.operation')), 1)\n ]),\n operation: _withCtx(({ record }) => [\n (_ctx.$btnPermissions('VIEW'))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_15, [\n _createElementVNode(\"a\", {\n onClick: _withModifiers(($event: any) => (_ctx.handleEdit(record, 2)), [\"prevent\"]),\n class: \"customTitle\"\n }, \"View\", 8, _hoisted_16)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('EDIT'))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_17, [\n _createElementVNode(\"a\", {\n onClick: _withModifiers(($event: any) => (_ctx.handleEdit(record, 0)), [\"prevent\"]),\n class: \"customTitle\"\n }, \"Edit\", 8, _hoisted_18)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('ACTIVATE|DEACTIVATE'))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_19, [\n _createElementVNode(\"a\", {\n onClick: _withModifiers(($event: any) => (_ctx.handleDisable(record.privgrpid)), [\"prevent\"]),\n class: \"customTitle\"\n }, _toDisplayString(record.state ? 'Deactivate' : 'Active'), 9, _hoisted_20)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('SETTING'))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_21, [\n _createElementVNode(\"a\", {\n class: \"customTitle\",\n onClick: ($event: any) => (_ctx.$router.push({ name: 'Privilege Group Setting', params: {id: record.privgrpid} }))\n }, \" Configuration \", 8, _hoisted_22)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"rowKey\", \"columns\", \"data-source\", \"pagination\", \"scroll\", \"onChange\", \"rowClassName\"])\n ])\n ]))\n}","import { ref } from 'vue'\nimport { useStore } from 'vuex'\nimport { addDataKey } from \"@/utils\";\n// import { PGFindall } from '@/API/user'\nimport { PGProps, PageOptionProps } from '@/views/User/types'\nimport { message } from \"ant-design-vue\";\n const useSearch = (pageOptions: PageOptionProps, PGFindall: any, searchType: string) => {\n const store = useStore()\n // 搜suo的用户名\n const enName = ref('');\n const cnName = ref('');\n // 搜suo的用户类型\n const userType = ref();\n const privilegeGroup = ref([]);\n // // 分页配置\n // 搜索提交\n // 搜索name的检索有无特殊字符\n const boolSearch = ref(true)\n const searchSubmit = () => {\n if (!boolSearch.value){\n message.error(\"Please enter qualified characters!\")\n return false\n }\n let name = ''\n if (enName.value || cnName.value) {\n name = store.state.lang === \"en\"? enName.value.trim() : cnName.value.trim()\n }\n const params = {\n [searchType]: userType.value,\n name,// 去除参数是空格的问题\n pageIndex: 0\n };\n PGFindall({ params: params }).then((res: any) => {\n privilegeGroup.value = addDataKey(res.content)\n pageOptions.pageSize = res.size\n pageOptions.total = res.totalElements\n pageOptions.current = 0\n })\n };\n const searchChange = (e: Event) => {\n const event = e && (e.target as HTMLInputElement).value\n const re = /^([a-zA-Z0-9_]|[\\u4e00-\\u9fa5]|\\s){0,}$/g;\n if (!re.test(event)) {\n boolSearch.value = false\n message.error(\"Please enter qualified characters!\")\n } else {\n boolSearch.value = true\n }\n }\n return {\n enName, cnName, userType, searchSubmit, privilegeGroup, searchChange, boolSearch\n }\n}\nexport default useSearch\n","const htmlentities = (str: any) => { \n let s = '' \n if (str.length == 0) return '' \n s = str.replace(/\\/>/g, \">\") \n return s \n}\nexport default htmlentities","import { ref, reactive, nextTick, watch } from 'vue'\nimport { PGProps, SelectProps } from '@/views/User/types'\nimport { PGsavegroup, PGupdategroup, PGfindgroupbyid } from '@/API/user'\nimport { message } from \"ant-design-vue\"\nimport { useStore } from 'vuex'\nimport htmlentities from '@/utils/htmlentities'\nconst useAddEdit = () => {\n const store = useStore()\n // 增加组的弹窗\n const visible = ref(false);\n // 定义是否添加过\n const isAdd = ref(1)\n const formData = reactive({\n labelCol: { span: 6 },\n wrapperCol: { span: 16 },\n other: '',\n form: {\n privgrpid: '',\n grpnmcn: '',\n grpnmen: '',\n grptp: store.state.user.usrtp === 10001 ? 0 : 10007,\n grptpnm: store.state.user.usrtp === 10001 ? [] : 'Dealer', // placeholder 需要是数组才显示\n grpdsc: \"\",\n state: true,\n crtby: '',\n crtbynm: '',\n crted: 0,\n },\n rules: {\n grpnmcn: [\n {\n required: true,\n message: \"Please input Chinese name\",\n trigger: \"blur\",\n type:'string',\n },\n { max: 100, message: \"Length should be 1 to 100\", trigger: \"blur\" },\n { pattern: /^([a-z]|[A-Z]|[\\u4e00-\\u9fa5]|[0-9]|\\s){0,}$/g, message: \"Please enter Chinese,English Letters and number\", trigger: \"blur\",}\n ],\n grpnmen: [\n {\n required: true,\n message: \"Please input English name\",\n trigger: \"blur\",\n type:'string',\n },\n { max: 100, message: \"Length should be 1 to 100\", trigger: \"blur\" },\n { pattern: /^([a-z]|[A-Z]|[0-9]|\\s){0,}$/g, message: \"Please enter English or number\", trigger: \"blur\" }\n ],\n grptpnm: [\n {\n required: true,\n message: \"Please select a user group type\",\n trigger: \"change\",\n type:'string',\n },\n ],\n grpdsc: [{ max: 200, message: \"Length should be 0 to 200\", trigger: \"change\" }]\n },\n });\n // 显示增加权限组弹窗\n const handleAddPG = () => {\n visible.value = true;\n isAdd.value = 1;\n }\n // 因为下拉不能绑定对象,所以要用change得到label\n const grptpChange = (value: string, option: SelectProps) => {\n formData.form.grptpnm = value;\n formData.form.grptp = option.key;\n }\n // 获取from DOM元素\n const myFromRef = ref()\n const ruleFormRef = (el: HTMLElement | null)=>{\n nextTick(()=>{\n myFromRef.value = el\n })\n }\n // 提交增加组\n const submitAddPG = () => {\n myFromRef.value\n .validate()\n .then(() => {\n visible.value = false;\n const params = {\n grpdsc: htmlentities(formData.form.grpdsc),\n grpnmcn: htmlentities(formData.form.grpnmcn),\n grpnmen: htmlentities(formData.form.grpnmen),\n grptp: formData.form.grptp,\n grptpnm: formData.form.grptpnm,\n privgrpid:formData.form.privgrpid,\n state: formData.form.state,\n crtby: formData.form.crtby,\n crtbynm: formData.form.crtbynm,\n crted: formData.form.crted,\n };\n if (isAdd.value) {\n PGsavegroup(params).then((res) => {\n message.success(\"Save successfully!\");\n console.log(res, \"保存成功\");\n window.location.reload()\n });\n } else {\n PGupdategroup(params).then((res) => {\n message.success(\"Save successfully!\");\n console.log(res, \"编辑成功\");\n window.location.reload()\n });\n }\n myFromRef.value.resetFields();\n })\n .catch((error: string) => {\n console.log(\"error\", error);\n });\n };\n // 取消增加权限组弹窗\n const handleCancel = () => {\n visible.value = false;\n myFromRef.value.resetFields();\n };\n // 编辑\n const handleEdit = (row: PGProps, addNumber: number) => {\n visible.value = true;\n isAdd.value = addNumber;\n const params = {\n privgrpid: row.privgrpid\n }\n PGfindgroupbyid({ params: params }).then(res => {\n formData.form.grpnmcn = res.grpnmcn;\n formData.form.grpnmen = res.grpnmen;\n formData.form.grpdsc = res.grpdsc;\n formData.form.grptp = res.grptp;\n formData.form.grptpnm = res.grptpnm;\n formData.form.state = res.state;\n formData.form.privgrpid = res.privgrpid;\n formData.form.crtby = res.crtby;\n formData.form.crtbynm = res.crtbynm;\n formData.form.crted = res.crted;\n })\n };\n const modalTitle = ref('Add User Group')\n watch(()=>{\n return isAdd.value\n },(state)=>{\n if ( state === 0) {\n modalTitle.value = 'Edit User Group'\n } else if ( state === 1 ) {\n modalTitle.value = 'Add User Group'\n } else if ( state === 2 ) {\n modalTitle.value = 'View User Group'\n } \n })\n\n // 监听当前用户的权限问题\n watch(()=>{\n return store.state.user.usrtp\n },(state)=>{\n if ( state === 10001 ) {\n formData.form.grptpnm = ''\n formData.form.grptp = 0\n \n } else {\n formData.form.grptpnm = 'Dealer'\n // Dealer id是10007\n formData.form.grptp = 10007\n } \n })\n return {\n handleEdit,\n handleCancel,\n submitAddPG,\n ruleFormRef,\n grptpChange,\n handleAddPG,\n isAdd,\n modalTitle,\n visible,\n formData,\n }\n}\nexport default useAddEdit","\nimport { defineComponent, ref, reactive, toRefs, onMounted, h } from \"vue\";\nimport { PageOptionProps, SearchParamsProps, LegalEntity } from './types'\nimport { Modal } from \"ant-design-vue\";\nimport store from \"@/store\";\nimport { addDataKey } from \"@/utils\";\nimport { PGFindall, PGchangestatus, getLegalEntityOptions } from '@/API/user'\nimport useSearch from '@/hooks/useSearch'\nimport useAddEdit from '@/hooks/useAddEdit'\nimport useTableHeight from \"@/hooks/useTableHeight\";\n// 表格的列\nconst columns = [\n {\n title: \"No.\",\n dataIndex: \"key\",\n key: \"key\",\n width: '6%'\n },\n {\n // title: \"Name\",\n dataIndex: \"grpnmcn\",\n key: \"grpnmcn\",\n // 这里customRender: 'name',name和上面#name一致\n slots: { title: \"customTitle\", customRender: \"name\" },\n width: '25%'\n\n },\n {\n // title: \"Type\",\n dataIndex: \"grptpnm\",\n key: \"grptpnm\",\n slots: { title: \"customType\" },\n width: '15%'\n },\n {\n // title: \"Description\",\n dataIndex: \"grpdsc\",\n key: \"grpdsc\",\n slots: { title: \"customDescription\", customRender: \"description\" },\n },\n {\n // title: \"Operation\",\n key: \"operation\",\n slots: { title: \"customOperation\", customRender: \"operation\" },\n width: '25%'\n },\n];\n\n\nexport default defineComponent({\n components: {},\n setup() {\n const legalEntityOptions = ref()\n const innerHeight = ref(window.innerHeight)\n // 分页配置\n const pageOptions = reactive({\n pageSize: 0,\n current: 0,\n total: 1,\n pageSizeOptions: ['10', '20', '30', '40'],\n showSizeChanger: true,\n showQuickJumper: true,\n });\n const { tableHeight } = useTableHeight(true, '.ant-table-pagination');\n const {enName, cnName, userType, searchSubmit, privilegeGroup, searchChange, boolSearch} = useSearch(pageOptions, PGFindall, 'type')\n const getLegalEntity = () => {\n getLegalEntityOptions().then((res) => {\n legalEntityOptions.value = res\n })\n }\n \n const PGFindallFn = (params: SearchParamsProps, current: number,): void => {\n PGFindall({ params: params }).then((res): void => {\n privilegeGroup.value = addDataKey(res.content);\n pageOptions.pageSize = res.size;\n pageOptions.total = res.totalElements;\n pageOptions.current = current;\n })\n }\n // 表格\n // 表格请求数据, 初始表格数据\n const initTableData = (pageIndex = 0, pageSize = 10) => {\n const params = {\n pageIndex: pageIndex,\n pageSize\n };\n PGFindallFn(params, pageIndex + 1)\n };\n // 表格选择页码页面\n const changePage = (pagination: PageOptionProps) => {\n if (!userType.value && !enName.value && !cnName.value) {\n initTableData(pagination.current - 1, pagination.pageSize);\n } else {\n const params = {\n type: userType.value,\n name: store.state.lang === \"en\" ? enName.value.trim() : cnName.value.trim(),\n pageIndex: pagination.current - 1,\n pageSize: pagination.pageSize\n\n };\n PGFindallFn(params, pagination.current)\n }\n };\n\n const { handleEdit, handleCancel, submitAddPG, ruleFormRef, grptpChange, handleAddPG, visible, isAdd, modalTitle, formData} = useAddEdit()\n\n \n // 删除\n const delVisible = ref(false);\n const handleDisable = (id: number) => {\n Modal.confirm({\n class: 'my-confirm',\n content: h('div', {}, [\n h('i',{ 'class': 'font_family icon-shezhi confirm-h'}, ''),\n h('h1',{ 'style': 'font-size: 18px;'} , 'Are you sure to change the status of user group?'),\n ]),\n onOk() {\n return new Promise((resolve, reject) => {\n const params = { privGroupId: id };\n //接口\n PGchangestatus(params).then((res) => {\n let nowState = ''\n if (res.state) {\n nowState = 'true'\n } else {\n nowState = 'false'\n }\n sessionStorage.setItem(\"state\", nowState)\n window.location.reload();\n })\n // console.log(resolve, reject)\n setTimeout(Math.random() > 0.5 ? resolve : reject, 1000);\n // 更新数据\n }).catch((e) => console.log(e));\n },\n onCancel() {\n console.log(\"cancel\");\n },\n });\n };\n onMounted(() => {\n getLegalEntity()\n initTableData();\n });\n\n return {\n ruleFormRef,\n innerHeight,\n columns,\n // 表格数据\n privilegeGroup,\n pageOptions,\n changePage,\n // 添加\n handleAddPG,\n submitAddPG,\n handleCancel,\n grptpChange,\n isAdd,\n modalTitle,\n // 删除\n handleDisable,\n delVisible,\n enName,\n cnName,\n userType,\n visible,\n legalEntityOptions,\n ...toRefs(formData),\n searchSubmit,\n searchChange,\n boolSearch,\n handleEdit,\n tableHeight,\n };\n },\n});\n","import { render } from \"./Index.vue?vue&type=template&id=397f2a04&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=397f2a04&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, withCtx as _withCtx, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"role\",\n class: \"table-screen\"\n}\nconst _hoisted_2 = { class: \"flex-div justify-s m-t-10 bg-fff selt-select-w\" }\nconst _hoisted_3 = { style: {\"padding\":\"10px\"} }\nconst _hoisted_4 = { class: \"m-r-8\" }\nconst _hoisted_5 = { class: \"m-l-35 m-r-8\" }\nconst _hoisted_6 = { class: \"operation-chunk bg-fff\" }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"i\", { style: {\"font-size\":\"20px\"} }, \"+\", -1)\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"Add \")\nconst _hoisted_9 = [\n _hoisted_7,\n _hoisted_8\n]\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\" Cancel \")\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\" Save \")\nconst _hoisted_12 = { class: \"bg-fff p-10 m-t-10\" }\nconst _hoisted_13 = { class: \"ellipsis\" }\nconst _hoisted_14 = {\n key: 0,\n class: \"m-r-20\"\n}\nconst _hoisted_15 = [\"onClick\"]\nconst _hoisted_16 = {\n key: 1,\n class: \"m-r-20\"\n}\nconst _hoisted_17 = [\"onClick\"]\nconst _hoisted_18 = {\n key: 2,\n class: \"m-r-20\"\n}\nconst _hoisted_19 = [\"onClick\"]\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_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_form_item = _resolveComponent(\"a-form-item\")!\n const _component_a_textarea = _resolveComponent(\"a-textarea\")!\n const _component_a_form = _resolveComponent(\"a-form\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Breadcrumb, { dataSource: [] }),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('user.roleName')) + \":\", 1),\n (_ctx.$i18n.locale === 'zh')\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 0,\n onPressEnter: _ctx.searchSubmit,\n onChange: _ctx.searchChange,\n class: _normalizeClass([{errorInp: !_ctx.boolSearch}, \"m-l-10\"]),\n value: _ctx.cnName,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.cnName) = $event)),\n placeholder: _ctx.$t('user.filterRoleName')\n }, null, 8, [\"onPressEnter\", \"onChange\", \"class\", \"value\", \"placeholder\"]))\n : (_openBlock(), _createBlock(_component_a_input, {\n key: 1,\n value: _ctx.enName,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.enName) = $event)),\n onPressEnter: _ctx.searchSubmit,\n onChange: _ctx.searchChange,\n class: _normalizeClass([{errorInp: !_ctx.boolSearch}, \"m-l-10\"]),\n placeholder: _ctx.$t('user.filterRoleName')\n }, null, 8, [\"value\", \"onPressEnter\", \"onChange\", \"class\", \"placeholder\"])),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t('user.grg')) + \":\", 1),\n _createVNode(_component_a_select, {\n class: \"m-l-10\",\n value: _ctx.userType,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.userType) = $event)),\n ref: \"select\",\n placeholder: _ctx.$t('user.filterType'),\n allowClear: \"\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.searchPG, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n key: item.privgrpid,\n value: item.privgrpid\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === 'zh' ? item.grpnmcn : item.grpnmen), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\"]),\n (_ctx.$btnPermissions('SEARCH'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 2,\n type: \"primary\",\n class: \"m-l-35 s-w\",\n onClick: _ctx.searchSubmit\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('search')), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n (_ctx.getPermission.filter(item => item.privcd === 'ADD').length > 0 && _ctx.$btnPermissions('ADD'))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"cursor-p f-l m-l-10 btn-operation\",\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.handleAddPG && _ctx.handleAddPG(...args)))\n }, _hoisted_9))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(_component_a_modal, {\n visible: _ctx.visible,\n \"onUpdate:visible\": _cache[9] || (_cache[9] = ($event: any) => ((_ctx.visible) = $event)),\n onCancel: _ctx.handleCancel,\n class: \"my-modal\",\n centered: \"\",\n title: _ctx.modalTitle\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"back\",\n class: \"modal-h\",\n onClick: _ctx.handleCancel\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n key: \"submit\",\n class: \"f-l modal-h\",\n type: \"primary\",\n disabled: _ctx.isAdd === 2 ? true: false,\n onClick: _ctx.submitAddPG\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n }, 8, [\"disabled\", \"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_form, {\n ref: _ctx.ruleFormRef,\n model: _ctx.form,\n rules: _ctx.rules,\n \"label-col\": _ctx.labelCol,\n \"wrapper-col\": _ctx.wrapperCol\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_form_item, {\n ref: \"rolnmen\",\n label: _ctx.$t('user.enName'),\n name: \"rolnmen\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_input, {\n value: _ctx.form.rolnmen,\n \"onUpdate:value\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.form.rolnmen) = $event)),\n placeholder: _ctx.$t('user.inputNameEn'),\n disabled: _ctx.isAdd === 2 ? true: false\n }, null, 8, [\"value\", \"placeholder\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_a_form_item, {\n ref: \"rolnmcn\",\n label: _ctx.$t('user.cnName'),\n name: \"rolnmcn\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_input, {\n value: _ctx.form.rolnmcn,\n \"onUpdate:value\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.form.rolnmcn) = $event)),\n placeholder: _ctx.$t('user.inputNameCn'),\n disabled: _ctx.isAdd === 2 ? true: false\n }, null, 8, [\"value\", \"placeholder\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_a_form_item, {\n label: _ctx.$t('user.roleType'),\n name: \"roltpnm\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select, {\n value: _ctx.form.roltpnm,\n \"onUpdate:value\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.form.roltpnm) = $event)),\n placeholder: _ctx.$t('user.filterType'),\n onChange: _ctx.grptpChange,\n disabled: _ctx.isAdd !== 1 || _ctx.$store.state.user.usrtp === 10002 ? true : false\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.legalEntityOptions, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.entityName,\n key: item.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.entityName), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\", \"onChange\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_a_form_item, {\n label: _ctx.$t('user.grg'),\n name: \"grpnm\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select, {\n value: _ctx.form.grpnm,\n \"onUpdate:value\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.form.grpnm) = $event)),\n placeholder: _ctx.$t('user.filterType'),\n onChange: _ctx.grpChange,\n disabled: _ctx.isAdd !== 1 ? true : false\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.prgOptions, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: _ctx.$i18n.locale === 'zh' ? item.grpnmcn : item.grpnmen,\n key: item.privgrpid\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === 'zh' ? item.grpnmcn : item.grpnmen), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\", \"onChange\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_a_form_item, {\n label: _ctx.$t('user.description'),\n name: \"roldsc\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_textarea, {\n value: _ctx.form.roldsc,\n \"onUpdate:value\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.form.roldsc) = $event)),\n placeholder: _ctx.$t('user.inputDescription'),\n disabled: _ctx.isAdd === 2 ? true: false\n }, null, 8, [\"value\", \"placeholder\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _: 1\n }, 8, [\"model\", \"rules\", \"label-col\", \"wrapper-col\"])\n ]),\n _: 1\n }, 8, [\"visible\", \"onCancel\", \"title\"]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(_component_a_table, {\n class: \"m-t-20 self-table-text-ellipsis\",\n columns: _ctx.columns,\n rowKey: privilegeGroup => privilegeGroup.rolid,\n \"data-source\": _ctx.privilegeGroup,\n pagination: _ctx.pageOptions,\n scroll: { y: _ctx.tableHeight - 50 },\n onChange: _ctx.changePage,\n rowClassName: (record, index) => (index % 2 === 1 ? 'table-striped' : null)\n }, {\n customName: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.roleName')), 1)\n ]),\n name: _withCtx(({ record }) => [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === 'zh' ? record.rolnmcn : record.rolnmen), 1)\n ]),\n customType: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.type')), 1)\n ]),\n customPG: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.grg')), 1)\n ]),\n customDsc: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.description')), 1)\n ]),\n customOperation: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.operation')), 1)\n ]),\n grpname: _withCtx(({ record }) => [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === 'zh' ? record.privgrpnmcn : record.privgrpnmen), 1)\n ]),\n description: _withCtx(({ record }) => [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(record.roldsc), 1)\n ]),\n operation: _withCtx(({ record }) => [\n (_ctx.getPermission.filter(item => item.privcd === 'VIEW').length > 0 && _ctx.getPermission.filter(item => item.privcd === 'EDIT').length < 1)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_14, [\n (_ctx.$btnPermissions('VIEW'))\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n onClick: _withModifiers(($event: any) => (_ctx.handleEdit(record, 2)), [\"prevent\"]),\n class: \"customTitle\"\n }, \" View \", 8, _hoisted_15))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.getPermission.filter(item => item.privcd === 'EDIT').length > 0 )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_16, [\n (_ctx.$btnPermissions('EDIT'))\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n onClick: _withModifiers(($event: any) => (_ctx.handleEdit(record, 0)), [\"prevent\"]),\n class: \"customTitle\"\n }, \"Edit\", 8, _hoisted_17))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.getPermission.filter(item => item.privcd === 'SETTING').length > 0 || _ctx.getPermission.filter(item => item.privcd === 'SETTINGEDIT').length > 0)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, [\n (_ctx.$btnPermissions('CONFIGURATION'))\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n class: \"customTitle\",\n onClick: ($event: any) => (_ctx.$router.push({ name: 'Role Setting', params: {id: record.privgrpid, rolid: record.rolid} }))\n }, \" Configuration \", 8, _hoisted_19))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"columns\", \"rowKey\", \"data-source\", \"pagination\", \"scroll\", \"onChange\", \"rowClassName\"])\n ])\n ]))\n}","import { ref, reactive, nextTick, watch, onMounted } from 'vue'\nimport { RoleProps, PrgProps, SelectGlobalProps } from '@/views/User/types'\nimport { rolesSaverole, rolesUpdaterole, PGfindgroupbytype, rolesFindrolebyid } from '@/API/user'\nimport { message } from \"ant-design-vue\"\nimport { useStore } from 'vuex'\nimport htmlentities from '@/utils/htmlentities'\n\nconst useAddEdit = () => {\n const store = useStore()\n // 增加组的弹窗\n const visible = ref(false);\n // 定义是否添加过\n const isAdd = ref(1)\n const prgOptions = ref([])\n const formData = reactive({\n labelCol: { span: 6 },\n wrapperCol: { span: 16 },\n other: '',\n form: {\n grpnm: visible.value ? '': [],\n \"privgrpid\": \"\",\n \"privgrpnmcn\": \"\",\n \"privgrpnmen\": \"\",\n \"roldsc\": \"\",\n \"rolid\": '',\n \"rolnmcn\": \"\",\n \"rolnmen\": \"\",\n \"roltp\": store.state.user.usrtp === 10001 ? 0 : 10007,\n \"roltpnm\": store.state.user.usrtp === 10001 ? []: 'Dealer',\n state: true,\n crtby: '',\n crtbynm: '',\n crted: 0,\n },\n rules: {\n rolnmcn: [\n { required: true, message: 'Please input Chinese name', trigger: 'blur' },\n { max: 100, message: 'Length should be 1 to 100', trigger: 'blur' },\n { pattern: /^([a-z]|[A-Z]|[\\u4e00-\\u9fa5]|[0-9]|\\s){0,}$/g, message: \"Please enter Chinese,English Letters and number\", trigger: 'blur'}\n ],\n rolnmen: [\n { required: true, message: 'Please input English name', trigger: 'blur' },\n { max: 100, message: 'Length should be 1 to 100', trigger: 'blur' },\n { pattern: /^([a-z]|[A-Z]|[0-9]|\\s){0,}$/g, message: \"Please enter English or number\", trigger: 'blur' }\n ],\n roltpnm: [\n {\n required: true, message: 'Please select a role type', trigger: 'change' \n }\n ],\n grpnm: [\n {\n required: true, message: 'Please select a user group type', trigger: 'change' \n }\n ],\n roldsc: [{ max: 200, message: \"Length should be 0 to 200\", trigger: \"change\" }]\n },\n })\n // 显示增加权限组弹窗\n const handleAddPG = () => {\n visible.value = true;\n isAdd.value = 1;\n }\n // 根据type得到pg\n const getGPbyType = (typeid = 10002) => {\n const params = {\n type: typeid\n }\n PGfindgroupbytype({ params: params }).then((res) => {\n prgOptions.value = res\n })\n }\n // 因为下拉不能绑定对象,所以要用change得到label\n const grptpChange = (value: string, option: SelectGlobalProps) => {\n formData.form.roltpnm = value\n formData.form.roltp = +option.key\n getGPbyType(+option.key)\n // type选择之后,把pg清空\n formData.form.grpnm = []\n }\n const findNmById = (id: string) => {\n return prgOptions.value.filter(item => item.privgrpid === id)\n }\n // 因为下拉不能绑定对象,所以要用change得到label\n const grpChange = (value: string, option: SelectGlobalProps) => {\n formData.form.privgrpid = option.key\n const groupOption = findNmById(option.key)\n formData.form.privgrpnmcn = groupOption[0].grpnmcn\n formData.form.privgrpnmen = groupOption[0].grpnmen\n }\n // 获取from DOM元素\n const myFromRef = ref()\n const ruleFormRef = (el: HTMLElement | null)=>{\n nextTick(()=>{\n myFromRef.value = el\n })\n }\n // 提交增加组\n const submitAddPG = () => {\n // seft.$refs[formName]\n myFromRef.value\n .validate()\n .then(() => {\n visible.value = false\n const params = {\n \"privgrpid\": formData.form.privgrpid,\n \"privgrpnmcn\": formData.form.privgrpnmcn,\n \"privgrpnmen\": formData.form.privgrpnmen,\n \"roldsc\": htmlentities(formData.form.roldsc),\n \"rolid\": formData.form.rolid,\n \"rolnmcn\": htmlentities(formData.form.rolnmcn),\n \"rolnmen\": htmlentities(formData.form.rolnmen),\n \"roltp\": formData.form.roltp,\n \"roltpnm\": formData.form.roltpnm,\n state: formData.form.state,\n crtby: formData.form.crtby,\n crtbynm: formData.form.crtbynm,\n crted: formData.form.crted,\n }\n if ( isAdd.value ) {\n rolesSaverole(params).then(() => {\n resetForm();\n message.success('Save successfully!')\n window.location.reload()\n })\n } else {\n rolesUpdaterole(params).then(() => {\n resetForm();\n message.success('Save successfully!')\n window.location.reload()\n })\n }\n })\n .catch((error: string) => {\n console.log('error', error);\n })\n }\n const resetForm = () => {\n myFromRef.value.resetFields();\n resetLegalEntity();\n }\n // 取消增加权限组弹窗\n const handleCancel = () => {\n visible.value = false;\n resetForm();\n };\n // 编辑时,把编辑的内容拿回来之后,还需要根据拿回来的type去查pg\n const handleEdit = (row: RoleProps, addNumber: number) => {\n visible.value = true\n isAdd.value = addNumber\n const params = {\n roleid: row.rolid\n }\n rolesFindrolebyid({ params: params }).then((res) => {\n // res.data.data这里后期,把pg页面的interface导过来就可以定义一个变量了\n formData.form.rolnmcn = res.rolnmcn\n formData.form.rolnmen = res.rolnmen\n // 这里不能赋值,\n formData.form.roltp = res.roltp\n formData.form.roltpnm = res.roltpnm\n formData.form.grpnm = store.state.lang === 'en' ? res.privgrpnmen : res.privgrpnmcn\n formData.form.privgrpnmcn = res.privgrpnmcn\n formData.form.privgrpnmen = res.privgrpnmen\n formData.form.roldsc = res.roldsc\n formData.form.privgrpid = res.privgrpid\n formData.form.rolid = res.rolid\n formData.form.roltp = res.roltp\n formData.form.state = res.state;\n formData.form.crtby = res.crtby;\n formData.form.crtbynm = res.crtbynm;\n formData.form.crted = res.crted;\n getGPbyType(res.roltp)\n })\n \n }\n\n const modalTitle = ref('Add Role')\n watch(()=>{\n return isAdd.value\n },(state)=>{\n if ( state === 0) {\n modalTitle.value = 'Edit Role'\n } else if ( state === 1 ) {\n modalTitle.value = 'Add Role'\n } else if ( state === 2 ) {\n modalTitle.value = 'View Role'\n } \n })\n const resetLegalEntity = () => {\n if ( store.state.user.usrtp === 10001 ) {\n formData.form.roltpnm = ''\n formData.form.roltp = 0\n prgOptions.value = []\n } else {\n formData.form.roltpnm = 'Dealer'\n // Dealer id是10007\n formData.form.roltp = 10007\n getGPbyType(formData.form.roltp)\n } \n }\n // 监听当前用户的权限问题\n watch(()=>{\n return store.state.user.usrtp\n },()=>{\n resetLegalEntity()\n }, { immediate: true })\n // onMounted(() => {\n // getGPbyType() \n // })\n return {\n handleEdit,\n handleCancel,\n submitAddPG,\n ruleFormRef,\n grptpChange,\n handleAddPG,\n isAdd,\n modalTitle,\n visible,\n formData,\n grpChange,\n prgOptions\n }\n}\nexport default useAddEdit","\nimport { defineComponent, ref, reactive, toRefs, onMounted, h } from 'vue'\nimport { PGProps, PageOptionProps, LegalEntity, RoleProps, SearchParamsProps } from './types'\nimport { useStore } from 'vuex';\nimport { Modal } from 'ant-design-vue'\nimport { addDataKey, getPermissions } from \"@/utils\"\nimport useSearch from '@/hooks/useSearch'\nimport useAddEditRole from '@/hooks/useAddEditRole'\nimport { rolesFindall, PGfindalllist, rolesChangestatus, getLegalEntityOptions } from '@/API/user'\nimport useTableHeight from \"@/hooks/useTableHeight\";\n// 表格的列\nconst columns = [\n {\n title: 'No.',\n dataIndex: 'key',\n key: 'key',\n width: '6%'\n },\n {\n dataIndex: 'rolnmcn',\n key: 'rolnmcn',\n // 这里customRender: 'name',name和上面#name一致\n slots: { title: 'customName', customRender: 'name' },\n width: '12%'\n },\n {\n dataIndex: 'roltpnm',\n key: 'roltpnm',\n slots: { title: \"customType\" },\n width: '10%'\n },\n {\n dataIndex: 'privgrpnmen',\n key: 'privgrpnmen',\n // 这里customRender: 'name',name和上面#name一致\n slots: { title: 'customPG', customRender: 'grpname' },\n width: '15%'\n },\n {\n dataIndex: 'roldsc',\n key: 'roldsc',\n slots: { title: 'customDsc', customRender: 'description' },\n },\n {\n key: 'operation',\n slots: { title: 'customOperation', customRender: 'operation' },\n width: '25%'\n }\n]\n\nexport default defineComponent({\n components: {\n },\n setup () {\n const store = useStore()\n const innerHeight = ref(window.innerHeight)\n // 表格的数据\n const searchPG = ref()\n\n const legalEntityOptions = ref()\n const getPermission = getPermissions()\n // 分页配置\n const pageOptions = reactive(\n {\n pageSize: 0,\n current: 0,\n total: 1,\n pageSizeOptions: ['10', '20', '30', '40'],\n showSizeChanger: true,\n showQuickJumper: true,\n }\n )\n const { tableHeight } = useTableHeight(true, '.ant-table-pagination');\n // 表单的数据\n // const prgOptions = ref([])\n const {enName, cnName, userType, searchSubmit, privilegeGroup, searchChange, boolSearch} = useSearch(pageOptions, rolesFindall, 'privgrpid')\n const rolesFindallFn = (params: SearchParamsProps, current: number): void => {\n rolesFindall({ params: params }).then((res): void => {\n privilegeGroup.value = addDataKey(res.content);\n pageOptions.pageSize = res.size;\n pageOptions.total = res.totalElements;\n pageOptions.current = current;\n })\n }\n // 表格\n // 表格请求数据, 初始表格数据\n const initTableData = (pageIndex = 0, pageSize = 10) => {\n const params = {\n pageIndex: pageIndex,\n pageSize\n }\n rolesFindallFn(params, pageIndex + 1)\n PGfindalllist().then(res => {\n searchPG.value = addDataKey(res)\n })\n }\n // 表格选择页码页面\n const changePage = (pagination: PageOptionProps) => {\n if (!userType.value && !enName.value && !cnName.value) {\n initTableData(pagination.current - 1, pagination.pageSize)\n } else {\n const params = {\n privgrpid: userType.value,\n name: store.state.lang === 'en' ? enName.value.trim() : cnName.value.trim(),\n pageIndex: pagination.current - 1,\n pageSize: pagination.pageSize\n }\n rolesFindallFn(params, pagination.current)\n }\n }\n const { handleEdit, handleCancel, submitAddPG, ruleFormRef, grptpChange, handleAddPG, visible, isAdd, modalTitle, formData, grpChange, prgOptions} = useAddEditRole()\n \n // 删除\n const delVisible = ref(false)\n const handleDisable = (id: RoleProps) => {\n Modal.confirm({\n class: 'my-confirm',\n content: h('div', {}, [\n h('i',{ 'class': 'font_family icon-shezhi confirm-h'}, ''),\n h('h1',{ 'style': 'font-size: 18px;'} , 'Are you sure to change the status of role?'),\n ]),\n onOk() {\n return new Promise((resolve, reject) => {\n const params = {\n rolid: id\n }\n //接口\n rolesChangestatus(params).then((res: any) => {\n let nowState = ''\n if (res.state) {\n nowState = 'true'\n } else {\n nowState = 'false'\n }\n sessionStorage.setItem(\"state\", nowState)\n window.location.reload()\n })\n // console.log(resolve, reject)\n setTimeout(Math.random() > 0.5 ? resolve : reject, 1000);\n // 更新数据\n }).catch(() => console.log('Oops errors!'));\n },\n onCancel() {\n console.log('cancel')\n },\n })\n }\n\n const getLegalEntity = () => {\n getLegalEntityOptions().then((res) => {\n legalEntityOptions.value = res\n })\n }\n onMounted(() => {\n getLegalEntity()\n initTableData()\n })\n return {\n prgOptions,\n ruleFormRef,\n isAdd,\n modalTitle,\n innerHeight,\n columns,\n // 表格数据\n privilegeGroup,\n pageOptions,\n changePage,\n // 添加\n handleAddPG,\n submitAddPG,\n handleCancel,\n grptpChange,\n // 删除\n handleDisable,\n delVisible,\n enName,\n cnName,\n userType,\n visible,\n searchPG,\n ...toRefs(formData),\n searchSubmit,\n searchChange,\n boolSearch,\n handleEdit,\n legalEntityOptions,\n grpChange,\n getPermission,\n tableHeight,\n }\n },\n})\n","import { render } from \"./Role.vue?vue&type=template&id=402ef94d&ts=true\"\nimport script from \"./Role.vue?vue&type=script&lang=ts\"\nexport * from \"./Role.vue?vue&type=script&lang=ts\"\n\nimport \"./Role.vue?vue&type=style&index=0&id=402ef94d&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, withCtx as _withCtx, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0e69d3ae\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"user\",\n class: \"table-screen\"\n}\nconst _hoisted_2 = { class: \"flex-div justify-s m-t-10 bg-fff selt-select-w\" }\nconst _hoisted_3 = { style: {\"padding\":\"10px\"} }\nconst _hoisted_4 = { class: \"m-r-8\" }\nconst _hoisted_5 = { class: \"m-l-35 m-r-8\" }\nconst _hoisted_6 = { class: \"operation-chunk bg-fff\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { style: {\"font-size\":\"20px\"} }, \"+\", -1))\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"Add \")\nconst _hoisted_9 = [\n _hoisted_7,\n _hoisted_8\n]\nconst _hoisted_10 = { class: \"f-r m-r-10\" }\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\" DealerItAdmin \")\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\" Cancel \")\nconst _hoisted_13 = /*#__PURE__*/_createTextVNode(\" Save \")\nconst _hoisted_14 = { class: \"bg-fff p-10 m-t-10\" }\nconst _hoisted_15 = { class: \"ellipsis\" }\nconst _hoisted_16 = {\n key: 0,\n class: \"m-r-20\"\n}\nconst _hoisted_17 = [\"onClick\"]\nconst _hoisted_18 = {\n key: 1,\n class: \"m-r-20\"\n}\nconst _hoisted_19 = [\"onClick\"]\nconst _hoisted_20 = {\n key: 2,\n class: \"m-r-20\",\n style: {\"min-width\":\"65px\",\"display\":\"inline-block\"}\n}\nconst _hoisted_21 = [\"onClick\"]\nconst _hoisted_22 = {\n key: 3,\n class: \"m-r-20\"\n}\nconst _hoisted_23 = [\"onClick\"]\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_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_form_item = _resolveComponent(\"a-form-item\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_checkbox_group = _resolveComponent(\"a-checkbox-group\")!\n const _component_a_form = _resolveComponent(\"a-form\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Breadcrumb, { dataSource: [] }),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('user.name')) + \":\", 1),\n (_ctx.$i18n.locale === 'zh')\n ? (_openBlock(), _createBlock(_component_a_input, {\n key: 0,\n onPressEnter: _ctx.searchSubmit,\n onChange: _ctx.searchChange,\n class: _normalizeClass([{ errorInp: !_ctx.boolSearch }, \"m-l-10\"]),\n value: _ctx.cnName,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.cnName) = $event)),\n placeholder: _ctx.$t('user.filterName')\n }, null, 8, [\"onPressEnter\", \"onChange\", \"class\", \"value\", \"placeholder\"]))\n : (_openBlock(), _createBlock(_component_a_input, {\n key: 1,\n value: _ctx.enName,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.enName) = $event)),\n onPressEnter: _ctx.searchSubmit,\n onChange: _ctx.searchChange,\n class: _normalizeClass([{ errorInp: !_ctx.boolSearch }, \"m-l-10\"]),\n placeholder: _ctx.$t('user.filterName')\n }, null, 8, [\"value\", \"onPressEnter\", \"onChange\", \"class\", \"placeholder\"])),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t('user.userType')) + \":\", 1),\n _createVNode(_component_a_select, {\n class: \"m-l-10\",\n value: _ctx.userType,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.userType) = $event)),\n ref: \"select\",\n placeholder: _ctx.$t('user.filterType'),\n allowClear: \"\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.legalEntityOptions, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.id,\n key: item.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.entityName), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"m-l-35 s-w\",\n onClick: _ctx.searchSubmit\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('search')), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n (_ctx.$btnPermissions('ADD'))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"cursor-p m-l-10 f-l btn-operation\",\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.handleAddPG && _ctx.handleAddPG(...args)))\n }, _hoisted_9))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"span\", {\n class: \"btn-operation cursor-p\",\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.expotToExcel && _ctx.expotToExcel(...args)))\n }, \" Export\")\n ])\n ]),\n _createVNode(_component_a_modal, {\n visible: _ctx.visible,\n \"onUpdate:visible\": _cache[12] || (_cache[12] = ($event: any) => ((_ctx.visible) = $event)),\n onCancel: _ctx.handleCancel,\n centered: \"\",\n class: \"my-modal\",\n title: _ctx.modalTitle\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"back\",\n class: \"modal-h\",\n onClick: _ctx.handleCancel\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n key: \"submit\",\n class: \"f-l modal-h\",\n type: \"primary\",\n disabled: _ctx.isAdd === 2 ? true : false,\n onClick: _ctx.submitAddPG\n }, {\n default: _withCtx(() => [\n _hoisted_13\n ]),\n _: 1\n }, 8, [\"disabled\", \"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_form, {\n ref: _ctx.ruleFormRef,\n model: _ctx.form,\n rules: _ctx.rules,\n \"label-col\": _ctx.labelCol,\n \"wrapper-col\": _ctx.wrapperCol\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_form_item, {\n label: _ctx.$t('user.name'),\n name: \"usrnm\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_input, {\n value: _ctx.form.usrnm,\n \"onUpdate:value\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.form.usrnm) = $event)),\n disabled: _ctx.isAdd !== 1,\n placeholder: _ctx.$t('user.inputName'),\n onChange: _ctx.handleChangeNameToUpperCase\n }, null, 8, [\"value\", \"disabled\", \"placeholder\", \"onChange\"])\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_a_form_item, {\n label: _ctx.$t('user.fulnmm'),\n name: \"fulnm\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_input, {\n value: _ctx.form.fulnm,\n \"onUpdate:value\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.form.fulnm) = $event)),\n disabled: _ctx.isAdd === 2 ? true : false,\n placeholder: _ctx.$t('user.inputFullName')\n }, null, 8, [\"value\", \"disabled\", \"placeholder\"])\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_a_form_item, {\n label: _ctx.$t('user.email'),\n name: \"email\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_input, {\n value: _ctx.form.email,\n \"onUpdate:value\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.form.email) = $event)),\n disabled: _ctx.isAdd === 2 ? true : false,\n placeholder: _ctx.$t('user.inputEmailName')\n }, null, 8, [\"value\", \"disabled\", \"placeholder\"])\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_a_form_item, {\n label: _ctx.$t('user.type'),\n name: \"usrtpnm\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select, {\n value: _ctx.form.usrtpnm,\n \"onUpdate:value\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.form.usrtpnm) = $event)),\n placeholder: _ctx.$t('user.pleaseInput'),\n onChange: _ctx.grptpChange,\n disabled: _ctx.isAdd !== 1 || _ctx.$store.state.user.usrtp === 10002 ? true : false || _ctx.dealerItAdmin\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.legalEntityOptions, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.entityName,\n key: item.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.entityName), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\", \"onChange\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"]),\n (_openBlock(), _createBlock(_component_a_form_item, {\n label: _ctx.$t('user.orgFul'),\n name: \"orgnm\",\n key: _ctx.form.usrtpnm\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select, {\n value: _ctx.form.orgnm,\n \"onUpdate:value\": _cache[9] || (_cache[9] = ($event: any) => ((_ctx.form.orgnm) = $event)),\n \"show-search\": \"\",\n placeholder: _ctx.$t('user.filterType'),\n onChange: _ctx.grpChange,\n disabled: _ctx.isAdd === 2 || _ctx.$store.state.user.usrtp === 10002 ? true : false || _ctx.dealerItAdmin\n }, {\n default: _withCtx(() => [\n (_ctx.form.usrtpnm == 'Dealer Group' || _ctx.form.usrtpnm == 'Dealer')\n ? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _renderList(_ctx.orgFul, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.entityName,\n key: item.entityCode\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.entityName), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n : (_openBlock(true), _createElementBlock(_Fragment, { key: 1 }, _renderList(_ctx.orgFul, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.entityName,\n key: item.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.entityName), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\", \"onChange\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])),\n (_ctx.isShowEntity(_ctx.form.orgnm) || _ctx.form.showEntity)\n ? (_openBlock(), _createBlock(_component_a_form_item, {\n key: 0,\n label: _ctx.$t('user.entity'),\n name: \"entity\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_checkbox_group, {\n value: _ctx.form.entityIds,\n \"onUpdate:value\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.form.entityIds) = $event)),\n disabled: _ctx.isAdd === 2\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.entityOptions, (item) => {\n return (_openBlock(), _createBlock(_component_a_checkbox, {\n onChange: ($event: any) => (_ctx.entityChange(item)),\n value: item.id,\n key: item.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.entityName), 1)\n ]),\n _: 2\n }, 1032, [\"onChange\", \"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.form.usrtpnm === 'Dealer')\n ? (_openBlock(), _createBlock(_component_a_form_item, {\n key: 1,\n label: 'DealerItAdmin'\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_checkbox, {\n checked: _ctx.form.dealerItAdmin,\n \"onUpdate:checked\": _cache[11] || (_cache[11] = ($event: any) => ((_ctx.form.dealerItAdmin) = $event)),\n disabled: _ctx.isAdd === 2 || _ctx.$store.state.user.usrtp === 10002 ? true : false\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n }, 8, [\"checked\", \"disabled\"])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"model\", \"rules\", \"label-col\", \"wrapper-col\"])\n ]),\n _: 1\n }, 8, [\"visible\", \"onCancel\", \"title\"]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_a_table, {\n class: \"m-t-20 self-table-text-ellipsis\",\n columns: _ctx.columns,\n rowKey: (privilegeGroup) => privilegeGroup.usrid,\n \"data-source\": _ctx.privilegeGroup,\n pagination: _ctx.pageOptions,\n scroll: { y: _ctx.tableHeight - 50 },\n onChange: _ctx.changePage,\n rowClassName: (record, index) => (index % 2 === 1 ? 'table-striped' : null)\n }, {\n name: _withCtx(({ record }) => [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === 'zh' ? record.grpnmcn : record.grpnmen), 1)\n ]),\n grpname: _withCtx(({ record }) => [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === 'zh' ? record.privgrpnmcn : record.privgrpnmen), 1)\n ]),\n customName: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.name')), 1)\n ]),\n customType: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.type')), 1)\n ]),\n customFulnm: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.fulnmm')), 1)\n ]),\n customOrg: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.org')), 1)\n ]),\n orgnm: _withCtx(({ record }) => [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$i18n.locale === 'zh' ? record.orgnmcn : record.orgnmen), 1)\n ]),\n customEmail: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.email')), 1)\n ]),\n customOperation: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.operation')), 1)\n ]),\n operation: _withCtx(({ record }) => [\n (_ctx.$btnPermissions('VIEW'))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_16, [\n _createElementVNode(\"a\", {\n onClick: _withModifiers(($event: any) => (_ctx.handleEdit(record, 2)), [\"prevent\"]),\n class: \"customTitle\"\n }, \" View \", 8, _hoisted_17)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('EDIT'))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, [\n _createElementVNode(\"a\", {\n onClick: _withModifiers(($event: any) => (_ctx.handleEdit(record, 0)), [\"prevent\"]),\n class: \"customTitle\"\n }, \"Edit\", 8, _hoisted_19)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('ACTIVATE|DEACTIVATE'))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_20, [\n _createElementVNode(\"a\", {\n onClick: _withModifiers(($event: any) => (_ctx.handleDisable(record.usrid)), [\"prevent\"]),\n class: \"customTitle\"\n }, _toDisplayString(record.state ? 'Deactivate' : 'Active'), 9, _hoisted_21)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('SETTING'))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_22, [\n _createElementVNode(\"a\", {\n class: \"customTitle\",\n onClick: ($event: any) => (\n _ctx.$router.push({\n name: 'User Setting',\n params: {\n id: record.usrid,\n type: record.usrtp,\n name: record.usrnm,\n orgid: record.orgid,\n usrtpcode: record.usrtpcode\n }\n })\n )\n }, \" Configuration \", 8, _hoisted_23)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"columns\", \"rowKey\", \"data-source\", \"pagination\", \"scroll\", \"onChange\", \"rowClassName\"])\n ])\n ]))\n}","import { ref, reactive, nextTick, watch, onMounted } from 'vue';\nimport {\n UserProps,\n OrgProps,\n OrgParamsProps,\n OrgDealerProps,\n SelectGlobalProps,\n OrganizationProps,\n EntitySelectProps\n} from '@/views/User/types';\nimport {\n bizFindbuall,\n userSaveuser,\n userUpdateuser,\n userFinduserbyid,\n checkUserExisted,\n getOrganizationOptions\n} from '@/API/user';\nimport { useStore } from 'vuex';\nimport { message } from 'ant-design-vue';\nimport htmlentities from '@/utils/htmlentities';\nimport deepClone from '@/utils/deepClone';\n\ninterface ValidProps {\n field: string;\n fullField: string;\n message: string;\n required: string;\n trigger: string;\n type: string;\n}\nconst useUserAddEdit = () => {\n const store = useStore();\n\n // 是否为经销商IT Admin\n const dealerItAdmin = ref(false);\n // 经销商IT Admin默认选中数据\n const defaultDealerItAdminFormData = reactive({\n usrtp: 0,\n usrtpnm: '',\n orgid: '',\n orgnm: ''\n });\n\n // 增加组的弹窗\n const visible = ref(false);\n let singleData: UserProps;\n // 定义是否添加过\n const isAdd = ref(1);\n let copyUser: string;\n let copyOrg: string;\n // 验证是否注册过这个userNm\n const judgeUsrnm = async (value: string): Promise => {\n const existedParams = {\n usrnm: value\n };\n const res = await checkUserExisted({ params: existedParams });\n return res;\n };\n const validateAsync = async (rule: ValidProps, value: string) => {\n const RegExp = /^([a-z]|[A-Z]|[\\u4e00-\\u9fa5]|[0-9]|\\s){0,}$/;\n if (!value) {\n return Promise.reject('Please input account');\n }\n if (value.length > 8) {\n return Promise.reject('Length should be 1 to 8');\n }\n if (!RegExp.test(value)) {\n return Promise.reject('Please enter Chinese,English Letters and number');\n }\n if (value !== '' && RegExp.test(value) && copyUser !== value) {\n const res = await judgeUsrnm(value);\n if (res) {\n return Promise.reject('The user name already exists');\n }\n }\n return Promise.resolve('success');\n };\n const valiorgAsync = (rule: ValidProps, value: string) => {\n if (!value && copyOrg !== value) {\n return Promise.reject('Please select an organization type');\n }\n return Promise.resolve('success');\n };\n\n const formData = reactive({\n labelCol: { span: 6 },\n wrapperCol: { span: 16 },\n other: '',\n form: {\n email: '',\n fulnm: '',\n orgid: store.state.user.usrtp === 10001 ? '' : store.state.user.orgid,\n orgnm: visible.value ? '' : [],\n usrnm: '',\n usrtp: 0,\n usrtpnm: '',\n state: true,\n crtby: '',\n crtbynm: '',\n crted: 0,\n entityName: '',\n entityIds: [] as number[],\n dealerItAdmin: false,\n showEntity: false\n },\n rules: {\n fulnm: [\n { required: true, message: 'Please input full name', trigger: 'blur' },\n { max: 50, message: 'Length should be 1 to 50', trigger: 'blur' },\n {\n pattern: /^([a-z]|[A-Z]|[\\u4e00-\\u9fa5]|[0-9]|\\s){0,}$/g,\n message: 'Please enter Chinese,English Letters and number',\n trigger: 'blur'\n }\n ],\n usrnm: [{ required: true, trigger: 'blur', validator: validateAsync }],\n email: [\n { required: true, message: 'Please input Email', trigger: 'blur' },\n { max: 100, message: 'Length should be 1 to 100', trigger: 'blur' },\n {\n pattern: /^[a-zA-Z0-9][A-Za-z0-9#+_~&-]*(?:\\.[A-Za-z0-9#+_~&-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$/,\n message: 'Please enter a valid email address',\n trigger: 'blur'\n }\n // { pattern: /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$/, message: 'Please enter a valid email address', trigger: 'blur'}\n ],\n usrtpnm: [\n {\n required: true,\n message: 'Please select a user type',\n trigger: 'blur'\n }\n ],\n orgnm: [{ trigger: 'blur', validator: valiorgAsync }]\n }\n });\n const orgFul = ref([]);\n // let orgFulOEM: OrgParamsProps[] = []\n // let orgFulDealer: OrgParamsProps[] = []\n // 获得origintiondeaFinddealerall\n /* const getOrgOEM = () => {\n bizFindbuall().then((res) => {\n orgFulOEM = res\n })\n } */\n // 查找当前用户的org\n /* const findOrg = (arr: OrgParamsProps[]): any => {\n return arr.filter(item => item.id === store.state.user.orgid)\n } */\n // 获取org Dealer下的数据\n /* const getOrgDealer =async () => {\n const res = await allDealerInfos()\n // console.log(store.state.user.usrtp);\n if (store.state.user.usrtp === 10002) {\n orgFulDealer = findOrg(res)\n } else {\n orgFulDealer = res\n }\n } */\n /* const formatOrgFulDealer = () => {\n const arr: OrganizationProps[] = [];\n orgFulDealer.forEach((item) => {\n arr.push({\n entityName: item.nameCN,\n entityCode: item.nameCN,\n entityType: item.nameCN,\n id: item.id,\n })\n })\n return arr\n } */\n\n // 根据Organization\n const getOrganization = (id: string | number) => {\n const params = {\n parentId: id\n };\n getOrganizationOptions({ params: params }).then((res) => {\n orgFul.value = res;\n });\n };\n\n // 判断是否显示Entity\n const isShowEntity = (name: string) => {\n console.log(name, 'name.........');\n const data = orgFul.value.find((item) => {\n return item.entityName === name;\n });\n return data?.showEntity;\n };\n // 显示增加权限组弹窗\n const handleAddPG = async () => {\n // if (orgFulOEM.length < 1) getOrgOEM();\n // if (orgFulDealer.length === 1) store.state.lang === \"en\"?formData.form.orgnm = orgFulDealer[0].nameEN: formData.form.orgnm = orgFulDealer[0].nameCN\n // if (store.state.user.usrtp === 10002) orgFul.value = formatOrgFulDealer()\n // if (store.state.user.usrtp !== 10001) {\n // 去掉这两个,不然生产环境出来的默认不对。Ella\n // formData.form.usrtpnm = 'Dealer'\n // formData.form.usrtp = 10002\n // getOrganization(formData.form.usrtp)\n // }\n if (dealerItAdmin.value) {\n formData.form.usrtp = defaultDealerItAdminFormData.usrtp;\n formData.form.usrtpnm = defaultDealerItAdminFormData.usrtpnm;\n formData.form.orgid = defaultDealerItAdminFormData.orgid;\n formData.form.orgnm = defaultDealerItAdminFormData.orgnm;\n }\n visible.value = true;\n isAdd.value = 1;\n };\n\n // 因为下拉不能绑定对象,所以要用change得到label\n const grptpChange = (value: string, option: SelectGlobalProps) => {\n formData.form.usrtpnm = value;\n formData.form.usrtp = +option.key;\n // 清空entity选中数据\n formData.form.entityName = '';\n formData.form.entityIds = [];\n // 清空Organization选中数据\n formData.form.orgnm = [];\n formData.form.orgid = '';\n\n if (['Dealer', 'Dealer Group'].includes(value)) {\n formData.form.usrnm = formData.form.usrnm.toUpperCase();\n }\n\n getOrganization(option.key);\n\n /* if (formData.form.usrtpnm === 'OEM') {\n orgFul.value = orgFulOEM\n } else {\n orgFul.value = formatOrgFulDealer()\n } */\n };\n\n // 因为下拉不能绑定对象,所以要用change得到label\n const grpChange = (value: string, option: SelectGlobalProps) => {\n console.log(value, option);\n if (value) {\n formData.form.orgnm = value;\n formData.form.orgid = option.key;\n }\n // 清空entity选中数据\n formData.form.entityName = '';\n formData.form.entityIds = [];\n };\n\n // 因为下拉不能绑定对象,所以要用change得到label\n const entityChange = (value: any, option: EntitySelectProps) => {\n if (value) {\n formData.form.entityIds = value.entityIds;\n formData.form.entityName = value.entityName;\n }\n };\n\n // 获取from DOM元素\n const myFromRef = ref();\n const ruleFormRef = (el: HTMLElement | null) => {\n nextTick(() => {\n myFromRef.value = el;\n });\n };\n\n const submitAddPG = async () => {\n myFromRef.value\n .validate()\n .then(() => {\n visible.value = false;\n const params = {\n crtby: formData.form.crtby,\n crtbynm: formData.form.crtbynm,\n crted: formData.form.crted,\n email: formData.form.email,\n fulnm: htmlentities(formData.form.fulnm),\n orgid: formData.form.orgid,\n // \"orgnm\": formData.form.orgnm,\n state: formData.form.state,\n usrid: isAdd.value ? '' : singleData.usrid,\n usrnm: htmlentities(formData.form.usrnm),\n usrtp: formData.form.usrtp,\n usrtpnm: formData.form.usrtpnm,\n // \"entityName\": formData.form.entityName,\n entityIds: formData.form.entityIds,\n dealerItAdmin: formData.form.dealerItAdmin\n };\n if (isAdd.value) {\n userSaveuser(params).then((res: any) => {\n if (res.code === '0') {\n message.success('Save successfully!');\n window.location.reload();\n }\n });\n } else {\n if (typeof params.orgid === 'number') {\n params.orgid = params.orgid.toString();\n console.log(params.orgid);\n }\n userUpdateuser(params).then((res: any) => {\n if (res.code === '0') {\n message.success('Save successfully!');\n console.log(res, '编辑成功');\n window.location.reload();\n }\n });\n }\n })\n .catch((error: string) => {\n console.log('error', error);\n });\n };\n // 取消增加权限组弹窗\n const handleCancel = () => {\n visible.value = false;\n myFromRef.value.resetFields();\n formData.form.orgnm = '';\n formData.form.showEntity = false;\n };\n // 编辑\n const handleEdit = (row: UserProps, addNumber: number) => {\n // if (orgFulOEM.length < 1) getOrgOEM()\n // if (orgFulDealer.length < 1) getOrgDealer()\n visible.value = true;\n isAdd.value = addNumber;\n const params = {\n usrid: row.usrid\n };\n userFinduserbyid({ params: params }).then((res) => {\n formData.form.email = res.email;\n formData.form.fulnm = htmlentities(res.fulnm);\n formData.form.orgid = res.orgid;\n formData.form.orgnm = store.state.lang === 'en' ? res.orgnmen : res.orgnmcn;\n formData.form.usrnm = htmlentities(res.usrnm);\n copyUser = deepClone(res.usrnm);\n copyOrg = deepClone(store.state.lang === 'en' ? res.orgnmen : res.orgnmcn);\n formData.form.usrtp = res.usrtp;\n formData.form.usrtpnm = res.usrtpnm;\n formData.form.state = res.state;\n formData.form.crtby = res.crtby;\n formData.form.crtbynm = res.crtbynm;\n formData.form.crted = res.crted;\n formData.form.entityName = res.entityName;\n formData.form.entityIds = res.entityIds;\n (formData.form.dealerItAdmin = res.dealerItAdmin),\n (formData.form.entityIds = res.entityIds),\n (formData.form.showEntity = res.showEntity);\n singleData = res;\n getOrganization(formData.form.usrtp);\n });\n };\n\n const modalTitle = ref('Add User');\n watch(\n () => {\n return isAdd.value;\n },\n (state) => {\n if (state === 0) {\n modalTitle.value = 'Edit User';\n } else if (state === 1) {\n modalTitle.value = 'Add User';\n } else if (state === 2) {\n modalTitle.value = 'View User';\n }\n }\n );\n // 监听当前用户的权限问题\n watch(\n () => {\n return store.state.user.usrtp;\n },\n (state) => {\n if (state === 10001) {\n formData.form.usrtpnm = '';\n formData.form.usrtp = 0;\n } else {\n formData.form.usrtpnm = 'Dealer';\n formData.form.usrtp = 10002;\n formData.form.orgid = store.state.user.orgid;\n }\n }\n );\n\n watch(\n () => {\n return store.state.user.orgid;\n },\n (state) => {\n formData.form.orgid = state;\n }\n );\n\n onMounted(() => {\n // getOrgDealer()\n });\n\n // 获取用户信息(判断是否为经销商IT admin)\n const getUserInfo = () => {\n userFinduserbyid({\n params: {\n usrid: store.state.user.usrid\n }\n }).then((res) => {\n dealerItAdmin.value = res.dealerItAdmin;\n if (res.dealerItAdmin) {\n defaultDealerItAdminFormData.usrtp = res.usrtp;\n defaultDealerItAdminFormData.usrtpnm = res.usrtpnm;\n defaultDealerItAdminFormData.orgid = res.orgid;\n defaultDealerItAdminFormData.orgnm = res.orgnmcn;\n }\n });\n };\n\n getUserInfo();\n\n const handleChangeNameToUpperCase = () => {\n if (['Dealer', 'Dealer Group'].includes(formData.form.usrtpnm)) {\n formData.form.usrnm = formData.form.usrnm.toUpperCase();\n }\n };\n\n return {\n dealerItAdmin, // 是否为经销商IT admin\n handleAddPG, // 点击add\n handleEdit, // 点击Edit\n handleCancel, // 取消添加\n submitAddPG, // 确定添加\n ruleFormRef, // 获取元素\n grptpChange, // 下拉选中改变\n grpChange, // 下拉选中改变\n entityChange, // 下拉选中改变\n isAdd,\n modalTitle,\n visible,\n formData,\n orgFul,\n isShowEntity,\n handleChangeNameToUpperCase\n };\n};\nexport default useUserAddEdit;\n","\nimport { defineComponent, ref, reactive, toRefs, onMounted, h } from 'vue';\nimport { useRouter } from 'vue-router';\nimport { useStore } from 'vuex';\nimport { PageOptionProps, LegalEntity, Entity } from './types';\nimport { Modal } from 'ant-design-vue';\nimport store from '@/store';\nimport { addDataKey } from '@/utils';\nimport { usersFindall, userChangestatus, getLegalEntityOptions, getEntityOptions } from '@/API/user';\nimport useUserAddEdit from '@/hooks/useUserAddEdit';\nimport useSearch from '@/hooks/useSearch';\nimport blobDownload from '@/utils/blobDownload';\nimport useTableHeight from '@/hooks/useTableHeight';\n// 表格的列\nconst columns = [\n {\n title: 'No.',\n dataIndex: 'key',\n key: 'key',\n width: '6%'\n },\n {\n // title: 'Name',\n dataIndex: 'usrnm',\n key: 'usrnm',\n slots: { title: 'customName' },\n width: '12%'\n },\n {\n // title: 'Type',\n dataIndex: 'usrtpnm',\n key: 'usrtpnm',\n slots: { title: 'customType' },\n width: '8%'\n },\n {\n // title: 'Full Name',\n dataIndex: 'fulnm',\n key: 'fulnm',\n slots: { title: 'customFulnm' },\n width: '10%'\n },\n {\n // title: 'Org',\n dataIndex: 'orgnm',\n key: 'orgnm',\n slots: { title: 'customOrg', customRender: 'orgnm' },\n width: '25%'\n },\n {\n // title: 'Email',\n dataIndex: 'email',\n key: 'email',\n slots: { title: 'customEmail' }\n },\n {\n // title: 'Operation',\n key: 'operation',\n slots: { title: 'customOperation', customRender: 'operation' },\n width: '27%'\n }\n];\n\nexport default defineComponent({\n components: {},\n setup() {\n const stateData = useStore();\n const innerHeight = ref(window.screen.height);\n // 分页配置\n const pageOptions = reactive({\n pageSize: 0,\n current: 0,\n total: 1,\n pageSizeOptions: ['10', '20', '30', '40'],\n showSizeChanger: true,\n showQuickJumper: true\n });\n const { tableHeight } = useTableHeight(true, '.ant-table-pagination');\n const router = useRouter();\n // 表单的数据\n const ruleForm = ref(null);\n\n // Legal Entity\n const legalEntityOptions = ref();\n\n // Entity\n const entityOptions = ref();\n\n // 表格\n const { enName, cnName, userType, searchSubmit, privilegeGroup, searchChange, boolSearch } = useSearch(\n pageOptions,\n usersFindall,\n 'type'\n );\n\n // 获取Legal Entity\n const getLegalEntity = () => {\n getLegalEntityOptions().then((res) => {\n legalEntityOptions.value = res;\n });\n };\n\n // 获取Entity下拉数据\n const getEntity = () => {\n getEntityOptions().then((res) => {\n entityOptions.value = res;\n });\n };\n\n // 表格请求数据, 初始表格数据\n const initTableData = (pageIndex = 0, pageSize = 10) => {\n const params = {\n pageIndex: pageIndex,\n pageSize\n };\n usersFindall({ params: params }).then((res) => {\n privilegeGroup.value = addDataKey(res.content);\n pageOptions.pageSize = res.size;\n pageOptions.total = res.totalElements;\n pageOptions.current = pageIndex + 1;\n });\n };\n // 表格选择页码页面\n const changePage = (pagination: PageOptionProps) => {\n if (!userType.value && !enName.value && !cnName.value) {\n initTableData(pagination.current - 1, pagination.pageSize);\n } else {\n const params = {\n type: userType.value,\n name: store.state.lang === 'en' ? enName.value.trim() : cnName.value.trim(),\n pageIndex: pagination.current - 1,\n pageSize: pagination.pageSize\n };\n usersFindall({ params: params }).then((res) => {\n privilegeGroup.value = addDataKey(res.content);\n pageOptions.pageSize = res.size;\n pageOptions.total = res.totalElements;\n pageOptions.current = pagination.current;\n });\n }\n };\n\n const {\n dealerItAdmin,\n handleAddPG,\n handleEdit,\n handleCancel,\n submitAddPG,\n ruleFormRef,\n grptpChange,\n grpChange,\n entityChange,\n isAdd,\n modalTitle,\n visible,\n formData,\n orgFul,\n isShowEntity,\n handleChangeNameToUpperCase\n } = useUserAddEdit();\n // 删除\n const delVisible = ref(false);\n const handleDisable = (id: number) => {\n Modal.confirm({\n class: 'my-confirm',\n content: h('div', {}, [\n h('i', { class: 'font_family icon-shezhi confirm-h' }, ''),\n h('h1', { style: 'font-size: 18px;' }, 'Are you sure to change the status of user?')\n ]),\n onOk() {\n return new Promise((resolve, reject) => {\n const params = { usrid: id };\n //接口\n userChangestatus(params).then((res) => {\n let nowState = '';\n if (res.state) {\n nowState = 'true';\n } else {\n nowState = 'false';\n }\n sessionStorage.setItem('state', nowState);\n window.location.reload();\n });\n // console.log(resolve, reject)\n setTimeout(Math.random() > 0.5 ? resolve : reject, 1000);\n // 更新数据\n }).catch(() => console.log('Oops errors!'));\n },\n onCancel() {\n console.log('cancel');\n }\n });\n };\n // 导出excel\n const expotToExcel = () => {\n const params = {\n url: '/usapi/users/exportuserexcel'\n };\n blobDownload(params);\n };\n onMounted(() => {\n getLegalEntity();\n getEntity();\n initTableData();\n });\n return {\n dealerItAdmin,\n stateData,\n userType,\n ruleFormRef,\n isAdd,\n modalTitle,\n innerHeight,\n columns,\n // 表格数据\n privilegeGroup,\n pageOptions,\n changePage,\n // 添加\n handleAddPG,\n submitAddPG,\n handleCancel,\n grptpChange,\n // 删除\n handleDisable,\n delVisible,\n enName,\n cnName,\n visible,\n legalEntityOptions,\n entityOptions,\n ...toRefs(formData),\n router,\n ruleForm,\n searchSubmit,\n searchChange,\n boolSearch,\n handleEdit,\n grpChange,\n entityChange,\n orgFul,\n expotToExcel,\n tableHeight,\n isShowEntity,\n handleChangeNameToUpperCase\n };\n }\n});\n","import { render } from \"./User.vue?vue&type=template&id=0e69d3ae&scoped=true&ts=true\"\nimport script from \"./User.vue?vue&type=script&lang=ts\"\nexport * from \"./User.vue?vue&type=script&lang=ts\"\n\nimport \"./User.vue?vue&type=style&index=0&id=0e69d3ae&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-0e69d3ae\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = { class: \"bg-fff p-10 m-t-10 overflow-h\" }\nconst _hoisted_2 = { class: \"d-f\" }\nconst _hoisted_3 = { class: \"d-f\" }\nconst _hoisted_4 = {\n style: {\"flex\":\"1\"},\n class: \"api-menu\"\n}\nconst _hoisted_5 = [\"onClick\"]\nconst _hoisted_6 = { class: \"f-r m-t-10\" }\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\" Submit \")\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_Breadcrumb = _resolveComponent(\"Breadcrumb\")!\n const _component_a_tree = _resolveComponent(\"a-tree\")!\n const _component_a_divider = _resolveComponent(\"a-divider\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_a_tab_pane = _resolveComponent(\"a-tab-pane\")!\n const _component_ArrowRightOutlined = _resolveComponent(\"ArrowRightOutlined\")!\n const _component_a_tabs = _resolveComponent(\"a-tabs\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(_component_Breadcrumb, {\n dataSource: [{ name: _ctx.$t('user.setting') }]\n }, null, 8, [\"dataSource\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_a_tabs, null, {\n default: _withCtx(() => [\n _createVNode(_component_a_tab_pane, {\n key: \"1\",\n tab: _ctx.$t('user.menuName')\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_a_tree, {\n checkable: \"\",\n \"tree-data\": _ctx.treeData,\n expandedKeys: _ctx.expandedKeys,\n \"onUpdate:expandedKeys\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.expandedKeys) = $event)),\n selectedKeys: _ctx.clickKeys,\n \"onUpdate:selectedKeys\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.clickKeys) = $event)),\n checkedKeys: _ctx.checkedKeys,\n \"onUpdate:checkedKeys\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.checkedKeys) = $event)),\n \"replace-fields\": _ctx.replaceFields,\n onSelect: _ctx.onSelect,\n onCheck: _ctx.onCheck,\n style: {\"flex\":\"1\"}\n }, null, 8, [\"tree-data\", \"expandedKeys\", \"selectedKeys\", \"checkedKeys\", \"replace-fields\", \"onSelect\", \"onCheck\"]),\n _createVNode(_component_a_divider, { type: \"vertical\" }),\n (_openBlock(), _createBlock(_component_a_table, {\n key: _ctx.tableMenuKey,\n \"row-selection\": {\n selectedRowKeys: _ctx.selectedRowKeys,\n onChange: _ctx.onSelectChange,\n getCheckboxProps:\n _ctx.getPermissions('/privilegegroup').filter((item) => item.privcd === 'SETTINGEDIT').length > 0\n ? () => {}\n : _ctx.getCheckboxProps\n },\n columns: _ctx.columns,\n \"data-source\": _ctx.tableData,\n style: {\"flex\":\"6\"},\n scroll: { y: _ctx.store.state.scrollHeight }\n }, {\n customTitle: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.operation') + _ctx.$t('user.names')), 1)\n ]),\n customCode: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.operation') + _ctx.$t('user.code')), 1)\n ]),\n customType: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.operation') + _ctx.$t('user.userType')), 1)\n ]),\n privnmcn: _withCtx(({ record }) => [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === 'zh' ? record.privnmcn : record.privnmen), 1)\n ]),\n _: 1\n }, 8, [\"row-selection\", \"columns\", \"data-source\", \"scroll\"]))\n ])\n ]),\n _: 1\n }, 8, [\"tab\"]),\n _createVNode(_component_a_tab_pane, {\n key: \"2\",\n tab: _ctx.$t('user.API')\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"ul\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.apiMenu, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: item.apigrpnm,\n onClick: _withModifiers(($event: any) => (_ctx.clickApiMenu(item)), [\"prevent\"])\n }, [\n _createVNode(_component_ArrowRightOutlined, { class: \"m-r-8\" }),\n _createTextVNode(_toDisplayString(item.apigrpnm), 1)\n ], 8, _hoisted_5))\n }), 128))\n ]),\n _createVNode(_component_a_divider, { type: \"vertical\" }),\n (_openBlock(), _createBlock(_component_a_table, {\n key: _ctx.tableApiKey,\n \"row-selection\": {\n selectedRowKeys: _ctx.selectedRowKeysAPI,\n onChange: _ctx.onSelectChangeAPI,\n getCheckboxProps:\n _ctx.getPermissions('/privilegegroup').filter((item) => item.privcd === 'SETTINGEDIT').length > 0\n ? () => {}\n : _ctx.getCheckboxProps\n },\n columns: _ctx.columnsAPI,\n \"data-source\": _ctx.tableDataAPI,\n style: {\"flex\":\"6\"},\n scroll: { y: _ctx.store.state.scrollHeight }\n }, {\n customApinm: _withCtx(() => [\n _createTextVNode(\" API \" + _toDisplayString(_ctx.$t('user.names')), 1)\n ]),\n customApidsc: _withCtx(() => [\n _createTextVNode(\" API \" + _toDisplayString(_ctx.$t('user.description')), 1)\n ]),\n privnmcn: _withCtx(({ record }) => [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === 'zh' ? record.privnmcn : record.privnmen), 1)\n ]),\n _: 1\n }, 8, [\"row-selection\", \"columns\", \"data-source\", \"scroll\"]))\n ])\n ]),\n _: 1\n }, 8, [\"tab\"])\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"modal-h\",\n onClick: _ctx.submitPGSetting,\n disabled: _ctx.getPermissions('/privilegegroup').filter((item) => item.privcd === 'SETTINGEDIT').length < 1\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"]),\n _createVNode(_component_a_button, {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.router.push({ path: '/privilegegroup' }))),\n class: \"m-l-10 modal-h\"\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n })\n ])\n ])\n ]))\n}","\nimport { defineComponent, ref, onMounted, toRaw, watch } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { useStore } from 'vuex';\nimport { message } from 'ant-design-vue';\nimport { getPermissions } from '@/utils';\nimport { ArrowRightOutlined } from '@ant-design/icons-vue';\nimport { TreeProps, TableCheckedDataProps, SelectMenu, APIMenu, APIMenuProps, MPProps, ActionProps } from './types';\nimport { PGfindmnuall, PGfindapiall, PGsaveassignment, PGfindassignment } from '@/API/user';\n// 表格的列\nconst columns = [\n {\n // title: 'Action Name',\n dataIndex: 'privnmcn',\n slots: { title: 'customTitle', customRender: 'privnmcn' }\n },\n {\n // title: 'Action Code',\n dataIndex: 'privcd',\n slots: { title: 'customCode' }\n },\n {\n // title: 'Action Type',\n dataIndex: 'privtpnm',\n slots: { title: 'customType' }\n }\n];\n\nconst columnsAPI = [\n {\n // title: 'API Name',\n dataIndex: 'apinm',\n slots: { title: 'customApinm' }\n },\n {\n title: 'Http Method',\n dataIndex: 'apimhd'\n },\n {\n // title: 'Description',\n dataIndex: 'apidsc',\n slots: { title: 'customApidsc' }\n }\n];\n\nexport default defineComponent({\n components: {\n ArrowRightOutlined\n },\n name: 'PrivilegeGroupSetting',\n setup() {\n const store = useStore();\n const route = useRoute();\n const router = useRouter();\n\n // (受控)展开指定的树节点\n const expandedKeys = ref();\n // 当前点中的节点\n const clickKeys = ref();\n // 当前勾选的节点\n const checkedKeys = ref();\n const treeData = ref([]);\n\n const tableCheckedData = ref({});\n const replaceFields = ref();\n // 选中menu和表格选中的关系,不用响应式数据,因为不更新页面\n let selectTable = {};\n\n // API\n const apiMenu = ref([]);\n // 表格的全量数据\n const tableDataAPI = ref();\n // 表格的选中\n const selectedRowKeysAPI = ref();\n\n // 替换项,中英文菜单\n replaceFields.value = {\n title: store.state.lang === 'en' ? 'mnunmen' : 'mnunmcn'\n };\n watch(\n () => store.state.lang,\n () => {\n replaceFields.value = {\n title: store.state.lang === 'en' ? 'mnunmen' : 'mnunmcn'\n };\n }\n );\n // 表格数据\n const tableData = ref();\n // 点中当前的树节点\n let clickTreeNode: string;\n\n const findMenuItem = (arr: TreeProps[], id: string): TreeProps | null => {\n if (arr === null) {\n return null;\n }\n for (const obj of arr) {\n if (obj.mnuid === id) {\n return obj;\n }\n const menuItem = findMenuItem(obj.children, id);\n if (menuItem) {\n return menuItem;\n }\n }\n return null;\n };\n\n // 表格\n const selectedRowKeys = ref();\n // 初始化,三个接口合一apilist: [],mnulist: [],privlist: []\n // 后端返回的接口包含了父节点的数据,但是树的父节点的选中,是根据子节点是否选中来决定的。\n // 所以可以把checks数组里的父节点去掉。\n // mnulist\n const formatMenuSelect = (data: SelectMenu[], tree: TreeProps[]) => {\n const arr: string[] = [];\n for (const item of data) {\n const menuItem = findMenuItem(tree, item.mnuid);\n if (!menuItem?.children.length) {\n arr.push(item.mnuid);\n }\n }\n return arr;\n };\n // privlist\n const formatActionSelect = (data: SelectMenu[]) => {\n const obj: TableCheckedDataProps = {};\n data.forEach((item) => {\n if (item.privids && item.mnuid) {\n const arr: string[] = [];\n item.privids.forEach((val) => {\n if (val.privid) {\n arr.push(val.privid);\n }\n });\n obj[item.mnuid] = arr;\n }\n });\n return obj;\n };\n // privlist\n const formatActionSelectObj = (data: SelectMenu[]) => {\n data.forEach((item) => {\n if (item.privids && item.mnuid) {\n selectTable[item.mnuid] = item.privids;\n }\n });\n return selectTable;\n };\n // 三个接口合一apilist\n const formatAPISelect = (data: APIMenu[]) => {\n const arr: string[] = [];\n data.forEach((item) => {\n if (item.apiid) {\n arr.push(item.apiid);\n }\n });\n return arr;\n };\n // 根据用户权限,给树和表格添加是否可选的\n const formatTree = (data: TreeProps[]): TreeProps[] => {\n data.forEach((item) => {\n item.disableCheckbox = true;\n if (item.children.length > 0) {\n item.children.forEach((val) => {\n val.disableCheckbox = true;\n });\n }\n });\n return data;\n };\n // checkedKeys.value这个打印出来是Proxy{}格式的,[...checkedKeys.value] -> [2, 5]\n const init = () => {\n const params = {\n privgrpid: route.params.id\n };\n Promise.all([PGfindmnuall(), PGfindapiall(), PGfindassignment({ params: params })]).then((res) => {\n // treeData.value = getPermissions('/privilegegroup').filter(item => item.privcd === 'SETTINGEDIT').length > 0 ? res[0] : formatTree(res[0])\n treeData.value = res[0];\n apiMenu.value = res[1];\n checkedKeys.value = formatMenuSelect(res[2].mnulist, res[0]);\n tableCheckedData.value = formatActionSelect(res[2].privlist);\n selectedRowKeysAPI.value = formatAPISelect(res[2].apilist);\n selectTable = formatActionSelectObj(res[2].privlist);\n treeData.value =\n getPermissions('/privilegegroup').filter((item) => item.privcd === 'SETTINGEDIT').length > 0\n ? res[0]\n : formatTree(res[0]);\n });\n };\n // 树的点击选择时,出现对应表格数据,给表格赋值,还有选中的值\n // selectedKeys选择的节点, info选择节点的数据, 是id\n const tableMenuKey = ref(new Date().getTime());\n\n const onSelect = (treeSelectedKeys: string[], info: any) => {\n if (!info.selected) {\n clickKeys.value = [clickTreeNode]\n return\n }\n for (const item of info.node.dataRef.privlist) {\n item.key = item.privid;\n }\n // 树点击时,表格赋值\n tableData.value = info.node.dataRef.privlist;\n tableMenuKey.value = new Date().getTime();\n // clickKeys.value = info.node.dataRef.privlist\n // // 当前树节点改变\n clickTreeNode = treeSelectedKeys[0];\n // 表格已勾选,根据接口的数据来回显\n selectedRowKeys.value = tableCheckedData.value[clickTreeNode];\n };\n // 过滤当前表格对应的树的节点\n const checkedIndex = () => {\n return checkedKeys.value.filter((item: string) => item !== clickTreeNode);\n };\n const hasChecked = () => {\n return checkedKeys.value.findIndex((item: string) => item === clickTreeNode);\n };\n // 表格勾选的回调函数\n const onSelectChange = (selected: string[], selectedRows: string[]) => {\n selectedRowKeys.value = selected;\n if (selectedRows.length > 0) {\n // 表格的勾选导致树的勾选\n if (hasChecked() === -1) {\n checkedKeys.value.push(clickTreeNode);\n }\n tableCheckedData.value[clickTreeNode] = selected;\n selectTable[clickTreeNode] = toRaw(selectedRows);\n } else {\n // 表格的取消勾选,树取消勾选\n checkedKeys.value = checkedIndex();\n delete tableCheckedData.value[clickTreeNode];\n delete selectTable[clickTreeNode];\n }\n };\n\n const selectPriv = (checked: boolean, checkedData: any) => {\n if (checkedData.children.length > 0) {\n checkedData.children.forEach((item: any) => {\n selectPriv(checked, item)\n })\n return\n }\n if (checked) {\n selectTable[checkedData.mnuid] = checkedData.privlist\n tableCheckedData.value[checkedData.mnuid] = checkedData.privlist.map((item: any) => item.privid)\n if (clickTreeNode === checkedData.mnuid) {\n selectedRowKeys.value = checkedData.privlist.map((item: any) => item.privid)\n }\n } else {\n delete selectTable[checkedData.mnuid]\n delete tableCheckedData.value[checkedData.mnuid]\n if (clickTreeNode === checkedData.mnuid) {\n selectedRowKeys.value = []\n }\n }\n }\n\n const onCheck = (checkedKeys: any[], info: any) => {\n selectPriv(info.checked, info.node.dataRef)\n }\n\n // API--------------------------------------------------------------------------------------API\n const tableApiKey = ref(new Date().getTime());\n\n // 点击菜单过滤对应的API\n const clickApiMenu = (item: APIMenuProps) => {\n item.apilist.forEach((val) => {\n val.key = val.apiid;\n });\n tableDataAPI.value = item.apilist;\n tableApiKey.value = new Date().getTime();\n };\n\n // 表格勾选的回调函数\n const onSelectChangeAPI = (selected: string[]) => {\n // 表格的勾选\n selectedRowKeysAPI.value = selected;\n };\n\n // submit-----------------------------------------------------------------------------------\n // API提交的params\n const pgAPISubmit = () => {\n let objP: MPProps;\n const arr: MPProps[] = [];\n\n selectedRowKeysAPI.value.forEach((item: string) => {\n objP = {\n apiid: item,\n privgrpid: route.params.id,\n state: true\n };\n arr.push(objP);\n });\n return arr;\n };\n // 得到\n const findParent = (arr: TreeProps[], id: string): string => {\n if (arr === null) return '';\n for (const obj of arr) {\n if (obj.mnuid === id) {\n return obj.parentid ? obj.parentid : '';\n }\n const ret = findParent(obj.children, id);\n if (ret) return ret;\n }\n return '';\n };\n\n const findParentIds = (arr: TreeProps[], id: string): string[] => {\n if (arr === null) return [];\n for (const obj of arr) {\n if (obj.mnuid === id) {\n return [obj.parentid ? obj.parentid : ''];\n }\n const parentIds = findParentIds(obj.children, id);\n if (parentIds.length) {\n return [obj.parentid ? obj.parentid : '', ...parentIds];\n }\n }\n return [];\n };\n\n const getParentId = () => {\n const arr: string[] = [];\n if (checkedKeys.value.length > 0 && treeData.value.length > 0) {\n for (const key of checkedKeys.value) {\n arr.push(...findParentIds(treeData.value, key));\n }\n }\n return arr;\n };\n // Menu的params\n const pgMenuSubmitParams = () => {\n if (checkedKeys.value.length < 1) return [];\n let objP: MPProps;\n const arr: MPProps[] = [];\n // filter(val => val !== '0')过滤当选了父级后,递归找到的父级parentid也放放在数组中,\n // new set()是去掉一个children下相同的父ID\n const arrConcat = Array.from(new Set(getParentId().concat(checkedKeys.value))).filter((val) => val !== '0');\n\n for (const item of arrConcat) {\n objP = {\n mnuid: item,\n privgrpid: route.params.id,\n state: true\n };\n arr.push(objP);\n }\n return arr;\n };\n\n // action的parmam\n const pgActionSubmitParams = () => {\n let objP: ActionProps;\n const arr = [];\n for (const key in selectTable) {\n const arr1: ActionProps[] = [];\n for (const item of selectTable[key]) {\n objP = {\n privgrpid: route.params.id,\n privid: item.privid,\n mnuid: key,\n state: true\n };\n arr1.push(objP);\n }\n arr.push(arr1);\n }\n return arr.flat(2);\n };\n // 提交按钮\n const submitPGSetting = () => {\n const params = {\n privgrpid: route.params.id,\n apilist: pgAPISubmit(),\n mnulist: pgMenuSubmitParams(),\n privlist: pgActionSubmitParams()\n };\n PGsaveassignment(params).then((res) => {\n message.success('Save successed!');\n });\n };\n const getCheckboxProps = () => ({\n disabled: true\n });\n onMounted(() => {\n init();\n });\n return {\n tableMenuKey,\n tableApiKey,\n store,\n // template路由跳转\n router,\n // 树的替换字段cn, en\n replaceFields,\n clickKeys,\n checkedKeys,\n selectedRowKeys,\n expandedKeys,\n treeData,\n columns,\n tableData,\n tableCheckedData,\n onSelect,\n onSelectChange,\n onCheck,\n\n // api\n apiMenu,\n selectedRowKeysAPI,\n onSelectChangeAPI,\n columnsAPI,\n tableDataAPI,\n clickApiMenu,\n // 提交\n submitPGSetting,\n getPermissions,\n getCheckboxProps\n };\n }\n});\n","import { render } from \"./PGSetting.vue?vue&type=template&id=1c3e4958&ts=true\"\nimport script from \"./PGSetting.vue?vue&type=script&lang=ts\"\nexport * from \"./PGSetting.vue?vue&type=script&lang=ts\"\n\nimport \"./PGSetting.vue?vue&type=style&index=0&id=1c3e4958&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = { class: \"bg-fff p-10 m-t-10 overflow-h\" }\nconst _hoisted_2 = { class: \"d-f\" }\nconst _hoisted_3 = { class: \"d-f\" }\nconst _hoisted_4 = {\n style: {\"flex\":\"1\"},\n class: \"api-menu\"\n}\nconst _hoisted_5 = [\"onClick\"]\nconst _hoisted_6 = { class: \"f-r m-t-10\" }\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\" Submit \")\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_Breadcrumb = _resolveComponent(\"Breadcrumb\")!\n const _component_a_tree = _resolveComponent(\"a-tree\")!\n const _component_a_divider = _resolveComponent(\"a-divider\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_a_tab_pane = _resolveComponent(\"a-tab-pane\")!\n const _component_ArrowRightOutlined = _resolveComponent(\"ArrowRightOutlined\")!\n const _component_a_tabs = _resolveComponent(\"a-tabs\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(_component_Breadcrumb, {\n dataSource: [{ name: _ctx.$t('user.setting') }]\n }, null, 8, [\"dataSource\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_a_tabs, null, {\n default: _withCtx(() => [\n _createVNode(_component_a_tab_pane, {\n key: \"1\",\n tab: _ctx.$t('user.menuName')\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_a_tree, {\n checkable: \"\",\n \"tree-data\": _ctx.treeData,\n expandedKeys: _ctx.expandedKeys,\n \"onUpdate:expandedKeys\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.expandedKeys) = $event)),\n selectedKeys: _ctx.clickKeys,\n \"onUpdate:selectedKeys\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.clickKeys) = $event)),\n checkedKeys: _ctx.checkedKeys,\n \"onUpdate:checkedKeys\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.checkedKeys) = $event)),\n \"replace-fields\": _ctx.replaceFields,\n onSelect: _ctx.onSelect,\n onCheck: _ctx.onCheck,\n style: {\"flex\":\"1\"}\n }, null, 8, [\"tree-data\", \"expandedKeys\", \"selectedKeys\", \"checkedKeys\", \"replace-fields\", \"onSelect\", \"onCheck\"]),\n _createVNode(_component_a_divider, { type: \"vertical\" }),\n (_openBlock(), _createBlock(_component_a_table, {\n key: _ctx.tableMenuKey,\n \"row-selection\": {\n selectedRowKeys: _ctx.selectedRowKeys,\n onChange: _ctx.onSelectChange,\n getCheckboxProps:\n _ctx.getPermissions('/role').filter((item) => item.privcd === 'SETTINGEDIT').length > 0\n ? () => {}\n : _ctx.getCheckboxProps\n },\n columns: _ctx.columns,\n \"data-source\": _ctx.tableData,\n style: {\"flex\":\"6\"},\n scroll: { y: _ctx.store.state.scrollHeight }\n }, {\n customTitle: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.operation') + _ctx.$t('user.names')), 1)\n ]),\n customCode: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.operation') + _ctx.$t('user.code')), 1)\n ]),\n customType: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.operation') + _ctx.$t('user.userType')), 1)\n ]),\n privnmcn: _withCtx(({ record }) => [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === 'zh' ? record.privnmcn : record.privnmen), 1)\n ]),\n _: 1\n }, 8, [\"row-selection\", \"columns\", \"data-source\", \"scroll\"]))\n ])\n ]),\n _: 1\n }, 8, [\"tab\"]),\n _createVNode(_component_a_tab_pane, {\n key: \"2\",\n tab: _ctx.$t('user.API')\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"ul\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.apiMenu, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: item.apigrpnm,\n onClick: _withModifiers(($event: any) => (_ctx.clickApiMenu(item)), [\"prevent\"])\n }, [\n _createVNode(_component_ArrowRightOutlined, { class: \"m-r-8\" }),\n _createTextVNode(\" \" + _toDisplayString(item.apigrpnm), 1)\n ], 8, _hoisted_5))\n }), 128))\n ]),\n _createVNode(_component_a_divider, { type: \"vertical\" }),\n (_openBlock(), _createBlock(_component_a_table, {\n key: _ctx.tableApiKey,\n \"row-selection\": {\n selectedRowKeys: _ctx.selectedRowKeysAPI,\n onChange: _ctx.onSelectChangeAPI,\n getCheckboxProps:\n _ctx.getPermissions('/role').filter((item) => item.privcd === 'SETTINGEDIT').length > 0\n ? () => {}\n : _ctx.getCheckboxProps\n },\n columns: _ctx.columnsAPI,\n \"data-source\": _ctx.tableDataAPI,\n style: {\"flex\":\"6\"},\n scroll: { y: _ctx.store.state.scrollHeight }\n }, {\n customApinm: _withCtx(() => [\n _createTextVNode(\" API \" + _toDisplayString(_ctx.$t('user.names')), 1)\n ]),\n customApidsc: _withCtx(() => [\n _createTextVNode(\" API \" + _toDisplayString(_ctx.$t('user.description')), 1)\n ]),\n _: 1\n }, 8, [\"row-selection\", \"columns\", \"data-source\", \"scroll\"]))\n ])\n ]),\n _: 1\n }, 8, [\"tab\"])\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_a_button, {\n class: \"modal-h\",\n type: \"primary\",\n onClick: _ctx.submitPGSetting,\n disabled: _ctx.getPermissions('/role').filter((item) => item.privcd === 'SETTINGEDIT').length < 1\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"]),\n _createVNode(_component_a_button, {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.router.push({ path: '/role' }))),\n class: \"m-l-10 modal-h\"\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n })\n ])\n ])\n ]))\n}","\nimport { defineComponent, ref, onMounted, toRaw, watch } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { useStore } from 'vuex';\nimport { message } from 'ant-design-vue';\nimport {\n RoleTableProps,\n TreeProps,\n ColumnsProps,\n SelectMenu,\n APIMenuProps,\n RoleMPProps,\n APIMenu,\n TableCheckedDataProps,\n ActionPropsRole\n} from './types';\nimport { ArrowRightOutlined } from '@ant-design/icons-vue';\nimport { roleFindbyprivgrpid, roleFindassignmen, roleSaveassignment } from '@/API/user';\nimport { getPermissions } from '@/utils';\n\n// 表格的列\nconst columns: ColumnsProps[] = [\n {\n // title: 'Action Name',\n dataIndex: 'privnmcn',\n slots: { title: 'customTitle', customRender: 'privnmcn' }\n },\n {\n // title: 'Action Code',\n dataIndex: 'privcd',\n slots: { title: 'customCode' }\n },\n {\n // title: 'Action Type',\n dataIndex: 'privtpnm',\n slots: { title: 'customType' }\n }\n];\n\nconst columnsAPI: ColumnsProps[] = [\n {\n // title: 'API Name',\n dataIndex: 'apinm',\n slots: { title: 'customApinm' }\n },\n {\n title: 'Http Method',\n dataIndex: 'apimhd'\n },\n {\n // title: 'Description',\n dataIndex: 'apidsc',\n slots: { title: 'customApidsc' }\n }\n];\n\nexport default defineComponent({\n components: {\n ArrowRightOutlined\n },\n name: 'RoleSetting',\n setup() {\n const store = useStore();\n const route = useRoute();\n const router = useRouter();\n\n // (受控)展开指定的树节点\n const expandedKeys = ref();\n // 当前点中的节点\n const clickKeys = ref();\n // 当前勾选的节点\n const checkedKeys = ref();\n const treeData = ref([]);\n let selectTable = {};\n const tableCheckedData = ref({});\n const replaceFields = ref();\n\n // API\n const apiMenu = ref([]);\n // 表格数据\n const tableDataAPI = ref();\n // 表格\n const selectedRowKeysAPI = ref();\n\n // 替换项\n replaceFields.value = {\n title: store.state.lang === 'en' ? 'mnunmen' : 'mnunmcn'\n };\n watch(\n () => store.state.lang,\n () => {\n replaceFields.value = {\n title: store.state.lang === 'en' ? 'mnunmen' : 'mnunmcn'\n };\n }\n );\n\n // 表格数据\n const tableData = ref();\n // 点中当前的树节点\n let clickTreeNode: string;\n\n const findMenuItem = (arr: TreeProps[], id: string): TreeProps | null => {\n if (arr === null) {\n return null;\n }\n for (const obj of arr) {\n if (obj.mnuid === id) {\n return obj;\n }\n const menuItem = findMenuItem(obj.children, id);\n if (menuItem) {\n return menuItem;\n }\n }\n return null;\n };\n // 表格\n const selectedRowKeys = ref();\n\n // 初始化,三个接口合一apilist: [],mnulist: [],privlist: []\n // mnulist\n const formatMenuSelect = (data: SelectMenu[], tree: TreeProps[]) => {\n const arr: string[] = [];\n for (const item of data) {\n const menuItem = findMenuItem(tree, item.mnuid);\n if (!menuItem?.children.length) {\n arr.push(item.mnuid);\n }\n }\n return arr;\n };\n // privlist\n const formatActionSelect = (data: SelectMenu[]) => {\n const obj: TableCheckedDataProps = {};\n data.forEach((item) => {\n if (item.privids && item.mnuid) {\n const arr: string[] = [];\n item.privids.forEach((val) => {\n if (val.privid) {\n arr.push(val.privid);\n }\n });\n obj[item.mnuid] = arr;\n }\n });\n return obj;\n };\n // privlist\n const formatActionSelectObj = (data: SelectMenu[]) => {\n data.forEach((item) => {\n if (item.privids && item.mnuid) {\n selectTable[item.mnuid] = item.privids;\n }\n });\n return selectTable;\n };\n // 三个接口合一apilist\n const formatAPISelect = (data: APIMenu[]) => {\n const arr: string[] = [];\n data.forEach((item) => {\n if (item.apiid) {\n arr.push(item.apiid);\n }\n });\n return arr;\n };\n // 根据用户权限,给树和表格添加是否可选的\n const formatTree = (data: TreeProps[]): TreeProps[] => {\n data.forEach((item) => {\n item.disableCheckbox = true;\n if (item.children.length > 0) {\n item.children.forEach((val) => {\n val.disableCheckbox = true;\n });\n }\n });\n return data;\n };\n // checkedKeys.value这个打印出来是Proxy{}格式的,[...checkedKeys.value] -> [2, 5]\n const init = () => {\n const params = {\n privgrpid: route.params.id\n };\n const params1 = {\n rolid: route.params.rolid\n };\n\n Promise.all([roleFindbyprivgrpid({ params: params }), roleFindassignmen({ params: params1 })]).then((res) => {\n treeData.value =\n getPermissions('/role').filter((item) => item.privcd === 'SETTINGEDIT').length > 0\n ? res[0].mnulist\n : formatTree(res[0].mnulist);\n // treeData.value = res[0].mnulist\n apiMenu.value = res[0].apilist;\n checkedKeys.value = formatMenuSelect(res[1].mnuList, res[0].mnulist);\n tableCheckedData.value = formatActionSelect(res[1].privList);\n selectedRowKeysAPI.value = formatAPISelect(res[1].apiList);\n selectTable = formatActionSelectObj(res[1].privList);\n });\n };\n // 树的点击选择时,出现对应表格数据,给表格赋值,还有选中的值\n // selectedKeys选择的节点, info选择节点的数据, 是id\n const tableMenuKey = ref(new Date().getTime());\n\n const onSelect = (treeSelectedKeys: string[], info: any) => {\n if (!info.selected) {\n clickKeys.value = [clickTreeNode]\n return\n }\n for (const item of info.node.dataRef.privlist) {\n item.key = item.privid;\n }\n // 树点击时,表格赋值\n tableData.value = info.node.dataRef.privlist;\n tableMenuKey.value = new Date().getTime();\n\n // clickKeys.value = info.node.dataRef.privlist\n // 当前树节点改变\n clickTreeNode = treeSelectedKeys[0];\n // 表格已勾选,根据接口的数据来回显\n selectedRowKeys.value = tableCheckedData.value[clickTreeNode];\n };\n // 过滤当前表格对应的树的节点\n const checkedIndex = () => {\n return checkedKeys.value.filter((item: string) => item !== clickTreeNode);\n };\n const hasChecked = () => {\n return checkedKeys.value.findIndex((item: string) => item === clickTreeNode);\n };\n // 表格勾选的回调函数\n const onSelectChange = (selected: string[], selectedRows: string[]) => {\n selectedRowKeys.value = selected;\n if (selectedRows.length > 0) {\n // 表格的勾选导致树的勾选\n if (hasChecked() === -1) {\n checkedKeys.value.push(clickTreeNode);\n }\n tableCheckedData.value[clickTreeNode] = selected;\n selectTable[clickTreeNode] = toRaw(selectedRows);\n } else {\n // 表格的取消勾选,树取消勾选\n checkedKeys.value = checkedIndex();\n delete tableCheckedData.value[clickTreeNode];\n delete selectTable[clickTreeNode];\n }\n };\n\n const selectPriv = (checked: boolean, checkedData: any) => {\n if (checkedData.children.length > 0) {\n checkedData.children.forEach((item: any) => {\n selectPriv(checked, item)\n })\n return\n }\n if (checked) {\n selectTable[checkedData.mnuid] = checkedData.privlist\n tableCheckedData.value[checkedData.mnuid] = checkedData.privlist.map((item: any) => item.privid)\n if (clickTreeNode === checkedData.mnuid) {\n selectedRowKeys.value = checkedData.privlist.map((item: any) => item.privid)\n }\n } else {\n delete selectTable[checkedData.mnuid]\n delete tableCheckedData.value[checkedData.mnuid]\n if (clickTreeNode === checkedData.mnuid) {\n selectedRowKeys.value = []\n }\n }\n }\n\n const onCheck = (checkedKeys: any[], info: any) => {\n selectPriv(info.checked, info.node.dataRef)\n }\n\n // API--------------------------------------------------------------------------------------API\n const tableApiKey = ref(new Date().getTime());\n\n // 点击菜单过滤对应的API\n const clickApiMenu = (item: APIMenuProps) => {\n item.apilist.forEach((val) => {\n val.key = val.apiid;\n });\n tableDataAPI.value = item.apilist;\n tableApiKey.value = new Date().getTime();\n };\n\n // 表格勾选的回调函数\n const onSelectChangeAPI = (selected: string[]) => {\n // 表格的勾选\n selectedRowKeysAPI.value = selected;\n // selectTableAPI.value = selectedRows\n };\n\n // submit-----------------------------------------------------------------------------------\n // API提交的params\n const pgAPISubmit = () => {\n let objP: RoleMPProps;\n const arr: RoleMPProps[] = [];\n selectedRowKeysAPI.value.forEach((item: string) => {\n objP = {\n apiid: item,\n rolid: route.params.rolid,\n state: true\n };\n arr.push(objP);\n });\n return arr;\n };\n // 得到\n const findParent = (arr: TreeProps[], id: string): string => {\n if (arr === null) return '';\n for (const obj of arr) {\n if (obj.mnuid === id) {\n return obj.parentid ? obj.parentid : '';\n }\n const ret = findParent(obj.children, id);\n if (ret) return ret;\n }\n return '';\n };\n const findParentIds = (arr: TreeProps[], id: string): string[] => {\n if (arr === null) return [];\n for (const obj of arr) {\n if (obj.mnuid === id) {\n return [obj.parentid ? obj.parentid : ''];\n }\n const parentIds = findParentIds(obj.children, id);\n if (parentIds.length) {\n return [obj.parentid ? obj.parentid : '', ...parentIds];\n }\n }\n return [];\n };\n const getParentId = () => {\n const arr: string[] = [];\n if (checkedKeys.value.length > 0 && treeData.value.length > 0) {\n for (const key of checkedKeys.value) {\n arr.push(...findParentIds(treeData.value, key));\n }\n }\n return arr;\n };\n // Menu的params\n const pgMenuSubmitParams = () => {\n if (checkedKeys.value.length < 1) return [];\n let objP: RoleMPProps;\n const arr: RoleMPProps[] = [];\n const arrConcat = Array.from(new Set(getParentId().concat(checkedKeys.value))).filter((val) => val !== '0');\n for (const item of arrConcat) {\n objP = {\n mnuid: item,\n rolid: route.params.rolid,\n state: true,\n rolmnuid: ''\n };\n arr.push(objP);\n }\n return arr;\n };\n // action的parmam\n const pgActionSubmitParams = () => {\n let objP: ActionPropsRole;\n const arr = [];\n for (const key in selectTable) {\n const arr1: ActionPropsRole[] = [];\n for (const item of selectTable[key]) {\n objP = {\n rolid: route.params.rolid,\n privid: item.privid,\n mnuid: key,\n state: true\n };\n arr1.push(objP);\n }\n arr.push(arr1);\n }\n return arr.flat(2);\n };\n\n // 提交按钮\n const submitPGSetting = () => {\n const params = {\n apiList: pgAPISubmit(),\n mnuList: pgMenuSubmitParams(),\n privList: pgActionSubmitParams(),\n rolid: route.params.rolid\n };\n roleSaveassignment(params).then(() => {\n message.success('Save successed!');\n });\n };\n const getCheckboxProps = () => ({\n disabled: true\n });\n onMounted(() => {\n init();\n });\n return {\n tableMenuKey,\n tableApiKey,\n store,\n // template路由跳转\n router,\n // 树的替换字段cn, en\n replaceFields,\n clickKeys,\n checkedKeys,\n selectedRowKeys,\n expandedKeys,\n treeData,\n columns,\n tableData,\n tableCheckedData,\n onSelect,\n onSelectChange,\n onCheck,\n\n // api\n apiMenu,\n selectedRowKeysAPI,\n onSelectChangeAPI,\n columnsAPI,\n tableDataAPI,\n clickApiMenu,\n // 提交\n submitPGSetting,\n getPermissions,\n getCheckboxProps\n };\n }\n});\n","import { render } from \"./RoleSetting.vue?vue&type=template&id=d590a296&ts=true\"\nimport script from \"./RoleSetting.vue?vue&type=script&lang=ts\"\nexport * from \"./RoleSetting.vue?vue&type=script&lang=ts\"\n\nimport \"./RoleSetting.vue?vue&type=style&index=0&id=d590a296&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, vShow as _vShow, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = { class: \"bg-fff p-10 m-t-10\" }\nconst _hoisted_2 = { class: \"font-w\" }\nconst _hoisted_3 = { class: \"iptSearh\" }\nconst _hoisted_4 = { class: \"m-t-10 bg-fff p-10 overflow-h\" }\nconst _hoisted_5 = { class: \"f-l assignedRole\" }\nconst _hoisted_6 = { class: \"overflow-h assign-role\" }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"h1\", { class: \"f-l\" }, \"Assigned Roles\", -1)\nconst _hoisted_8 = [\"onClick\"]\nconst _hoisted_9 = { class: \"f-l subscribedBUs\" }\nconst _hoisted_10 = { class: \"overflow-h assign-role\" }\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"h1\", { class: \"f-l\" }, \"Subscribed BUs\", -1)\nconst _hoisted_12 = [\"onClick\"]\nconst _hoisted_13 = { class: \"regionContent\" }\nconst _hoisted_14 = {\n style: {\"min-width\":\"100px\",\"text-align\":\"right\"},\n class: \"text-label p-r-10\"\n}\nconst _hoisted_15 = { class: \"regionSave\" }\nconst _hoisted_16 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_17 = /*#__PURE__*/_createTextVNode(\"Confirm\")\nconst _hoisted_18 = /*#__PURE__*/_createTextVNode(\"Cancel\")\nconst _hoisted_19 = /*#__PURE__*/_createElementVNode(\"span\", { style: {\"color\":\"#1890ff\"} }, \"sss\", -1)\nconst _hoisted_20 = /*#__PURE__*/_createTextVNode(\"Confirm\")\nconst _hoisted_21 = /*#__PURE__*/_createTextVNode(\"Cancel\")\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_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_checkbox_group = _resolveComponent(\"a-checkbox-group\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n const _component_a_tree = _resolveComponent(\"a-tree\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(_component_Breadcrumb, {\n dataSource: [{name: _ctx.$t('user.setting')}]\n }, null, 8, [\"dataSource\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t('user.name')) + \": \" + _toDisplayString(_ctx.$route.params.name), 1),\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_a_select, {\n disabled: _ctx.getPermissions('/user').filter(item => item.privcd === 'SETTINGEDIT').length < 1,\n value: _ctx.userSelect,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.userSelect) = $event)),\n \"show-search\": \"\",\n placeholder: _ctx.$t('user.findUser'),\n style: {\"width\":\"80%\"},\n onFocus: _ctx.findUserData,\n onChange: _ctx.findUserChange\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.userDataList, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.fulnm+item.usrnm,\n title: 'item.usrnm',\n key: item.usrid\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.usrnm+'('+item.fulnm+')'), 1)\n ]),\n _: 2\n }, 1032, [\"value\", \"title\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"disabled\", \"value\", \"placeholder\", \"onFocus\", \"onChange\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"f-r\",\n disabled: _ctx.getPermissions('/user').filter(item => item.privcd === 'SETTINGEDIT').length < 1,\n onClick: _ctx.imoprtUser\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.importUser')), 1)\n ]),\n _: 1\n }, 8, [\"disabled\", \"onClick\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _hoisted_7,\n (_ctx.getPermissions('/user').filter(item => item.privcd === 'SETTINGEDIT').length > 0)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"f-r m-r-8 cursor-p\",\n style: {\"font-size\":\"24px\"},\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.handleAddRole && _ctx.handleAddRole(...args)))\n }, \"+\"))\n : _createCommentVNode(\"\", true)\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.assignedRoleList, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"bg-gray roleChunk overflow-h m-t-10\",\n key: item.rolid\n }, [\n _createElementVNode(\"h2\", null, [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === 'zh'? item.rolnmcn : item.rolnmen) + \"(\" + _toDisplayString(item.group) + \") \", 1),\n (_ctx.getPermissions('/user').filter(item => item.privcd === 'SETTINGEDIT').length > 0)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"f-r font_family icon-shanchu m-r-8 cursor-p\",\n onClick: ($event: any) => (_ctx.removeRole(item.usrrolid))\n }, null, 8, _hoisted_8))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"p\", null, _toDisplayString(item.roldsc), 1)\n ]))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _hoisted_11,\n (_ctx.getPermissions('/user').filter(item => item.privcd === 'SETTINGEDIT').length > 0)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"f-r m-r-8 cursor-p\",\n style: {\"font-size\":\"24px\"},\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.handlesubBUs && _ctx.handlesubBUs(...args)))\n }, \"+\"))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([_ctx.subData.length > 0 ? 'bg-gray' : '', \"busChunk overflow-h m-t-10\"])\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.subData, (item) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: \"tagRoles\",\n key: item.buid\n }, [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === 'zh'? item.orgnmcn : item.orgnmen) + \" \", 1),\n (_ctx.getPermissions('/user').filter(item => item.privcd === 'SETTINGEDIT').length > 0)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"cursor-p\",\n onClick: _withModifiers(($event: any) => (_ctx.removeUserOrgEvent($event, item.usrorgid)), [\"prevent\"])\n }, \"×\", 8, _hoisted_12))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ], 2),\n _withDirectives(_createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.subData, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: \"d-f m-t-10\",\n key: item.id\n }, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$i18n.locale === 'zh'? item.orgnmcn : item.orgnmen) + \" Region:\", 1),\n _createVNode(_component_a_checkbox_group, {\n value: item.allBuRegionIdArr,\n \"onUpdate:value\": ($event: any) => ((item.allBuRegionIdArr) = $event)\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(item.regionDto, (regionItem) => {\n return (_openBlock(), _createBlock(_component_a_checkbox, {\n value: regionItem.id,\n key: regionItem.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(regionItem.subRegionEn), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"value\", \"onUpdate:value\"])\n ]))\n }), 128))\n ])\n ], 512), [\n [_vShow, _ctx.subData.length && _ctx.isShowRegion]\n ]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_15, [\n _createVNode(_component_a_button, {\n key: \"submit\",\n class: \"m-t-16\",\n type: \"primary\",\n onClick: _ctx.regionSave\n }, {\n default: _withCtx(() => [\n _hoisted_16\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ], 512), [\n [_vShow, _ctx.subData.length && _ctx.isShowRegion]\n ])\n ])\n ]),\n _createVNode(_component_a_modal, {\n class: \"m-t-20 addRoles set-modal\",\n visible: _ctx.addvisibleRole,\n \"onUpdate:visible\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.addvisibleRole) = $event)),\n title: \"Assign Roles\",\n onOk: _ctx.handleOkAssRole,\n centered: \"\"\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"submit\",\n class: \"modal-h my-btn\",\n type: \"primary\",\n onClick: _ctx.handleOkAssRole\n }, {\n default: _withCtx(() => [\n _hoisted_17\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n key: \"back\",\n class: \"modal-h\",\n onClick: _ctx.handleCancelRole\n }, {\n default: _withCtx(() => [\n _hoisted_18\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_select, {\n value: _ctx.roleselect,\n \"onUpdate:value\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.roleselect) = $event)),\n \"show-search\": \"\",\n \"option-filter-prop\": \"title\",\n placeholder: _ctx.$t('user.findRole'),\n style: {\"width\":\"100%\"},\n onChange: _ctx.findRoleChange\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.rolesData, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.rolid,\n key: item.rolid,\n title: _ctx.$i18n.locale === 'en' ? `${item.rolnmen}(${item.privgrpnmen})` : `${item.rolnmcn}(${item.privgrpnmcn})`\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === 'en' ? `${item.rolnmen}(${item.privgrpnmen})` : `${item.rolnmcn}(${item.privgrpnmcn})`), 1)\n ]),\n _: 2\n }, 1032, [\"value\", \"title\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\", \"onChange\"])\n ]),\n _: 1\n }, 8, [\"visible\", \"onOk\"]),\n _createVNode(_component_a_modal, {\n class: \"m-t-20 addRole set-modal\",\n visible: _ctx.addvisibleBUs,\n \"onUpdate:visible\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.addvisibleBUs) = $event)),\n title: \"Subscribed BUs\",\n onOk: _ctx.handleOkSubBU,\n centered: \"\"\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"submit\",\n class: \"modal-h my-btn\",\n type: \"primary\",\n onClick: _ctx.handleOkSubBU\n }, {\n default: _withCtx(() => [\n _hoisted_20\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n key: \"back\",\n class: \"modal-h\",\n onClick: _ctx.handleCancelSubBU\n }, {\n default: _withCtx(() => [\n _hoisted_21\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_tree, {\n checkable: \"\",\n \"tree-data\": _ctx.treeData,\n defaultCheckedKeys: _ctx.expandedKeys,\n checkedKeys: _ctx.checkedKeys,\n \"onUpdate:checkedKeys\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.checkedKeys) = $event)),\n selectedKeys: _ctx.clickKeys,\n \"onUpdate:selectedKeys\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.clickKeys) = $event)),\n \"replace-fields\": _ctx.replaceFields,\n checkStrictly: true\n }, {\n title0010: _withCtx(() => [\n _hoisted_19\n ]),\n _: 1\n }, 8, [\"tree-data\", \"defaultCheckedKeys\", \"checkedKeys\", \"selectedKeys\", \"replace-fields\"])\n ]),\n _: 1\n }, 8, [\"visible\", \"onOk\"])\n ]))\n}","\nimport { defineComponent, ref, onMounted, watch } from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport { useStore } from \"vuex\";\nimport { message } from \"ant-design-vue\";\nimport { SaveBUsProps, UserProps, RoleProps, BuTreeProps, SelectGlobalProps, BusParamsProps, Bu } from './types'\nimport { usrFinduserbyorgid, usrFinduserrole, getBuSelected, roleFindrolebytype, getBuTreeList, getBuDealer, usrImportsetting, usrSaveuserorg, usrSaveuserrole, deleteBuSelected, removeUserRole, saveBuAndRegion } from '@/API/user'\nimport { getPermissions } from \"@/utils\"\nexport default defineComponent({\n name: \"UserSetting\",\n setup() {\n const store = useStore()\n const route = useRoute()\n const userDataList = ref([])\n // 定义分配角色添加的dialog开关\n const addvisibleRole = ref(false);\n // 定义订阅BUs添加的dialog开关\n const addvisibleBUs = ref(false);\n \n\n // 定义Assigned Roles 数据\n const rolesData = ref([]);\n const assignedRoleList = ref([]);\n\n // 定义订阅BUs的数组\n const treeData = ref([]);\n const subData = ref([])\n \n // 定义添加dialog中的value\n const roleValue = ref(\"\");\n\n // 定义输入框检索的变量\n const userSelect = ref();\n const roleselect = ref();\n const optionsUser = ref([]);\n const optionsRole = ref([]);\n const replaceFields = ref();\n const isShowRegion = ref(false)\n\n // 替换项,中英文菜单\n replaceFields.value = {\n title: store.state.lang === \"en\" ? \"nameEn\" : \"nameCn\",\n };\n watch(\n () => store.state.lang,\n () => {\n replaceFields.value = {\n title: store.state.lang === 'en' ? 'nameEn' : 'nameCn',\n }\n })\n \n const checkedKeys = ref();\n \n const formatAPISelect = (data: Bu[]) => {\n const arr: number[] = []\n data.forEach(item => {\n if (item.orgid) {\n arr.push(Number(item.orgid))\n }\n })\n console.log(arr, '---------arr');\n return arr\n }\n // 获取初始化数据\n const initUser = () => {\n const params = {\n usrid: route.params.id\n }\n // 获取分配role的数据\n usrFinduserrole({ params: params }).then((data)=>{\n assignedRoleList.value = data\n })\n \n // 获取订阅BUs的数据\n getBuSelected({ params: params }).then((data)=>{\n let buValueArr: Bu[] = [];\n\n // 没有regionDto不显示region列表\n isShowRegion.value = data.some((item) => {\n return item.regionDto && (item.regionDto.length > 0)\n })\n\n for (const item of data) {\n const buRegionValue: Bu[] = item.buRegionValue;\n \n if (item.buRegionValue && item.buRegionValue.length) {\n item.allBuRegionIdArr = buRegionValue.map(regionItem => {\n return regionItem.id\n }) \n }\n \n buValueArr = buValueArr.concat(item) as Bu[]\n }\n subData.value = buValueArr\n })\n }\n\n // 删除assigned Roles \n const removeRole = (usrrolid: string) => {\n const params = {\n usrrolid\n }\n removeUserRole({ params }).then(() => {\n initUser()\n })\n }\n\n // Assign Roles,数据\n const roleList = () => {\n const params = {\n type: route.params.type,\n };\n roleFindrolebytype({ params: params }).then((data)=>{\n rolesData.value = data\n })\n };\n\n // Subscribe BUs,数据\n // (受控)展开指定的树节点\n const expandedKeys = ref();\n \n // 给没一组数据添加key\n const addFieldKey = (data: BuTreeProps[]): BuTreeProps[] => {\n data.forEach(item => {\n item['key'] = item.id\n if (item.children && item.children.length > 0) {\n item.children.forEach(child => {\n child['key'] = child.id\n })\n }\n })\n return data\n }\n\n // 给dealer添加children\n /* const addFieldChildren = (data: BuTreeProps[]): BuTreeProps[] => {\n data.forEach(item => {\n item['children'] = []\n item['key'] = item.id\n if (item.children.length > 0) {\n item.children.forEach(child => {\n child['key'] = child.id\n })\n }\n })\n return data\n } */\n\n const subScribe = () => {\n /* if (route.params.type === '10001') {\n getBuList().then(data => {\n treeData.value = addFieldKey(data)\n }) \n } else {\n const params = {\n dealerId: route.params.orgid\n }\n getBuListByDealer({params}).then(data => {\n treeData.value = addFieldChildren(data)\n })\n } */\n if (route.params.usrtpcode === 'Dealer') {\n const params = {\n dealerId: route.params.orgid\n }\n getBuDealer({params}).then(data => {\n treeData.value = addFieldKey(data)\n })\n } else {\n getBuTreeList().then(data => {\n treeData.value = addFieldKey(data)\n })\n } \n }\n\n // 查询用户名,获取焦点时\n const findUserData = () => {\n const params = {\n orgid: route.params.orgid,\n };\n // 当获取数据后,再次获取焦点后不获取数据\n if (userDataList.value.length === 0){\n usrFinduserbyorgid({ params: params }).then((data)=>{\n userDataList.value = data\n })\n }\n }\n let userId: string;\n // 选择之后,\n const findUserChange = (value: string, option: SelectGlobalProps) => {\n userId = option.key\n }\n // 点击import User\n const imoprtUser = () => {\n if (!userId) return false\n const params = {\n from: userId,\n to: route.params.id\n }\n usrImportsetting(params).then(()=>{\n initUser()\n })\n }\n\n// dialog-----------------------------------------------------\n // 点击分配角色的+ 显示dialog\n const handleAddRole = () => {\n addvisibleRole.value = true;\n roleList();\n };\n\n // 点击订阅BUs的+ 显示dialog\n\n const handlesubBUs = async() => {\n addvisibleBUs.value = true;\n // 等待获取数据结束\n await subScribe();\n // 设置树,默认选中。\n checkedKeys.value = formatAPISelect(subData.value)\n };\n\n // 树状图\n \n // 当前选中的树节点\n // 当前点中的节点\n const clickKeys = ref();\n\n const findParent = (arr: BuTreeProps[], id: string): any => {\n if (!arr) return {}\n for (const obj of arr) {\n if (obj.key === id) {\n return obj ? obj : {}\n }\n const ret = findParent(obj.children, id)\n if (Object.keys(ret).length > 0) return ret\n }\n return {};\n }\n\n const getParentId = () => {\n const arr: BusParamsProps[] = []\n if (checkedKeys.value.checked.length > 0 && treeData.value.length > 0) {\n for (const key of checkedKeys.value.checked) {\n console.log(findParent(treeData.value, key));\n arr.push(findParent(treeData.value, key))\n }\n }\n return arr\n }\n // 点击订阅BUs的ok\n const handleOkSubBU = () => {\n addvisibleBUs.value = false;\n // 判断是否点击过树状图\n if (Array.isArray(checkedKeys.value)) return false\n let objP: SaveBUsProps;\n const saveBUsParams: SaveBUsProps[] = []\n // subChildren = getParentId()\n const arrConcat: BusParamsProps[] = Array.from(new Set(getParentId()))\n arrConcat.forEach((item) => {\n objP = {\n crtby: '',\n crtbynm: '',\n crted: 0,\n orgid: item.id,\n orgnmcn: item.nameCn,\n orgnmen: item.nameEn,\n orgtp: +item.type,\n orgtpnm: item.typeName,\n state: true,\n usrid: route.params.id as string,\n usrorgid: '',\n orgcode: item.code\n }\n saveBUsParams.push(objP)\n })\n usrSaveuserorg(saveBUsParams).then(() =>{\n addvisibleBUs.value = false\n initUser()\n })\n \n };\n // 取消订阅\n const handleCancelSubBU = () => {\n addvisibleBUs.value = false\n }\n let roleOption: RoleProps\n // 获取当前选中role的信息\n const findRoleChange = (value: string, option: SelectGlobalProps) => {\n rolesData.value.forEach((item: RoleProps) => {\n if (item.rolid === option.key) roleOption = item\n })\n }\n const handleOkAssRole = () => {\n const params = {\n crtby: roleOption.crtby,\n crtbynm: roleOption.crtbynm,\n crted: roleOption.crted,\n rolid: roleOption.rolid,\n state: true,\n usrid: route.params.id,\n usrrolid: \"\",\n };\n usrSaveuserrole(params).then(() =>{\n addvisibleRole.value = false\n initUser()\n })\n }\n\n\n // 取消分配\n const handleCancelRole = () => {\n roleselect.value = ''\n addvisibleRole.value = false\n }\n // 删除bu\n const removeUserOrgEvent = (e: MouseEvent, usrorgid: string) => {\n const params = {\n usrorgId: usrorgid,\n usrId: route.params.id\n }\n deleteBuSelected({params: params}).then(() => {\n initUser()\n })\n }\n\n const getBuRegion = (idArr: any, regionDto: any) => {\n return regionDto.filter((item: any) => {\n return idArr.indexOf(item.id) > -1 \n })\n }\n\n // 保存bu和region\n const regionSave = () => {\n let buRegionValueArr: Bu[] = [];\n \n for (const item of subData.value) {\n console.log(item.allBuRegionIdArr)\n if (item.allBuRegionIdArr && item.allBuRegionIdArr.length) {\n const buRegionArr = getBuRegion(item.allBuRegionIdArr, item.regionDto)\n buRegionValueArr = buRegionValueArr.concat(buRegionArr) as Bu[]\n }\n }\n \n const params = {\n usrid: route.params.id,\n selectedRegion: buRegionValueArr\n }\n\n saveBuAndRegion(params).then(() => {\n message.success('Save successfully');\n initUser()\n })\n }\n\n onMounted(() => {\n // 获取初始化数据\n initUser()\n });\n\n return {\n findUserData,\n replaceFields,\n handleOkAssRole,\n handleOkSubBU,\n handleCancelRole,\n handleCancelSubBU,\n // 添加dialog\n addvisibleRole,\n handleAddRole,\n addvisibleBUs,\n handlesubBUs,\n roleValue,\n // 查找user的检索\n optionsUser,\n userSelect,\n userDataList,\n // 点击importUser\n imoprtUser,\n // 查找role的检索\n assignedRoleList,// 分配role的数据\n optionsRole,\n roleselect,\n removeRole,\n rolesData,\n // dialog树状图\n subData,\n treeData,\n clickKeys,\n checkedKeys,\n expandedKeys,\n removeUserOrgEvent,\n findUserChange,\n findRoleChange,\n getPermissions,\n regionSave,\n isShowRegion,\n };\n },\n});\n","import { render } from \"./UserSetting.vue?vue&type=template&id=081e4bce&ts=true\"\nimport script from \"./UserSetting.vue?vue&type=script&lang=ts\"\nexport * from \"./UserSetting.vue?vue&type=script&lang=ts\"\n\nimport \"./UserSetting.vue?vue&type=style&index=0&id=081e4bce&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// 登录用户的数据\nexport interface CurrentuserProps {\n crtby: string;\n crtbynm: string;\n crted: number;\n email: string;\n fulnm: string;\n legalEntity: {\n entityCode: string;\n entityName: string;\n entityNameEn: string;\n entityType: string;\n id: number;\n parentId: string;\n showEntity: string;\n };\n menulist: TreeProps[];\n orgid: string;\n orgnm: string;\n state: boolean;\n userroles: RoleProps[];\n usrid: string;\n usrnm: string;\n usrtp: number;\n usrtpnm: string;\n key: string;\n}\n// privilege group表格数据type\nexport interface PGProps {\n key?: string;\n grpdsc: string;\n grpnmcn: string;\n grpnmen: string;\n grptp: number;\n grptpnm: string;\n privgrpid: string;\n state: boolean;\n crtby: string;\n crtbynm: string;\n crted: number;\n}\n// 菜单权限表格数据\nexport interface RoleTableProps {\n crtby: string;\n crtbynm: string;\n crted: number;\n mnuid: string;\n privcd: string;\n privdsc: string;\n privid: string;\n privnmcn: string;\n privnmen: string;\n privtp: number;\n privtpnm: string;\n state: boolean;\n}\n// 权限的数据\nexport interface RoleProps {\n key?: string;\n privgrpid: string;\n privgrpnmcn: string;\n privgrpnmen: string;\n rolcd: string;\n roldsc: string;\n rolid: string;\n rolnmcn: string;\n rolnmen: string;\n roltp: number;\n roltpnm: string;\n state: boolean;\n crtby: string;\n crtbynm: string;\n crted: number;\n usrrolid: string;\n}\n// user的数据type\nexport interface UserProps {\n key?: string;\n usrid: string;\n usrnm: string;\n fulnm: string;\n email: string;\n usrtp: number;\n usrtpnm: string;\n orgid: string;\n orgnmcn: string;\n orgnmen: string;\n state: boolean;\n crted: number;\n crtby: string;\n crtbynm: string;\n mdfed: number;\n mdfby: string;\n mdfbynm: string;\n entityName: string;\n entityIds: number[];\n dealerItAdmin: boolean;\n showEntity: boolean;\n}\n\n// interface UsersProps {\n// crtby: string;\n// crtbynm: string;\n// crted: number;\n// email: string;\n// fulnm: string;\n// orgid: string;\n// orgnm: string;\n// state: boolean;\n// usrid: string;\n// usrnm: string;\n// usrtp: number;\n// usrtpnm: string;\n// }\n// dealer的组织架构\nexport interface OrgDealerProps {\n dealid: string;\n dealnmen: string;\n dealnmcn: string;\n dealcd: string;\n mbafccd: string;\n swtcd: string;\n ndcd: string;\n opendt: string;\n closedt: string;\n parentid: string;\n dealtp: string;\n state: boolean;\n}\n// 搜索的params\nexport interface SearchParamsProps {\n type?: string;\n name?: string;\n pageIndex: number;\n}\n// 存储BU\nexport interface SaveBUsProps {\n crtby: string;\n crtbynm: string;\n crted?: number;\n orgid: string;\n orgnmcn: string;\n orgnmen: string;\n orgtp: number;\n orgtpnm: string;\n state: true;\n usrid: string;\n usrorgid: string;\n orgcode?: string;\n}\n// 分页信息的数据type\nexport interface PageOptionProps {\n pageSize: number;\n current: number;\n total: number;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n showQuickJumper?: boolean;\n}\n// type选择\nexport interface SelectProps {\n children?: string[];\n disabled: boolean;\n key: number;\n value: string;\n}\nexport interface ParamsProps {\n content: PGProps[];\n empty: boolean;\n first: boolean;\n last: boolean;\n number: number;\n numberOfElements: number;\n pageable: {};\n size: number;\n sort: {};\n totalElements: number;\n totalPages: number;\n}\n// 树里面的表格被选择后\nexport interface TableCheckedDataProps {\n [key: string]: string[];\n}\n// PG 三个已选\nexport interface SelectMenuCheckedProps {\n apilist: [];\n mnulist: SelectMenu[];\n privlist: SelectMenu[];\n}\n// PG 三个已选\nexport interface SelectMenuRoleCheckedProps {\n apiList: [];\n mnuList: SelectMenu[];\n privList: SelectMenu[];\n}\n// role Tree\nexport interface RoleTreeProps {\n apilist: APIMenuProps[];\n mnulist: TreeProps[];\n}\n// 左侧树\nexport interface TreeProps {\n disableCheckbox?: boolean;\n crtby?: string;\n crtbynm?: string;\n crted?: number;\n icon?: string;\n mnuid: string; // id\n key: number;\n mnunmcn: string;\n mnunmen: string;\n mnudsc?: string; // 描述\n mnuseq?: string; // 排序\n privlist: string[]; // 表格数据\n children: TreeProps[];\n mnuuri: string; // 路由\n parentid?: string;\n state?: boolean; // \n}\n// 订阅BUs 树状图\nexport interface BuTreeProps {\n buid: string;\n bunmcn: string;\n bunmen: string;\n butp: number;\n butpnm: string;\n key: string;\n state?: boolean;\n children: BuTreeProps[];\n id: string;\n}\n// 树选中的\nexport interface SelectMenu {\n mnuid: string;\n privid?: string;\n privids?: SelectMenu[];\n}\n// api Menu\nexport interface APIMenu {\n apiid: string;\n}\n\ninterface APIListProps {\n key?: string;\n apidsc?: string;\n apigrpnm?: string;\n apiid: string;\n apimhd: string;\n apinm: string;\n apiver?: string;\n state?: number;\n crtby?: string;\n crtbynm?: string;\n crted?: number;\n}\nexport interface APIMenuProps {\n apigrpnm: string;\n apilist: APIListProps[];\n\n}\n\n// 组织架构\nexport interface OrgProps {\n buid: string;\n bunmen: string;\n bunmcn: string;\n butp: number;\n butpnm: string;\n parentid?: string;\n state?: boolean;\n}\n\n// 保存的参数\nexport interface OrgParamsProps {\n children?: [];\n code?: string;\n id: string;\n key?: string;\n nameCN: string;\n nameEN: string;\n type: string;\n typeName: string;\n}\n\n// 保存的参数\nexport interface BusParamsProps {\n children?: [];\n code?: string;\n id: string;\n key?: string;\n nameCn: string;\n nameEn: string;\n type: string;\n typeName: string;\n}\n\nexport interface MPProps {\n privid?: string | string[];\n apiid?: string;\n mnuid?: string;\n privgrpid: string | string[];\n state: boolean;\n}\nexport interface RoleMPProps {\n privid?: string | string[];\n apiid?: string;\n mnuid?: string;\n rolid?: string | string[];\n privgrpid?: string;\n state: boolean;\n rolmnuid?: string;\n}\nexport interface ActionProps {\n privid: string | string[];\n mnuid?: string;\n privgrpid: string | string[];\n state: boolean;\n}\nexport interface ActionPropsRole {\n rolid: string | string[];\n privid: string;\n mnuid: string;\n state: boolean;\n}\n\n// 权限组下面选择\nexport interface PrgProps {\n crtby?: string;\n crtbynm?: string;\n crted?: number;\n grpdsc?: string;\n grpnmcn: string;\n grpnmen: string;\n grptp: number;\n grptpnm: string;\n privgrpid: string;\n state?: true;\n}\n\n\ninterface SlotProps {\n title?: string;\n customRender?: string;\n}\nexport interface ColumnsProps {\n title?: string;\n dataIndex: string;\n slots?: SlotProps;\n}\n\n\n// OEM, Dealer\nexport interface TypeProps {\n lkpval: number;\n lkpnm: string;\n}\n// OEM, Dealer\nexport const userTypeOptions: TypeProps[] = [\n {\n lkpval: 10001,\n lkpnm: 'OEM'\n },\n {\n lkpval: 10002,\n lkpnm: 'Dealer'\n }\n]\n\nexport interface LegalEntity {\n entityCode: string;\n entityName: string;\n entityType: string;\n id: number;\n parentId?: number | null;\n entityNameEn: string;\n}\n\nexport interface Entity {\n entityCode: string;\n entityName: string;\n entityType: string;\n id: number;\n parentId?: number | null;\n}\n\nexport interface OrganizationProps {\n entityCode: string;\n entityName: string;\n entityType: string;\n id: number | string;\n parentId?: number | null;\n showEntity: boolean;\n}\n\n// select选择的通用type\nexport interface SelectGlobalProps {\n children: [];\n disabled: boolean;\n key: string;\n value: string;\n}\n\n// entity select type\nexport interface EntitySelectProps {\n disabled: boolean;\n children: [];\n key: number;\n value: string;\n}\n\ninterface DataRefProps {\n dataRef: TreeProps[];\n}\n// tree点击的通用type\nexport interface TreeClickProps {\n event: string;\n nativeEvent: MouseEvent;\n node: DataRefProps;\n selected: boolean;\n selectedNodes: [];\n}\nexport interface OutLoginProps {\n code: number;\n data: string;\n message: string;\n}\n\nexport interface Bu {\n id: number | string;\n nameCn: string;\n nameEn: string;\n regionDto: {\n buId: number;\n id: string;\n [key: string]: any\n }[];\n buRegionValue: Bu[];\n [key: string]: any\n}\n\nexport enum UserRoleMatrixTab {\n Role,\n User\n}\n\nexport interface roleMatrixItem {\n firstMenuNameEn: string;\n firstMenuNameCn: string;\n secondMenuNameEn: string;\n secondMenuNameCn: string;\n thirdMenuNameEn: string;\n thirdMenuNameCn: string;\n privNameEn: string;\n privNameCn: string;\n privCode: string;\n legalEntity: string;\n userGroupName: string;\n roleName: string;\n createdAt: string;\n createdBy: string;\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode, normalizeClass as _normalizeClass, createSlots as _createSlots, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1b23a3ba\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"content-container\" }\nconst _hoisted_2 = { class: \"panel\" }\nconst _hoisted_3 = { class: \"form-panel\" }\nconst _hoisted_4 = { class: \"form-item\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \" Legal Entity \", -1))\nconst _hoisted_6 = { class: \"form-item\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \" User Group \", -1))\nconst _hoisted_8 = { class: \"form-item\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \" Role \", -1))\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \" Menu_1 \", -1))\nconst _hoisted_12 = { class: \"form-item\" }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \" Menu_2 \", -1))\nconst _hoisted_14 = { class: \"form-panel t-d\" }\nconst _hoisted_15 = { class: \"form-item\" }\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \" Menu_3 \", -1))\nconst _hoisted_17 = { class: \"operation-items\" }\nconst _hoisted_18 = /*#__PURE__*/_createTextVNode(\"Reset\")\nconst _hoisted_19 = /*#__PURE__*/_createTextVNode(\"Search\")\nconst _hoisted_20 = { class: \"main-panel\" }\nconst _hoisted_21 = { class: \"form-panel b-d\" }\nconst _hoisted_22 = { class: \"operation-items\" }\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"font_family icon-Export-icon\" }, null, -1))\nconst _hoisted_24 = /*#__PURE__*/_createTextVNode(\" Export \")\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"font_family icon-Export-icon\" }, null, -1))\nconst _hoisted_26 = /*#__PURE__*/_createTextVNode(\" Export Operation History \")\nconst _hoisted_27 = [\"title\"]\nconst _hoisted_28 = { class: \"pagination-container t-d\" }\n\nimport { reactive, ref } from 'vue';\nimport { elementSize } from '@/utils';\nimport { LegalEntity, PrgProps, roleMatrixItem, SelectGlobalProps, TreeProps } from '../types';\nimport {\n exportRoleMatrix,\n exportRoleMatrixLog,\n getLegalEntityOptions,\n getRoleMatrixList,\n getRoleMatrixRoleOptions,\n getRoleMatrixRoleOptionsByGrpId,\n PGfindgroupbytypes,\n PGfindmnuall\n} from '@/API/user';\nimport { downloadFromStream } from '@/utils/payment/downloadFile';\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst conditions = reactive({\n legalEntity: [] as string[],\n userGroup: undefined as undefined | string,\n userGroupNameEn: '',\n roleName: undefined as undefined | string,\n menu1: undefined as undefined | string,\n menuNameEn1: '',\n menu2: undefined as undefined | string,\n menuNameEn2: '',\n menu3: undefined as undefined | string,\n menuNameEn3: ''\n});\n\nconst fetchingUserGroup = ref(false);\n\nconst legalEntityOptions = ref([]);\n\nconst getLegalEntity = () => {\n getLegalEntityOptions().then((res) => {\n legalEntityOptions.value = res;\n });\n};\n\nconst grptpChange = (value: string[], options: SelectGlobalProps[]) => {\n conditions.legalEntity = value;\n // type选择之后,把pg清空\n conditions.userGroup = undefined;\n conditions.userGroupNameEn = '';\n prgOptions.value = [];\n roleOptions.value = allRoleOptions.value;\n};\n\nconst prgOptions = ref([]);\n\nconst getGPbyType = (typeids: number[]) => {\n const params = {\n types: typeids\n };\n return PGfindgroupbytypes({ params: params }).then((res) => {\n prgOptions.value = res;\n });\n};\n\nconst handleFoucsUserGroup = async () => {\n if (prgOptions.value.length) {\n return;\n }\n fetchingUserGroup.value = true;\n try {\n await getGPbyType(\n legalEntityOptions.value\n .filter((item) => conditions.legalEntity.includes(item.entityNameEn))\n .map((item) => item.id)\n );\n } finally {\n fetchingUserGroup.value = false;\n }\n};\n\nconst findNmById = (id: string) => {\n return prgOptions.value.filter((item) => item.privgrpid === id);\n};\n\n// 因为下拉不能绑定对象,所以要用change得到label\nconst grpChange = async (value: string) => {\n conditions.userGroup = value;\n const groupOption = findNmById(value);\n if (groupOption.length > 0) {\n conditions.userGroupNameEn = groupOption[0].grpnmen;\n await getRoleOptionsByGrpId(value);\n if (conditions.roleName && !roleOptions.value.includes(conditions.roleName)) {\n conditions.roleName = undefined;\n }\n } else {\n conditions.userGroupNameEn = '';\n roleOptions.value = allRoleOptions.value;\n }\n};\n\nconst roleOptions = ref([]);\n\nconst allRoleOptions = ref([]);\n\nconst getRoleOptions = async () => {\n allRoleOptions.value = await getRoleMatrixRoleOptions();\n roleOptions.value = allRoleOptions.value;\n};\n\nconst getRoleOptionsByGrpId = async (grpId: string) => {\n roleOptions.value = (await getRoleMatrixRoleOptionsByGrpId(grpId)).map((item: any) => item.rolnmen);\n};\n\nconst menu1Options = ref([]);\nconst menu2Options = ref([]);\nconst menu3Options = ref([]);\n\nconst getMenu = () => {\n PGfindmnuall().then((res) => {\n menu1Options.value = res;\n });\n};\n\nconst resetMenu2 = () => {\n menu2Options.value = [];\n conditions.menu2 = undefined;\n conditions.menuNameEn2 = '';\n};\n\nconst resetMenu3 = () => {\n menu3Options.value = [];\n conditions.menu3 = undefined;\n conditions.menuNameEn3 = '';\n};\n\nconst menu1Change = (value: string) => {\n resetMenu2();\n resetMenu3();\n conditions.menu1 = value;\n if (value) {\n const option = menu1Options.value.find((item) => item.mnuid === value);\n conditions.menuNameEn1 = option!.mnunmen;\n menu2Options.value = option!.children;\n } else {\n conditions.menuNameEn1 = '';\n }\n};\n\nconst menu2Change = (value: string) => {\n resetMenu3();\n conditions.menu2 = value;\n if (value) {\n const option = menu2Options.value.find((item) => item.mnuid === value);\n conditions.menuNameEn2 = option!.mnunmen;\n menu3Options.value = option!.children;\n } else {\n conditions.menuNameEn2 = '';\n }\n};\n\nconst menu3Change = (value: string) => {\n conditions.menu3 = value;\n if (value) {\n const option = menu3Options.value.find((item) => item.mnuid === value);\n conditions.menuNameEn3 = option!.mnunmen;\n } else {\n conditions.menuNameEn3 = '';\n }\n};\n\nconst columns = [\n {\n title: 'Menu_1',\n dataIndex: 'firstMenuNameEn',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'Menu_1_CN',\n dataIndex: 'firstMenuNameCn',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'Menu_2',\n dataIndex: 'secondMenuNameEn',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'Menu_2_CN',\n dataIndex: 'secondMenuNameCn',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'Menu_3',\n dataIndex: 'thirdMenuNameEn',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'Menu_3_CN',\n dataIndex: 'thirdMenuNameCn',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'Button',\n dataIndex: 'privNameEn',\n slots: { customRender: 'EllipsisText' },\n width: 100\n },\n {\n title: 'Button_CN',\n dataIndex: 'privNameCn',\n slots: { customRender: 'EllipsisText' },\n width: 100\n },\n {\n title: 'Button Code',\n dataIndex: 'privCode',\n slots: { customRender: 'EllipsisText' },\n width: 100\n },\n {\n title: 'Legal Entity',\n dataIndex: 'legalEntity',\n slots: { customRender: 'EllipsisText' },\n width: 100\n },\n {\n title: 'User Group',\n dataIndex: 'userGroupName',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'Role',\n dataIndex: 'roleName',\n slots: { customRender: 'EllipsisText' },\n width: 120\n },\n {\n title: 'Create Time',\n dataIndex: 'createdAt',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'Create Account',\n dataIndex: 'createdBy',\n slots: { customRender: 'EllipsisText' },\n width: 100\n }\n];\n\nconst tableSize = elementSize('.data-table');\n\nconst roleMatrixData = ref([]);\n\nconst pagination = reactive({\n total: 0,\n current: 1,\n size: 10\n});\n\nconst getData = async () => {\n const params = {\n legalEntityList: conditions.legalEntity,\n userGroupName: conditions.userGroupNameEn,\n roleName: conditions.roleName,\n firstMenuNameEn: conditions.menuNameEn1,\n secondMenuNameEn: conditions.menuNameEn2,\n thirdMenuNameEn: conditions.menuNameEn3,\n current: pagination.current - 1,\n size: pagination.size\n };\n const data = await getRoleMatrixList(params);\n roleMatrixData.value = data.content;\n pagination.total = parseInt(data.totalElements);\n};\n\nconst handleChangePage = (page: number) => {\n pagination.current = page;\n getData();\n};\n\nconst handleChangeShowSize = (current: number, size: number) => {\n pagination.size = size;\n getData();\n};\n\nconst handleSearch = () => {\n pagination.current = 1;\n getData();\n};\n\nconst handleReset = () => {\n roleOptions.value = allRoleOptions.value;\n Object.assign(conditions, {\n legalEntity: [],\n userGroup: undefined,\n userGroupNameEn: '',\n roleName: undefined,\n menu1: undefined,\n menuNameEn1: '',\n menu2: undefined,\n menuNameEn2: '',\n menu3: undefined,\n menuNameEn3: ''\n });\n handleSearch();\n};\n\nconst handleExport = async () => {\n const params = {\n legalEntityList: conditions.legalEntity,\n userGroupName: conditions.userGroupNameEn,\n roleName: conditions.roleName,\n firstMenuNameEn: conditions.menuNameEn1,\n secondMenuNameEn: conditions.menuNameEn2,\n thirdMenuNameEn: conditions.menuNameEn3\n };\n const data = await exportRoleMatrix(params);\n downloadFromStream(data);\n};\n\nconst handleExportHistory = async () => {\n const data = await exportRoleMatrixLog();\n downloadFromStream(data);\n};\n\nconst init = () => {\n getLegalEntity();\n getRoleOptions();\n getMenu();\n handleSearch();\n};\n\ninit();\n\nreturn (_ctx: any,_cache: any) => {\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_spin = _resolveComponent(\"a-spin\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_a_pagination = _resolveComponent(\"a-pagination\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createVNode(_component_a_select, {\n mode: \"multiple\",\n value: _unref(conditions).legalEntity,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_unref(conditions).legalEntity) = $event)),\n placeholder: _ctx.$t('user.filterType'),\n allowClear: \"\",\n onChange: grptpChange\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(legalEntityOptions.value, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.entityNameEn,\n key: item.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.entityNameEn), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\"])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _hoisted_7,\n _createVNode(_component_a_select, {\n value: _unref(conditions).userGroup,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(conditions).userGroup) = $event)),\n placeholder: _ctx.$t('user.filterType'),\n allowClear: \"\",\n onFocus: handleFoucsUserGroup,\n onChange: grpChange,\n class: _normalizeClass(!_unref(conditions).legalEntity.length ? 'search-disable' : ''),\n disabled: !_unref(conditions).legalEntity.length\n }, _createSlots({\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(prgOptions.value, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.privgrpid,\n key: item.privgrpid\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === 'zh' ? item.grpnmcn : item.grpnmen), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 2\n }, [\n (fetchingUserGroup.value)\n ? {\n name: \"notFoundContent\",\n fn: _withCtx(() => [\n _createVNode(_component_a_spin, { size: \"small\" })\n ])\n }\n : undefined\n ]), 1032, [\"value\", \"placeholder\", \"class\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n _createVNode(_component_a_select, {\n value: _unref(conditions).roleName,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(conditions).roleName) = $event)),\n placeholder: _ctx.$t('user.filterType'),\n allowClear: \"\",\n showSearch: \"\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(roleOptions.value, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item,\n key: item\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\"])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _hoisted_11,\n _createVNode(_component_a_select, {\n value: _unref(conditions).menu1,\n \"onUpdate:value\": _cache[3] || (_cache[3] = ($event: any) => ((_unref(conditions).menu1) = $event)),\n placeholder: _ctx.$t('user.filterType'),\n allowClear: \"\",\n showSearch: \"\",\n optionFilterProp: \"title\",\n onChange: menu1Change\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(menu1Options.value, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.mnuid,\n key: item.mnuid,\n title: item.mnunmen\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.mnunmen), 1)\n ]),\n _: 2\n }, 1032, [\"value\", \"title\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\"])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n _createVNode(_component_a_select, {\n value: _unref(conditions).menu2,\n \"onUpdate:value\": _cache[4] || (_cache[4] = ($event: any) => ((_unref(conditions).menu2) = $event)),\n placeholder: _ctx.$t('user.filterType'),\n allowClear: \"\",\n showSearch: \"\",\n optionFilterProp: \"title\",\n onChange: menu2Change,\n class: _normalizeClass(!_unref(conditions).menu1 ? 'search-disable' : ''),\n disabled: !_unref(conditions).menu1\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(menu2Options.value, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.mnuid,\n key: item.mnuid,\n title: item.mnunmen\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.mnunmen), 1)\n ]),\n _: 2\n }, 1032, [\"value\", \"title\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\", \"class\", \"disabled\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, [\n _hoisted_16,\n _createVNode(_component_a_select, {\n value: _unref(conditions).menu3,\n \"onUpdate:value\": _cache[5] || (_cache[5] = ($event: any) => ((_unref(conditions).menu3) = $event)),\n placeholder: _ctx.$t('user.filterType'),\n allowClear: \"\",\n showSearch: \"\",\n optionFilterProp: \"title\",\n onChange: menu3Change,\n class: _normalizeClass(!_unref(conditions).menu2 ? 'search-disable' : ''),\n disabled: !_unref(conditions).menu2\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(menu3Options.value, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.mnuid,\n key: item.mnuid,\n title: item.mnunmen\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.mnunmen), 1)\n ]),\n _: 2\n }, 1032, [\"value\", \"title\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\", \"class\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_17, [\n (_ctx.$btnPermissions('User MatrixR Reset'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n onClick: handleReset\n }, {\n default: _withCtx(() => [\n _hoisted_18\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('User MatrixR Search'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 1,\n type: \"primary\",\n onClick: handleSearch\n }, {\n default: _withCtx(() => [\n _hoisted_19\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"div\", _hoisted_22, [\n (_ctx.$btnPermissions('User MatrixR Export'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"text\",\n onClick: handleExport\n }, {\n icon: _withCtx(() => [\n _hoisted_23\n ]),\n default: _withCtx(() => [\n _hoisted_24\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('User MatrixR History'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 1,\n type: \"text\",\n onClick: handleExportHistory\n }, {\n icon: _withCtx(() => [\n _hoisted_25\n ]),\n default: _withCtx(() => [\n _hoisted_26\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createVNode(_component_a_table, {\n class: \"data-table striped\",\n columns: columns,\n \"data-source\": roleMatrixData.value,\n pagination: false,\n rowKey: \"id\",\n scroll: { x: _unref(tableSize).width, y: _unref(tableSize).height - 40 }\n }, {\n EllipsisText: _withCtx(({ text }) => [\n _createElementVNode(\"span\", {\n class: \"ellipsis-text\",\n title: text\n }, _toDisplayString(text), 9, _hoisted_27)\n ]),\n _: 1\n }, 8, [\"data-source\", \"scroll\"]),\n _createElementVNode(\"div\", _hoisted_28, [\n _createVNode(_component_a_pagination, {\n \"show-size-changer\": \"\",\n \"show-quick-jumper\": \"\",\n \"show-total\": (total) => `Total ${total} items`,\n pageSizeOptions: ['10', '20', '30', '40'],\n total: _unref(pagination).total,\n current: _unref(pagination).current,\n \"onUpdate:current\": _cache[6] || (_cache[6] = ($event: any) => ((_unref(pagination).current) = $event)),\n pageSize: _unref(pagination).size,\n \"onUpdate:pageSize\": _cache[7] || (_cache[7] = ($event: any) => ((_unref(pagination).size) = $event)),\n onChange: handleChangePage,\n onShowSizeChange: handleChangeShowSize\n }, null, 8, [\"show-total\", \"total\", \"current\", \"pageSize\"])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./Role.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./Role.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./Role.vue?vue&type=style&index=0&id=1b23a3ba&lang=scss&scoped=true\"\nimport \"./Role.vue?vue&type=style&index=1&id=1b23a3ba&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1b23a3ba\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode, normalizeClass as _normalizeClass, createSlots as _createSlots, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5ce90e2a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"content-container\" }\nconst _hoisted_2 = { class: \"panel\" }\nconst _hoisted_3 = { class: \"form-panel\" }\nconst _hoisted_4 = { class: \"form-item\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \" Legal Entity \", -1))\nconst _hoisted_6 = { class: \"form-item\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \" User Group \", -1))\nconst _hoisted_8 = { class: \"form-item\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \" User Role \", -1))\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \" Full Name \", -1))\nconst _hoisted_12 = [\"innerHTML\"]\nconst _hoisted_13 = { class: \"form-item\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \" User BU \", -1))\nconst _hoisted_15 = { class: \"form-panel t-d\" }\nconst _hoisted_16 = { class: \"operation-items\" }\nconst _hoisted_17 = /*#__PURE__*/_createTextVNode(\"Reset\")\nconst _hoisted_18 = /*#__PURE__*/_createTextVNode(\"Search\")\nconst _hoisted_19 = { class: \"main-panel\" }\nconst _hoisted_20 = { class: \"form-panel b-d\" }\nconst _hoisted_21 = { class: \"operation-items\" }\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"font_family icon-Export-icon\" }, null, -1))\nconst _hoisted_23 = /*#__PURE__*/_createTextVNode(\" Export \")\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"font_family icon-Export-icon\" }, null, -1))\nconst _hoisted_25 = /*#__PURE__*/_createTextVNode(\" Export Operation History \")\nconst _hoisted_26 = [\"title\"]\nconst _hoisted_27 = { class: \"pagination-container t-d\" }\n\nimport { reactive, ref } from 'vue';\nimport { elementSize } from '@/utils';\nimport { LegalEntity, PrgProps, roleMatrixItem, SelectGlobalProps } from '../types';\nimport {\n exportUserMatrix,\n exportUserMatrixLog,\n getLegalEntityOptions,\n getRoleMatrixRoleOptions,\n getUserMatrixList,\n getUserMatrixUserOptions,\n getRoleMatrixRoleOptionsByGrpId,\n PGfindgroupbytypes\n} from '@/API/user';\nimport { downloadFromStream } from '@/utils/payment/downloadFile';\nimport { getBuTreeList } from '@/API/approvalChain';\nimport { TreeSelect } from 'ant-design-vue';\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst SHOW_ALL = TreeSelect.SHOW_ALL;\n\nconst conditions = reactive({\n legalEntity: [] as string[],\n userGroup: undefined as undefined | string,\n userGroupNameEn: '',\n roleName: undefined as undefined | string,\n fullName: undefined as undefined | string,\n bu: [] as { label: string; value: string }[]\n});\n\nconst fetchingUserGroup = ref(false);\n\nconst legalEntityOptions = ref([]);\n\nconst getLegalEntity = () => {\n getLegalEntityOptions().then((res) => {\n legalEntityOptions.value = res;\n });\n};\n\nconst grptpChange = (value: string[], option: SelectGlobalProps) => {\n conditions.legalEntity = value;\n // type选择之后,把pg清空\n conditions.userGroup = undefined;\n conditions.userGroupNameEn = '';\n prgOptions.value = [];\n roleOptions.value = allRoleOptions.value;\n};\n\nconst prgOptions = ref([]);\n\nconst getGPbyType = (typeids: number[]) => {\n const params = {\n types: typeids\n };\n return PGfindgroupbytypes({ params: params }).then((res) => {\n prgOptions.value = res;\n });\n};\n\nconst handleFoucsUserGroup = async () => {\n if (prgOptions.value.length) {\n return;\n }\n fetchingUserGroup.value = true;\n try {\n await getGPbyType(\n legalEntityOptions.value\n .filter((item) => conditions.legalEntity.includes(item.entityNameEn))\n .map((item) => item.id)\n );\n } finally {\n fetchingUserGroup.value = false;\n }\n};\n\nconst findNmById = (id: string) => {\n return prgOptions.value.filter((item) => item.privgrpid === id);\n};\n\n// 因为下拉不能绑定对象,所以要用change得到label\nconst grpChange = async (value: string) => {\n conditions.userGroup = value;\n const groupOption = findNmById(value);\n if (groupOption.length > 0) {\n conditions.userGroupNameEn = groupOption[0].grpnmen;\n await getRoleOptionsByGrpId(value);\n if (conditions.roleName && !roleOptions.value.includes(conditions.roleName)) {\n conditions.roleName = undefined;\n }\n } else {\n conditions.userGroupNameEn = '';\n roleOptions.value = allRoleOptions.value;\n }\n};\n\nconst roleOptions = ref([]);\n\nconst allRoleOptions = ref([]);\n\nconst getRoleOptions = async () => {\n allRoleOptions.value = await getRoleMatrixRoleOptions();\n roleOptions.value = allRoleOptions.value;\n};\n\nconst getRoleOptionsByGrpId = async (grpId: string) => {\n roleOptions.value = (await getRoleMatrixRoleOptionsByGrpId(grpId)).map((item: any) => item.rolnmen);\n};\n\nconst userOptions = ref([]);\n\nconst getUserOptions = async () => {\n userOptions.value = await getUserMatrixUserOptions();\n};\n\nconst userInput = ref('');\n\nconst userInputChange = (input: string) => {\n userInput.value = input;\n};\n\nconst buOptions = ref([]);\n\nconst getBuOptions = async () => {\n buOptions.value = (await getBuTreeList()) as any;\n};\n\nconst columns = [\n {\n title: 'Status',\n dataIndex: 'state',\n slots: { customRender: 'EllipsisText' },\n width: 100\n },\n {\n title: 'Account',\n dataIndex: 'userName',\n slots: { customRender: 'EllipsisText' },\n width: 100\n },\n {\n title: 'Full Name',\n dataIndex: 'fullName',\n slots: { customRender: 'EllipsisText' },\n width: 100\n },\n {\n title: 'Legal Entity',\n dataIndex: 'legalEntity',\n slots: { customRender: 'EllipsisText' },\n width: 100\n },\n {\n title: 'Organization',\n dataIndex: 'orgName',\n slots: { customRender: 'EllipsisText' },\n width: 100\n },\n {\n title: 'Email',\n dataIndex: 'email',\n slots: { customRender: 'EllipsisText' },\n width: 130\n },\n {\n title: 'User Group',\n dataIndex: 'userGroupName',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'User Roles',\n dataIndex: 'roleName',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'User BUs',\n dataIndex: 'buName',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'MBPC_Region',\n dataIndex: 'mbpcRegion',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'AMG_Region',\n dataIndex: 'amgRegion',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'G_Region',\n dataIndex: 'gregion',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'Maybach_Region',\n dataIndex: 'maybachRegion',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'Fleet_Region',\n dataIndex: 'fleetRegion',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'CPO_Region',\n dataIndex: 'cpoRegion',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'VAN_Region',\n dataIndex: 'vanRegion',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'Create Time',\n dataIndex: 'createdAt',\n slots: { customRender: 'EllipsisText' },\n width: 150\n },\n {\n title: 'Create Account',\n dataIndex: 'createdBy',\n slots: { customRender: 'EllipsisText' },\n width: 100\n }\n];\n\nconst tableSize = elementSize('.data-table');\n\nconst userMatrixData = ref([]);\n\nconst pagination = reactive({\n total: 0,\n current: 1,\n size: 10\n});\n\nconst getData = async () => {\n const list = conditions.fullName?.split(',');\n const params = {\n legalEntityList: conditions.legalEntity,\n userGroupName: conditions.userGroupNameEn,\n roleName: conditions.roleName,\n userName: list ? list[0] : undefined,\n fullName: list ? list[1] : undefined,\n buNameList: conditions.bu.map((item) => item.value),\n current: pagination.current - 1,\n size: pagination.size\n };\n const data = await getUserMatrixList(params);\n userMatrixData.value = data.content;\n pagination.total = parseInt(data.totalElements);\n};\n\nconst handleChangePage = (page: number) => {\n pagination.current = page;\n getData();\n};\n\nconst handleChangeShowSize = (current: number, size: number) => {\n pagination.size = size;\n getData();\n};\n\nconst handleSearch = () => {\n pagination.current = 1;\n getData();\n};\n\nconst handleReset = () => {\n roleOptions.value = allRoleOptions.value;\n Object.assign(conditions, {\n legalEntity: [],\n userGroup: undefined,\n userGroupNameEn: '',\n roleName: undefined,\n fullName: undefined,\n bu: []\n });\n handleSearch();\n};\n\nconst handleExport = async () => {\n const list = conditions.fullName?.split(',');\n const params = {\n legalEntityList: conditions.legalEntity,\n userGroupName: conditions.userGroupNameEn,\n roleName: conditions.roleName,\n userName: list ? list[0] : undefined,\n fullName: list ? list[1] : undefined,\n buNameList: conditions.bu.map((item) => item.value)\n };\n const data = await exportUserMatrix(params);\n downloadFromStream(data);\n};\n\nconst handleExportHistory = async () => {\n const data = await exportUserMatrixLog();\n downloadFromStream(data);\n};\n\nconst init = () => {\n getLegalEntity();\n getRoleOptions();\n getUserOptions();\n getBuOptions();\n handleSearch();\n};\n\ninit();\n\nreturn (_ctx: any,_cache: any) => {\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_spin = _resolveComponent(\"a-spin\")!\n const _component_a_tree_select = _resolveComponent(\"a-tree-select\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_a_pagination = _resolveComponent(\"a-pagination\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createVNode(_component_a_select, {\n mode: \"multiple\",\n value: _unref(conditions).legalEntity,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_unref(conditions).legalEntity) = $event)),\n placeholder: _ctx.$t('user.filterType'),\n allowClear: \"\",\n onChange: grptpChange\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(legalEntityOptions.value, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.entityNameEn,\n key: item.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.entityNameEn), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\"])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _hoisted_7,\n _createVNode(_component_a_select, {\n value: _unref(conditions).userGroup,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(conditions).userGroup) = $event)),\n placeholder: _ctx.$t('user.filterType'),\n allowClear: \"\",\n onFocus: handleFoucsUserGroup,\n onChange: grpChange,\n class: _normalizeClass(!_unref(conditions).legalEntity.length ? 'search-disable' : ''),\n disabled: !_unref(conditions).legalEntity.length\n }, _createSlots({\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(prgOptions.value, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.privgrpid,\n key: item.privgrpid\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$i18n.locale === 'zh' ? item.grpnmcn : item.grpnmen), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 2\n }, [\n (fetchingUserGroup.value)\n ? {\n name: \"notFoundContent\",\n fn: _withCtx(() => [\n _createVNode(_component_a_spin, { size: \"small\" })\n ])\n }\n : undefined\n ]), 1032, [\"value\", \"placeholder\", \"class\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n _createVNode(_component_a_select, {\n value: _unref(conditions).roleName,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(conditions).roleName) = $event)),\n placeholder: _ctx.$t('user.filterType'),\n allowClear: \"\",\n showSearch: \"\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(roleOptions.value, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item,\n key: item\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\"])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _hoisted_11,\n _createVNode(_component_a_select, {\n value: _unref(conditions).fullName,\n \"onUpdate:value\": _cache[3] || (_cache[3] = ($event: any) => ((_unref(conditions).fullName) = $event)),\n placeholder: _ctx.$t('user.filterType'),\n allowClear: \"\",\n showSearch: \"\",\n onSearch: userInputChange\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(userOptions.value, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n class: \"user-matrix-light-option\",\n value: item,\n key: item\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", {\n innerHTML: \n userInput.value ? item.replace(new RegExp(userInput.value, 'ig'), `$&`) : item\n \n }, null, 8, _hoisted_12)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"placeholder\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _hoisted_14,\n _createVNode(_component_a_tree_select, {\n value: _unref(conditions).bu,\n \"onUpdate:value\": _cache[4] || (_cache[4] = ($event: any) => ((_unref(conditions).bu) = $event)),\n placeholder: _ctx.$t('user.filterType'),\n allowClear: \"\",\n treeData: buOptions.value,\n replaceFields: {\n children: 'children',\n title: 'nameEn',\n key: 'id',\n value: 'nameEn'\n },\n \"tree-checkable\": \"\",\n treeCheckStrictly: \"\",\n \"show-checked-strategy\": _unref(SHOW_ALL)\n }, null, 8, [\"value\", \"placeholder\", \"treeData\", \"show-checked-strategy\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", _hoisted_16, [\n (_ctx.$btnPermissions('User MatrixU Reset'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n onClick: handleReset\n }, {\n default: _withCtx(() => [\n _hoisted_17\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('User MatrixU Search'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 1,\n type: \"primary\",\n onClick: handleSearch\n }, {\n default: _withCtx(() => [\n _hoisted_18\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"div\", _hoisted_21, [\n (_ctx.$btnPermissions('User MatrixU Export'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 0,\n type: \"text\",\n onClick: handleExport\n }, {\n icon: _withCtx(() => [\n _hoisted_22\n ]),\n default: _withCtx(() => [\n _hoisted_23\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('User MatrixU History'))\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: 1,\n type: \"text\",\n onClick: handleExportHistory\n }, {\n icon: _withCtx(() => [\n _hoisted_24\n ]),\n default: _withCtx(() => [\n _hoisted_25\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createVNode(_component_a_table, {\n class: \"data-table striped\",\n columns: columns,\n \"data-source\": userMatrixData.value,\n pagination: false,\n rowKey: \"id\",\n scroll: { x: _unref(tableSize).width, y: _unref(tableSize).height - 40 }\n }, {\n EllipsisText: _withCtx(({ text }) => [\n _createElementVNode(\"span\", {\n class: \"ellipsis-text\",\n title: text\n }, _toDisplayString(text), 9, _hoisted_26)\n ]),\n _: 1\n }, 8, [\"data-source\", \"scroll\"]),\n _createElementVNode(\"div\", _hoisted_27, [\n _createVNode(_component_a_pagination, {\n \"show-size-changer\": \"\",\n \"show-quick-jumper\": \"\",\n \"show-total\": (total) => `Total ${total} items`,\n pageSizeOptions: ['10', '20', '30', '40'],\n total: _unref(pagination).total,\n current: _unref(pagination).current,\n \"onUpdate:current\": _cache[5] || (_cache[5] = ($event: any) => ((_unref(pagination).current) = $event)),\n pageSize: _unref(pagination).size,\n \"onUpdate:pageSize\": _cache[6] || (_cache[6] = ($event: any) => ((_unref(pagination).size) = $event)),\n onChange: handleChangePage,\n onShowSizeChange: handleChangeShowSize\n }, null, 8, [\"show-total\", \"total\", \"current\", \"pageSize\"])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./User.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./User.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./User.vue?vue&type=style&index=0&id=5ce90e2a&lang=scss&scoped=true\"\nimport \"./User.vue?vue&type=style&index=1&id=5ce90e2a&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5ce90e2a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, unref as _unref, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"remuneration-container\" }\nconst _hoisted_2 = { class: \"nav\" }\n\nimport { ref } from 'vue'\nimport { UserRoleMatrixTab } from '../types'\nimport Role from \"@/views/User/UserRoleMatrix/Role.vue\";\nimport User from \"@/views/User/UserRoleMatrix/User.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst stateStep = ref(UserRoleMatrixTab.Role)\n\n// const breadcrumbData = computed(() => {\n// switch (stateStep.value) {\n// case UserRoleMatrixTab.Role:\n// return [\n// { name: 'Role' }\n// ]\n// case UserRoleMatrixTab.User:\n// return [\n// { name: 'User' }\n// ]\n// default:\n// return []\n// }\n// })\n\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Breadcrumb = _resolveComponent(\"Breadcrumb\")!\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 _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_Breadcrumb, {\n scrollHeight: \"21\",\n outSideHeight: \"30\",\n paddingBottom: \"16\",\n lineHeight: \"17\",\n dataSource: []\n })\n ]),\n _createVNode(_component_a_tabs, {\n type: \"card\",\n activeKey: stateStep.value,\n \"onUpdate:activeKey\": _cache[0] || (_cache[0] = ($event: any) => ((stateStep).value = $event)),\n class: \"nav-tabs\"\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_component_a_tab_pane, {\n key: _unref(UserRoleMatrixTab).Role,\n tab: \"Role\"\n }, {\n default: _withCtx(() => [\n _createVNode(Role)\n ]),\n _: 1\n })),\n (_openBlock(), _createBlock(_component_a_tab_pane, {\n key: _unref(UserRoleMatrixTab).User,\n tab: \"User\"\n }, {\n default: _withCtx(() => [\n _createVNode(User)\n ]),\n _: 1\n }))\n ]),\n _: 1\n }, 8, [\"activeKey\"])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./index.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./index.vue?vue&type=style&index=0&id=34b49642&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/images/refresh-icon.svg'\nimport _imports_1 from '@/assets/images/submit-icon.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-a8abc730\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"bg-fff p-l-r-10 m-b-10 header-nav\" }\nconst _hoisted_2 = /*#__PURE__*/_createTextVNode(\"Regenerate\")\nconst _hoisted_3 = [\"onClick\"]\nconst _hoisted_4 = { class: \"main flex-w-auto bg-fff d-f flex-d-c\" }\nconst _hoisted_5 = { class: \"sioffer\" }\nconst _hoisted_6 = { class: \"sioffer-left\" }\nconst _hoisted_7 = [\"onClick\"]\nconst _hoisted_8 = {\n class: \"flex-div justify-e sioffer-right\",\n style: {\"line-height\":\"100% !important\",\"height\":\"100% !important\"}\n}\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Business Unit\", -1))\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Program Status\", -1))\nconst _hoisted_11 = { class: \"d-f m-t-16\" }\nconst _hoisted_12 = {\n key: 0,\n class: \"d-f flex-d-c flex-w-auto m-r-16\"\n}\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"Customer:\", -1))\nconst _hoisted_14 = { class: \"d-f flex-d-c flex-w-auto\" }\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"PBP Kufri:\", -1))\nconst _hoisted_16 = { class: \"d-f flex-d-c flex-w-auto m-l-16\" }\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"PBP Budget:\", -1))\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_21 = { class: \"d-f flex-d-c flex-w-auto\" }\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"CBU Kufri:\", -1))\nconst _hoisted_23 = { class: \"d-f flex-d-c flex-w-auto m-l-16\" }\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"CBU Budget:\", -1))\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_26 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_28 = { class: \"d-f flex-d-c flex-w-auto\" }\nconst _hoisted_29 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"VAN Kufri:\", -1))\nconst _hoisted_30 = { class: \"d-f flex-d-c flex-w-auto m-l-16\" }\nconst _hoisted_31 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"VAN Budget:\", -1))\nconst _hoisted_32 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_33 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_34 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_35 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_36 = { class: \"d-f flex-d-c flex-w-auto\" }\nconst _hoisted_37 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"DENZA Kufri:\", -1))\nconst _hoisted_38 = { class: \"d-f flex-d-c flex-w-auto m-l-16\" }\nconst _hoisted_39 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"DENZA Budget:\", -1))\nconst _hoisted_40 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_41 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_42 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_43 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_44 = { class: \"budget-content flex-w-auto d-f flex-d-c\" }\nconst _hoisted_45 = {\n key: 0,\n class: \"btn-area d-f justify-e m-t-16\"\n}\nconst _hoisted_46 = {\n key: 0,\n style: {\"line-height\":\"30px\"}\n}\nconst _hoisted_47 = /*#__PURE__*/_createTextVNode(\"Input By Month\")\nconst _hoisted_48 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"刷新\", -1))\nconst _hoisted_49 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"保存\", -1))\nconst _hoisted_50 = { key: 1 }\nconst _hoisted_51 = /*#__PURE__*/_createTextVNode(\"Set Volume Base\")\nconst _hoisted_52 = /*#__PURE__*/_createTextVNode(\"Copy Kufri\")\nconst _hoisted_53 = {\n key: 1,\n style: {\"height\":\"100px\"}\n}\nconst _hoisted_54 = {\n class: \"f-l\",\n style: {\"width\":\"310px\"}\n}\nconst _hoisted_55 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"m-r-10 f-l m-t-5\" }, \"Budget Period:\", -1))\nconst _hoisted_56 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"f-r table-small\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", {\n id: \"ssHostSmall\",\n class: \"table-small-spread\"\n })\n], -1))\nconst _hoisted_57 = { class: \"budget-table m-t-16 flex-w-auto m-b-10\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_breadcrumb = _resolveComponent(\"breadcrumb\")!\n const _component_Navbar = _resolveComponent(\"Navbar\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_tooltip = _resolveComponent(\"a-tooltip\")!\n const _component_a_divider = _resolveComponent(\"a-divider\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_input = _resolveComponent(\"a-input\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_spin = _resolveComponent(\"a-spin\")!\n const _component_BudgetInputSet = _resolveComponent(\"BudgetInputSet\")!\n const _component_main_wrapper = _resolveComponent(\"main-wrapper\")!\n\n return (_openBlock(), _createBlock(_component_a_spin, {\n spinning: _ctx.spinFlagSave,\n wrapperClassName: \"flex-w-auto\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_main_wrapper, { className: \"p-l-r-10 overflow-h\" }, {\n header: _withCtx(() => [\n _createVNode(_component_breadcrumb, { dataSource: [{ name: 'Budget' }] }),\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_Navbar, { navArr: _ctx.navArr }, null, 8, [\"navArr\"])\n ]),\n _createVNode(_component_a_button, {\n class: \"regenerate-btn m-l-10\",\n onClick: _ctx.handleRegenerate\n }, {\n default: _withCtx(() => [\n _hoisted_2\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"ul\", {\n class: \"offtypes d-f\",\n style: _normalizeStyle({ width: _ctx.offerType.length * 200 + 4 + 'px' })\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.offerType, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\"offtype-item cursor-p\", [_ctx.offerTypeValue === item.offerTypeId ? 'active' : '']]),\n key: item.offerTypeId,\n onClick: ($event: any) => (_ctx.handlerToggleOfferType(item.offerTypeId))\n }, _toDisplayString(item.offerTypeName), 11, _hoisted_3))\n }), 128))\n ], 4),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"ul\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.siOfferData, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\"sioffer-item cursor-p\", [_ctx.siOfferValue === item.siOfferId ? 'active' : '']]),\n key: item.siOfferId,\n onClick: ($event: any) => (_ctx.handlerToggleSiOffer(item.siOfferId, item.make, item.byMonthStatus, item.kufriVersion, item))\n }, _toDisplayString(item.viewTag), 11, _hoisted_7))\n }), 128))\n ]),\n _createElementVNode(\"ul\", _hoisted_8, [\n _createVNode(_component_a_tooltip, { placement: \"top\" }, {\n title: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.programInfoVo.programName), 1)\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.programInfoVo.programCode), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_a_divider, {\n type: \"vertical\",\n class: \"a-divider\"\n }),\n _createVNode(_component_a_tooltip, { placement: \"top\" }, {\n title: _withCtx(() => [\n _hoisted_9\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.programInfoVo.bu), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_a_divider, {\n type: \"vertical\",\n class: \"a-divider\"\n }),\n _createVNode(_component_a_tooltip, { placement: \"top\" }, {\n title: _withCtx(() => [\n _createElementVNode(\"span\", {\n class: \"kufri-version-tip\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.updateKufriVersion && _ctx.updateKufriVersion(...args)))\n }, _toDisplayString(!_ctx.latestVersion ? 'Kufri Version 已更新' : 'Kufri Version'), 1)\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"version\", { active: _ctx.latestVersion === false }])\n }, [\n _createTextVNode(_toDisplayString(_ctx.kufriVersion) + \" \", 1),\n _createElementVNode(\"p\", {\n class: _normalizeClass({ active: _ctx.latestVersion === false })\n }, \"!\", 2)\n ], 2)\n ]),\n _: 1\n }),\n _createVNode(_component_a_divider, {\n type: \"vertical\",\n class: \"a-divider\"\n }),\n _createVNode(_component_a_tooltip, { placement: \"top\" }, {\n title: _withCtx(() => [\n _hoisted_10\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.programInfoVo.status), 1)\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n (\n _ctx.siOfferData.find((item) => item.siOfferId === _ctx.siOfferValue) &&\n _ctx.siOfferData.find((item) => item.siOfferId === _ctx.siOfferValue).fleetCustomerList &&\n _ctx.isOverview !== 'Overview'\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _hoisted_13,\n _createVNode(_component_a_select, {\n value: _ctx.customerValue,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.customerValue) = $event)),\n class: \"input-select\",\n onChange: _ctx.changeCustomer\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.fleetCustomerList, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.budgetId,\n key: item.budgetId,\n title: item.customer\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.customer), 1)\n ]),\n _: 2\n }, 1032, [\"value\", \"title\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.activeMakeValue === 'PBP')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createElementVNode(\"div\", _hoisted_14, [\n _hoisted_15,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.pbpKufri)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _hoisted_17,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.pbpBudget)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _hoisted_18,\n _hoisted_19,\n _hoisted_20\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.activeMakeValue === 'CBU')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _createElementVNode(\"div\", _hoisted_21, [\n _hoisted_22,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.cbuKufri)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_23, [\n _hoisted_24,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.cbuBudget)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _hoisted_25,\n _hoisted_26,\n _hoisted_27\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.activeMakeValue === 'VAN')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 3 }, [\n _createElementVNode(\"div\", _hoisted_28, [\n _hoisted_29,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.vanKufri)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_30, [\n _hoisted_31,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.vanBudget)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _hoisted_32,\n _hoisted_33,\n _hoisted_34,\n _hoisted_35\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.activeMakeValue === 'DENZA')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 4 }, [\n _createElementVNode(\"div\", _hoisted_36, [\n _hoisted_37,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.denzaKufri)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_38, [\n _hoisted_39,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.denzaBudget)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _hoisted_40,\n _hoisted_41,\n _hoisted_42,\n _hoisted_43\n ], 64))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_44, [\n (_ctx.siOfferValue !== undefined && _ctx.programInfoVo.status === 'Saved')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_45, [\n (\n _ctx.isVisibleSpecialIndex(_ctx.visibleOfferList, _ctx.offerTypeValue, _ctx.offerType) < 0 && _ctx.siOfferValue !== undefined\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_46, [\n _createVNode(_component_a_checkbox, {\n onChange: _ctx.handlerCheckboxChange,\n checked: _ctx.active,\n \"onUpdate:checked\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.active) = $event))\n }, {\n default: _withCtx(() => [\n _hoisted_47\n ]),\n _: 1\n }, 8, [\"onChange\", \"checked\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_tooltip, {\n placement: \"top\",\n class: \"m-l-12\"\n }, {\n title: _withCtx(() => [\n _hoisted_48\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"img\", {\n style: {\"width\":\"24px\"},\n class: \"cursor-p\",\n src: _imports_0,\n alt: \"\",\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.handleRefresh && _ctx.handleRefresh(...args)))\n })\n ]),\n _: 1\n }),\n _createVNode(_component_a_tooltip, {\n placement: \"top\",\n class: \"m-l-12\"\n }, {\n title: _withCtx(() => [\n _hoisted_49\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"img\", {\n style: {\"width\":\"22px\"},\n class: \"cursor-p\",\n src: _imports_1,\n alt: \"\",\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.handlerSaveClick && _ctx.handlerSaveClick(...args)))\n })\n ]),\n _: 1\n }),\n (\n _ctx.isVisibleSpecialIndex(_ctx.visibleOfferList, _ctx.offerTypeValue, _ctx.offerType) < 0 && _ctx.siOfferValue !== undefined\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_50, [\n _createVNode(_component_a_button, {\n class: \"m-l-16\",\n onClick: _ctx.handleSetVolumeBaseClick\n }, {\n default: _withCtx(() => [\n _hoisted_51\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n class: \"m-l-16\",\n type: \"primary\",\n onClick: _ctx.handlerCopyKufriClick\n }, {\n default: _withCtx(() => [\n _hoisted_52\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.isOverview === 'Overview')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_53, [\n _createElementVNode(\"div\", _hoisted_54, [\n _hoisted_55,\n _createVNode(_component_a_input, {\n value: _ctx.budgetPeriod,\n disabled: \"\",\n class: \"width-200 f-l\"\n }, null, 8, [\"value\"])\n ]),\n _hoisted_56\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_spin, {\n spinning: _ctx.spinFlag,\n wrapperClassName: \"flex-w-auto\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_57, [\n _createElementVNode(\"div\", {\n id: \"ssHost\",\n style: _normalizeStyle([{\"text-align\":\"left\"}, { height: 800 + 'px', width: 100 + '%' }])\n })\n ])\n ]),\n _: 1\n }, 8, [\"spinning\"])\n ])\n ]),\n _createVNode(_component_BudgetInputSet, {\n visible: _ctx.visible,\n \"onUpdate:visible\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.visible) = $event)),\n onOk: _ctx.handlerOk\n }, null, 8, [\"visible\", \"onOk\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"spinning\"]))\n}","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4b3c3145\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"flex-div input-set\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"input-set-span\" }, \"Volume Base:\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n\n return (_openBlock(), _createBlock(_component_a_modal, {\n visible: _ctx.visible,\n title: \"Set Volume Base\",\n onOk: _ctx.handleOk,\n onCancel: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('update:visible', false))),\n centered: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"p\", _hoisted_1, [\n _hoisted_2,\n _createVNode(_component_a_select, {\n value: _ctx.inputVolumeBase,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.inputVolumeBase) = $event)),\n class: \"input-select\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.volumeBase, (item, index) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.value,\n key: index\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.value), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onOk\"]))\n}","import { ManualProps, BudgetTableTOPProps, BudgetTableHeaderProps } from './types'\n\nexport const manualAutoArr: ManualProps[] = [\n {\n id: '1',\n title: 'Manual',\n },\n {\n id: '2',\n title: 'Auto'\n }\n]\nexport const manualArr: ManualProps[] = [\n {\n id: '11',\n title: 'Manual',\n },\n {\n id: '22',\n title: 'Auto'\n }\n]\n\nexport const offerType: ManualProps[] = [\n {\n id: '1',\n title: 'SSSC'\n },\n {\n id: '2',\n title: 'SSST'\n }\n]\nexport const tradeData: ManualProps[] = [\n {\n id: '1',\n title: 'Trade in & 1A+1B'\n },\n {\n id: '2',\n title: 'Trade in & 2A+2B'\n },\n {\n id: '3',\n title: 'Repurchase & 1A+1B'\n }\n]\nexport const LevelData: ManualProps[] = [\n {\n id: '1',\n title: 'Summary Level'\n },\n {\n id: '2',\n title: 'Detail Level'\n }\n]\n// budget input 表格的数据\nexport const budgetTableDataTop: BudgetTableTOPProps[][] = [\n [\n {value: '', formula: '', trigger: [], editable: false, id: '100', type: 'text'}, // 0\n {value: 'E300LSedan (M264)', formula: '', trigger: [], editable: false, id: '101', type: 'text'}, // 1\n {value: 8000, formula: '', trigger: [], editable: false, id: '1', type: 'numeric'}, // 2\n {value: 0.2, formula: '=E1 / C1', trigger: [2, 4], editable: true, id: '2', type: 'percent'}, // 3\n {value: 0, formula: '=C1 * D1', trigger: [2, 3], editable: true, id: '3', type: 'numeric'}, // 4\n {value: 0, formula: '=C1 * D1 + E1', trigger: [2, 3, 4], editable: true, id: '4', type: 'numeric'}, // 5\n {value: 0.2, formula: '', trigger: [], editable: false, id: '103', type: 'percent'}, // 7\n {value: 1000, formula: '', trigger: [], editable: false, id: '104', type: 'numeric'}, // 8\n {value: 0.1, formula: '', trigger: [], editable: false, id: '105', type: 'percent'}, // 9\n {value: 0.1, formula: '', trigger: [], editable: false, id: '106', type: 'percent'}, // 10\n {value: 2000, formula: '', trigger: [], editable: false, id: '107', type: 'numeric'}, // 11\n {value: 0.1, formula: '', trigger: [], editable: false, id: '108', type: 'percent'}, // 12\n ],\n [\n {value: '', formula: '', trigger: [], editable: false, id: '100', type: 'text'}, // 0\n {value: 'E300LSedan luxury (M264)', formula: '', trigger: [], editable: false, id: '101', type: 'text'}, // 1\n {value: 8971, formula: '', trigger: [], editable: false, id: '1010', type: 'numeric'}, // 2\n {value: 0, formula: '=E2 / E2', trigger: [2, 4], editable: true, id: '1011', type: 'percent'}, // 3\n {value: 0, formula: '=C2 * D2', trigger: [2, 3], editable: true, id: '10113', type: 'numeric'}, // 4\n {value: 0, formula: '=C2 * D2 + E2', trigger: [2, 3, 4], editable: true, id: '10114', type: 'numeric'}, // 5\n {value: 0.2, formula: '', trigger: [], editable: false, id: '1012', type: 'percent'}, // 7\n {value: 1000, formula: '', trigger: [], editable: false, id: '1013', type: 'numeric'}, // 8\n {value: 0.1, formula: '', trigger: [], editable: false, id: '1014', type: 'percent'}, // 9\n {value: 0.1, formula: '', trigger: [], editable: false, id: '1015', type: 'percent'}, // 10\n {value: 2000, formula: '', trigger: [], editable: false, id: '1016', type: 'numeric'}, // 11\n {value: 0.1, formula: '', trigger: [], editable: false, id: '1017', type: 'percent'}, // 12\n ],\n [\n {value: '', formula: '', trigger: [], editable: false, id: '100', type: 'text'}, // 0\n {value: 'E300LSedan luxury (M264)', formula: '', trigger: [], editable: false, id: '101', type: 'text'}, // 1\n {value: 1000, formula: '', trigger: [], editable: false, id: '1010', type: 'numeric'}, // 2\n {value: 0, formula: '=C3 / E3', trigger: [2, 4], editable: true, id: '10112', type: 'percent'}, // 3\n {value: 0, formula: '=C3 * D3', trigger: [2, 3], editable: true, id: '10113', type: 'numeric'}, // 4\n {value: 0, formula: '=C3 * D3 + E3', trigger: [2, 3, 4], editable: true, id: '10114', type: 'numeric'}, // 5\n {value: 0.2, formula: '', trigger: [], editable: false, id: '1012', type: 'percent'}, // 7\n {value: 1000, formula: '', trigger: [], editable: false, id: '1013', type: 'numeric'}, // 8\n {value: 0.1, formula: '', trigger: [], editable: false, id: '1014', type: 'percent'}, // 9\n {value: 0.1, formula: '', trigger: [], editable: false, id: '1015', type: 'percent'}, // 10\n {value: 2000, formula: '', trigger: [], editable: false, id: '1016', type: 'numeric'}, // 11\n {value: 0.1, formula: '', trigger: [], editable: false, id: '1017', type: 'percent'}, // 12\n ],\n [\n {value: '', formula: '', trigger: [], editable: false, id: '200', type: 'text'}, // 0\n {value: '', formula: '', trigger: [], editable: false, id: '201', type: 'text'}, // 1\n {value: '', formula: 'SUM(C1:C3)', trigger: [2], editable: false, id: '2010', type: 'numeric'}, // 2\n {value: 0, formula: 'SUM(D1:D3)', trigger: [3], editable: true, id: '20112', type: 'numeric'}, // 3\n {value: 0, formula: '', trigger: [2, 3], editable: true, id: '20113', type: 'numeric'}, // 4\n {value: 0, formula: '', trigger: [2, 3, 4], editable: true, id: '20114', type: 'numeric'}, // 5\n {value: 0, formula: '', trigger: [], editable: false, id: '2012', type: 'percent'}, // 7\n {value: 0, formula: '', trigger: [], editable: false, id: '2013', type: 'numeric'}, // 8\n {value: 0, formula: '', trigger: [], editable: false, id: '2014', type: 'percent'}, // 9\n {value: 0, formula: '', trigger: [], editable: false, id: '2015', type: 'percent'}, // 10\n {value: 0, formula: '', trigger: [], editable: false, id: '2016', type: 'numeric'}, // 11\n {value: 0, formula: '', trigger: [], editable: false, id: '2017', type: 'percent'}, // 12\n ]\n]\nexport const budgetTableDataTop1: BudgetTableTOPProps[][] = [\n [\n {value: '', formula: '', trigger: [], editable: false, id: '100', type: 'text'}, // 0\n {value: 'E300LSedan (M264)', formula: '', trigger: [], editable: false, id: '101', type: 'text'}, // 1\n {value: 9000, formula: '', trigger: [], editable: false, id: '1', type: 'numeric'}, // 2\n {value: 0.2, formula: '=E1 / C1', trigger: [2, 4], editable: true, id: '2', type: 'percent'}, // 3\n {value: 0, formula: '=C1 * D1', trigger: [2, 3], editable: true, id: '3', type: 'numeric'}, // 4\n {value: 0, formula: '=C1 * D1 + E1', trigger: [2, 3, 4], editable: true, id: '4', type: 'numeric'}, // 5\n {value: 0.2, formula: '', trigger: [], editable: false, id: '103', type: 'percent'}, // 7\n {value: 8000, formula: '', trigger: [], editable: false, id: '104', type: 'numeric'}, // 8\n {value: 0.1, formula: '', trigger: [], editable: false, id: '105', type: 'percent'}, // 9\n {value: 0.1, formula: '', trigger: [], editable: false, id: '106', type: 'percent'}, // 10\n {value: 2000, formula: '', trigger: [], editable: false, id: '107', type: 'numeric'}, // 11\n {value: 0.1, formula: '', trigger: [], editable: false, id: '108', type: 'percent'}, // 12\n ],\n [\n {value: '', formula: '', trigger: [], editable: false, id: '100', type: 'text'}, // 0\n {value: 'E300LSedan luxury (M264)', formula: '', trigger: [], editable: false, id: '101', type: 'text'}, // 1\n {value: 8971, formula: '', trigger: [], editable: false, id: '1010', type: 'numeric'}, // 2\n {value: 0, formula: '=E2 / E2', trigger: [2, 4], editable: true, id: '1011', type: 'percent'}, // 3\n {value: 0, formula: '=C2 * D2', trigger: [2, 3], editable: true, id: '10113', type: 'numeric'}, // 4\n {value: 0, formula: '=C2 * D2 + E2', trigger: [2, 3, 4], editable: true, id: '10114', type: 'numeric'}, // 5\n {value: 0.2, formula: '', trigger: [], editable: false, id: '1012', type: 'percent'}, // 7\n {value: 1000, formula: '', trigger: [], editable: false, id: '1013', type: 'numeric'}, // 8\n {value: 0.1, formula: '', trigger: [], editable: false, id: '1014', type: 'percent'}, // 9\n {value: 0.1, formula: '', trigger: [], editable: false, id: '1015', type: 'percent'}, // 10\n {value: 2000, formula: '', trigger: [], editable: false, id: '1016', type: 'numeric'}, // 11\n {value: 0.1, formula: '', trigger: [], editable: false, id: '1017', type: 'percent'}, // 12\n ],\n [\n {value: '', formula: '', trigger: [], editable: false, id: '100', type: 'text'}, // 0\n {value: 'E300LSedan luxury (M264)', formula: '', trigger: [], editable: false, id: '101', type: 'text'}, // 1\n {value: 1000, formula: '', trigger: [], editable: false, id: '1010', type: 'numeric'}, // 2\n {value: 0, formula: '=C3 / E3', trigger: [2, 4], editable: true, id: '10112', type: 'percent'}, // 3\n {value: 0, formula: '=C3 * D3', trigger: [2, 3], editable: true, id: '10113', type: 'numeric'}, // 4\n {value: 0, formula: '=C3 * D3 + E3', trigger: [2, 3, 4], editable: true, id: '10114', type: 'numeric'}, // 5\n {value: 0.2, formula: '', trigger: [], editable: false, id: '1012', type: 'percent'}, // 7\n {value: 1000, formula: '', trigger: [], editable: false, id: '1013', type: 'numeric'}, // 8\n {value: 0.1, formula: '', trigger: [], editable: false, id: '1014', type: 'percent'}, // 9\n {value: 0.1, formula: '', trigger: [], editable: false, id: '1015', type: 'percent'}, // 10\n {value: 2000, formula: '', trigger: [], editable: false, id: '1016', type: 'numeric'}, // 11\n {value: 0.1, formula: '', trigger: [], editable: false, id: '1017', type: 'percent'}, // 12\n ],\n [\n {value: '', formula: '', trigger: [], editable: false, id: '200', type: 'text'}, // 0\n {value: '', formula: '', trigger: [], editable: false, id: '201', type: 'text'}, // 1\n {value: '', formula: 'SUM(C1:C3)', trigger: [2], editable: false, id: '2010', type: 'numeric'}, // 2\n {value: 0, formula: 'SUM(D1:D3)', trigger: [3], editable: true, id: '20112', type: 'numeric'}, // 3\n {value: 0, formula: '', trigger: [2, 3], editable: true, id: '20113', type: 'numeric'}, // 4\n {value: 0, formula: '', trigger: [2, 3, 4], editable: true, id: '20114', type: 'numeric'}, // 5\n {value: 0, formula: '', trigger: [], editable: false, id: '2012', type: 'percent'}, // 7\n {value: 0, formula: '', trigger: [], editable: false, id: '2013', type: 'numeric'}, // 8\n {value: 0, formula: '', trigger: [], editable: false, id: '2014', type: 'percent'}, // 9\n {value: 0, formula: '', trigger: [], editable: false, id: '2015', type: 'percent'}, // 10\n {value: 0, formula: '', trigger: [], editable: false, id: '2016', type: 'numeric'}, // 11\n {value: 0, formula: '', trigger: [], editable: false, id: '2017', type: 'percent'}, // 12\n ]\n]\nexport const tableHeader: BudgetTableHeaderProps[] = [\n {id: '1', name: 'Period', type: 'text'},\n {id: '2', name: 'Vehicle', type: 'text'},\n {id: '3', name: 'RT Pipeline', type: 'numeric'},\n {id: '4', name: '% Penetration', type: 'percent'},\n {id: '5', name: 'Estimated Volume', type: 'numeric'},\n {id: '6', name: 'Average Cost /unit', type: 'numeric'},\n {id: '7', name: '% MSRP w/o VAT', type: 'percent'},\n {id: '8', name: 'MSRP', type: 'numeric'},\n {id: '9', name: '% TAP Impact', type: 'percent'},\n {id: '10', name: 'AVG.SI %', type: 'percent'},\n {id: '11', name: 'Budget Estimation', type: 'numeric'},\n {id: '12', name: 'Avg. SI', type: 'percent'}\n ]\nexport const inputsetPeriod: ManualProps[] = [\n {\n id: '1',\n title: 'Period'\n },\n {\n id: '2',\n title: 'Month'\n }\n]\nexport const inputsetVehicleView: ManualProps[] = [\n {\n id: '1',\n title: 'Type Class'\n },\n {\n id: '2',\n title: 'Model'\n }\n]\nexport const inputsetVolumeBase: ManualProps[] = [\n {\n id: '1',\n title: 'WS'\n },\n {\n id: '2',\n title: 'RT'\n }\n]\nexport const inputsetCostBase: ManualProps[] = [\n {\n id: '1',\n title: 'Cost/unit'\n },\n {\n id: '2',\n title: '%MSRP w/o VAT'\n }\n]\n// budget input 表格的数据\n\nexport const salesList = [\n {\n salesnm: 'Normal Sales',\n salesid: 1\n },\n {\n salesnm: 'Fleet Sales',\n salesid: 2\n },\n]\nexport const incaentiveList = [\n {\n incentiveCategoryName: 'Customer Incentive',\n incentiveCategoryId: \"aa157348-5ceb-48b0-b410-5d3a11e23b1b\"\n // incentiveCategoryId: \"0a671404-2730-4b33-9532-cd722928d81e\"\n },\n {\n incentiveCategoryName: 'Dealer Incentive',\n incentiveCategoryId: \"2b788f1f-cf59-4a54-b7fa-25b5afc6a49c\"\n // incentiveCategoryId: \"67ff8bd2-5be2-4a80-9e12-2a3c92ca769f\"\n }\n]\n\nexport const othersData = [\n {\n header: 'BMBS Initiated Fleet',\n key: '1',\n fieldOptions: [\n {\n value: 'RT Pipeline',\n icon: 'icon-edit2',\n },\n {\n value: 'Fleet Volume',\n icon: 'icon-shezhi',\n },\n {\n value: '% Fleet Share',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: '% Fixed Margin',\n icon: 'icon-edit2',\n },\n {\n value: '% Customer Incentive (X%)',\n icon: 'icon-edit2',\n },\n {\n value: '% Standard F/S Discount',\n icon: 'icon-shezhi',\n },\n {\n value: '% Strategic Fleet Discount',\n icon: 'icon-shezhi',\n },\n {\n value: '% F/S Incentive_original',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: '% Adjustment',\n icon: 'icon-edit2',\n },\n {\n value: '% F/S Incentive_revised',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: '% Final F/S Discount',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: 'F/S Incentive Amount w/o VAT',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: '% Additional Discount to dealer',\n icon: 'icon-shezhi',\n },\n {\n value: 'Additional Discount to dealer w/o VAT',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: 'Budget Estimation',\n icon: 'icon-GeneratePayoutRound1',\n },\n ],\n logicOptions: [\n {\n display: '% Fleet Share :',\n formula: 'Fleet Volume ÷ RT Pipeline'\n },\n {\n display: '% F/S Incentive_original :',\n formula: '% Fixed Margin + % Customer Incentive + % Standard F/S Discount + % Strategic Fleet Discount'\n },\n {\n display: '% F/S Incentive_revised :',\n formula: '% F/S Incentive_original + % Adjustment'\n },\n {\n display: '% Final F/S Discount :',\n formula: '% F/S Incentive_revised - % Fixed Margin'\n },\n {\n display: 'F/S Incentive Amount w/o VAT :',\n formula: '% Final F/S Discount × MSRP w/o VAT'\n },\n {\n display: 'Additional Discount to dealer w/o VAT :',\n formula: '% Additional Discount to dealer × MSRP w/o VAT'\n },\n {\n display: 'Budget Estimation :',\n formula: 'Fleet Volume × (F/S Incentive Amount w/o VAT + Additional Discount to dealer w/o VAT)'\n },\n {\n display: 'Avg. SI :',\n formula: 'F/S Incentive Amount w/o VAT + Additional Discount to dealer w/o VAT'\n },\n {\n display: 'Avg. SI% :',\n formula: 'Avg. SI × MSRP w/o VAT'\n },\n\n ]\n },\n {\n header: 'BMBS Initiated Fleet - Special',\n key: '2',\n fieldOptions: [\n {\n value: 'RT Pipeline',\n icon: 'icon-edit2',\n },\n {\n value: 'Fleet Volume',\n icon: 'icon-shezhi',\n },\n {\n value: '% Fleet Share',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: '% Fixed Margin',\n icon: 'icon-edit2',\n },\n {\n value: '% Customer Incentive (X%)',\n icon: 'icon-edit2',\n },\n {\n value: '% Standard F/S Discount',\n icon: 'icon-shezhi',\n },\n {\n value: '% Strategic Fleet Discount',\n icon: 'icon-shezhi',\n },\n {\n value: '% F/S Incentive_original',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: '% Adjustment',\n icon: 'icon-edit2',\n },\n {\n value: '% F/S Incentive_revised',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: '% Final F/S Discount',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: 'F/S Incentive Amount w/o VAT',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: '% Additional Discount to dealer',\n icon: 'icon-shezhi',\n },\n {\n value: 'Additional Discount to dealer w/o VAT',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: 'Budget Estimation',\n icon: 'icon-GeneratePayoutRound1',\n },\n ],\n logicOptions: [\n {\n display: '% Fleet Share :',\n formula: 'Fleet Volume ÷ RT Pipeline'\n },\n {\n display: '% F/S Incentive_original :',\n formula: '% Fixed Margin + % Customer Incentive + % Standard F/S Discount + % Strategic Fleet Discount'\n },\n {\n display: '% F/S Incentive_revised :',\n formula: '% F/S Incentive_original + % Adjustment'\n },\n {\n display: '% Final F/S Discount :',\n formula: '% F/S Incentive_revised - % Fixed Margin'\n },\n {\n display: 'F/S Incentive Amount w/o VAT :',\n formula: '% Final F/S Discount × MSRP w/o VAT'\n },\n {\n display: 'Additional Discount to dealer w/o VAT :',\n formula: '% Additional Discount to dealer × MSRP w/o VAT'\n },\n {\n display: 'Budget Estimation :',\n formula: 'Fleet Volume × (F/S Incentive Amount w/o VAT + Additional Discount to dealer w/o VAT)'\n },\n {\n display: 'Avg. SI :',\n formula: 'F/S Incentive Amount w/o VAT + Additional Discount to dealer w/o VAT'\n },\n {\n display: 'Avg. SI% :',\n formula: 'Avg. SI × MSRP w/o VAT'\n },\n\n ]\n },\n {\n header: 'BMBS Overseas Returnee',\n key: '3',\n fieldOptions: [\n {\n value: 'RT Pipeline',\n icon: 'icon-edit2',\n },\n {\n value: 'Fleet Volume',\n icon: 'icon-shezhi',\n },\n {\n value: '% Fleet Share',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: '% Fixed Margin',\n icon: 'icon-edit2',\n },\n {\n value: '% Standard F/S Discount',\n icon: 'icon-edit2',\n },\n {\n value: '% F/S Incentive_revised',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: 'F/S Incentive Amount w/o VAT',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: '% Additional Discount to dealer',\n icon: 'icon-shezhi',\n },\n {\n value: 'Additional Discount to dealer w/o VAT',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: '% Agency Commission',\n icon: 'icon-shezhi',\n },\n {\n value: 'Agency Commission',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: 'Budget Estimation',\n icon: 'icon-GeneratePayoutRound1',\n },\n ],\n logicOptions: [\n {\n display: '% Fleet Share :',\n formula: 'Fleet Volume ÷ RT Pipeline'\n },\n {\n display: '% F/S Incentive_revised :',\n formula: '% Standard F/S Discount - % Fixed Margin (if < 0, equal 0)'\n },\n {\n display: 'F/S Incentive Amount w/o VAT :',\n formula: '% F/S Incentive_revised × MSRP w/o VAT '\n },\n {\n display: 'Additional Discount to dealer w/o VAT :',\n formula: '% Additional discount to dealer × MSRP w/o VAT'\n },\n {\n display: 'Agency Commission :',\n formula: '% Agency Commission × MSRP'\n },\n {\n display: 'Budget Estimation :',\n formula: 'Fleet Volume × (F/S Incentive Amount w/o VAT + Additional Discount to dealer w/o VAT + Agency commision)'\n },\n {\n display: 'Avg. SI :',\n formula: 'F/S Incentive Amount w/o VAT + Additional Discount to dealer w/o VAT + Agency commission'\n },\n {\n display: 'Avg. SI% :',\n formula: 'Avg. SI × MSRP w/o VAT'\n },\n\n ]\n },\n {\n header: 'Dealer Initiated Fleet',\n key: '4',\n fieldOptions: [\n {\n value: 'RT Pipeline',\n icon: 'icon-edit2',\n },\n {\n value: 'Fleet Volume',\n icon: 'icon-shezhi',\n },\n {\n value: '% Fleet Share',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: '% Fleet Discount',\n icon: 'icon-shezhi',\n },\n {\n value: 'Discount Budget w/o VAT',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: '% Avg. Bonus Ratio',\n icon: 'icon-shezhi',\n },\n {\n value: 'Bonus Budget w/o VAT',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: 'Budget Estimation',\n icon: 'icon-GeneratePayoutRound1',\n },\n ],\n logicOptions: [\n {\n display: '% Fleet Share :',\n formula: 'Fleet Volume ÷ RT Pipeline'\n },\n {\n display: 'Discount Budget w/o VAT :',\n formula: 'Fleet Volume × % Fleet Discount × MSRP w/o VAT'\n },\n {\n display: 'Bonus Budget w/o VAT :',\n formula: 'Fleet Volume × % Avg. Bonus Ratio × MSRP w/o VAT'\n },\n {\n display: 'Budget Estimation :',\n formula: 'Discount Budget w/o VAT + Bonus Budget w/o VAT'\n },\n {\n display: 'Avg. SI :',\n formula: '(% Fleet Discount + % Avg. Bonus Ratio) × MSRP w/o VAT'\n },\n {\n display: 'Avg. SI% :',\n formula: '% Fleet Discount + % Avg. Bonus Ratio'\n },\n ]\n },\n {\n header: 'Comapany Car',\n key: '5',\n fieldOptions: [\n {\n value: 'RT Pipeline',\n icon: 'icon-edit2',\n },\n {\n value: 'PT Car',\n icon: 'icon-shezhi',\n },\n {\n value: 'Volume Car',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: 'Company Car Volume',\n icon: 'icon-shezhi',\n },\n {\n value: '% PT Additional_PY',\n icon: 'icon-edit2',\n },\n {\n value: '% Normal_PY',\n icon: 'icon-edit2',\n },\n {\n value: '% Total_PY',\n icon: 'icon-edit2',\n },\n {\n value: '% PT Additional',\n icon: 'icon-shezhi',\n },\n {\n value: '% Normal Discount',\n icon: 'icon-shezhi',\n },\n {\n value: '% Total Discount',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: 'MSRP',\n icon: 'icon-edit2',\n },\n {\n value: '% Fixed Margin',\n icon: 'icon-edit2',\n },\n {\n value: 'PT Budget',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: 'Volume Budget',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: 'Budget Estimation',\n icon: 'icon-GeneratePayoutRound1',\n },\n ],\n logicOptions: [\n {\n display: 'Volume Car :',\n formula: 'Company Car Volume - PT Car'\n },\n {\n display: '% Total Discount :',\n formula: '% PT Additional + % Normal Discount'\n },\n {\n display: 'PT Budget :',\n formula: '% PT Additional × PT Car * MSRP / (1+VAT%)'\n },\n {\n display: 'Volume Budget :',\n formula: '(% Normal Discount - % Fixed Margin) × Volume Car × MSRP / (1+VAT%)'\n },\n {\n display: 'Budget Estimation :',\n formula: 'PT Budget + Budget Estimation'\n },\n {\n display: 'Avg. SI% :',\n formula: 'Budget Estimation / RT LLP'\n },\n {\n display: 'AVG.SI % :',\n formula: 'Avg. SI /MSRP × (1+VAT%)'\n },\n ]\n },\n {\n header: 'PMT',\n key: '6',\n fieldOptions: [\n {\n value: 'WS Pipeline',\n icon: 'icon-edit2',\n },\n {\n value: '% Penetration',\n icon: 'icon-shezhi',\n },\n {\n value: 'Estimated Volume',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: 'MSRP',\n icon: 'icon-edit2',\n },\n {\n value: 'Dealer Purchase Price w VAT',\n icon: 'icon-edit2',\n },\n {\n value: '% Interest Rate',\n icon: 'icon-shezhi',\n },\n {\n value: 'Extension Days',\n icon: 'icon-shezhi',\n },\n {\n value: 'Average Cost / unit',\n icon: 'icon-shezhi',\n },\n {\n value: '% MSRP w/o VAT',\n icon: 'icon-GeneratePayoutRound1',\n },\n {\n value: '% TAP Impact',\n icon: 'icon-shezhi',\n },\n {\n value: 'Budget Estimation',\n icon: 'icon-GeneratePayoutRound1',\n },\n ],\n logicOptions: [\n {\n display: 'Average Cost / unit :',\n formula: 'Dealer Purchase Price w VAT × % Interest Rate × Extension Days/360'\n },\n {\n display: 'Estimated Volume :',\n formula: 'WS Pipeline × % Penetration'\n },\n {\n display: 'Total Budget :',\n formula: 'Estimated Volume × Average Cost / unit'\n },\n {\n display: 'Avg. SI% :',\n formula: 'Average Cost / unit × % Penetration'\n },\n {\n display: 'AVG.SI % :',\n formula: 'Avg. SI ÷ MSRP w/o VAT'\n },\n ]\n }\n]\n","\nimport { defineComponent, ref, h, PropType } from \"vue\";\nimport { Modal, message } from \"ant-design-vue\";\nimport { VolumeBase } from \"./types\";\nimport { inputsetPeriod, inputsetVehicleView, inputsetCostBase } from \"../data\";\n\nconst volumeBase: VolumeBase[] = [{ value: \"WS\" }, { value: \"RT\" }];\n\nexport default defineComponent({\n props: {\n visible: {\n default: false,\n type: Boolean as PropType,\n },\n },\n emits: [\"update:visible\", \"ok\"],\n setup(props, context) {\n const inputPeriod = ref(\"\");\n const inputVehicleView = ref(\"\");\n const inputVolumeBase = ref(\"\");\n const inputCostBase = ref(\"\");\n // 点确定时\n const handleOk = () => {\n if (inputVolumeBase.value == \"\") {\n message.error(\"请选择Volume Base\");\n return;\n }\n Modal.confirm({\n class: \"my-confirm\",\n content: h(\"div\", {}, [\n h(\n \"i\",\n {\n class: \"font_family icon-old-Warning\",\n style: \"font-size: 18px;\",\n },\n \"\"\n ),\n h(\n \"h1\",\n { style: \"font-size: 18px;\" },\n \"Change Input Set will clear existing data!Confirm to change?\"\n ),\n ]),\n onOk() {\n return new Promise((resolve, reject) => {\n context.emit(\"ok\", inputVolumeBase.value);\n setTimeout(() => {\n context.emit(\"update:visible\", false);\n }, 500);\n resolve();\n }).catch((e) => console.log(e));\n },\n onCancel() {\n console.log(\"cancel\");\n },\n });\n };\n return {\n handleOk,\n\n inputPeriod,\n inputVehicleView,\n inputVolumeBase,\n inputCostBase,\n\n inputsetPeriod,\n inputsetVehicleView,\n volumeBase,\n inputsetCostBase,\n };\n },\n});\n","import { render } from \"./BudgetInputSet.vue?vue&type=template&id=4b3c3145&scoped=true&ts=true\"\nimport script from \"./BudgetInputSet.vue?vue&type=script&lang=ts\"\nexport * from \"./BudgetInputSet.vue?vue&type=script&lang=ts\"\n\nimport \"./BudgetInputSet.vue?vue&type=style&index=0&id=4b3c3145&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-4b3c3145\"]])\n\nexport default __exports__","import {\n BudgetTableDataCell,\n BudgetTableHeaderCell,\n BudgetTableProps,\n SmallTableProps,\n OfferType\n} from \"@/views/Budget/BudgetInput/types\";\nimport GC from \"@grapecity/spread-sheets\";\nimport { message } from \"ant-design-vue\";\nimport { toNumber } from \"@/utils/approve\";\n\n\ntype BudgetProps = BudgetTableProps;\n\ninterface HitInfo {\n x: number;\n y: number;\n row: any;\n col: any;\n cellStyle: any;\n cellRect: any;\n sheetArea: any;\n sheet: any;\n}\n\n//tip 提示\nexport class TipCellType extends GC.Spread.Sheets.CellTypes.ColumnHeader {\n header: BudgetTableHeaderCell[];\n tipText: string;\n toolTipElement?: HTMLDivElement;\n\n constructor(header: BudgetTableHeaderCell[], tipText: string, toolTipElement: any = null) {\n super();\n this.header = header;\n this.tipText = tipText;\n toolTipElement = null;\n }\n\n\n getHitInfo(x: number, y: number, cellStyle: any, cellRect: any, context: any): HitInfo {\n return {\n x: x,\n y: y,\n row: context.row,\n col: context.col,\n cellStyle: cellStyle,\n cellRect: cellRect,\n sheetArea: context.sheetArea,\n sheet: context.sheet\n };\n }\n\n processMouseEnter(hitinfo: HitInfo): boolean {\n if (!this.header[hitinfo.col]) {\n return false;\n }\n if (!this.toolTipElement) {\n const div = document.createElement(\"div\");\n div.style.position = 'absolute';\n div.style.border = '1px #C0C0C0 solid';\n div.style.boxShadow = '1px 2px 5px rgba(0,0,0,0.4)';\n div.style.font = '12px';\n div.style.background = 'white';\n div.style.padding = '5px';\n div.style.whiteSpace = 'nowrap'\n div.innerText = this.tipText;\n this.toolTipElement = div;\n }\n\n this.toolTipElement.style.left = hitinfo.x + 'px';\n this.toolTipElement.style.transform = 'translateX(-50%)';\n this.toolTipElement.style.display = 'block';\n (document.querySelector('#ssHost') as Element).appendChild(this.toolTipElement);\n this.toolTipElement.style.top = -(this.toolTipElement.offsetHeight + 5) + 'px';\n const toolTipElementWidth = this.toolTipElement.offsetWidth;\n const totalWidth = hitinfo.sheet.Zs.width;\n if (hitinfo.x + toolTipElementWidth / 2 > totalWidth) {\n const bounds: number = totalWidth - (hitinfo.x + toolTipElementWidth / 2) || 0;\n this.toolTipElement.style.left = hitinfo.x + bounds + 'px';\n }\n return true;\n }\n\n processMouseLeave(hitInfo: HitInfo): boolean {\n // debugger\n if (this.toolTipElement) {\n this.toolTipElement.style.display = 'none';\n }\n return true;\n }\n}\n\n//自定义注册copy事件\nexport const customCopyConVEvent = (spread: GC.Spread.Sheets.Workbook) => {\n const sheet = spread.getActiveSheet();\n // spread.commandManager().register(\"copyConVEvent\", {\n // //canUndo 指示该命令是否支持撤消和重做操作。\n // canUndo: true,\n // // \t执行执行或撤消操作。\n // //context {GC.Spread.Sheets.Workbook} 操作的上下文。\n // //options {Object} 操作的选项。\n // //options.sheetName {string} 表单名称。\n // //isUndo {boolean} true 这是撤消操作; 否则为 false 。\n // execute: function (context: any, options: any, isUndo: any) {\n // console.log(context, options, isUndo);\n // const Commands = GC.Spread.Sheets.Commands;\n // if (isUndo) {\n // //撤消在事务中所做的更改。\n // Commands.undoTransaction(context, options);\n // return true;\n // } else {\n // //开始事务。 在事务过程中,将保存数据模型的更改。\n // Commands.startTransaction(context, options);\n\n // const sheet = context.getActiveSheet();\n // const selectArea = sheet.getSelections()[0]\n // sheet.suspendPaint();\n\n // sheet.options.isProtected = false;\n // // spread.commandManager().execute({ cmd: \"paste\", sheetName: \"Sheet1\" });\n // setTimeout(function () {\n // sheet.options.isProtected = true;\n // }, 1000);\n\n\n // spread.resumePaint()\n\n // //结束事务。 在交易过程中,将保存数据模型的更改。\n // Commands.endTransaction(context, options);\n // return true;\n // }\n // }\n // })\n // spread.commandManager().setShortcutKey('copyConVEvent', GC.Spread.Commands.Key.v, true, false, false, false);\n // spread.commandManager().setShortcutKey('copyConVEvent', GC.Spread.Commands.Key.v, true, false, false, true);\n document.addEventListener(\"keydown\", (e: KeyboardEvent)=> {\n if (e.ctrlKey) {\n sheet.options.isProtected = false;\n }\n })\n document.addEventListener(\"keyup\", ()=> {\n sheet.options.isProtected = true;\n })\n // spread.bind(GC.Spread.Sheets.Events.InvalidOperation, function (e: any, info: any) {\n // console.log(\"Message (\" + info.invalidType + \")\");\n // sheet.options.isProtected = false;\n // spread.commandManager().execute({ cmd: \"paste\", sheetName: \"Sheet1\" });\n // setTimeout(function () {\n // sheet.options.isProtected = true;\n // }, 1000);\n // });\n}\nconst SUMMARY = ['TYPECLASSSUMMARY', 'MODELYEARSUMMARY', 'BRANDSUMMARY', 'CUSTOMERSUMMARY', 'MAKESUMMARY']\n//判断是否是可编辑cell\nexport const isEditCell = (type: string): boolean => {\n if (SUMMARY.indexOf(type) > -1) {\n return false;\n } else if (type === 'READ') {\n return false;\n } else {\n return true;\n }\n}\n\n//判断是否是汇总cell\nexport const isSummaryCell = (type: string): boolean => {\n if (SUMMARY.indexOf(type) > -1) {\n return true;\n } else {\n return false;\n }\n}\n\n// 绑定数据 locked true 表示锁定\nexport const bindDataTable = (spread: GC.Spread.Sheets.Workbook, data: BudgetTableDataCell[][], locked = false): void => {\n const sheet = spread.getActiveSheet();\n sheet.suspendPaint();\n sheet.setRowCount(data.length, GC.Spread.Sheets.SheetArea.viewport);\n const autoFitColumnIndex: number[] = [];\n let currentText = 0\n for (let row = 0; row < data.length; row++) {\n // 展开收起\n // sheet.getCell(row, 0).textIndent(data[row].level);\n if (data[row][0].type === 'MAKESUMMARY') {\n sheet.getCell(row, 0).textIndent(0)\n currentText = 0\n } else if (data[row][0].type === 'CUSTOMERSUMMARY') {\n sheet.getCell(row, 0).textIndent(1);\n currentText = 1\n } else if (data[row][0].type === 'BRANDSUMMARY') {\n sheet.getCell(row, 0).textIndent(2);\n currentText = 2\n } else if (data[row][0].type === 'TYPECLASSSUMMARY') {\n sheet.getCell(row, 0).textIndent(3);\n currentText = 3\n } else if (data[row][0].type === 'MODELYEARSUMMARY') {\n sheet.getCell(row, 0).textIndent(4);\n currentText = 4\n } else if (data[row][0].type === 'READ') {\n sheet.getCell(row, 0).textIndent(currentText + 1);\n }\n //设置row高度\n // debugger\n sheet.setRowHeight(row, 40, GC.Spread.Sheets.SheetArea.viewport);\n for (let col = 0; col < data[row].length; col++) {\n if (data[row][col].autoAutoFitColumn && !autoFitColumnIndex.includes(col)) {\n autoFitColumnIndex.push(col);\n }\n if (locked) {\n sheet.getCell(row, col).locked(true);\n } else {\n //判断是否可以编辑\n if (data[row][col].readOnly) {\n sheet.getCell(row, col).locked(true);\n } else {\n sheet.getCell(row, col).locked(!isEditCell(data[row][col].type));\n }\n }\n //设置对齐方式\n if (data[row][col].align) {\n sheet.getCell(row, col).hAlign(GC.Spread.Sheets.HorizontalAlign[data[row][col].align as string]);\n }\n //判断是否是汇总列\n if (isSummaryCell(data[row][col].type)) {\n // sheet.getCell(row, col).backColor('#B0CEEA');\n // sheet.getCell(row, col).backColor('#CCDDFF');\n sheet.getCell(row, col).backColor('#D4E6F1');\n \n \n } else {\n // sheet.getCell(row, col).backColor('#F8F9F9');\n sheet.getCell(row, col).backColor('#f5f5f5');\n }\n if (!locked) {\n //可编辑的cell添加不同的颜色\n if (!data[row][col].readOnly && isEditCell(data[row][col].type)) {\n sheet.getCell(row, col).backColor('#FFFFFF');\n }\n }\n sheet.getCell(row, col).wordWrap(true);\n sheet.setColumnWidth(col, data[row][col].width || '2*', GC.Spread.Sheets.SheetArea.viewport);\n if (data[row][col].contentsType === 'percent') {\n sheet.setValue(row, col, data[row][col].visible !== false ? data[row][col].contents || 0 : '');\n // 格式化成百分比\n sheet.setFormatter(row, col, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n //判断AVG SI% 需要序列化成0.00%\n } else if (data[row][col].contentsType === \"percentDecimal\") {\n sheet.setValue(row, col, data[row][col].visible !== false ? data[row][col].contents || 0 : '');\n sheet.setFormatter(row, col, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n } else if (data[row][col].contentsType === \"text\") {\n // 格式化成千分符\n sheet.setValue(row, col, data[row][col].visible !== false ? data[row][col].contents : '')\n } else if (data[row][col].contentsType === \"number\") {\n // 格式化成千分符\n sheet.setValue(row, col, data[row][col].visible !== false ? data[row][col].contents || 0 : '')\n //判断col是第一个不序列化为千分符 第一位是日期,如果序列化会有显示问题, 234 是文字序列化后没有显示问题\n col > 0 && sheet.setFormatter(row, col, \"#,##0\", GC.Spread.Sheets.SheetArea.viewport);\n }\n }\n }\n //设置自适应列 \"Model\", \"Model Year\"\n autoFitColumnIndex.forEach(item => {\n sheet.autoFitColumn(item);\n })\n sheet.resumePaint();\n}\n\n// 设置表格的头部,可以不占用单元格\nexport const setHeader = (spread: GC.Spread.Sheets.Workbook, headerData: BudgetTableHeaderCell[]) => {\n const sheet = spread.getActiveSheet();\n sheet.setColumnCount(headerData.length, GC.Spread.Sheets.SheetArea.viewport);\n const row = sheet.getRange(0, -1, 1, -1, GC.Spread.Sheets.SheetArea.colHeader); // 获取第一行区域\n row.wordWrap(true);\n const alignLeftKey: string[] = ['Period', 'Make', 'Customer', 'Brand', \"Type Class\", \"Model\", \"Model Year\"];\n //冻结列的数量\n let frozenColumnCount = 0;\n for (let i = 0; i < headerData.length; i++) {\n sheet.setValue(0, i, headerData[i].name, GC.Spread.Sheets.SheetArea.colHeader);\n sheet.getCell(0, i, GC.Spread.Sheets.SheetArea.colHeader).backColor('#e6e6e6')\n if (alignLeftKey.includes(headerData[i].name)) {\n sheet.getCell(0, i, GC.Spread.Sheets.SheetArea.colHeader).hAlign(GC.Spread.Sheets.HorizontalAlign.left);\n frozenColumnCount += 1;\n } else {\n // 设置除alignLeftKey的表头对齐方式\n sheet.getCell(0, i, GC.Spread.Sheets.SheetArea.colHeader).hAlign(GC.Spread.Sheets.HorizontalAlign.right);\n }\n }\n\n //冻结列 //解冻列设置为0\n sheet.frozenColumnCount(frozenColumnCount);\n sheet.options.frozenlineColor = \"transparent\";\n}\n\nexport const autoHeaderFitColumn = (spread: GC.Spread.Sheets.Workbook, headerData: BudgetTableHeaderCell[]): void => {\n //自定义操作列集合\n const autoFitColumnKeys: string[] = [\"Model\", \"Model Year\"];\n const autoFitColumnIndex: { col: number }[] = [];\n for (let i = 0; i < headerData.length; i++) {\n if (autoFitColumnKeys.includes(headerData[i].name)) {\n autoFitColumnIndex.push({ col: i });\n }\n }\n // 获取该实例的CommandManager实例\n const commandManager = spread.commandManager();\n // 设置当前worksheet允许撤销命令\n spread.options.allowUndo = true;\n // 命令调用:\n commandManager.execute({\n cmd: \"autoFitColumn\",\n sheetName: \"Sheet1\",\n columns: autoFitColumnIndex,\n isRowHeader: true,\n autoFitType: GC.Spread.Sheets.AutoFitType.cellWithHeader\n });\n}\n\n//更新ClipboardPasted 事件的数据\nconst updateClipboardPastedData = (data: BudgetProps, rowIndex: number, colIndex: number, value: string): void => {\n const cellData = data.inputTableCell;\n cellData[rowIndex][colIndex].contents = value;\n cellData[rowIndex][colIndex].edited = true;\n //判断如果触发的是禁用cell,输入值完成则需要禁用对应的cell\n if ((cellData[rowIndex][colIndex].trigger as Array).includes(colIndex)) {\n const index = (cellData[rowIndex][colIndex].trigger as Array).filter(item => {\n return item != colIndex;\n })\n if (index.length > 0) {\n if (Number(value) > 0) {\n cellData[rowIndex][index[0]].type = 'READ';\n } else {\n cellData[rowIndex][index[0]].type = 'WRITE';\n }\n }\n \n }\n}\n\ninterface ClipboardPastedEventData {\n col: number;\n colCount: number;\n row: number;\n rowCount: number;\n [key: string]: any;\n}\n\nconst getClipboardPastedValues = (sheet: GC.Spread.Sheets.Worksheet, eventData: ClipboardPastedEventData): string[] => {\n const cellRange = Object.assign({}, eventData);\n const values: string[] = [];\n // 多个row 多个cell\n if (cellRange.colCount > 1 && cellRange.rowCount > 1) {\n //row 循环\n while (cellRange.rowCount > 0) {\n const value = [];\n //col 循环\n while (cellRange.colCount > 0) {\n value.push(sheet.getValue(cellRange.row, cellRange.col));\n cellRange.col += 1;\n cellRange.colCount--;\n }\n // col循环完重置col的变量为初始值\n cellRange.colCount = eventData.colCount;\n cellRange.col = eventData.col;\n\n cellRange.row += 1;\n cellRange.rowCount--;\n\n values.push(value.join('&&'));\n }\n //处理多个col, 单个row\n } else if (cellRange.colCount > 1 && cellRange.rowCount === 1) {\n const value = [];\n while (cellRange.colCount > 0) {\n value.push(sheet.getValue(cellRange.row, cellRange.col));\n cellRange.col += 1;\n cellRange.colCount--;\n }\n values.push(value.join('&&'));\n //处理多个row,单个col\n } else if (cellRange.colCount === 1 && cellRange.rowCount > 1) {\n while (cellRange.rowCount > 0) {\n values.push(sheet.getValue(cellRange.row, cellRange.col));\n cellRange.row += 1;\n cellRange.rowCount--;\n }\n //单个\n } else {\n values.push(sheet.getValue(cellRange.row, cellRange.col));\n }\n return values;\n}\n\n// spread 实例 data数据 headerData数据表头 添加事件处理\nexport const inputEventToFormula = (spread: GC.Spread.Sheets.Workbook, data: BudgetProps, headerData: BudgetTableHeaderCell[]): void => {\n //ClipboardPasted事件\n const sheet = spread.getActiveSheet();\n sheet.bind(GC.Spread.Sheets.Events.ClipboardPasted, function (sender: any, args: any) {\n const inputCellData = data.inputTableCell;\n const cellRange = Object.assign({}, args.cellRange);\n // const values: string[] = args.pasteData.text.replace(/\\r\\n/g, ';').replace(/\\t/g, '&&').split(';');\n const values: string[] = getClipboardPastedValues(sheet, cellRange);\n let rowIndex: number = cellRange.row;\n let colIndex: number = cellRange.col;\n //处理粘贴多cell 多个 row\n if (cellRange.colCount > 1 && cellRange.rowCount > 1) {\n const _value: string[][] = values.map(item => item.split('&&'));\n //row 循环\n while (cellRange.rowCount > 0) {\n //处理复制多个值\n let rowValues: string[] = [];\n if (_value.length > 1) {\n rowValues = _value[values.length - cellRange.rowCount]\n } else {\n rowValues = _value[0];\n }\n //col 循环\n while (cellRange.colCount > 0) {\n if (!sheet.getCell(rowIndex, colIndex).locked()) {\n updateClipboardPastedData(data, rowIndex, colIndex, toNumber(rowValues[rowValues.length - cellRange.colCount]));\n }\n colIndex += 1;\n cellRange.colCount--;\n }\n // col循环完重置col的变量为初始值\n cellRange.colCount = args.cellRange.colCount;\n colIndex = args.cellRange.col;\n\n rowIndex += 1;\n cellRange.rowCount--;\n }\n //处理多个col, 单个row\n } else if (cellRange.colCount > 1 && cellRange.rowCount === 1) {\n while (cellRange.colCount > 0) {\n const value = values[0].split('&&');\n if (!sheet.getCell(rowIndex, colIndex).locked()) {\n updateClipboardPastedData(data, rowIndex, colIndex, toNumber(value[value.length - cellRange.colCount]));\n }\n colIndex += 1;\n cellRange.colCount--;\n }\n\n //处理多个row,单个col\n } else if (cellRange.colCount === 1 && cellRange.rowCount > 1) {\n while (cellRange.rowCount > 0) {\n if (!sheet.getCell(rowIndex, colIndex).locked()) {\n updateClipboardPastedData(data, rowIndex, colIndex, toNumber(values[values.length - cellRange.rowCount]));\n }\n //处理复制多个值\n if (values.length > 1) {\n if (!sheet.getCell(rowIndex, colIndex).locked()) {\n updateClipboardPastedData(data, rowIndex, colIndex, toNumber(values[values.length - cellRange.rowCount]));\n }\n } else {\n if (!sheet.getCell(rowIndex, colIndex).locked()) {\n updateClipboardPastedData(data, rowIndex, colIndex, toNumber(values[0]));\n }\n }\n rowIndex++;\n cellRange.rowCount--;\n }\n //单个\n } else {\n if (!sheet.getCell(rowIndex, colIndex).locked()) {\n updateClipboardPastedData(data, rowIndex, colIndex, toNumber(values[0]));\n }\n }\n bindDataTable(spread, inputCellData);\n });\n\n //cell value change 事件\n sheet.bind(GC.Spread.Sheets.Events.ValueChanged, (e: any, info: any) => {\n //事件挂起\n sheet.suspendEvent();\n // info 包含当前变的cell的位置信息 row(行) 和 col(列) 根据这个就可以找到对应的这条数据;\n //判断输入的类型是percent,则输入的值不能大于1\n const inputCellData = data.inputTableCell;\n //当前的row\n const row = inputCellData[info.row];\n\n //判断输入是否合法\n if (isNaN(Number(info.newValue))) {\n message.error('请输入数字类型');\n sheet.setValue(info.row, info.col, info.oldValue);\n sheet.resumeEvent();\n return;\n }\n\n //判断负数\n if (info.newValue < 0) {\n message.error('请输入正确的数值');\n sheet.setValue(info.row, info.col, info.oldValue);\n sheet.resumeEvent();\n return;\n }\n\n //Penetration 验证\n if (headerData[info.col].name === '% Penetration' && info.newValue > 1) {\n message.error('% Penetration cant > 100%');\n sheet.setValue(info.row, info.col, info.oldValue);\n sheet.resumeEvent();\n return;\n //验证小数\n } else if (inputCellData[info.row][info.col].contentsType === 'percent' && info.newValue > 1) {\n message.error('请输入正确的数值');\n sheet.setValue(info.row, info.col, info.oldValue);\n sheet.resumeEvent();\n return;\n }\n\n //判断estimated volume的值不能大于pipeline override\n if (headerData[info.col].name === 'Estimated Volume') {\n const pipelineOverrideIndex = headerData.findIndex(item => item.name.includes('Pipeline Override'));\n if (!row[pipelineOverrideIndex].contents || info.newValue > row[pipelineOverrideIndex].contents) {\n message.error('Estimated Volume cant > Pipeline Override');\n sheet.setValue(info.row, info.col, info.oldValue);\n sheet.resumeEvent();\n return;\n }\n }\n //赋值,禁用cell\n row[info.col].contents = info.newValue;\n row[info.col].edited = true;\n //判断如果触发的是禁用cell,输入值完成则需要禁用对应的cell\n if ((row[info.col].trigger as Array).includes(info.col)) {\n const index = (row[info.col].trigger as Array).filter(item => {\n return item != info.col;\n })\n if (index.length > 0) {\n if (info.newValue != info.oldValue && info.newValue > 0) {\n inputCellData[info.row][index[0]].type = 'READ';\n } else {\n inputCellData[info.row][index[0]].type = 'WRITE';\n }\n }\n \n }\n bindDataTable(spread, inputCellData);\n // 恢复事件\n sheet.resumeEvent();\n });\n}\n\n//设置headerTip 提示\nexport const setHeaderCellTypeTip = (spread: GC.Spread.Sheets.Workbook, headerData: BudgetTableHeaderCell[]) => {\n const sheet = spread.getActiveSheet();\n //设置% Penetration 和 Estimated Volume 录入互斥 提示\n const tipCellTypes: { name: string; tipText: string }[] = [\n {\n name: '% Penetration',\n tipText: '% Penetration,Estimated Volume录入互斥,如需切换录入字段,请先清空已录入数据并保存'\n },\n {\n name: 'Estimated Volume',\n tipText: '% Penetration,Estimated Volume录入互斥,如需切换录入字段,请先清空已录入数据并保存'\n },\n {\n name: 'Budget Estimation',\n tipText: 'Budget Estimation = Cost/unit * Estimated Volume'\n },\n {\n name: 'AVG.SI %',\n tipText: 'Avg.SI% = Avg.SI / MSRP w/o VAT'\n },\n {\n name: 'Avg.SI',\n tipText: 'Typeclass Avg.SI = Budget Estimaton / Max(Kufri, Pipeline Override)'\n }\n ]\n\n //重置header的cellType\n headerData.forEach(item => {\n sheet.setCellType(0, item.columnNumber, new GC.Spread.Sheets.CellTypes.ColumnHeader(), GC.Spread.Sheets.SheetArea.colHeader)\n })\n\n //设置固定字段的tip提示\n headerData.filter(cell => tipCellTypes.some(item => cell.name === item.name)).forEach(item => {\n // 拿到当前这一条对应的tipText\n const tips = tipCellTypes.filter(cell => cell.name === item.name);\n if (tips.length > 0) {\n sheet.setCellType(0, item.columnNumber, new TipCellType(headerData, tips[0].tipText), GC.Spread.Sheets.SheetArea.colHeader);\n }\n })\n\n}\n\n// 初始配置\nexport const ssHotTop = (spread: GC.Spread.Sheets.Workbook, data: BudgetProps, cellData: BudgetTableDataCell[][], headerData: BudgetTableHeaderCell[], locked = false, bindEvent = false, bu: string): void => {\n if (cellData.length < 1) {\n (document.getElementById('ssHost') as HTMLElement).innerHTML = 'NO Data'\n return\n }\n spread.suspendPaint();\n const sheet = spread.getActiveSheet();\n // 过滤\n const range = new GC.Spread.Sheets.Range(-1, 0, -1, headerData.length);\n const rowFilter = new GC.Spread.Sheets.Filter.HideRowFilter(range);\n sheet.rowFilter(rowFilter);\n rowFilter.filterDialogVisibleInfo({\n sortByValue: true,\n sortByColor: false, \n filterByColor: true,\n filterByValue: true,\n listFilterArea: true \n })\n // sheet.rowOutlines.group(1, 3);\n // sheet.columnOutlines.group(1, 2);\n // sheet.columnOutlines.group(4, 6);\n // 必须加上这两个才能折叠展开\n sheet.options.protectionOptions.allowOutlineRows = true\n sheet.options.protectionOptions.allowOutlineColumns = true\n sheet.options.protectionOptions.allowFilter = true\n sheet.options.protectionOptions.allowSort = true\n\n // 滚动条样式\n // spread.options.scrollbarAppearance = GC.Spread.Sheets.ScrollbarAppearance.mobile;\n // sheet是否显示x\n spread.options.tabNavigationVisible = false\n spread.options.tabStripVisible = false\n // 滚动条常用设置\n spread.options.scrollbarMaxAlign = true\n sheet.setRowCount(1, GC.Spread.Sheets.SheetArea.colHeader);\n // 设置头部\n setHeader(spread, headerData)\n // 设置header的高度\n sheet.setRowHeight(0, 50, GC.Spread.Sheets.SheetArea.colHeader);\n // spread.commandManager().execute({cmd: \"autoFitRow\", sheetName: \"Sheet1\", rows: [{row:0}], columnHeader: true, autoFitType: GC.Spread.Sheets.AutoFitType.cell});\n // 设置多少行和列\n sheet.setRowCount(cellData.length, GC.Spread.Sheets.SheetArea.viewport)\n sheet.setColumnCount(cellData[0].length, GC.Spread.Sheets.SheetArea.viewport)\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\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 = true;\n sheetStyle.font = '\"Daimler CS\", \"Mier B\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"SimSun\"'\n //默认对其方式\n sheetStyle.hAlign = GC.Spread.Sheets.HorizontalAlign.center;\n sheetStyle.vAlign = GC.Spread.Sheets.VerticalAlign.center;\n sheet.setDefaultStyle(sheetStyle);\n // AMG不显示 typeClass\n // if (bu === 'AMG') {\n // sheet.setColumnVisible(1, false, GC.Spread.Sheets.SheetArea.viewport)\n // }\n //禁止缩放\n spread.options.allowUserZoom = false;\n \n\n // 设置样式第一行的背景色\n const styleUnEdit = new GC.Spread.Sheets.Style();\n\n // 第一行不能编辑\n styleUnEdit.locked = true;\n // 设置样式第一行的背景色\n const styleEdit = new GC.Spread.Sheets.Style();\n // 第一行不能编辑\n styleEdit.locked = false;\n\n //自定义copy事件\n customCopyConVEvent(spread);\n\n //绑定数据\n bindDataTable(spread, cellData, locked);\n\n //设置表格header tip提示\n setHeaderCellTypeTip(spread, headerData);\n \n\n spread.resumePaint();\n}\n\nfunction hasValue>(value: string, dataSource: Array,): boolean {\n return dataSource.some(item => Object.values(item).includes(value));\n}\n\nexport const handlerSheetsData = (data: BudgetProps, isCheckoutMonth = false, headerArr: string[], isOverview = false): BudgetProps => {\n //header 的汇总的固定key input 需要通过这个两个字段来确定唯一, Period都是一样的所以不需要判断\n // const inputHeaderFixedKeys: string[] = ['Period', 'Brand', 'Type Class', 'Model Year'];\n const inputHeaderFixedKeys: string[] = headerArr\n //deader 的汇总固定key的索引 input\n const inputHeaderFixedKeysIndex: number[] = [];\n //header需要序列化为百分比的索引\n const percentCellIndex: number[] = [];\n //互斥的header cell\n const mutexHeaderCellKeys: string[] = ['% Penetration', 'Estimated Volume'];\n //互斥的header cell index\n const mutexHeaderCellIndex: number[] = [];\n //固定左对齐的key\n // const alignLeftKey: string[] = ['Period', 'Brand', \"Type Class\", \"Model\", \"Model Year\"];\n const alignLeftKey: string[] = headerArr\n //需要显示类型为text类型的key的索引\n // const textKeyIndex: number[] = data.header.filter(item => ['Period', 'Brand', \"Type Class\", \"Model\", \"Model Year\"].includes(item.name)).map(item => item.columnNumber);\n const textKeyIndex: number[] = data.header.filter(item => headerArr.includes(item.name)).map(item => item.columnNumber);\n //根据固定的header key 获取对应的索引;\n\n //百分比小数的ke\n const percentDecimalKeys: string[] = ['AVG.SI %', '% MSRP w/o VAT'];\n\n // 设置特殊宽度\n const smallWidthKeys: string[] = ['AVG.SI %', 'Avg.SI', 'Type Class',]\n\n const kufriWidthKeys: string[] = ['RT Kufri', 'RT Pipeline Override', 'WS Kufri', 'WS Pipeline Override', 'Brand']\n\n if ('header' in data) {\n data.header.forEach((item, index) => {\n //获取input固定key的索引\n if (inputHeaderFixedKeys.includes(item.name)) {\n inputHeaderFixedKeysIndex.push(index);\n }\n //判断那个cell需要序列化为百分比\n if (item.name.indexOf('%') > -1) {\n percentCellIndex.push(index);\n }\n //查找互斥key的索引\n if (mutexHeaderCellKeys.includes(item.name)) {\n mutexHeaderCellIndex.push(index);\n }\n })\n }\n\n\n const cellData = data.inputTableCell;\n\n //添加属性visible 是否显示contents字段 添加属性contentsType 显示的类型 添加属性trigger 互斥的对应的索引\n if ('inputTableCell' in data) {\n data.inputTableCell.forEach(item => {\n item.forEach((cell, index) => {\n cell.visible = true;\n //添加显示类型\n if (percentCellIndex.includes(index)) {\n //百分比\n cell.contentsType = 'percent'\n } else if (textKeyIndex.includes(index)) {\n //文本\n cell.contentsType = 'text';\n } else {\n //千分数\n cell.contentsType = 'number';\n }\n //默认宽度\n cell.width = 120;\n //添加显示序列化的数据格式 百分比小数\n if (percentDecimalKeys.includes(data.header[index].name)) {\n //百分比小数\n cell.contentsType = 'percentDecimal';\n }\n if (smallWidthKeys.includes(data.header[index].name)) {\n cell.width = 80;\n }\n\n if (kufriWidthKeys.includes(data.header[index].name)) {\n cell.width = 100;\n }\n if (['% Penetration', 'Cost / unit'].includes(data.header[index].name)) {\n cell.width = 100\n }\n if (['Estimated Volume', 'MSRP w/o VAT'].includes(data.header[index].name)) {\n cell.width = 120\n }\n //判断trigger的列是否有值\n if (mutexHeaderCellIndex.includes(index)) {\n cell.trigger = mutexHeaderCellIndex;\n } else {\n cell.trigger = [];\n }\n })\n })\n }\n\n //获取当前row,根据headerFixedKeys 获取到对应的值\n function getRowContents(row: BudgetTableDataCell[], indexList: number[]): string[] {\n const arr: string[] = [];\n indexList.forEach(index => {\n arr.push(row[index].contents);\n })\n return arr;\n }\n\n //判断是否相等\n function hasRepeat(content: string[][], content1: string[]): boolean {\n return content.some(item => item.join(',') == content1.join(','));\n }\n\n //设置row下的cell visible属性\n function setCellVisible(row: BudgetTableDataCell[]) {\n inputHeaderFixedKeysIndex.forEach(index => {\n row[index].visible = false;\n })\n }\n\n //设置对齐方式\n // 固定的列,要看配的东西,下面处理显示隐藏用\n const fixedCol: string[] = [];\n for (const row of cellData) {\n for (let cell = 0; cell < row.length; cell++) {\n row[0].align = 'left'\n // 设置的单元格对齐方式\n if (alignLeftKey.includes(data.header[cell].name)) {\n row[cell].align = 'left';\n if (fixedCol.indexOf('left' + cell) < 0) fixedCol.push('left' + cell);\n } else {\n row[cell].align = 'right';\n }\n }\n }\n //处理input汇总行和children cellData 第一条数据肯定是汇总行,需求\n if ('inputTableCell' in data) {\n const isModelYear = hasValue('Model Year', data.header);\n const isModel = hasValue('Model', data.header);\n const isPeriod = hasValue('Period', data.header)\n // const modelIndex = data.header.findIndex(item => item.name === headerArr[headerArr.length - 1])\n let refValPeriod = null;\n // period 处理period显示隐藏用visible: false/true\n // if (!isOverview) {\n for (let row = 0; row < cellData.length; row++) {\n if (!cellData[row][0].visible) {\n if (!refValPeriod) {\n refValPeriod = null\n }\n continue\n }\n if (!refValPeriod && refValPeriod === null) {\n cellData[row][0].visible = true\n refValPeriod = cellData[row][0].contents\n continue\n }\n if (cellData[row][0].contents === refValPeriod) {\n cellData[row][0].visible = false\n continue\n }\n // cellData[row][col].contents !== refVal // 隐含条件\n cellData[row][0].visible = true\n refValPeriod = cellData[row][0].contents\n }\n // }\n // Brand.... Model Year显示隐藏用visible: false/true\n \n // if (!isOverview) col = 0\n for (let col = 1; col < fixedCol.length; col++) {\n let refVal = null;\n for (let row = 0; row < cellData.length; row++) {\n if (!cellData[row][col].visible) {\n if (!refVal) {\n refVal = null\n }\n continue\n }\n if (!refVal) {\n cellData[row][col].visible = true\n refVal = cellData[row][col - 1].contents + cellData[row][col].contents\n continue\n }\n if (cellData[row][col - 1].contents + cellData[row][col].contents === refVal) {\n cellData[row][col].visible = false\n continue\n }\n // cellData[row][col].contents !== refVal // 隐含条件\n cellData[row][col].visible = true\n refVal = cellData[row][col - 1].contents + cellData[row][col].contents\n // for (let row2 = col + 2; row2 < modelIndex; row2++) {\n // cellData[row][col].visible = false\n // }\n }\n }\n\n // if (!isCheckoutMonth) {\n // //处理 Period 字段,只会有一个日期并且在每行第一个\n // for (const [rowIndex, row] of cellData.entries()) {\n // if (rowIndex == 0) {\n // row[0].visible = true;\n // } else {\n // row[0].visible = false;\n // }\n // }\n \n // //处理brand保证唯一\n // const brandMap: Map = new Map();\n // const brandIndex = data.header.findIndex(item => item.name === 'brand');\n // if (brandIndex > -1) {\n // for (const row of cellData) {\n // if (brandMap.has(row[brandIndex].contents)) {\n // row[brandIndex].visible = false;\n // } else {\n // row[brandIndex].visible = true;\n // brandMap.set(row[brandIndex].contents, row[brandIndex].contents);\n // }\n // }\n // }\n\n // //处理typeClass保证唯一\n // const typeClassMap: Map = new Map();\n // const typeClassIndex = data.header.findIndex(item => item.name === 'Type Class');\n // for (const row of cellData) {\n // if (typeClassMap.has(row[typeClassIndex].contents)) {\n // row[typeClassIndex].visible = false;\n // } else {\n // row[typeClassIndex].visible = true;\n // typeClassMap.set(row[typeClassIndex].contents, row[typeClassIndex].contents);\n // }\n // }\n // //没有 Model Year 肯定有 Model 无需处理\n\n // //没有 Model 肯定有 Model Year 无需处理\n\n // // 有 Model 和 Model Year 需要根据typeClass + Model Year 来去确认唯一, 确认Model Year是否显示\n // if (isModel && isModelYear) {\n // const summaryContents: string[][] = [];\n // const modelYearIndex = data.header.findIndex(item => item.name === 'Model Year');\n // for (const row of data.inputTableCell) {\n // // 查找汇总行根据 typeClass + Model Year 去重\n // if (row[0].type === 'TYPECLASSSUMMARY' || row[0].type === 'MODELYEARSUMMARY') {\n // if (!hasRepeat(summaryContents, getRowContents(row, [typeClassIndex, modelYearIndex]))) {\n // row[modelYearIndex].visible = true;\n // summaryContents.push(getRowContents(row, [typeClassIndex, modelYearIndex]));\n // }\n // } else {\n // // 查找非汇总行根据 typeClass + Model Year 去重\n // if (hasRepeat(summaryContents, getRowContents(row, [typeClassIndex, modelYearIndex]))) {\n // row[modelYearIndex].visible = false;\n // }\n // }\n // }\n // }\n // } else {\n \n // // rowIndex 行的索引 row 这一行的数据\n // const periodValues: string[] = []\n // const periodIndex = data.header.findIndex(item => item.name === 'Period');\n\n // //处理typeClass保证唯一\n // const makeMap: Map = new Map();\n // const makeIndex = data.header.findIndex(item => item.name === 'Make');\n\n // //处理typeClass保证唯一\n // const customerMap: Map = new Map();\n // const customerIndex = data.header.findIndex(item => item.name === 'Customer');\n\n // //处理typeClass保证唯一\n // const brandMap: Map = new Map();\n // const brandIndex = data.header.findIndex(item => item.name === 'Brand');\n // //处理typeClass保证唯一\n // const typeClassMap: Map = new Map();\n // const typeClassIndex = data.header.findIndex(item => item.name === 'Type Class');\n \n // //处理modelYear保证唯一\n // const modelYearMap: Map = new Map();\n // const modelYearIndex = data.header.findIndex(item => item.name === 'Model Year');\n // for (const row of cellData) {\n \n // // period\n // if (periodValues.includes(row[periodIndex].contents)) {\n // row[periodIndex].visible = false;\n // } else {\n // periodValues.push(row[periodIndex].contents)\n // row[periodIndex].visible = true;\n // }\n // // make\n // if (makeMap.has(row[periodIndex].contents + row[makeIndex].contents)) {\n // row[makeIndex].visible = false;\n // } else {\n // row[makeIndex].visible = true;\n // makeMap.set(row[periodIndex].contents + row[makeIndex].contents, row[makeIndex].contents);\n // }\n // // customer\n // if (makeMap.has(row[periodIndex].contents + row[makeIndex].contents + row[makeIndex].contents)) {\n // row[makeIndex].visible = false;\n // } else {\n // row[makeIndex].visible = true;\n // makeMap.set(row[periodIndex].contents + row[makeIndex].contents, row[makeIndex].contents);\n // }\n // if (brandMap.has(row[periodIndex].contents + row[brandIndex].contents)) {\n // row[brandIndex].visible = false;\n // } else {\n // row[brandIndex].visible = true;\n // brandMap.set(row[periodIndex].contents + row[brandIndex].contents, row[brandIndex].contents);\n // }\n // if (typeClassMap.has(row[periodIndex].contents + row[brandIndex].contents + row[typeClassIndex].contents)) {\n // row[typeClassIndex].visible = false;\n // } else {\n // row[typeClassIndex].visible = true;\n // typeClassMap.set(row[periodIndex].contents + row[brandIndex].contents + row[typeClassIndex].contents, row[typeClassIndex].contents);\n // }\n // if (isModel && isModelYear) {\n // if (modelYearMap.has(row[periodIndex].contents + row[brandIndex].contents + row[typeClassIndex].contents + row[modelYearIndex].contents)) {\n // row[modelYearIndex].visible = false;\n // } else {\n // row[modelYearIndex].visible = true;\n // modelYearMap.set(row[periodIndex].contents + row[brandIndex].contents + row[typeClassIndex].contents + row[modelYearIndex].contents, row[modelYearIndex].contents);\n // }\n // }\n // }\n // }\n \n \n //处理有Model的情况给model cell 添加宽度\n if (isModel) {\n const index = data.header.findIndex(item => item.name === 'Model');\n for (const row of cellData) {\n // row[index].width = 160;\n row[index].autoAutoFitColumn = true;\n }\n }\n \n //处理有Model的情况给modelYear cell 添加宽度\n if (isModelYear) {\n const index = data.header.findIndex(item => item.name === 'Model Year');\n for (const row of cellData) {\n row[index].autoAutoFitColumn = true;\n }\n }\n if (isPeriod) {\n const index = data.header.findIndex(item => item.name === 'Period');\n for (const row of cellData) {\n row[index].width = 150;\n }\n }\n }\n return data;\n}\n\n\nexport const bindDataTableSmall = (sheet: GC.Spread.Sheets.Worksheet, data: SmallTableProps[]): void => {\n sheet.suspendPaint();\n sheet.setDataSource(data);\n // 绑定每列\n sheet.bindColumn(0, { name: 'make', displayName: 'Make', size: 70 });\n sheet.bindColumn(1, { name: 'fleetVolume', displayName: 'Fleet Volume', size: 150 });\n sheet.bindColumn(2, { name: 'budgetEstimation', displayName: 'Budget Estimation', size: 150 });\n sheet.bindColumn(3, { name: 'avgSi', displayName: 'Avg.SI', size: 70 });\n sheet.bindColumn(4, { name: 'avgSiPercentage', displayName: 'Avg.Si%', size: 70 });\n \n // 设置每列的宽度\n // sheet.setColumnWidth(0, '2*');\n // sheet.setColumnWidth(1, '2*');\n // sheet.setColumnWidth(2, '2*');\n // sheet.setColumnWidth(3, '2*');\n // sheet.setColumnWidth(4, '2*');\n \n const headerArr = ['Make', 'Fleet Volume', 'Budget Estimation', 'Avg.SI', 'Avg.Si%',]\n data.forEach((item, row) => {\n headerArr.forEach((ite, col) => {\n if (ite === 'Avg.Si%') {\n sheet.setFormatter(row, col, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n } else if (ite !== 'Make') {\n sheet.setFormatter(row, col, \"#,##0\", GC.Spread.Sheets.SheetArea.viewport);\n }\n })\n })\n for (const key of data.keys()) {\n for (let cell = 1; cell < 6; cell++) {\n // 设置的单元格对齐方式\n sheet.getCell(key, cell).hAlign(GC.Spread.Sheets.HorizontalAlign.right);\n\n }\n }\n \n sheet.resumePaint();\n}\nexport const ssHostSmall = (spread: GC.Spread.Sheets.Workbook, sheet: GC.Spread.Sheets.Worksheet, data: SmallTableProps[]) => {\n spread.suspendPaint();\n // 滚动条样式\n // spread.options.scrollbarAppearance = GC.Spread.Sheets.ScrollbarAppearance.mobile;\n spread.options.showHorizontalScrollbar = false\n spread.options.showVerticalScrollbar = false\n \n // sheet是否显示\n spread.options.tabNavigationVisible = false\n spread.options.tabStripVisible = false\n \n // 滚动条常用设置\n spread.options.scrollbarMaxAlign = false\n sheet.setRowCount(1, GC.Spread.Sheets.SheetArea.colHeader);\n // 设置头部\n sheet.setRowHeight(0, 30, GC.Spread.Sheets.SheetArea.colHeader)\n sheet.setRowHeight(0, 24, GC.Spread.Sheets.SheetArea.viewport);\n // 设置多少行和列\n sheet.setRowCount(data.length, GC.Spread.Sheets.SheetArea.viewport)\n sheet.setColumnCount(5, GC.Spread.Sheets.SheetArea.viewport)\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.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 = true;\n sheet.setDefaultStyle(sheetStyle);\n // 设置样式第一行的背景色\n const style = new GC.Spread.Sheets.Style();\n // 第一行的背景色\n style.backColor = '#f5f5f5';\n //set style to row.第一行的背景色, setStyle容易全局污染,用 getCell/getRange\n sheet.setStyle(data.length - 1, -1, style, GC.Spread.Sheets.SheetArea.viewport);\n // 设置样式第一行的背景色\n const styleUnEdit = new GC.Spread.Sheets.Style();\n // 第一行不能编辑\n styleUnEdit.locked = true;\n // 设置样式第一行的背景色\n const styleEdit = new GC.Spread.Sheets.Style();\n // 第一行不能编辑\n styleEdit.locked = false;\n // 第一列不能编辑\n bindDataTableSmall(sheet, data)\n spread.resumePaint();\n}\nexport const isVisibleSpecialIndex = (arr: string[], offerTypeValue: string, offerTypeArr: OfferType[]): number => {\n const offerArr = offerTypeArr.find((val: OfferType) => val.offerTypeId === offerTypeValue)\n if (offerArr) {\n return arr.findIndex((item: string) => item === offerArr.offerTypeName)\n } else {\n return -1\n }\n \n}\n","\nimport { defineComponent, onMounted, ref, watch, reactive, toRefs, onBeforeUnmount, nextTick, computed } from 'vue';\nimport BudgetInputSet from './BudgetInputSet.vue';\nimport {\n BudgetTableProps,\n BudgetInfoProps,\n SiOfferCustomerVo,\n BudgetKufriProps,\n CustomerProps,\n SmallTableProps,\n BudgetTableDataCell\n} from './types';\nimport '@grapecity/spread-sheets/styles/gc.spread.sheets.excel2016colorful.css';\nimport GC from '@grapecity/spread-sheets';\nimport './licensen';\nimport { initOutlineColumn } from '../BudgetReport/utils';\nimport { budgetGenerate } from '@/API/program';\nimport {\n getBudgetInfo,\n getBudgetTableData,\n updateInputData,\n getBudgetKufriData,\n findbudgetDataOverview,\n getVersion,\n updateVersion,\n getFillInMonthlyData,\n getCancelFillInMonthlyData,\n fleetBudgetDataSummary\n} from '@/API/budget';\nimport {\n handlerSheetsData,\n ssHotTop,\n bindDataTable,\n setHeader,\n inputEventToFormula,\n autoHeaderFitColumn,\n setHeaderCellTypeTip,\n ssHostSmall,\n isVisibleSpecialIndex\n} from './utils';\nimport { useRoute } from 'vue-router';\nimport { useStore } from 'vuex';\nimport deepClone from '@/utils/deepClone';\nimport { toThousands } from '@/utils/approve';\nimport Navbar from '@/views/Program/components/NavigationBar.vue';\nimport useNavBar from '@/hooks/Program/useNavBar';\n// 不同的offerType, inputMonth和按钮copy kufri,setVolume base显示否,都有brand,没有model year.只有overview会有customer\nconst visibleOfferList = [\n 'BMBS Initiated Fleet',\n 'BMBS Oversea Returnee',\n 'BMBS Initiated Fleet - Special',\n 'Dealer Initiated Fleet',\n 'Dealer Initiated Fleet - Special',\n 'Dealer service support'\n];\nconst companyCar = ['Company Car'];\n// PMT, Demo Car 是通用的,因判断了有没有Model Year\nconst tableHeaderListSummery = ['Period', 'Brand', 'Type Class', 'Model Year', 'Model'];\n// fleet overview\nconst tableHeaderListSummery2 = ['Make', 'Customer', 'Brand', 'Type Class', 'Model Year', 'Model'];\n\nimport { message, Modal } from 'ant-design-vue';\n// 只要在这个里面的,就是tableHeaderListSummery1, 在这个里面并且有overview的,就是tableHeaderListSummery2\n// overview的小表格\nimport fixTable from '@/hooks/checking/useFixTable';\nexport default defineComponent({\n components: { BudgetInputSet, Navbar },\n setup() {\n const route = useRoute();\n const store = useStore();\n const currentProgramId = computed(() => store.state.pgmData.programId);\n const { state } = useStore();\n const visible = ref(false);\n const active = ref(false); // 标识Input By Month是否选中\n\n const { navArr, getTabStatus } = useNavBar();\n getTabStatus();\n\n const offerTypeValue = ref('');\n const siOfferValue = ref('');\n const currentTab = ref('budget');\n\n const fleetCustomerList = ref([]);\n\n //是否是最新的version\n const latestVersion = ref(null);\n // 是否是overview fleet\n\n const isOverview = ref('');\n const budgetPeriod = ref('');\n const spinFlag = ref(false);\n const spinFlagSave = ref(false);\n const tableHeight = fixTable(420);\n let oldTableData: string, newTableData: string;\n\n // sheet当前表格的初始化\n let worksheet: GC.Spread.Sheets.Worksheet;\n let workbook: GC.Spread.Sheets.Workbook;\n let worksheetSmall: GC.Spread.Sheets.Worksheet;\n let workbookSmall: GC.Spread.Sheets.Workbook;\n //budgetInfo\n const budgetInfoData = reactive({\n offerType: [],\n programInfoVo: {\n programId: '',\n programCode: '',\n programName: '',\n status: '',\n kufriVersion: '',\n bu: ''\n }\n });\n\n const dataSmall = ref([]);\n\n // 定义kufriVersion\n const kufriVersion = ref('');\n let latestKufriVersion = '';\n\n //siOffer\n const siOfferData = ref([]);\n\n //budget table data\n const budgetTableData = reactive({\n header: [],\n inputTableCell: []\n });\n\n //当前的sioffer下make\n const activeMakeValue = ref('');\n\n //budget kufri data\n const budgetKufriData = reactive({\n cbuKufri: '',\n cbuBudget: '',\n pbpKufri: '',\n pbpBudget: '',\n vanKufri: '',\n vanBudget: '',\n denzaKufri: '',\n denzaBudget: ''\n });\n\n // customer选中值\n const customerValue = ref('');\n\n const budgetTableDataH = ref(400);\n\n const budgetAllocationTableDataH = ref(100);\n\n // 根据不同的offerType不同,需要处理的header也不同\n const headerArr = (): string[] => {\n let arr: string[];\n if (isVisibleSpecialIndex(visibleOfferList, offerTypeValue.value, budgetInfoData.offerType) > -1) {\n arr = tableHeaderListSummery2;\n } else {\n arr = tableHeaderListSummery;\n }\n return arr;\n };\n const getAllDirtyCells = (data: BudgetTableDataCell[][]) => {\n const sels = worksheet.getSelections();\n const s = sels[0];\n let cells = '';\n for (let row = 0; row < data.length; row++) {\n for (let col = 0; col < data[row].length; col++) {\n /* worksheet.getDirtyCells获取脏数据,\n 返回结构:[{newValue: 0, oldValue: undefined, row:0, col:0}]\n 拼接成字符串,去判断前后是否相等\n */\n // 处理有时为空的情况\n if (worksheet.getDirtyCells(row, col, s.rowCount, s.colCount).length) {\n cells += worksheet.getDirtyCells(row, col, s.rowCount, s.colCount)[0].newValue;\n }\n }\n }\n return cells;\n };\n\n // 初始第一个表格\n const ssHotTopInit = () => {\n const spread = new GC.Spread.Sheets.Workbook(document.getElementById('ssHost') as HTMLElement);\n const sheet = spread.getActiveSheet();\n worksheet = sheet;\n workbook = spread;\n ssHotTop(\n spread,\n budgetTableData,\n budgetTableData.inputTableCell,\n budgetTableData.header,\n false,\n true,\n budgetInfoData.programInfoVo.bu\n );\n inputEventToFormula(spread, budgetTableData, budgetTableData.header);\n autoHeaderFitColumn(spread, budgetTableData.header);\n if (budgetTableData.inputTableCell.length > 0 && isOverview.value === 'Overview') {\n initOutlineColumn(sheet);\n }\n // 初始拿到脏数据\n oldTableData = getAllDirtyCells(budgetTableData.inputTableCell);\n };\n\n const ssHotSmallInit = () => {\n const spreadSmall = new GC.Spread.Sheets.Workbook(document.getElementById('ssHostSmall') as HTMLElement);\n const sheetSmall = spreadSmall.getActiveSheet();\n worksheetSmall = sheetSmall;\n workbookSmall = spreadSmall;\n ssHostSmall(spreadSmall, sheetSmall, dataSmall.value);\n };\n //根据bu获取version最新版本\n const fetchLastVersion = (make: string) => {\n getVersion(make).then((data) => {\n latestKufriVersion = data;\n data == kufriVersion.value ? (latestVersion.value = true) : (latestVersion.value = false);\n });\n };\n\n //获取budgetInfo的信息\n const fetchBudGetInfo = (callback: any): void => {\n getBudgetInfo(route.query.pgmId).then((data) => {\n if (data?.offerType?.length) {\n Object.assign(budgetInfoData, data);\n offerTypeValue.value = data.offerType[0].offerTypeId;\n callback && callback();\n } else {\n spinFlagSave.value = false;\n }\n });\n };\n const getBudgetId = (siofferId: string): string => {\n const siOfferList = budgetInfoData.offerType.filter((item) => {\n return item.offerTypeId == offerTypeValue.value;\n });\n const budgetIdList = siOfferList[0].siOfferCustomerVo.find((item) => {\n return item.siOfferId === siofferId;\n });\n let budgetId = '';\n if (budgetIdList) {\n if (budgetIdList.fleetCustomerList) {\n budgetId = customerValue.value;\n } else {\n budgetId = budgetIdList.budgetId as string;\n }\n }\n return budgetId;\n };\n //根据offerId获取budget table 主数据\n const fetchBudgetTableData = (budgetId: string): void => {\n spinFlagSave.value = true;\n if (workbook) {\n if (worksheet) {\n // worksheet.clearPendingChanges()\n worksheet.unbindAll();\n }\n workbook.unbindAll();\n workbook.destroy();\n }\n if (workbookSmall) {\n if (worksheetSmall) {\n // worksheetSmall.clearPendingChanges()\n worksheetSmall.unbindAll();\n }\n workbookSmall.unbindAll();\n workbookSmall.destroy();\n }\n if (budgetId === undefined) {\n findbudgetDataOverview(route.query.pgmId, offerTypeValue.value)\n .then((data) => {\n budgetTableDataH.value = (data.inputTableCell.length + 1) * 40;\n Object.assign(budgetTableData, handlerSheetsData(data, active.value, headerArr()), true);\n //如果初始化后直接调用bindDataTable 更新数据而不是初始化\n ssHotTopInit();\n })\n .catch(() => {\n spinFlagSave.value = false;\n });\n fleetBudgetDataSummary(route.query.pgmId, offerTypeValue.value).then((data) => {\n dataSmall.value = data;\n ssHotSmallInit();\n spinFlagSave.value = false;\n });\n } else {\n getBudgetTableData(budgetId)\n .then((data) => {\n if (data.inputTableCell.length < 1) {\n message.warning('No Data!');\n spinFlagSave.value = false;\n return;\n }\n budgetTableDataH.value = (data.inputTableCell.length + 1) * 40;\n Object.assign(budgetTableData, handlerSheetsData(data, active.value, headerArr()));\n //如果初始化后直接调用bindDataTable 更新数据而不是初始化\n ssHotTopInit();\n inputEventToFormula(workbook, budgetTableData, budgetTableData.header);\n spinFlagSave.value = false;\n })\n .catch(() => {\n spinFlagSave.value = false;\n });\n }\n };\n\n //获取kufri的数据\n const fetchBudgetKufriData = (): void => {\n getBudgetKufriData(getBudgetId(siOfferValue.value)).then((data) => {\n Object.assign(budgetKufriData, data);\n });\n };\n\n // copy kufri 需求 copy kufri字段的值到Pipeline Override\n const handlerCopyKufriClick = (sheet: GC.Spread.Sheets.Worksheet): void => {\n //汇总行的type\n const summaryTypes = ['TYPECLASSSUMMARY', 'MODELYEARSUMMARY'];\n //kufri Pipeline Override的索引\n const index: number[] = [];\n //根据header确认着两个字段的索引\n for (const item of budgetTableData.header) {\n if (item.name.indexOf('Kufri') > -1) {\n index.push(item.columnNumber);\n }\n if (item.name.indexOf('Pipeline Override') > -1) {\n index.push(item.columnNumber);\n }\n }\n\n for (let row = 0; row < budgetTableData.inputTableCell.length; row++) {\n //排除汇总行\n if (summaryTypes.includes(budgetTableData.inputTableCell[row][0].type)) {\n continue;\n }\n for (let cell = 0; cell < budgetTableData.inputTableCell[row].length; cell++) {\n //判断Pipeline Override 是 WRITE 在赋值\n if (budgetTableData.inputTableCell[row][index[1]].type === 'WRITE') {\n budgetTableData.inputTableCell[row][index[1]].contents =\n budgetTableData.inputTableCell[row][index[0]].contents;\n }\n }\n }\n bindDataTable(workbook, budgetTableData.inputTableCell);\n autoHeaderFitColumn(workbook, budgetTableData.header);\n };\n\n // 显示月份的具体信息\n const handlerCheckboxChange = (): void => {\n spinFlagSave.value = true;\n // 返回数据后\n if (active.value) {\n getFillInMonthlyData(getBudgetId(siOfferValue.value)).then((res) => {\n fetchBudGetInfo(() => {\n spinFlagSave.value = false;\n });\n Object.assign(budgetTableData, handlerSheetsData(res, active.value, headerArr()));\n if (workbook) {\n inputEventToFormula(workbook, budgetTableData, budgetTableData.header);\n setHeader(workbook, budgetTableData.header);\n bindDataTable(workbook, budgetTableData.inputTableCell);\n autoHeaderFitColumn(workbook, budgetTableData.header);\n setHeaderCellTypeTip(workbook, budgetTableData.header);\n }\n });\n } else {\n getCancelFillInMonthlyData(getBudgetId(siOfferValue.value)).then((res) => {\n fetchBudGetInfo(() => {\n spinFlagSave.value = false;\n });\n Object.assign(budgetTableData, handlerSheetsData(res, active.value, headerArr()));\n if (workbook) {\n inputEventToFormula(workbook, budgetTableData, budgetTableData.header);\n setHeader(workbook, budgetTableData.header);\n bindDataTable(workbook, budgetTableData.inputTableCell);\n autoHeaderFitColumn(workbook, budgetTableData.header);\n setHeaderCellTypeTip(workbook, budgetTableData.header);\n }\n });\n }\n };\n\n // 刷新数据\n const handleRefresh = () => {\n return new Promise((resolve, reject) => {\n if (latestVersion.value) {\n fetchBudgetKufriData();\n fetchBudgetTableData(getBudgetId(siOfferValue.value));\n }\n resolve(true);\n });\n };\n\n //处理保存\n const handlerSaveClick = () => {\n spinFlagSave.value = true;\n return new Promise((resolve, reject) => {\n const closeWindowEventHandler = (event: any) => {\n // Cancel the event as stated by the standard.\n event.preventDefault();\n\n // Chrome requires returnValue to be set.\n event.returnValue = \"Budget not finish Calculating, Please don't leave or close current page.\";\n return \"Budget not finish Calculating, Please don't leave or close current page.\";\n };\n window.addEventListener('beforeunload', closeWindowEventHandler);\n\n const _budgetTableData = deepClone(budgetTableData);\n _budgetTableData.inputTableCell.forEach((row) => {\n row.forEach((cell) => {\n delete cell.contentsType;\n delete cell.trigger;\n delete cell.visible;\n delete cell.align;\n delete cell.width;\n });\n });\n updateInputData(_budgetTableData)\n .then((res) => {\n window.removeEventListener('beforeunload', closeWindowEventHandler);\n\n handleRefresh().then(() => {\n resolve(res);\n spinFlagSave.value = false;\n });\n })\n .catch((err) => {\n reject(err);\n });\n });\n };\n\n //切换显示\n const handleSetVolumeBaseClick = (): void => {\n visible.value = !visible.value;\n };\n\n //处理切换Volume Base\n const handlerOk = (type: string): void => {\n spinFlagSave.value = true;\n //顺序是固定的 所以找到的索引肯定是Kufri 和 Pipeline Override\n const volumeBaseKeys: string[] = ['Kufri', 'Pipeline Override'];\n const volumeBaseIndex: number[] = [];\n for (let i = 0; i < budgetTableData.header.length; i++) {\n if (\n budgetTableData.header[i].name.indexOf('Kufri') > -1 ||\n budgetTableData.header[i].name.indexOf('Pipeline Override') > -1\n ) {\n volumeBaseIndex.push(i);\n }\n }\n const _budgetTableData = deepClone(budgetTableData);\n _budgetTableData.header[volumeBaseIndex[0]].name = `${type} ${volumeBaseKeys[0]}`;\n _budgetTableData.header[volumeBaseIndex[1]].name = `${type} ${volumeBaseKeys[1]}`;\n _budgetTableData.inputTableCell.forEach((row) => {\n row.forEach((cell) => {\n delete cell.contentsType;\n delete cell.trigger;\n delete cell.visible;\n delete cell.align;\n delete cell.width;\n });\n });\n\n updateInputData(_budgetTableData).then((data) => {\n handleRefresh().then((res) => {\n spinFlagSave.value = false;\n });\n });\n };\n\n const ToggleOfferType = (offerTypeId: string) => {\n offerTypeValue.value = offerTypeId;\n const activeOfferType = budgetInfoData.offerType.filter((item) => {\n item.offerTypeId == offerTypeId;\n });\n if (activeOfferType.length > 0) {\n siOfferData.value = activeOfferType[0].siOfferCustomerVo || [];\n siOfferValue.value = siOfferData.value[0].siOfferId;\n }\n };\n //处理切换offerType\n const handlerToggleOfferType = (offerTypeId: string): void => {\n // 拿到最新的脏数据,去对比是否相等,不相等就证明修改过,就提示用户是否保存\n newTableData = getAllDirtyCells(budgetTableData.inputTableCell);\n if (oldTableData !== newTableData && budgetInfoData.programInfoVo.status === 'Saved') {\n Modal.confirm({\n title: 'Note',\n content: 'Do you want to save?',\n onOk() {\n handlerSaveClick().then(() => {\n ToggleOfferType(offerTypeId);\n });\n },\n onCancel() {\n ToggleOfferType(offerTypeId);\n }\n });\n } else {\n ToggleOfferType(offerTypeId);\n }\n };\n const ToggleSiOffer = (\n siOfferId: string,\n make: string,\n byMonthStatus: boolean,\n kufriVersionn: string,\n siOffer: SiOfferCustomerVo\n ) => {\n isOverview.value = siOffer.viewTag;\n budgetPeriod.value = siOffer.period;\n siOfferValue.value = siOfferId;\n activeMakeValue.value = make;\n active.value = byMonthStatus;\n if (siOffer.fleetCustomerList) {\n kufriVersion.value = siOffer.fleetCustomerList[0].kufriVersion;\n } else {\n kufriVersion.value = kufriVersionn;\n }\n if (siOfferId !== undefined) fetchLastVersion(activeMakeValue.value);\n const siOfferList = budgetInfoData.offerType.filter((item) => item.offerTypeId === offerTypeValue.value)[0]\n .siOfferCustomerVo;\n // 如果有fleetCustomer,fleetCustomerList的第一个,没有才取siOfferId 的第一个的budgetId\n // 给customer下拉赋值\n const CustomerList = siOfferList.find((item) => item.siOfferId === siOfferValue.value);\n if (CustomerList && CustomerList.fleetCustomerList) {\n fleetCustomerList.value = CustomerList.fleetCustomerList;\n // 默认取第一个\n customerValue.value = fleetCustomerList.value[0].budgetId;\n }\n };\n\n //处理切换siOffer\n const handlerToggleSiOffer = (\n siOfferId: string,\n make: string,\n byMonthStatus: boolean,\n kufriVersionn: string,\n siOffer: SiOfferCustomerVo\n ): void => {\n // 拿到最新的脏数据,去对比是否相等,不相等就证明修改过,就提示用户是否保存\n newTableData = getAllDirtyCells(budgetTableData.inputTableCell);\n // 如果当时是overview也不需要判断,overview只是展示\n if (\n isOverview.value !== 'Overview' &&\n oldTableData !== newTableData &&\n budgetInfoData.programInfoVo.status === 'Saved'\n ) {\n Modal.confirm({\n title: 'Note',\n content: 'Do you want to save?',\n onOk() {\n handlerSaveClick().then(() => {\n ToggleSiOffer(siOfferId, make, byMonthStatus, kufriVersionn, siOffer);\n });\n },\n onCancel() {\n ToggleSiOffer(siOfferId, make, byMonthStatus, kufriVersionn, siOffer);\n }\n });\n } else {\n ToggleSiOffer(siOfferId, make, byMonthStatus, kufriVersionn, siOffer);\n }\n };\n\n // 切换customer事件\n const changeCustomer = () => {\n fetchBudgetTableData(customerValue.value);\n // fleet的kufriVersion放到了fleetCustomerList下面\n const objCustomer = fleetCustomerList.value.find((item: CustomerProps) => item.budgetId === customerValue.value);\n if (objCustomer !== undefined && Object.keys(objCustomer).length > 0 && 'kufriVersion' in objCustomer) {\n kufriVersion.value = objCustomer.kufriVersion;\n }\n };\n\n //根据offerTypeID 获取对应的siOffer\n watch(offerTypeValue, (value) => {\n if (value === '') return;\n const siOfferList = budgetInfoData.offerType.filter((item) => {\n return item.offerTypeId == value;\n })[0].siOfferCustomerVo;\n // siOffer\n siOfferData.value = siOfferList;\n siOfferValue.value = siOfferList[0].siOfferId;\n // 如果有fleetCustomer,fleetCustomerList的第一个,没有才取siOfferId 的第一个的budgetId\n // 给customer下拉赋值\n if (siOfferList[0].fleetCustomerList) {\n fleetCustomerList.value = siOfferList[0].fleetCustomerList;\n // 默认取第一个\n customerValue.value = fleetCustomerList.value[0].budgetId;\n }\n\n activeMakeValue.value = siOfferList[0].make;\n active.value = siOfferList[0].byMonthStatus;\n if (siOfferList[0].fleetCustomerList && siOfferList[0].fleetCustomerList.length > 0) {\n kufriVersion.value = siOfferList[0].fleetCustomerList[0].kufriVersion;\n } else {\n kufriVersion.value = siOfferList[0].kufriVersion as string;\n }\n fetchLastVersion(activeMakeValue.value);\n });\n\n //根据offerTypeID 获取对应的siOffer\n watch(siOfferValue, (value) => {\n if (value === '') return;\n // 切换input by month需要重新赋值\n active.value = (\n (\n budgetInfoData.offerType.find((item: any) => item.offerTypeId === offerTypeValue.value) as any\n ).siOfferCustomerVo.find((item: any) => item.siOfferId === value) as any\n ).byMonthStatus;\n fetchBudgetTableData(getBudgetId(value));\n if (value !== undefined) fetchBudgetKufriData();\n //切换sioffer 清空spread js 事件\n });\n\n //处理侧边栏变化后刷新spread js\n watch(\n () => state.sideNavCollapsed,\n (value) => {\n nextTick(() => {\n workbook.refresh();\n });\n }\n );\n watch(\n () => activeMakeValue.value,\n (value) => {\n nextTick(() => {\n workbookSmall.refresh();\n });\n }\n );\n\n const handleMounted = () => {\n spinFlagSave.value = true;\n fetchBudGetInfo(() => {\n spinFlagSave.value = false;\n });\n ssHotSmallInit();\n };\n\n onMounted(() => {\n handleMounted();\n });\n\n onBeforeUnmount(() => {\n workbook?.destroy();\n workbookSmall?.destroy();\n });\n\n const updateKufriVersion = () => {\n if (latestVersion.value) {\n return;\n }\n Modal.confirm({\n title: 'Confirm',\n content: 'Confirm to Update',\n onOk: async () => {\n await updateVersion(activeMakeValue.value, getBudgetId(siOfferValue.value));\n kufriVersion.value = latestKufriVersion;\n latestVersion.value = true;\n fetchBudgetKufriData();\n fetchBudgetTableData(getBudgetId(siOfferValue.value));\n }\n });\n };\n\n const handleRegenerate = () => {\n Modal.confirm({\n title: 'Are you sure you want to regenerate program budget?',\n okText: 'Yes',\n cancelText: 'No',\n onOk() {\n budgetGenerate(currentProgramId.value).then((res: any) => {\n offerTypeValue.value = '';\n siOfferValue.value = '';\n if (res.code === '0') {\n handleMounted();\n message.success('Regenerate successfully');\n }\n });\n }\n });\n };\n\n return {\n //是否展示 弹窗\n visible,\n active,\n\n //budget data\n ...toRefs(budgetInfoData),\n siOfferData,\n ...toRefs(budgetKufriData),\n\n //当前的value\n offerTypeValue,\n siOfferValue,\n activeMakeValue,\n kufriVersion,\n\n //当前的tab\n currentTab,\n\n budgetTableDataH,\n budgetAllocationTableDataH,\n budgetTableData,\n\n //事件处理\n handlerCopyKufriClick,\n handlerSaveClick,\n handleSetVolumeBaseClick,\n handlerOk,\n handlerCheckboxChange,\n handleRefresh,\n handlerToggleOfferType,\n handlerToggleSiOffer,\n\n //是否是最新的version\n latestVersion,\n\n //转换千分数\n toThousands,\n\n // customer\n customerValue,\n fleetCustomerList,\n // 特殊offerType的处理\n visibleOfferList,\n isVisibleSpecialIndex,\n changeCustomer,\n isOverview,\n budgetPeriod,\n spinFlag,\n tableHeight,\n spinFlagSave,\n updateKufriVersion,\n navArr,\n handleRegenerate\n };\n }\n});\n","import { render } from \"./BudgutInput.vue?vue&type=template&id=a8abc730&scoped=true&ts=true\"\nimport script from \"./BudgutInput.vue?vue&type=script&lang=ts\"\nexport * from \"./BudgutInput.vue?vue&type=script&lang=ts\"\n\nimport \"./BudgutInput.vue?vue&type=style&index=0&id=a8abc730&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-a8abc730\"]])\n\nexport default __exports__","import { normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeStyle as _normalizeStyle, createTextVNode as _createTextVNode, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4d45b05e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"tabs d-f\" }\nconst _hoisted_2 = [\"onClick\"]\nconst _hoisted_3 = { class: \"main flex-w-auto bg-fff d-f flex-d-c\" }\nconst _hoisted_4 = { class: \"d-f sioffer\" }\nconst _hoisted_5 = { class: \"d-f align-c\" }\nconst _hoisted_6 = [\"onClick\"]\nconst _hoisted_7 = { class: \"flex-div justify-e\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Business Unit\", -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Program Status\", -1))\nconst _hoisted_10 = { class: \"d-f m-t-16\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"d-f flex-d-c flex-w-auto m-r-16\"\n}\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"Customer:\", -1))\nconst _hoisted_13 = { class: \"d-f flex-d-c flex-w-auto\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"PBP Kufri:\", -1))\nconst _hoisted_15 = { class: \"d-f flex-d-c flex-w-auto m-l-16\" }\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"PBP Budget:\", -1))\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_20 = { class: \"d-f flex-d-c flex-w-auto\" }\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"CBU Kufri:\", -1))\nconst _hoisted_22 = { class: \"d-f flex-d-c flex-w-auto m-l-16\" }\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"CBU Budget:\", -1))\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_26 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_27 = { class: \"d-f flex-d-c flex-w-auto\" }\nconst _hoisted_28 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"VAN Kufri:\", -1))\nconst _hoisted_29 = { class: \"d-f flex-d-c flex-w-auto m-l-16\" }\nconst _hoisted_30 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"VAN Budget:\", -1))\nconst _hoisted_31 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_32 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_33 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_34 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_35 = { class: \"d-f flex-d-c flex-w-auto\" }\nconst _hoisted_36 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"DENZA Kufri:\", -1))\nconst _hoisted_37 = { class: \"d-f flex-d-c flex-w-auto m-l-16\" }\nconst _hoisted_38 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"DENZA Budget:\", -1))\nconst _hoisted_39 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_40 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_41 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_42 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-d-c flex-w-auto m-l-16\" }, null, -1))\nconst _hoisted_43 = { class: \"budget-content flex-w-auto d-f flex-d-c\" }\nconst _hoisted_44 = {\n key: 0,\n style: {\"height\":\"100px\"}\n}\nconst _hoisted_45 = {\n class: \"f-l\",\n style: {\"width\":\"310px\"}\n}\nconst _hoisted_46 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"m-r-10 f-l m-t-5\" }, \"Budget Period:\", -1))\nconst _hoisted_47 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"f-r table-small\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", {\n id: \"ssHostSmall\",\n class: \"table-small-spread\"\n })\n], -1))\nconst _hoisted_48 = { class: \"budget-table m-t-16 flex-w-auto m-b-10\" }\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_a_tooltip = _resolveComponent(\"a-tooltip\")!\n const _component_a_divider = _resolveComponent(\"a-divider\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_input = _resolveComponent(\"a-input\")!\n const _component_BudgetInputSet = _resolveComponent(\"BudgetInputSet\")!\n const _component_main_wrapper = _resolveComponent(\"main-wrapper\")!\n\n return (_openBlock(), _createBlock(_component_main_wrapper, { className: \"p-l-r-10 overflow-h\" }, {\n header: _withCtx(() => [\n _createVNode(_component_breadcrumb, { dataSource: [] }, {\n default: _withCtx(() => [\n _createElementVNode(\"ul\", _hoisted_1, [\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"tab\", [_ctx.currentTab === 'budget' ? 'active' : null]])\n }, \"Budget\", 2)\n ])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"ul\", {\n class: \"offtypes d-f\",\n style: _normalizeStyle({ width: (_ctx.offerType.length * 200 + 4 )+ 'px' })\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.offerType, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\"offtype-item cursor-p\", [_ctx.offerTypeValue === item.offerTypeId ? 'active' : '']]),\n key: item.offerTypeId,\n onClick: ($event: any) => (_ctx.handlerToggleOfferType(item.offerTypeId))\n }, _toDisplayString(item.offerTypeName), 11, _hoisted_2))\n }), 128))\n ], 4),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"ul\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.siOfferData, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\"sioffer-item cursor-p\", [_ctx.siOfferValue === item.siOfferId ? 'active' : '']]),\n key: item.siOfferId,\n onClick: ($event: any) => (_ctx.handlerToggleSiOffer(item.siOfferId, item.make, item.byMonthStatus, item.kufriVersion, item))\n }, _toDisplayString(item.viewTag), 11, _hoisted_6))\n }), 128))\n ]),\n _createElementVNode(\"ul\", _hoisted_7, [\n _createVNode(_component_a_tooltip, { placement: \"top\" }, {\n title: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.programInfoVo.programName), 1)\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.programInfoVo.programCode), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_a_divider, {\n type: \"vertical\",\n class: \"a-divider\"\n }),\n _createVNode(_component_a_tooltip, { placement: \"top\" }, {\n title: _withCtx(() => [\n _hoisted_8\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.programInfoVo.bu), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_a_divider, {\n type: \"vertical\",\n class: \"a-divider\"\n }),\n _createVNode(_component_a_tooltip, { placement: \"top\" }, {\n title: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(!_ctx.latestVersion ? 'Kufri Version 已更新' : 'Kufri Version'), 1)\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"version\", {active: _ctx.latestVersion === false}])\n }, [\n _createTextVNode(_toDisplayString(_ctx.kufriVersion) + \" \", 1),\n _createElementVNode(\"p\", {\n class: _normalizeClass({ active: _ctx.latestVersion === false })\n }, \"!\", 2)\n ], 2)\n ]),\n _: 1\n }),\n _createVNode(_component_a_divider, {\n type: \"vertical\",\n class: \"a-divider\"\n }),\n _createVNode(_component_a_tooltip, { placement: \"top\" }, {\n title: _withCtx(() => [\n _hoisted_9\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.programInfoVo.status), 1)\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n (_ctx.siOfferData.find(item => item.siOfferId === _ctx.siOfferValue) && _ctx.siOfferData.find(item => item.siOfferId === _ctx.siOfferValue).fleetCustomerList && _ctx.isOverview !== 'Overview')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _hoisted_12,\n _createVNode(_component_a_select, {\n value: _ctx.customerValue,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.customerValue) = $event)),\n class: \"input-select\",\n onChange: _ctx.changeCustomer\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.fleetCustomerList, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.budgetId,\n key: item.budgetId\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.customer), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.activeMakeValue === 'PBP')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createElementVNode(\"div\", _hoisted_13, [\n _hoisted_14,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.pbpKufri)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _hoisted_16,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.pbpBudget)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _hoisted_17,\n _hoisted_18,\n _hoisted_19\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.activeMakeValue === 'CBU')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _createElementVNode(\"div\", _hoisted_20, [\n _hoisted_21,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.cbuKufri)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_22, [\n _hoisted_23,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.cbuBudget)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _hoisted_24,\n _hoisted_25,\n _hoisted_26\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.activeMakeValue === 'VAN')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 3 }, [\n _createElementVNode(\"div\", _hoisted_27, [\n _hoisted_28,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.vanKufri)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _hoisted_30,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.vanBudget)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _hoisted_31,\n _hoisted_32,\n _hoisted_33,\n _hoisted_34\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.activeMakeValue === 'DENZA')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 4 }, [\n _createElementVNode(\"div\", _hoisted_35, [\n _hoisted_36,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.denzaKufri)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_37, [\n _hoisted_38,\n _createVNode(_component_a_input, {\n value: _ctx.toThousands(Math.round(_ctx.denzaBudget)),\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _hoisted_39,\n _hoisted_40,\n _hoisted_41,\n _hoisted_42\n ], 64))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_43, [\n (_ctx.isOverview === 'Overview')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_44, [\n _createElementVNode(\"div\", _hoisted_45, [\n _hoisted_46,\n _createVNode(_component_a_input, {\n value: _ctx.budgetPeriod,\n disabled: \"\",\n class: \"width-200 f-l\"\n }, null, 8, [\"value\"])\n ]),\n _hoisted_47\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_48, [\n _createElementVNode(\"div\", {\n id: \"ssHost\",\n style: _normalizeStyle([{\"text-align\":\"left\"}, { height: '100%', width: 100 + '%' }])\n })\n ])\n ])\n ]),\n _createVNode(_component_BudgetInputSet, {\n visible: _ctx.visible,\n \"onUpdate:visible\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.visible) = $event)),\n onOk: _ctx.handlerOk\n }, null, 8, [\"visible\", \"onOk\"])\n ]),\n _: 1\n }))\n}","\n import { defineComponent, onMounted, ref, watch, reactive, toRefs, onBeforeUnmount, nextTick } from 'vue'\n import BudgetInputSet from './BudgetInputSet.vue'\n import {\n BudgetTableProps,\n BudgetInfoProps,\n SiOfferCustomerVo,\n BudgetKufriProps,\n CustomerProps,\n SmallTableProps\n } from './types'\n import '@grapecity/spread-sheets/styles/gc.spread.sheets.excel2016colorful.css'\n import GC from '@grapecity/spread-sheets'\n import './licensen';\n import { initOutlineColumn } from '../BudgetReport/utils';\n import {\n getBudgetInfo,\n getBudgetTableData,\n updateInputData,\n getBudgetKufriData,\n findbudgetDataOverview,\n getVersion,\n updateVersion,\n updateProgramView,\n budgetExportView, getBudgetAllocationData,\n getFillInMonthlyData,\n getCancelFillInMonthlyData,\n fleetBudgetDataSummary\n } from '@/API/budget';\n import {\n handlerSheetsData,\n ssHotTop,\n bindDataTable,\n setHeader,\n inputEventToFormula,\n autoHeaderFitColumn,\n setHeaderCellTypeTip,\n ssHostSmall,\n isVisibleSpecialIndex\n } from './utils';\n import { useRoute, useRouter } from 'vue-router'\n import { useStore } from \"vuex\";\n import deepClone from \"@/utils/deepClone\";\n import { toThousands} from \"@/utils/approve\";\n // 不同的offerType, inputMonth和按钮copy kufri,setVolume base显示否,都有brand,没有model year.只有overview会有customer\n const visibleOfferList = ['BMBS Initiated Fleet', 'BMBS Oversea Returnee', 'BMBS Initiated Fleet - Special', 'Dealer Initiated Fleet', 'Dealer Initiated Fleet - Special', 'Dealer service support']\n const companyCar = ['Company Car']\n // PMT, Demo Car 是通用的,因判断了有没有Model Year\n const tableHeaderListSummery = ['Period', 'Brand', \"Type Class\", \"Model Year\", \"Model\"]\n // fleet overview\n const tableHeaderListSummery2 = ['Make', 'Customer', 'Brand', 'Type Class', \"Model Year\", 'Model']\n\n \n // 只要在这个里面的,就是tableHeaderListSummery1, 在这个里面并且有overview的,就是tableHeaderListSummery2\n // overview的小表格\n \n export default defineComponent({\n components: { BudgetInputSet },\n name: 'Budgut Input Controlling',\n setup() {\n const route = useRoute();\n const router = useRouter();\n const { state } = useStore();\n const visible = ref(false);\n const active = ref(false); // 标识Input By Month是否选中\n\n const offerTypeValue = ref('');\n const siOfferValue = ref('');\n const currentTab = ref('budget');\n \n const fleetCustomerList = ref([])\n\n //是否是最新的version\n const latestVersion = ref(null);\n // 是否是overview fleet\n\n const isOverview = ref('')\n const budgetPeriod = ref('')\n \n\n\n\n\n // sheet当前表格的初始化\n let worksheet: GC.Spread.Sheets.Worksheet\n let workbook: GC.Spread.Sheets.Workbook\n let worksheetSmall: GC.Spread.Sheets.Worksheet\n let workbookSmall: GC.Spread.Sheets.Workbook\n //budgetInfo\n const budgetInfoData = reactive({\n offerType: [],\n programInfoVo: {\n programId: '',\n programCode: '',\n programName: '',\n status: '',\n kufriVersion: '',\n bu: '',\n }\n });\n\n const dataSmall = ref([])\n\n // 定义kufriVersion\n const kufriVersion = ref('')\n\n //siOffer\n const siOfferData = ref([]);\n\n //budget table data\n const budgetTableData = reactive({\n header: [],\n inputTableCell: []\n })\n\n //当前的sioffer下make\n const activeMakeValue = ref('');\n\n //budget kufri data\n const budgetKufriData = reactive({\n cbuKufri: '',\n cbuBudget: '',\n pbpKufri: '',\n pbpBudget: '',\n vanKufri: '',\n vanBudget: '',\n denzaKufri: '',\n denzaBudget: ''\n })\n\n\n // const hasCustomerList = () => {\n\n // }\n // customer选中值\n const customerValue = ref('')\n\n \n\n const budgetTableDataH = ref(400);\n\n const budgetAllocationTableDataH = ref(100);\n\n // 根据不同的offerType不同,需要处理的header也不同\n const headerArr = (): string[] => {\n let arr: string[];\n if (isVisibleSpecialIndex(visibleOfferList, offerTypeValue.value, budgetInfoData.offerType) > -1) {\n arr = tableHeaderListSummery2\n } else {\n arr = tableHeaderListSummery\n }\n return arr\n }\n\n // 初始第一个表格\n const ssHotTopInit = () => {\n const spread = new GC.Spread.Sheets.Workbook(document.getElementById('ssHost') as HTMLElement);\n const sheet = spread.getActiveSheet();\n worksheet = sheet\n workbook = spread;\n \n ssHotTop(spread, budgetTableData, budgetTableData.inputTableCell, budgetTableData.header, false, true, budgetInfoData.programInfoVo.bu);\n inputEventToFormula(spread, budgetTableData, budgetTableData.header);\n autoHeaderFitColumn(spread, budgetTableData.header);\n if (budgetTableData.inputTableCell.length > 0) {\n initOutlineColumn(sheet);\n }\n // 不能允许操作\n const option = {\n allowSelectLockedCells: false,\n allowSelectUnlockedCells: false,\n allowFilter: false,\n allowSort: false,\n allowResizeRows: true,\n allowResizeColumns: false,\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 sheet.options.isProtected = true;\n }\n \n const ssHotSmallInit = () => {\n const spreadSmall = new GC.Spread.Sheets.Workbook(document.getElementById('ssHostSmall') as HTMLElement);\n const sheetSmall = spreadSmall.getActiveSheet();\n worksheetSmall = sheetSmall\n workbookSmall = spreadSmall;\n ssHostSmall(spreadSmall, sheetSmall, dataSmall.value);\n }\n //根据bu获取version最新版本\n const fetchLastVersion = (make: string) => {\n getVersion(make).then(data => {\n data == kufriVersion.value ? latestVersion.value = true : latestVersion.value = false;\n })\n }\n\n //获取budgetInfo的信息\n const fetchBudGetInfo = (): void => {\n getBudgetInfo(route.query.pgmId).then(data => {\n Object.assign(budgetInfoData, data);\n offerTypeValue.value = data.offerType[0].offerTypeId;\n // fleetCustomerList.value = data.offerType[0].siOfferCustomerVo[0].fleetCustomerList\n // customerValue.value = fleetCustomerList.value[0].budgetId\n // fetchLastVersion(data.programInfoVo.bu);\n })\n }\n const getBudgetId = (siofferId: string): string => {\n const siOfferList = budgetInfoData.offerType.filter((item) => {\n return item.offerTypeId == offerTypeValue.value;\n })\n const budgetIdList = siOfferList[0].siOfferCustomerVo.find((item) => {\n return item.siOfferId === siofferId\n })\n let budgetId = '';\n if (budgetIdList) {\n if (budgetIdList.fleetCustomerList) {\n budgetId = budgetIdList.fleetCustomerList[0].budgetId\n } else {\n budgetId = budgetIdList.budgetId as string\n }\n }\n return budgetId\n }\n //根据offerId获取budget table 主数据\n const fetchBudgetTableData = (budgetId: string): void => {\n if (budgetId === undefined) {\n findbudgetDataOverview(route.query.pgmId, offerTypeValue.value).then(data => {\n budgetTableDataH.value = (data.inputTableCell.length + 1) * 40;\n Object.assign(budgetTableData, handlerSheetsData(data, active.value, headerArr()));\n //如果初始化后直接调用bindDataTable 更新数据而不是初始化\n if (worksheet) {\n workbook.destroy();\n ssHotTopInit();\n } else {\n ssHotTopInit();\n }\n })\n fleetBudgetDataSummary(route.query.pgmId, offerTypeValue.value).then(data => {\n dataSmall.value = data\n if (worksheetSmall) {\n workbookSmall.destroy();\n ssHotSmallInit();\n } else {\n ssHotSmallInit();\n }\n })\n } else {\n getBudgetTableData(budgetId).then(data => {\n budgetTableDataH.value = (data.inputTableCell.length + 1) * 40;\n Object.assign(budgetTableData, handlerSheetsData(data, active.value, headerArr()));\n //如果初始化后直接调用bindDataTable 更新数据而不是初始化\n if (worksheet) {\n workbook.destroy();\n ssHotTopInit();\n // inputEventToFormula(workbook, budgetTableData, budgetTableData.header);\n // setHeader(workbook, budgetTableData.header);\n // bindDataTable(workbook, budgetTableData.inputTableCell);\n // autoHeaderFitColumn(workbook, budgetTableData.header);\n // setHeaderCellTypeTip(workbook, budgetTableData.header);\n // ssHotSmallInit() // 异步时,初始化才能拿到\n } else {\n ssHotTopInit();\n }\n })\n }\n }\n\n //获取kufri的数据\n const fetchBudgetKufriData = (): void => {\n getBudgetKufriData(getBudgetId(siOfferValue.value)).then(data => {\n Object.assign(budgetKufriData, data);\n })\n }\n\n // copy kufri 需求 copy kufri字段的值到Pipeline Override\n const handlerCopyKufriClick = (sheet: GC.Spread.Sheets.Worksheet): void => {\n //汇总行的type\n const summaryTypes = ['TYPECLASSSUMMARY', 'MODELYEARSUMMARY'];\n //kufri Pipeline Override的索引\n const index: number[] = [];\n //根据header确认着两个字段的索引\n for (const item of budgetTableData.header) {\n if (item.name.indexOf('Kufri') > -1) {\n index.push(item.columnNumber)\n }\n if (item.name.indexOf('Pipeline Override') > -1) {\n index.push(item.columnNumber)\n }\n }\n\n for (let row = 0; row < budgetTableData.inputTableCell.length; row++) {\n //排除汇总行\n if (summaryTypes.includes(budgetTableData.inputTableCell[row][0].type)) {\n continue;\n }\n for (let cell = 0; cell < budgetTableData.inputTableCell[row].length; cell++) {\n //判断Pipeline Override 是 WRITE 在赋值\n if (budgetTableData.inputTableCell[row][index[1]].type === 'WRITE') {\n budgetTableData.inputTableCell[row][index[1]].contents = budgetTableData.inputTableCell[row][index[0]].contents\n }\n }\n }\n bindDataTable(workbook, budgetTableData.inputTableCell);\n autoHeaderFitColumn(workbook, budgetTableData.header);\n }\n\n // 显示月份的具体信息\n const handlerCheckboxChange = (): void => {\n // 返回数据后\n if (active.value) {\n getFillInMonthlyData(getBudgetId(siOfferValue.value)).then(res => {\n Object.assign(budgetTableData, handlerSheetsData(res, active.value, headerArr()));\n if (workbook) {\n inputEventToFormula(workbook, budgetTableData, budgetTableData.header);\n setHeader(workbook, budgetTableData.header);\n bindDataTable(workbook, budgetTableData.inputTableCell);\n autoHeaderFitColumn(workbook, budgetTableData.header);\n setHeaderCellTypeTip(workbook, budgetTableData.header);\n }\n })\n } else {\n getCancelFillInMonthlyData(getBudgetId(siOfferValue.value)).then((res) => {\n Object.assign(budgetTableData, handlerSheetsData(res, active.value, headerArr()));\n if (workbook) {\n inputEventToFormula(workbook, budgetTableData, budgetTableData.header);\n setHeader(workbook, budgetTableData.header);\n bindDataTable(workbook, budgetTableData.inputTableCell);\n autoHeaderFitColumn(workbook, budgetTableData.header);\n setHeaderCellTypeTip(workbook, budgetTableData.header);\n }\n })\n }\n }\n\n // 刷新数据\n const handleRefresh = (): void => {\n //用于更新budgetReport使用,不关心是否成功\n updateProgramView(getBudgetId(siOfferValue.value)).then(res => {\n console.log('更新数据到budgetReport', res);\n })\n \n //生成分摊\n getBudgetAllocationData(getBudgetId(siOfferValue.value)).then(data => {\n //用于更新budgetReport使用,不关心是否成功\n budgetExportView(getBudgetId(siOfferValue.value)).then(res => {\n console.log('更新数据到budgetReport', res);\n })\n })\n if (latestVersion.value) {\n fetchBudgetKufriData();\n fetchBudgetTableData(getBudgetId(siOfferValue.value));\n } else {\n updateVersion(activeMakeValue.value, getBudgetId(siOfferValue.value)).then(data => {\n fetchBudGetInfo();\n })\n }\n }\n\n //处理保存\n const handlerSaveClick = (): void => {\n const _budgetTableData = deepClone(budgetTableData);\n _budgetTableData.inputTableCell.forEach(row => {\n row.forEach(cell => {\n delete cell.contentsType;\n delete cell.trigger;\n delete cell.visible;\n delete cell.align;\n delete cell.width;\n })\n });\n updateInputData(_budgetTableData).then(data => {\n handleRefresh();\n })\n }\n\n //切换显示\n const handleSetVolumeBaseClick = (): void => {\n visible.value = !visible.value;\n }\n\n //处理切换Volume Base\n const handlerOk = (type: string): void => {\n //顺序是固定的 所以找到的索引肯定是Kufri 和 Pipeline Override\n const volumeBaseKeys: string[] = ['Kufri', 'Pipeline Override'];\n const volumeBaseIndex: number[] = [];\n for (let i = 0; i < budgetTableData.header.length; i ++) {\n if (budgetTableData.header[i].name.indexOf('Kufri') > -1 || budgetTableData.header[i].name.indexOf('Pipeline Override') > -1) {\n volumeBaseIndex.push(i);\n }\n }\n const _budgetTableData = deepClone(budgetTableData);\n _budgetTableData.header[volumeBaseIndex[0]].name = `${type} ${volumeBaseKeys[0]}`;\n _budgetTableData.header[volumeBaseIndex[1]].name = `${type} ${volumeBaseKeys[1]}`;\n _budgetTableData.inputTableCell.forEach(row => {\n row.forEach(cell => {\n delete cell.contentsType;\n delete cell.trigger;\n delete cell.visible;\n delete cell.align;\n delete cell.width;\n })\n })\n updateInputData(_budgetTableData).then(data => {\n handleRefresh();\n })\n }\n\n //处理切换offerType\n const handlerToggleOfferType = (offerTypeId: string): void => {\n offerTypeValue.value = offerTypeId;\n const activeOfferType = budgetInfoData.offerType.filter(item => {\n item.offerTypeId == offerTypeId;\n })\n if (activeOfferType.length > 0) {\n siOfferData.value = activeOfferType[0].siOfferCustomerVo || [];\n siOfferValue.value = siOfferData.value[0].siOfferId\n }\n }\n\n //处理切换siOffer\n const handlerToggleSiOffer = (siOfferId: string, make: string, byMonthStatus: boolean, kufriVersionn: string, siOffer: SiOfferCustomerVo): void => {\n isOverview.value = siOffer.viewTag\n budgetPeriod.value = siOffer.period\n siOfferValue.value = siOfferId;\n activeMakeValue.value = make;\n active.value = byMonthStatus\n if (siOffer.fleetCustomerList) {\n kufriVersion.value = siOffer.fleetCustomerList[0].kufriVersion\n } else {\n kufriVersion.value = kufriVersionn\n }\n if (siOfferId !== undefined) fetchLastVersion(activeMakeValue.value);\n const siOfferList = budgetInfoData.offerType.filter((item) => item.offerTypeId === offerTypeValue.value)[0].siOfferCustomerVo;\n // 如果有fleetCustomer,fleetCustomerList的第一个,没有才取siOfferId 的第一个的budgetId\n // 给customer下拉赋值\n const CustomerList = siOfferList.find((item) => item.siOfferId === siOfferValue.value)\n if (CustomerList && CustomerList.fleetCustomerList) {\n fleetCustomerList.value = CustomerList.fleetCustomerList\n // 默认取第一个\n customerValue.value = fleetCustomerList.value[0].budgetId\n }\n }\n\n // 切换customer事件\n const changeCustomer = () => {\n fetchBudgetTableData(customerValue.value);\n // fleet的kufriVersion放到了fleetCustomerList下面\n const objCustomer = fleetCustomerList.value.find((item: CustomerProps) => item.budgetId === customerValue.value)\n if (objCustomer !== undefined && Object.keys(objCustomer).length > 0 && ('kufriVersion' in objCustomer)) {\n kufriVersion.value = objCustomer.kufriVersion\n }\n }\n\n //根据offerTypeID 获取对应的siOffer\n watch(offerTypeValue, (value) => {\n const siOfferList = budgetInfoData.offerType.filter((item) => {\n return item.offerTypeId == value;\n })[0].siOfferCustomerVo;\n // siOffer\n siOfferData.value = siOfferList;\n siOfferValue.value = siOfferList[0].siOfferId;\n // 如果有fleetCustomer,fleetCustomerList的第一个,没有才取siOfferId 的第一个的budgetId\n // 给customer下拉赋值\n if (siOfferList[0].fleetCustomerList) {\n fleetCustomerList.value = siOfferList[0].fleetCustomerList\n // 默认取第一个\n customerValue.value = fleetCustomerList.value[0].budgetId\n }\n \n activeMakeValue.value = siOfferList[0].make;\n active.value = siOfferList[0].byMonthStatus;\n if (siOfferList[0].fleetCustomerList && siOfferList[0].fleetCustomerList.length > 0) {\n kufriVersion.value = siOfferList[0].fleetCustomerList[0].kufriVersion\n } else {\n kufriVersion.value = siOfferList[0].kufriVersion as string\n }\n fetchLastVersion(activeMakeValue.value);\n })\n\n //根据offerTypeID 获取对应的siOffer\n watch(siOfferValue, (value) => {\n fetchBudgetTableData(getBudgetId(value));\n if (value !== undefined) fetchBudgetKufriData()\n /* if (value !== undefined) {\n fetchBudgetKufriData();\n } else {\n findbudgetDataOverview(route.query.pgmId, offerTypeValue.value)\n } */\n \n //切换sioffer 清空spread js 事件\n if (worksheet) {\n worksheet.unbindAll();\n }\n if (worksheetSmall) {\n worksheetSmall.unbindAll();\n }\n })\n\n //处理侧边栏变化后刷新spread js\n watch(() => state.sideNavCollapsed, (value) => {\n nextTick(() => {\n workbook.refresh();\n })\n })\n watch(() => activeMakeValue.value, (value) => {\n nextTick(() => {\n workbookSmall.refresh()\n })\n })\n onMounted(() => {\n fetchBudGetInfo();\n ssHotSmallInit()\n });\n\n onBeforeUnmount(() => {\n workbook.destroy();\n workbookSmall.destroy()\n })\n const handleReturn = () => {\n router.push({\n path: '/wordingbudget'\n })\n }\n return {\n //是否展示 弹窗\n visible,\n active,\n\n //budget data\n ...toRefs(budgetInfoData),\n siOfferData,\n ...toRefs(budgetKufriData),\n\n //当前的value\n offerTypeValue,\n siOfferValue,\n activeMakeValue,\n kufriVersion,\n\n //当前的tab\n currentTab,\n\n budgetTableDataH,\n budgetAllocationTableDataH,\n budgetTableData,\n\n //事件处理\n handlerCopyKufriClick,\n handlerSaveClick,\n handleSetVolumeBaseClick,\n handlerOk,\n handlerCheckboxChange,\n handleRefresh,\n handlerToggleOfferType,\n handlerToggleSiOffer,\n\n //是否是最新的version\n latestVersion,\n\n //转换千分数\n toThousands,\n\n // customer\n customerValue,\n fleetCustomerList,\n // 特殊offerType的处理\n visibleOfferList,\n isVisibleSpecialIndex,\n changeCustomer,\n isOverview,\n handleReturn,\n budgetPeriod\n }\n }\n })\n","import { render } from \"./BudgutInputControlling.vue?vue&type=template&id=4d45b05e&scoped=true&ts=true\"\nimport script from \"./BudgutInputControlling.vue?vue&type=script&lang=ts\"\nexport * from \"./BudgutInputControlling.vue?vue&type=script&lang=ts\"\n\nimport \"./BudgutInputControlling.vue?vue&type=style&index=0&id=4d45b05e&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-4d45b05e\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", {\n id: \"ssHost\",\n style: {\"height\":\"400px\",\"width\":\"calc(100% - 10px)\",\"text-align\":\"left\"}\n}, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.handleDownload && _ctx.handleDownload(...args))),\n class: \"add-button m-t-20 cursor-p m-b-10\"\n }, \"Export\"),\n _hoisted_1\n ]))\n}","\nimport { defineComponent, onMounted } from 'vue'\nimport { useStore } from 'vuex'\nimport '@grapecity/spread-sheets/styles/gc.spread.sheets.excel2016colorful.css'\nimport GCC from '@grapecity/spread-sheets'\nimport GC from '@grapecity/spread-sheets/dist/gc.spread.sheets.d'\nimport { IO } from \"@grapecity/spread-excelio\"\nimport saveAs from 'file-saver'\nimport axios from 'axios'\nexport default defineComponent({\n setup () {\n const store = useStore()\n const excelIo = new IO()\n let workbook: GCC.Spread.Sheets.Workbook\n const spreadInit = (spread: GCC.Spread.Sheets.Workbook) => {\n const excelFilePath = '/pgapi/files/test';\n axios({\n method: 'GET',\n url: excelFilePath, \n responseType: 'blob',\n data: '',\n headers: {\n 'accept': '*/*',\n 'Authorization': store.state.Authorization,\n 'X-USER-INFO': 'eyJ1c3JpZCI6ImZmODA4MDgxNzYxOGFmZjgwMTc2MThiMGJmZGQwMDAxIiwidXNybm0iOiJPQVNJU0lUQURNSU4wMiIsImZ1bG5tIjoiT0VNIElUIEFkbWluIiwiZW1haWwiOiJPQVNJUzA5QE9BU0lTLmNvbSIsInVzcnRwIjoxMDAwMSwidXNydHBubSI6Ik9FTSIsIm9yZ2lkIjoiMmRlOWY0NzRhODdhNDRhMGExNzkzOGIyMWJkYzg3ZTkiLCJvcmdubWNuIjpudWxsLCJvcmdubWVuIjpudWxsLCJzdGF0ZSI6dHJ1ZSwiY3J0ZWQiOjE2MDY4MTc1OTc2NDcsImNydGJ5IjoiT0FTSVNJVEFETUlOMDkiLCJjcnRieW5tIjoiT0FTSVNJVEFETUlOMDkifQ=='\n }\n }).then((res: any) => {\n const blob = new Blob([res.data], {type: 'application/vnd.ms-excel;charset=utf-8'})\n // convert Excel to JSON\n excelIo.open(blob, function (json: any) {\n const workbookObj = json;\n spread.fromJSON(workbookObj);\n const sheet = workbook.getActiveSheet();\n sheet.addRows(3, 1);\n })\n })\n }\n const handleDownload = () => {\n const json = workbook.toJSON();\n // here is excel IO API\n excelIo.save(json, function (blob: any) {\n saveAs.saveAs(blob, 'export.xlsx');\n }, function (e: any) {\n // process error\n console.log(e);\n });\n }\n onMounted(() => {\n const spread = new GCC.Spread.Sheets.Workbook(document.getElementById('ssHost') as HTMLElement);\n const sheet = spread.getActiveSheet();\n workbook = spread\n spreadInit(spread)\n })\n return {\n handleDownload\n }\n }\n})\n","import { render } from \"./DownloadExcel.vue?vue&type=template&id=1d70105b&ts=true\"\nimport script from \"./DownloadExcel.vue?vue&type=script&lang=ts\"\nexport * from \"./DownloadExcel.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\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_budget_report_content = _resolveComponent(\"budget-report-content\")!\n const _component_main_wrapper = _resolveComponent(\"main-wrapper\")!\n\n return (_openBlock(), _createBlock(_component_main_wrapper, { className: \"p-l-r-10 overflow-h\" }, {\n header: _withCtx(() => [\n _createVNode(_component_Breadcrumb, { dataSource: [{name: 'Guideline Report'}] })\n ]),\n default: _withCtx(() => [\n _createVNode(_component_budget_report_content)\n ]),\n _: 1\n }))\n}","\nimport { defineComponent } from 'vue'\nimport BudgetReportContent from '@/views/Budget/BudgetReport/Content.vue'\nexport default defineComponent({\n components: {\n BudgetReportContent\n }\n})\n","import { render } from \"./index.vue?vue&type=template&id=51b2ca91&ts=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e7b92ca0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"tabs d-f\" }\nconst _hoisted_2 = /*#__PURE__*/_createTextVNode(\"Design\")\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"Budget\")\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", {\n class: \"tab active\",\n href: \"javascript:;\"\n}, \"Allocation\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n id: \"ssHost\",\n class: \"m-t-8 bg-fff\"\n}, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_breadcrumb = _resolveComponent(\"breadcrumb\")!\n const _component_main_wrapper = _resolveComponent(\"main-wrapper\")!\n\n return (_openBlock(), _createBlock(_component_main_wrapper, { className: \"p-l-r-10\" }, {\n header: _withCtx(() => [\n _createVNode(_component_breadcrumb, { dataSource: [] }, {\n default: _withCtx(() => [\n _createElementVNode(\"nav\", _hoisted_1, [\n _createVNode(_component_router_link, {\n class: \"tab\",\n to: `/programdesign/design/?pgmId=${_ctx.pgmId}`\n }, {\n default: _withCtx(() => [\n _hoisted_2\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createVNode(_component_router_link, {\n class: \"tab\",\n to: `/budgetinput?pgmId=${_ctx.pgmId}`\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }, 8, [\"to\"]),\n _hoisted_4\n ])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }))\n}","import GC from \"@grapecity/spread-sheets\";\nimport { message } from \"ant-design-vue\";\n\nexport interface BudgetTableDataCell {\n id: string;\n budgBudgetHeaderId: string;\n budgBudgetRowId: string;\n contents: string;\n formula: string;\n columnNum: number;\n budgBudgetRownum: number | string;\n edited: boolean; //用户更改后需回传给后端计算\n type: string; //'TYPECLASSSUMMARY' || MODELYEARSUMMARY 汇总列且不可编辑 READ 只读 WRITE可编辑\n visible?: boolean; //控制是否显示当前contens内容\n contentsType?: string | undefined; //显示的是百分比还是正数,总共有text numeric percent\n trigger?: number[]; //互斥的索引\n align?: string; //对齐方式\n width?: number; //固定宽度\n}\n\nexport interface AllocationTableDataCell {\n id: string;\n allocationHeaderId: string;\n allocationRowId: string;\n contents: string;\n type: string;\n allocationRownum: number;\n allocationColumnNum: number;\n edited?: boolean; //用户更改后需回传给后端计算\n visible?: boolean; //控制是否显示当前contens内容\n contentsType?: string | undefined; //显示的是百分比还是正数,总共有text numeric percent\n trigger?: number[]; //互斥的索引\n align?: string; //对齐方式\n width?: number; //固定宽度\n}\nexport interface BudgetTableHeaderCell {\n id: string;\n budgBudgetId: string;\n name: string;\n formula: null | string;\n columnNumber: number;\n}\n\nexport interface BudgetTableProps {\n header: BudgetTableHeaderCell[];\n inputTableCell: BudgetTableDataCell[][];\n}\n\n\nexport interface BudgetAllocationTableProps {\n header: BudgetTableHeaderCell[];\n allocationTableCell: AllocationTableDataCell[][];\n}\n\n//type TYPECLASSSUMMARY MODELYEARSUMMARY 是汇总 READ 是只读\n//判断是否是可编辑cell\nexport const isEditCell = (type: string): boolean => {\n if (type === 'TYPECLASSSUMMARY' || type === 'MODELYEARSUMMARY') {\n return false;\n } else if (type === 'READ') {\n return false;\n } else {\n return true;\n }\n}\n\n//判断是否是汇总cell\nexport const isSummaryCell = (type: string): boolean => {\n if (type === 'TYPECLASSSUMMARY' || type === 'MODELYEARSUMMARY') {\n return true;\n } else {\n return false;\n }\n}\n\n// 绑定数据 locked true 表示锁定\nexport const bindDataTable = ( sheet: GC.Spread.Sheets.Worksheet, data: BudgetTableProps | BudgetAllocationTableProps): void => {\n sheet.suspendPaint();\n const cellData = 'inputTableCell' in data ? data.inputTableCell : data.allocationTableCell;\n const isAllocation = 'allocationTableCell' in data;\n for (let row = 0; row < cellData.length; row++) {\n //设置row高度\n sheet.setRowHeight(row, 40, GC.Spread.Sheets.SheetArea.viewport);\n for (let col = 0; col < cellData[row].length; col++) {\n //判断是否是budget input 如果是budget input 需要根据字段来确认是否表格锁定\n if (isAllocation) {\n sheet.getCell(row, col).locked(!isEditCell(cellData[row][col].type));\n }\n\n //设置对齐方式\n if (cellData[row][col].align) {\n sheet.getCell(row, col).hAlign(GC.Spread.Sheets.HorizontalAlign.left);\n }\n\n //判断是否是汇总列\n if (isSummaryCell(cellData[row][col].type)) {\n sheet.getCell(row, col).backColor('#B0CEEA');\n } else {\n sheet.getCell(row, col).backColor('#EFEFEF');\n }\n\n //不是分摊我&&可编辑的cell添加不同的颜色, 分摊默认都是#EFEFEF\n if (isEditCell(cellData[row][col].type) && !isAllocation) {\n sheet.getCell(row, col).backColor('#FFFFFF');\n }\n\n //自动换行\n sheet.getCell(row, col).wordWrap(true);\n\n //设置有宽度的cell,没有默认'2*'\n sheet.setColumnWidth(col, cellData[row][col].width || '2*', GC.Spread.Sheets.SheetArea.viewport);\n\n //根据显示类型格式化\n if (cellData[row][col].contentsType === 'percent') {\n sheet.setValue(row, col, cellData[row][col].visible !== false ? cellData[row][col].contents : '');\n // // 格式化成百分比\n sheet.setFormatter(row, col, \"0%\", GC.Spread.Sheets.SheetArea.viewport);\n //判断AVG SI% 需要序列化成0.00%\n } else if (cellData[row][col].contentsType === \"percentDecimal\") {\n sheet.setValue(row, col, cellData[row][col].visible !== false ? cellData[row][col].contents : '');\n sheet.setFormatter(row, col, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n } else {\n // 格式化成千分符\n sheet.setValue(row, col, cellData[row][col].visible !== false ? cellData[row][col].contents : '')\n //判断col是第一个不序列化为千分符 第一位是日期,如果序列化会有显示问题, 234 是文字序列化后没有显示问题\n col > 0 && sheet.setFormatter(row, col, \"#,##0\", GC.Spread.Sheets.SheetArea.viewport);\n }\n }\n }\n sheet.resumePaint();\n}\n\n\nexport const inputEventToFormula = (sheet: GC.Spread.Sheets.Worksheet, data: BudgetTableProps | BudgetAllocationTableProps): void => {\n sheet.bind(GC.Spread.Sheets.Events.ValueChanged, (e: any, info: any) => {\n // info 包含当前变的cell的位置信息 row(行) 和 col(列) 根据这个就可以找到对应的这条数据;\n //判断输入的类型是percent,则输入的值不能大于1\n const inputCellData = 'inputTableCell' in data ? data.inputTableCell : data.allocationTableCell;\n if (inputCellData[info.row][info.col].contentsType === 'percent' && info.newValue > 1) {\n message.error('请输入正确的数值');\n sheet.setValue(info.row, info.col, info.oldValue);\n // sheet.setFormatter(info.row, info.col, \"0%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.suspendEvent();\n sheet.resumeEvent();\n return;\n }\n //当前的row\n const row = inputCellData[info.row];\n row[info.col].contents = info.newValue;\n row[info.col].edited = true;\n //判断如果触发的是禁用cell,输入值完成则需要禁用对应的cell\n if ((row[info.col].trigger as Array).includes(info.col)) {\n const index = (row[info.col].trigger as Array).filter(item => {\n return item != info.col;\n })\n if (info.newValue != info.oldValue && info.newValue > 0) {\n inputCellData[info.row][index[0]].type = 'READ';\n } else {\n inputCellData[info.row][index[0]].type = 'WRITE';\n }\n }\n bindDataTable(sheet, data);\n // 挂起事件,就是暂停和恢复事件,不能,G,H各自改变,会造成死循环触发\n sheet.suspendEvent();\n sheet.resumeEvent();\n });\n}\n\n// 设置表格的头部,可以不占用单元格\nexport const setHeader = (sheet: GC.Spread.Sheets.Worksheet, headerData: BudgetTableHeaderCell[]) => {\n const row = sheet.getRange(0, -1, 1, -1, GC.Spread.Sheets.SheetArea.colHeader);\n const alignLeftKey: string[] = ['Period', \"Type Class\", \"Model\", \"Model Year\"];\n row.wordWrap(true);\n for (let i = 0; i < headerData.length; i++) {\n // sheet.setStyle(1,1, {height: '2*'}, GC.Spread.Sheets.SheetArea.colHeader)\n sheet.setValue(0, i, headerData[i].name, GC.Spread.Sheets.SheetArea.colHeader);\n if (alignLeftKey.includes(headerData[i].name)) {\n sheet.getCell(0, i, GC.Spread.Sheets.SheetArea.colHeader).hAlign(GC.Spread.Sheets.HorizontalAlign.left);\n }\n }\n}\n\nexport const ssHotTop = (spread: GC.Spread.Sheets.Workbook, sheet: GC.Spread.Sheets.Worksheet, data: BudgetTableProps | BudgetAllocationTableProps, bindEvent = false): void => {\n spread.suspendPaint();\n // 滚动条样式\n spread.options.scrollbarAppearance = GC.Spread.Sheets.ScrollbarAppearance.mobile;\n // sheet是否显示x\n spread.options.tabNavigationVisible = false\n spread.options.tabStripVisible = false\n // 滚动条常用设置\n spread.options.scrollbarMaxAlign = true\n sheet.setRowCount(1, GC.Spread.Sheets.SheetArea.colHeader);\n // 设置头部\n setHeader(sheet, data.header);\n // 设置header的高度\n sheet.setRowHeight(0, 40, GC.Spread.Sheets.SheetArea.colHeader);\n // 设置多少行和列\n sheet.setColumnCount(data.header.length, GC.Spread.Sheets.SheetArea.viewport)\n const cellData = 'inputTableCell' in data ? data.inputTableCell : data.allocationTableCell;\n sheet.setRowCount(cellData.length, GC.Spread.Sheets.SheetArea.viewport);\n\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 //禁止拖动填充\n spread.options.allowUserDragFill = false;\n spread.options.allowUserDragDrop = false;\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 = true;\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 // const style = new GCC.Spread.Sheets.Style();\n // 第一行的背景色\n // style.backColor = 'red';\n\n //set style to row.第一行的背景色, setStyle容易全局污染,用 getCell/getRange\n // sheet.setStyle(0, -1, style, GCC.Spread.Sheets.SheetArea.viewport);\n\n // 设置样式第一行的背景色\n const styleUnEdit = new GC.Spread.Sheets.Style();\n\n // 第一行不能编辑\n styleUnEdit.locked = true;\n\n // 设置样式第一行的背景色\n const styleEdit = new GC.Spread.Sheets.Style();\n // 第一行不能编辑\n styleEdit.locked = false;\n\n // 第一列不能编辑\n bindDataTable(sheet, data);\n if (bindEvent) {\n // 通过输入过后,触发公式自动计算\n inputEventToFormula(sheet, data);\n }\n spread.resumePaint();\n}\n\nfunction hasValue>(value: string, dataSource: Array, ): boolean {\n return dataSource.some(item => Object.values(item).includes(value));\n}\n\nexport const handlerSheetsData = (data: BudgetTableProps | BudgetAllocationTableProps): BudgetTableProps | BudgetAllocationTableProps => {\n //header 的汇总的固定key 分摊, 需要通过这个三个字段来确定唯一\n const headerFixedKeys: string[] = ['Period', 'Type Class', 'Model Year'];\n //deader 的汇总固定key的索引 分摊\n const headerFixedKeysIndex: number[] = [];\n //header需要序列化为百分比的索引\n const percentCellIndex: number[] = [];\n //互斥的header cell\n // const mutexHeaderCellKeys: string[] = ['% Penetration', 'WS Pipeline Override', 'RT Pipeline Override'];\n const mutexHeaderCellKeys: string[] = ['% Penetration', 'Estimated Volume'];\n //互斥的header cell index\n const mutexHeaderCellIndex: number[] = [];\n //固定左对齐的key\n const alignLeftKey: string[] = ['Period', \"Type Class\", \"Model\", \"Model Year\"];\n //根据固定的header key 获取对应的索引;\n if ('header' in data) {\n data.header.forEach((item, index) => {\n //获取分摊固定key的索引\n if (headerFixedKeys.includes(item.name)) {\n headerFixedKeysIndex.push(index);\n }\n //判断那个cell需要序列化为百分比\n if (item.name.indexOf('%') > -1) {\n percentCellIndex.push(index);\n }\n //查找互斥key的索引\n if (mutexHeaderCellKeys.includes(item.name)) {\n mutexHeaderCellIndex.push(index);\n }\n })\n }\n\n\n const cellData = 'inputTableCell' in data ? data.inputTableCell : data.allocationTableCell;\n\n\n //添加属性visible 是否显示contents字段 添加属性contentsType 显示的类型 添加属性trigger 互斥的对应的索引\n if ('inputTableCell' in data ) {\n data.inputTableCell.forEach(item => {\n item.forEach((cell, index) => {\n //设置默认都显示contents\n cell.visible = true;\n // //添加显示序列化的数据格式 百分比\n // percentCellIndex.includes(index) ? cell.contentsType = 'percent' : cell.contentsType = '';\n // //添加显示序列化的数据格式 百分比小数\n // if (data.header[index].name === 'AVG.SI %') {\n // cell.contentsType = 'percentDecimal';\n // }\n // //判断trigger的列是否有值\n // if (mutexHeaderCellIndex.includes(index)) {\n // cell.trigger = mutexHeaderCellIndex;\n // } else {\n // cell.trigger = [];\n // }\n })\n })\n }\n\n if ('allocationTableCell' in data ) {\n data.allocationTableCell.forEach(item => {\n item.forEach((cell, index) => {\n //添加显示序列化的数据格式 百分比\n percentCellIndex.includes(index) ? cell.contentsType = 'percent' : cell.contentsType = '';\n //添加显示序列化的数据格式 百分比小数\n if (data.header[index].name === 'AVG.SI %') {\n cell.contentsType = 'percentDecimal';\n }\n })\n })\n }\n\n //获取当前row,根据headerFixedKeys 获取到对应的值\n function getRowContents(row: AllocationTableDataCell[], indexList: number[]): string[] {\n const arr: string[] = [];\n indexList.forEach(index => {\n arr.push(row[index].contents);\n })\n return arr;\n }\n\n //判断是否相等\n function hasRepeat(content: string[][], row: AllocationTableDataCell[]): boolean {\n const contents = getRowContents(row, headerFixedKeysIndex);\n return content.some(item => item.join(',') == contents.join(','));\n }\n\n //设置row下的cell visible属性\n function setCellVisible(row: AllocationTableDataCell[]) {\n headerFixedKeysIndex.forEach(index => {\n row[index].visible = false;\n })\n }\n\n //设置对齐方式\n for (const row of cellData) {\n for (let cell = 0; cell < row.length; cell ++) {\n if (alignLeftKey.includes(data.header[cell].name)) {\n row[cell].align = 'left';\n } else {\n row[cell].align = '';\n }\n }\n }\n\n\n //处理分摊数据\n if ('allocationTableCell' in data ) {\n const summaryContents: string[][] = [];\n const isModel = hasValue('Model', data.header);\n\n //处理有Model的情况给model cell 添加宽度\n if (isModel) {\n const index = data.header.findIndex(item => item.name === 'Model');\n for (const row of cellData) {\n row[index].width = 160;\n }\n }\n\n //处理分摊的汇总行和children\n for (const row of data.allocationTableCell) {\n // 查找所以的汇总行\n if (row[0].type === 'TYPECLASSSUMMARY' || row[0].type === 'MODELYEARSUMMARY') {\n summaryContents.push(getRowContents(row, headerFixedKeysIndex));\n } else {\n //判断非汇总行的 'Period', 'Type Class', 'Model Year' 的值和汇总行的一致的话就不显示;\n if (hasRepeat(summaryContents, row)) {\n setCellVisible(row);\n }\n }\n }\n }\n\n //处理input汇总行和children cellData 第一条数据肯定是汇总行,需求\n if ('inputTableCell' in data) {\n const isModelYear = hasValue('Model Year', data.header);\n const isModel = hasValue('Model', data.header);\n\n //处理有Model的情况给model cell 添加宽度\n if (isModel) {\n const index = data.header.findIndex(item => item.name === 'Model');\n for (const row of cellData) {\n row[index].width = 160;\n }\n }\n\n //处理 Period 字段,只会有一个日期并且在每行第一个\n for (const [rowIndex, row] of cellData.entries()) {\n if (rowIndex !== 0){\n row[0].visible = false;\n }\n }\n\n //处理typeClass保证唯一\n const typeClass: string[] = [];\n const typeClassIndex = data.header.findIndex(item => item.name === 'Type Class');\n for (const row of cellData) {\n if (typeClass.includes(row[typeClassIndex].contents)) {\n row[typeClassIndex].visible = false;\n } else {\n typeClass.push(row[typeClassIndex].contents);\n }\n }\n\n //没有 Model Year 肯定有 Model 无需处理\n\n //没有 Model 肯定有 Model Year 无需处理\n\n // 有 Model 和 Model Year\n if (isModel && isModelYear) {\n const modelYear: string[] = [];\n const index = data.header.findIndex(item => item.name === 'Model Year');\n for (const row of cellData) {\n if (modelYear.includes(row[index].contents)) {\n row[index].visible = false;\n } else {\n modelYear.push(row[index].contents);\n }\n }\n }\n\n }\n\n return data;\n}\n","\n import { defineComponent, reactive, onMounted, onBeforeUnmount, watch, nextTick } from 'vue';\n import { useStore } from 'vuex';\n import GC from \"@grapecity/spread-sheets\";\n import { handlerSheetsData, ssHotTop, BudgetAllocationTableProps } from '@/utils/spreadjs';\n import { getBudgetAllocationData, budgetExportView} from '@/API/budget'\n\n export default defineComponent({\n name: \"budgetAllocation\",\n props: {\n siOfferId: {\n type: String,\n default: ''\n },\n pgmId: {\n type: String,\n default: ''\n }\n },\n setup(props) {\n const { state } = useStore();\n //budget allocation data\n const budgetAllocationTableData = reactive({\n header: [],\n allocationTableCell: []\n })\n\n // sheet当前表格的初始化\n let workbook: GC.Spread.Sheets.Workbook;\n\n let worksheet: GC.Spread.Sheets.Worksheet;\n\n // 初始第表格\n const ssHotBotInit = () => {\n const spread = new GC.Spread.Sheets.Workbook(document.getElementById('ssHost') as HTMLElement);\n const sheet = spread.getActiveSheet();\n worksheet = sheet;\n workbook = spread;\n ssHotTop(spread, sheet, budgetAllocationTableData);\n }\n\n\n //根据offerCustomerId 获取budget分摊数据\n const fetchBudgetAllocationData = (): void => {\n getBudgetAllocationData(props.siOfferId).then(data => {\n //用于更新budgetReport使用,不关心是否成功\n budgetExportView(props.siOfferId).then(res => {\n console.log('更新数据到budgetReport', res);\n })\n Object.assign(budgetAllocationTableData, handlerSheetsData(data as BudgetAllocationTableProps));\n ssHotBotInit();\n })\n }\n\n //处理侧边栏变化后刷新spread js\n watch(() => state.sideNavCollapsed, (value) => {\n nextTick(() => {\n workbook.refresh();\n })\n })\n\n onMounted(() => {\n fetchBudgetAllocationData();\n })\n\n onBeforeUnmount(() => {\n workbook.destroy();\n })\n }\n })\n","import { render } from \"./index.vue?vue&type=template&id=e7b92ca0&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=e7b92ca0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e7b92ca0\"]])\n\nexport default __exports__","import { fetchPost } from './index'\n// privilage Group\n\nexport const PageView = (params = {}): Promise => {\n return fetchPost('/usapi/page/view', params)\n}","import { RouteRecordRaw } from \"vue-router\";\n\nexport const rvRouters: Array = [\n {\n path: \"/retailValidation\",\n name: \"Retail Validation Dealer\",\n component: () => import(\"@/views/RetailValidation/Dealer/index.vue\"),\n },\n {\n path: \"/retailValidation/sicco\",\n name: \"Retail Validation Sicco\",\n component: () => import(\"@/views/RetailValidation/Sicco/index.vue\"),\n },\n {\n path: \"/retailValidation/sipo\",\n name: \"Retail Validation Sipo\",\n component: () => import(\"@/views/RetailValidation/Sipo/index.vue\"),\n },\n {\n path: \"/retailValidation/controlling\",\n name: \"Retail Validation Controlling\",\n component: () => import(\"@/views/RetailValidation/Controlling/index.vue\"),\n },\n {\n path: \"/retailValidation/dataAdmin\",\n name: \"Retail Validation DataAdmin\",\n component: () =>\n import(\"@/views/RetailValidation/DataAdmin/SystemParameter.vue\"),\n },\n {\n path: \"/retailValidation/retailData\",\n name: \"Retail Data Import\",\n component: () => import(\"@/views/RetailValidation/RetailData/index.vue\"),\n },\n // cr Dealer Communication\n {\n path: \"/retailValidation/taskDistribution\",\n name: \"Task Distribution Overview\",\n component: () => import(\"@/views/RetailValidation/Communication/TaskDistribution/index.vue\"),\n },\n {\n path: \"/retailValidation/taskDistribution/detail\",\n name: \"Task Distribution Detail\",\n component: () => import(\"@/views/RetailValidation/Communication/TaskDistribution/Detail/index.vue\"),\n },\n {\n path: \"/retailValidation/taskOverview\",\n name: \"Task Overview Region\",\n component: () => import(\"@/views/RetailValidation/Communication/TaskOverview/index.vue\"),\n },\n {\n path: \"/retailValidation/taskOverview/detail\",\n name: \"Task Overview Detail\",\n component: () => import(\"@/views/RetailValidation/Communication/TaskOverview/detail.vue\"),\n },\n {\n path: \"/retailValidation/dataDocumentReceive\",\n name: \"Data Document Receive\",\n component: () => import(\"@/views/RetailValidation/Communication/DataDocumentReceive/index.vue\"),\n },\n];\n","import { RouteRecordRaw } from 'vue-router';\n\nexport const claimRouters: Array = [\n {\n path: '/claim',\n name: 'Claim',\n component: () => import('@/views/Claim/RT/index.vue')\n },\n {\n path: '/claim/claimDetail',\n name: 'claimDetail',\n component: () => import('@/views/Claim/RT/ClaimDetail/index.vue')\n },\n {\n path: '/claim/Ws',\n name: 'claimWs',\n component: () => import('@/views/Claim/WS/index.vue')\n },\n {\n path: '/claim/Ws/wsDetail',\n name: 'claimWs Detail',\n component: () => import('@/views/Claim/WS/ClaimDetail/index.vue')\n },\n {\n path: '/parametersetup',\n name: 'Parameter Set Up',\n component: () => import('@/views/Claim/ParameterSetUp/index.vue')\n },\n {\n path: '/documentSample',\n name: 'Document Sample',\n component: () => import('@/views/Claim/DocumentSample/index.vue')\n },\n {\n path: '/claim/Dealer',\n name: 'Sales Incentive Claim',\n component: () => import('@/views/Claim/DealerClaim/DealerList/index.vue')\n },\n {\n path: '/claim/DealerProgramCategory',\n name: 'DealerProgramCategory',\n component: () => import('@/views/Claim/DealerClaim/DealerProgramCategory/index.vue')\n },\n {\n path: '/claim/DealerVINList',\n name: 'DealerVINList',\n component: () => import('@/views/Claim/DealerClaim/DealerVINList/index.vue')\n },\n // 搜索yangyi\n {\n path: '/claim/DealerQuery',\n name: 'DealerQuery',\n component: () => import('@/views/Claim/DealerClaim/DealerQuery/index.vue')\n },\n {\n path: '/claim/DealerQuery/Detail',\n name: 'DealerQueryDetail',\n component: () => import('@/views/Claim/DealerClaim/DealerQuery/Detail/index.vue')\n },\n {\n path: '/claim/DealerVINBasedEnquiry',\n name: 'DealerVINBasedEnquiry',\n component: () => import('@/views/Claim/DealerClaim/DealerVINBasedEnquiry/index.vue')\n },\n // enquiry program\n {\n path: '/claim/EnquiryProgram',\n name: 'EnquiryProgram',\n component: () => import('@/views/Claim/EnquiryProgram/index.vue')\n },\n //dealyDealerClaim\n {\n path: '/claim/DelayDealerClaim',\n name: 'DelayDealerList',\n component: () => import('@/views/Claim/DelayDealerClaim/DealerList/index.vue')\n },\n {\n path: '/claim/DelayDealerProgramCategory',\n name: 'DelayDealerProgramCategory',\n component: () => import('@/views/Claim/DelayDealerClaim/DealyDealerProgramCategory/index.vue')\n },\n {\n path: '/claim/SSSCOrder',\n name: 'SSSC Order',\n component: () => import('@/views/Claim/SsscOrder/index.vue')\n },\n {\n path: '/claim/overallCombinabilityMatrix',\n name: 'Dealer Overall Combinability Matrix',\n component: () => import('@/views/Claim/OverallCombinabilityMatrix/index.vue')\n }\n];\n","import { RouteRecordRaw } from \"vue-router\";\n\nexport const checkingRouters: Array = [\n {\n path: \"/checking/checkingPlan\",\n name: \"checkingPlan\",\n component: () => import(\"@/views/Checking/CheckingPlan/index.vue\"),\n },\n {\n path: \"/checking/approveCheckingPlan\",\n name: \"approveCheckingPlan\",\n component: () => import(\"@/views/Checking/ApproveCheckingPlan/index.vue\"),\n },\n {\n path: \"/sourceDataManagement/AGManagement\",\n name: \"ag-management\",\n component: () => import(\"@/views/Checking/CheckingManagement/index.vue\"),\n },\n {\n path: \"/sourceDataManagement/TAManagement\",\n name: \"ta-management\",\n component: () => import(\"@/views/Checking/CheckingManagement/index.vue\"),\n },\n {\n path: \"/sourceDataManagement/TDTAManagement\",\n name: \"tdta-management\",\n component: () => import(\"@/views/Checking/TDTAManagement/index.vue\"),\n },\n {\n path: \"/checking/SICCOChecking\",\n name: \"SICCOChecking\",\n component: () => import(\"@/views/Checking/SICCOChecking/index.vue\"),\n },\n {\n path: \"/checking/SIPOChecking\",\n name: \"SIPOChecking\",\n component: () => import(\"@/views/Checking/SIPOChecking/index.vue\"),\n },\n {\n path: \"/checking/SICCOCheckingDetail\",\n name: \"SICCOCheckingDetail\",\n component: () => import(\"@/views/Checking/SICCOCheckingDetail/index.vue\"),\n },\n // {\n // path: '/spotChecking',\n // name: 'spotChecking',\n // component: () => import('@/views/Checking/spotChecking/index.vue'),\n // },\n {\n path: \"/spotCheckingControlling\",\n name: \"spotCheckingControlling\",\n component: () =>\n import(\"@/views/Checking/spotChecking/spotCheckingControlling/index.vue\"),\n children: [\n {\n path: \"\",\n name: \"spotCheckOverview\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingControlling/spotCheckOverview/index.vue\"\n ),\n meta: {\n title: \"Spot Check Overview\",\n showInTab: true,\n permission: { path: \"/spotCheckingControlling\", privcd: \"Scrc-01\" },\n },\n },\n {\n path: \"spotCheckConfirm\",\n name: \"spotCheckConfirm\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingControlling/spotCheckConfirm/spotCheckConfirmIndex/index.vue\"\n ),\n meta: {\n title: \"Sample Check Confirm\",\n showInTab: true,\n permission: { path: \"/spotCheckingControlling\", privcd: \"Scrc-02\" },\n },\n },\n {\n path: \"/spotCheckConfirmProgramDealer\",\n name: \"spotCheckConfirmProgramDealer\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingControlling/spotCheckConfirm/spotCheckProgramDealer/index.vue\"\n ),\n meta: {\n showInTab: false,\n },\n },\n {\n path: \"/spotCheckConfirmProgramFl\",\n name: \"spotCheckConfirmProgramFl\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingControlling/spotCheckConfirm/spotCheckProgramFl/index.vue\"\n ),\n meta: {\n showInTab: false,\n },\n },\n {\n path: \"/spotCheckConfirmDetail\",\n name: \"spotCheckConfirmDetail\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingControlling/spotCheckConfirm/spotCheckConfirmDetail.vue\"\n ),\n meta: {\n showInTab: false,\n },\n },\n {\n path: \"dealerVinView\",\n name: \"dealerVinView\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingControlling/spotCheckConfirm/dealerVinView/index.vue\"\n ),\n meta: {\n title: \"Spot Check Controlling Checked\",\n showInTab: false,\n },\n },\n {\n path: \"flVinView\",\n name: \"flVinView\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingControlling/spotCheckConfirm/flVinView/index.vue\"\n ),\n meta: {\n title: \"Spot Check Controlling Checked\",\n showInTab: false,\n },\n },\n {\n path: \"allClaimsReview\",\n name: \"allClaimsReview\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingControlling/allClaimsReview/index.vue\"\n ),\n meta: {\n title: \"All Claims Review\",\n showInTab: true,\n permission: { path: \"/spotCheckingControlling\", privcd: \"Scrc-03\" },\n },\n redirect: \"/spotCheckingControlling/allClaimsReview\",\n children: [\n {\n path: \"\",\n name: \"packageTracking\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingControlling/allClaimsReview/packageTracking/index.vue\"\n ),\n meta: {\n title: \"Package Tracking\",\n showInTab: true,\n activeTabName: \"allClaimsReview\",\n permissionCode: \"ACR01\",\n },\n },\n {\n path: \"programTracking\",\n name: \"programTracking\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingControlling/allClaimsReview/programTracking/index.vue\"\n ),\n meta: {\n title: \"Program Tracking\",\n showInTab: true,\n activeTabName: \"allClaimsReview\",\n permissionCode: \"ACR02\",\n },\n },\n {\n path: \"claimChecking\",\n name: \"claimChecking\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingControlling/allClaimsReview/claimTracking/index.vue\"\n ),\n meta: {\n title: \"Claim Checking\",\n showInTab: true,\n activeTabName: \"allClaimsReview\",\n permissionCode: \"ACR03\",\n },\n },\n ],\n },\n {\n path: \"payoutPreparation\",\n name: \"payoutPreparation\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingControlling/payoutPreparation/index.vue\"\n ),\n meta: {\n title: \"Payout Preparation\",\n showInTab: true,\n permission: { path: \"/spotCheckingControlling\", privcd: \"Scrc-04\" },\n },\n },\n {\n path: \"payoutDetail\",\n name: \"payoutDetail\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingControlling/payoutPreparation/payoutDetail/index.vue\"\n ),\n meta: {\n showInTab: false,\n },\n },\n ],\n },\n\n {\n path: \"/spotChecking\",\n name: \"spotCheckingVonder\",\n component: () =>\n import(\"@/views/Checking/spotChecking/spotCheckingVonder/index.vue\"),\n children: [\n {\n path: \"\",\n name: \"checkingPreparation\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingVonder/checkingPreparation/index.vue\"\n ),\n meta: {\n title: \"Checking Preparation\",\n showInTab: true,\n permission: { path: \"/spotChecking\", privcd: \"SC-01\" },\n },\n },\n {\n path: \"pendingChecking\",\n name: \"pendingChecking\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingVonder/pendingChecking/index.vue\"\n ),\n meta: {\n title: \"Pending Checking\",\n showInTab: true,\n permission: { path: \"/spotChecking\", privcd: \"SC-02\" },\n },\n },\n {\n path: \"sampleCheck\",\n name: \"sampleCheck\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingVonder/sampleCheck/index.vue\"\n ),\n meta: {\n title: \"Sample Check\",\n showInTab: true,\n permission: { path: \"/spotChecking\", privcd: \"SC-03\" },\n },\n },\n {\n path: \"/sampleCheckDealer\",\n name: \"sampleCheckDealer\",\n meta: {\n title: \"Sample Check\",\n showInTab: false,\n },\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingVonder/sampleCheck/sampleCheckDealer/index.vue\"\n ),\n },\n {\n path: \"/sampleCheckFl\",\n name: \"sampleCheckFinance\",\n meta: {\n title: \"Sample Check\",\n showInTab: false,\n },\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingVonder/sampleCheck/sampleCheckFl/index.vue\"\n ),\n },\n {\n path: \"checked\",\n name: \"checked\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingVonder/checked/index.vue\"\n ),\n meta: {\n title: \"Checked\",\n showInTab: true,\n permission: { path: \"/spotChecking\", privcd: \"SC-04\" },\n },\n },\n {\n path: \"/checkedProgramDealer\",\n name: \"checkedProgramDealer\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingControlling/spotCheckConfirm/spotCheckProgramDealer/index.vue\"\n ),\n meta: {\n showInTab: false,\n },\n },\n {\n path: \"packageDetail\",\n name: \"packageDetail\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingVonder/checkingPreparation/packageDetail/index.vue\"\n ),\n meta: {\n showInTab: false,\n },\n },\n {\n path: \"packageFinanceDetail\",\n name: \"packageFinanceDetail\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/spotCheckingVonder/checkingPreparation/packageDetail/mbclDetail.vue\"\n ),\n meta: {\n showInTab: false,\n },\n },\n ],\n },\n {\n path: \"/spotChecking/pendingApproval\",\n name: \"pendingApproval\",\n component: () =>\n import(\"@/views/Checking/spotChecking/pendingApproval/index.vue\"),\n children: [\n {\n path: \"\",\n name: \"spotCheckingPendingApproval\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/pendingApproval/spotCheckingPendingApproval/index.vue\"\n ),\n meta: {\n title: \"Spot Checking Pending Approval\",\n showInTab: true,\n permission: {\n path: \"/spotChecking/pendingApproval\",\n privcd: \"SCA-01\",\n },\n },\n },\n {\n path: \"approvalReview\",\n name: \"approvalReview\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/pendingApproval/approvalReview/index.vue\"\n ),\n meta: {\n title: \"Approval Review\",\n showInTab: true,\n permission: {\n path: \"/spotChecking/pendingApproval\",\n privcd: \"SCA-02\",\n },\n },\n },\n {\n path: \"payoutRound\",\n name: \"pendingApprovalPayoutRound\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/pendingApproval/payoutRound/index.vue\"\n ),\n meta: {\n showInTab: false,\n },\n },\n {\n path: \"payoutDetail\",\n name: \"pendingApprovalPayoutDetail\",\n component: () =>\n import(\n \"@/views/Checking/spotChecking/pendingApproval/payoutDetail/index.vue\"\n ),\n meta: {\n showInTab: false,\n },\n },\n ],\n },\n {\n path: \"/checking/SIPOCheckingDetail\",\n name: \"SIPOCheckingDetail\",\n component: () => import(\"@/views/Checking/SIPOCheckingDetail/index.vue\"),\n },\n {\n path: \"/checking/checkingDocCollection\",\n name: \"checkingDocCollection\",\n component: () =>\n import(\"@/views/Checking/siccoCheckingDocumentCollection/index.vue\"),\n },\n {\n path: \"/checking/claimDelayRuleSetup\",\n name: \"claimDelayRuleSetup\",\n component: () => import(\"@/views/Checking/claimDelayRuleSetup/index.vue\"),\n },\n {\n path: \"/checking/delayCallbackRuleSetup\",\n name: \"delayCallbackRuleSetup\",\n component: () =>\n import(\"@/views/Checking/delayCallbackRuleSetup/index.vue\"),\n },\n {\n path: \"/checking/exemption\",\n name: \"exemption\",\n component: () => import(\"@/views/Checking/exemption/index.vue\"),\n },\n {\n path: \"/checking/exemptionSetup\",\n name: \"exemptionSetup\",\n component: () => import(\"@/views/Checking/exemption/setup.vue\"),\n },\n {\n path: \"/sourceDataManagement/demoCarClaimGenerate\",\n name: \"demoCarClaimGenerate\",\n component: () => import(\"@/views/Checking/DemoCarClaim/index.vue\"),\n },\n];\n","import { RouteRecordRaw } from \"vue-router\";\n\nexport const pmtRouters: Array = [\n {\n path: \"/paymentMBAFC\",\n name: \"Payment MBAFC\",\n component: () => import(\"@/views/Payment/FlRt/index.vue\"),\n },\n {\n path: \"/paymentApproveMgmt\",\n name: \"paymentApproveMgmtIndex\",\n component: () => import(\"@/views/Payment/Mgmt/index.vue\"),\n children: [\n {\n path: \"\",\n name: \"paymentApproveMgmt\",\n component: () =>\n import(\"@/views/Payment/Mgmt/PendingApproval/index.vue\"),\n },\n {\n path: \"paymentTracking\",\n name: \"Payment Tracking\",\n component: () =>\n import(\"@/views/Payment/Mgmt/PaymentTracking/index.vue\"),\n },\n {\n path: \"dealerPayoutOverview\",\n name: \"Payment Approve Overview\",\n component: () =>\n import(\n \"@/views/Payment/Mgmt/PendingApproval/PayoutRound/index.vue\"\n ),\n },\n {\n path: \"dealerPayoutTrackingOverview\",\n name: \"Payment Tracking Overview\",\n component: () =>\n import(\n \"@/views/Payment/Mgmt/PaymentTracking/PayoutRound/index.vue\"\n ),\n },\n ],\n },\n {\n path: \"/paymentApproveMBAFC\",\n name: \"paymentApproveMBAFC\",\n component: () => import(\"@/views/Payment/MbafcAndMblc/index.vue\"),\n children: [\n {\n path: \"\",\n name: \"paymentApproveMBAFC\",\n component: () =>\n import(\"@/views/Payment/MbafcAndMblc/approveAFCandLC.vue\"),\n },\n {\n path: \"paymentTrackingMBAFC\",\n name: \"paymentTrackingMBAFC\",\n component: () =>\n import(\"@/views/Payment/MbafcAndMblc/approveAFCandLC.vue\"),\n },\n ],\n },\n {\n path: \"/paymentApproveMBLC\",\n name: \"paymentApproveMBLC\",\n component: () => import(\"@/views/Payment/MbafcAndMblc/index.vue\"),\n children: [\n {\n path: \"\",\n name: \"paymentApproveMBLC\",\n component: () =>\n import(\"@/views/Payment/MbafcAndMblc/approveAFCandLC.vue\"),\n },\n {\n path: \"paymentTrackingMBLC\",\n name: \"paymentTrackingMBLC\",\n component: () =>\n import(\"@/views/Payment/MbafcAndMblc/approveAFCandLC.vue\"),\n },\n ],\n },\n // BU\n // Dealer + F&L\n // {\n // path: \"/paymentBuManagement\",\n // name: \"BU Payment Management\",\n // component: () => import(\"@/views/Payment/BU/index.vue\"),\n // children: [\n // {\n // path: \"\",\n // name: \"Payment Bu Management Dealer\",\n // component: () =>\n // import(\"@/views/Payment/BU/Dealer/index.vue\"),\n // },\n // {\n // path: \"/paymentBuManagement/FAndL\",\n // name: \"Payment Bu Management F&L\",\n // component: () =>\n // import(\"@/views/Payment/BU/F&L/index.vue\"),\n // },\n // ],\n // },\n // BU Payment Management 替换为 BU SI Payout Application\n {\n path: \"/buSiPayoutApplication\",\n name: \"BU SI Payout Application\",\n component: () => import(\"@/views/Payment/BU/index.vue\"),\n children: [\n {\n path: \"\",\n name: \"Payment Bu Management Dealer\",\n component: () =>\n import(\"@/views/Payment/BU/Dealer/index.vue\"),\n },\n {\n path: \"/paymentBuManagement/FAndL\",\n name: \"Payment Bu Management F&L\",\n component: () =>\n import(\"@/views/Payment/BU/F&L/index.vue\"),\n },\n ],\n },\n // Delear No Overview\n {\n path: \"/paymentBuManagement/dealerNoOverview\",\n name: \"Payment Delear No Overview\",\n component: () =>\n import(\"@/views/Payment/BU/DealerNoOverview/index.vue\"),\n },\n // Dealer Setting\n {\n path: \"/paymentBuManagement/dealerSetting\",\n name: \"Payment Dealer Setting\",\n component: () =>\n import(\"@/views/Payment/BU/DealerSetting/index.vue\"),\n },\n // Create Payout Batch\n {\n path: \"/paymentBuManagement/createPayoutBatch\",\n name: \"Payment Create Payout Batch\",\n component: () =>\n import(\"@/views/Payment/BU/CreatePayoutBatch/index.vue\"),\n },\n // Sales\n // {\n // path: \"/paymentSales\",\n // name: \"Sales Payment Management\",\n // component: () =>\n // import(\"@/views/Payment/Sales/index.vue\"),\n // children: [\n // {\n // path: \"\",\n // name: \"SalesPaymentManagement\",\n // component: () =>\n // import(\"@/views/Payment/Sales/SalesPaymentManagement/index.vue\"),\n // meta: {\n // title: 'Sales Payment Management',\n // showInTab: true,\n // }\n // },\n // {\n // path: \"A3Tracking\",\n // name: \"A3Tracking\",\n // component: () =>\n // import(\"@/views/Payment/PaymentTracking/A3Tracking/index.vue\"),\n // meta: {\n // title: 'A3 Tracking',\n // showInTab: true,\n // }\n // }\n // ]\n // },\n // 替换 Sales Payment Management 为 Entity SI Payout Application\n {\n path: \"/entitySiPayoutApplication\",\n name: \"Entity SI Payout Application\",\n component: () =>\n import(\"@/views/Payment/EntitySiPayout/index.vue\"),\n },\n {\n path:'/demoCDview',\n name:'Demo Car Deduction View',\n component: () => import ('@/views/Payment/EntitySiPayout/Demo/demoCDView.vue')\n },\n // payment tracking\n {\n path: \"/paymentTracking\",\n name: \"PaymentTracking\",\n component: () => import(\"@/views/Payment/PaymentTracking/index.vue\"),\n children: [\n {\n path: \"\",\n name: \"Dealer Payout Overview\",\n meta: {\n title: 'Dealer Payout Overview',\n showInTab: true,\n permission: {path: '/paymentTracking', privcd: 'PT0001'}\n },\n component: () =>\n import(\"@/views/Payment/PaymentTracking/DealerPayout/index.vue\"),\n },\n {\n path: \"dealerStatus\",\n name: \"Dealer Status\",\n meta: {\n title: 'Dealer Status Tracking',\n showInTab: true,\n permission: {path: '/paymentTracking', privcd: 'PT0002'}\n },\n component: () =>\n import(\"@/views/Payment/PaymentTracking/DealerStatus/index.vue\"),\n },\n {\n path: \"a3tracking\",\n name: \"A3 Tracking\",\n meta: {\n title: 'A3 Tracking',\n showInTab: true,\n permission: {path: '/paymentTracking', privcd: 'PT0003'}\n },\n component: () =>\n import(\"@/views/Payment/PaymentTracking/A3Tracking/index.vue\"),\n },\n ],\n },\n {\n path: \"/historicalRedInvoice\",\n name: \"Historical Red Invoice Notice Readiness\",\n component: () =>\n import(\"@/views/Payment/PaymentTracking/HistoricalRedInvoice/index.vue\")\n },\n {\n path: \"/paymentSales/dealerVendorCodeSet\",\n name: \"Dealer Vendor CodeSet\",\n component: () =>\n import(\"@/views/Payment/EntitySiPayout/Vendor/index.vue\"),\n },\n {\n path: \"/paymentSales/vehicleNameSet\",\n name: \"Vehicle Name Set\",\n component: () =>\n import(\"@/views/Payment/EntitySiPayout/Vehicle/index.vue\"),\n },\n {\n path: \"/paymentSales/voucherAttachmentSet\",\n name: \"Voucher Attachment Set\",\n component: () =>\n import(\"@/views/Payment/EntitySiPayout/Voucher/index.vue\"),\n },\n {\n path: \"/paymentSales/DcnTemplateSet\",\n name: \"DcnTemplateSet\",\n component: () =>\n import(\"@/views/Payment/EntitySiPayout/DcnTemplateSet/index.vue\"),\n },\n {\n path: \"/paymentSales/DealerBreakdownReport\",\n name: \"DealerBreakdownReport\",\n component: () =>\n import(\"@/views/Payment/EntitySiPayout/DealerBreakdownReport/index.vue\")\n },\n {\n path: \"/DgrcAccounting\",\n name: \"DgrcAccounting\",\n component: () =>\n import(\"@/views/Payment/DgrcAccounting/index.vue\"),\n },\n {\n path: \"/DealerBreakdown\",\n name: \"DealerBreakdown\",\n component: () =>\n import(\"@/views/Payment/DealerBreakdown/index.vue\"),\n },\n {\n path: \"/DealerBreakdown/Detail\",\n name: \"DealerBreakdownDetail\",\n component: () =>\n import(\"@/views/Payment/DealerBreakdown/detail/index.vue\"),\n },\n {\n path: \"/paymentBBAC\",\n name: \"BBAC Payment Management\",\n component: () =>\n import(\"@/views/Payment/BBAC/index.vue\"),\n },\n { \n path: \"/paymentControlling\",\n name: \"Controlling Payment Management\",\n component: () =>\n import(\"@/views/Payment/Controlling/Dealer/index.vue\"),\n children: [\n {\n path: '',\n name: 'ControllingDealerPayoutOverview',\n component: () => import('@/views/Payment/Controlling/Dealer/DealerPaymentOverview/index.vue'),\n meta: {\n title: 'Dealer Payout Overview',\n showInTab: true,\n permission: {path: '/paymentControlling', privcd: 'CPM0001'}\n }\n },\n {\n path: 'dealerRoundSummary/:payoutRound',\n name: 'ControllingDealerRoundSummary',\n component: () => import(\"@/views/Payment/Controlling/Dealer/DealerPaymentOverview/DealerRoundSummary/index.vue\"),\n meta: {\n activeTabName: 'ControllingDealerPayoutOverview'\n }\n },\n {\n path: 'dealerStatusTracking',\n name: 'dealerStatusTracking',\n component: () => import('@/views/Payment/Controlling/Dealer/DealerStatusTracking/index.vue'),\n meta: {\n title: 'Dealer Status Tracking',\n showInTab: true,\n permission: {path: '/paymentControlling', privcd: 'CPM0002'}\n }\n }\n ]\n },\n {\n path: '/paymentControlling/FLPayoutOverview',\n name: 'ControllingFLPayoutOverview',\n component: () => import('@/views/Payment/Controlling/Fl/index.vue'),\n },\n // mobile\n {\n path: \"/paymentMobile/pendingApproval\",\n name: \"Mobile Pending Approval\",\n meta: {\n isMobile: true\n },\n component: () =>\n import(\"@/views/Payment/Mobile/PendingApproval/index.vue\"),\n },\n {\n path: '/paymentMobile/PayoutCodeDealer',\n name: 'MobilePayoutCodeDealer',\n meta: {\n isMobile: true\n },\n component: () =>\n import('@/views/Payment/Mobile/PendingApproval/payoutCodeDealer.vue'),\n },\n {\n path: '/paymentMobile/PayoutCodeAFCLC',\n name: 'MobilePayoutCodeAFCLC',\n meta: {\n isMobile: true\n },\n component: () =>\n import('@/views/Payment/Mobile/PendingApproval/payoutCodeAFCLC.vue'),\n },\n {\n path: '/paymentApprove/paymentpreparation',\n name: 'Payment Preparation',\n component: () => import('@/views/Payment/paymentPreparation/index.vue')\n },\n {\n path: '/paymentApprove/paymentPreparationDetail',\n name: 'Payment Preparation Detail',\n component: () => import('@/views/Payment/paymentPreparationDetail/index.vue')\n },\n {\n path: '/paymentApprove/paymentPreparationDetail/detail',\n name: 'Payment Preparation Detail Detail',\n component: () =>\n import('@/views/Payment/paymentPreparationDetail/Detail/index.vue'),\n }\n]\n","/*\n * @Author: guowu\n * @Date: 2021-07-27 10:29:27\n * @FilePath: \\oasis-frontend\\src\\router\\systemRouters.ts\n */\nimport { RouteRecordRaw } from \"vue-router\";\n\nexport const systemVehicleRouters: Array = [\n {\n path: \"/vehicleModel\",\n name: \"VehicleModel\",\n component: () => import(\"@/views/System/VehicleModelMaster/VehicleModel.vue\"),\n },\n {\n path: \"/vehicleModel/vehicleModelView\",\n name: \"VehicleModelView\",\n component: () => import(\"@/views/System/VehicleModelMaster/VehicleModelView.vue\"),\n },\n {\n path: \"/vehicleManagement\",\n name: \"VehicleManagement\",\n component: () => import(\"@/views/System/VehicleManagement/VehicleManagement.vue\"),\n },\n {\n path: \"/vehicleManagement/vehicleView\",\n name: \"VehicleManagement VehicleModelView\",\n component: () => import(\"@/views/System/VehicleManagement/VehicleView.vue\"),\n },\n {\n path: '/kufriPanel',\n name: 'KufriPanel',\n component: () => import('@/views/System/Kufri/KufriPanel.vue')\n },\n {\n path: '/kufriPanel/:make',\n name: 'KufriPanelControl',\n component: () => import('@/views/System/Kufri/KufriPanelControl/index.vue')\n },\n {\n path: '/kufriActive',\n name: 'KufriActive',\n component: () => import('@/views/System/Kufri/KufriActive/kufriActive.vue')\n },\n {\n path: '/kufriDetail',\n name: 'KufriDataDetail',\n component: () => import('@/views/System/Kufri/KufriPanelControl/index.vue')\n },\n {\n path: '/updateMSRP',\n name: 'UpdateMSRP',\n component: () => import('@/views/System/Kufri/UpdateMSRP/updateMSRP.vue')\n },\n {\n path: '/nstGroupMapping',\n name: 'NstGroupMapping',\n component: () => import('@/views/System/Kufri/NstMapping/index.vue')\n },\n {\n path: '/NSTGroupMSRP',\n name: 'NSTGroupMSRP',\n component: () => import('@/views/System/NSTGroupMSRP/index.vue'),\n children: [\n {\n path: '',\n name: 'IMPACTMSRPWVAT',\n meta: {\n showInTab: true,\n title: 'NST Group MSRP Override',\n },\n component: () =>\n import(\n '@/views/System/NSTGroupMSRP/NSTGroupMSRP/NSTGroupMSRP.vue'\n ),\n },\n {\n path: '/VATRate',\n name: 'VATRate',\n meta: {\n showInTab: true,\n title: 'VAT Rate',\n },\n component: () =>\n import(\n '@/views/System/NSTGroupMSRP/VATRate/VATRate.vue'\n ),\n },\n ],\n },\n {\n path: '/IMPACTMSRP',\n name: 'IMPACTMSRP',\n component: () => import('@/views/System/IMPACTMSRP/IMPACTMSRP.vue')\n },\n {\n path: '/taskcenter',\n name: 'taskCenter',\n component: () => import('@/views/System/TaskCenter/index.vue'),\n },\n];\n","import { RouteRecordRaw } from \"vue-router\";\n\nexport const dealerMasterDataRouters: Array = [\n {\n path: \"/dealerMasterData/region\",\n name: \"Dealer Region\",\n component: () => import(\"@/views/DealerMasterData/Region/Region.vue\"),\n },\n {\n path: \"/dealerMasterData/dealer\",\n name: \"Dealer\",\n component: () => import(\"@/views/DealerMasterData/Dealer/Dealer.vue\"),\n },\n {\n path: \"/dealerMasterData/:dealerId/edit\",\n name: \"Edit Dealer\",\n component: () => import(\"@/views/DealerMasterData/Dealer/DealerEdit.vue\"),\n props: true\n },\n {\n path: \"/dealerMasterData/:dealerId/view\",\n name: \"View Dealer\",\n component: () => import(\"@/views/DealerMasterData/Dealer/DealerView.vue\"),\n props: true\n },\n // dealer block\n {\n path: \"/dealerMasterData/dealerBlock\",\n name: \"Dealer Block\",\n component: () => import(\"@/views/DealerMasterData/DealerBlock/DealerBlock.vue\"),\n },\n]\n","import { RouteRecordRaw } from 'vue-router'\n\nexport const closingRouters: Array = [\n {\n path: '/closing',\n name: 'closing Homepage',\n component: () => import('@/views/Closing/index.vue')\n },\n {\n path: '/report',\n name: 'Report Structure',\n component: () => import('@/views/Report/index.vue')\n },\n {\n path: '/setPMT',\n name: 'Set PMT Closing Rule',\n component: () => import('@/views/Closing/Configuration/SetPMT.vue')\n },\n // 下面是临时放的usercar板块\n {\n path: '/UploadUsedCarPage',\n name: 'User Car',\n component: () => import('@/views/UserCar/UploadUsedCarPage.vue')\n }, {\n path: '/DealerPage',\n name: 'User Car DealerPage',\n component: () => import('@/views/UserCar/DealerCUCD.vue')\n }, {\n path: '/UCSicco',\n name: 'User Car UCSICCO',\n component: () => import('@/views/UserCar/UCSICCO.vue')\n },\n]\n","import { RouteRecordRaw } from 'vue-router'\n\nexport const forecastRouters: Array = [\n {\n path: '/forecast',\n name: 'Forecast Homepage',\n component: () => import('@/views/Forecast/index.vue')\n },\n {\n path: '/report',\n name: 'Report Structure',\n component: () => import('@/views/Report/index.vue')\n },\n {\n path: '/setforecastpmt',\n name: 'Set PMT Forecast Rule',\n component: () => import('@/views/Forecast/Configuration/SetPMT.vue')\n },\n]\n","import { RouteRecordRaw } from 'vue-router'\n\nexport const planningRouters: Array = [\n {\n path: '/planning',\n name: 'Planning Homepage',\n component: () => import('@/views/Planning/index.vue') \n },\n {\n path: '/scenarioManagement',\n name: 'Scenario Management',\n component: () => import('@/views/Planning/ScenarioManagement.vue') \n },\n {\n path: '/glAndBu',\n name: 'guideline & bottom up',\n component: () => import('@/views/Planning/Gl&bu.vue') \n },\n {\n path: '/guideline',\n name: 'guideline',\n component: () => import('@/views/Planning/Guideline.vue') \n },\n {\n path: '/bottomUp',\n name: 'bottomUp',\n component: () => import('@/views/Planning/BottomUp.vue') \n },\n {\n path: '/simulation/guideline',\n name: 'guidelineSimulation',\n component: () => import('@/views/Planning/GuidelineSimulation.vue') \n },\n {\n path: '/simulation/bottomUp',\n name: 'bottomUpSimulation',\n component: () => import('@/views/Planning/BottomUpSimulation.vue') \n }\n]","/*\n * @Author: guowu\n * @Date: 2021-11-15 13:43:50\n * @LastEditTime: 2021-12-17 14:18:49\n */\nimport { RouteRecordRaw } from 'vue-router'\n\nexport const vlRouters: Array =[\n {\n path:'/vehiclelicense',\n name:'Vehicle License',\n component: () => import('@/views/VehicleLicense/VehicleLicenseSubmit/index.vue')\n },\n {\n path:'/vehiclelicense/siccoChecking',\n name:'Vehicle License SICCO Checking',\n component: () => import('@/views/VehicleLicense/SICCOChecking/index.vue')\n },\n {\n path:'/vehiclelicense/siccoCheckingSampling',\n name:'Vehicle License SICCO Checking Sampling',\n component: () => import('@/views/VehicleLicense/SICCOCheckingSampling/index.vue')\n },\n {\n path:'/vehiclelicense/siccoCheckingDetail',\n name:'Vehicle License SICCO Checking Detail',\n component: () => import('@/views/VehicleLicense/SamplingDetail/index.vue')\n },\n {\n path:'/vehiclelicense/siccoCheckingDetailView',\n name:'Vehicle License SICCO Checking Detail View',\n component: () => import('@/views/VehicleLicense/SamplingDetail/indexView.vue')\n },\n {\n path:'/vehiclelicense/checkingResult',\n name:'Vehicle License SICCO Checking Result',\n component: () => import('@/views/VehicleLicense/CheckingResult/index.vue')\n },\n {\n path:'/vehiclelicense/dealercommunication',\n name:'Vehicle License Dealer Communication',\n component:() =>import('@/views/VehicleLicense/DealerCommunication/index.vue')\n },\n]\n","import { RouteRecordRaw } from 'vue-router';\n\nexport const settingRouters: Array = [\n {\n path: '/setting/systemSetting',\n name: 'systemSetting',\n component: () => import('@/views/Setting/Index.vue'),\n },\n {\n path: '/setting/AttachementMasterSetting',\n name: 'AttachementMasterSetting',\n component: () => import('@/views/Setting/AttachementMasterSetting.vue'),\n },\n {\n path: '/setting/pdilist',\n name: 'PDIList',\n component: () => import('@/views/Setting/PDIManagement.vue'),\n }\n];\n","import { RouteRecordRaw } from 'vue-router';\nexport const taskCenterRouters: Array = [\n {\n path: '/taskCenter/taskJob',\n name: 'taskJob',\n component: () => import('@/views/TaskCenter/TaskJob/index.vue'),\n },\n {\n path: '/taskCenter/PackageTask',\n name: 'PackageTask',\n component: () => import('@/views/TaskCenter/PackageTask/index.vue'),\n },\n {\n path: '/batchOperation/DWHDataTransfer',\n name: 'DWH Data Transfer',\n component: () => import('@/views/TaskCenter/DWHDataTransfer/index.vue'),\n }\n];\n","/*\n * @Author: zhengda.lv\n * @Date: 2021-10-18 11:32:21\n * @LastEditTime: 2021-10-21 13:55:28\n * @LastEditors: zhengda.lv\n * @Description:\n */\nimport { RouteRecordRaw } from 'vue-router';\nexport const delayRouters: Array = [\n //! 5030 5031 5032 Delay\n {\n path: '/claimDelay/dealerClaim',\n name: 'dealerClaim',\n component: () =>\n import('@/views/Delay/ClaimDelay/DealerClaim/index.vue'),\n },\n //! region的 Claim delay&delay callback\n {\n path: '/claimDelay/regionClaim',\n name: 'regionClaim',\n component: () =>\n import('@/views/Delay/ClaimDelay/RegionClaim/index.vue'),\n },\n //! region的 claim detail\n {\n path: '/claimDelay/regionClaimDetail',\n name: 'regionClaimDetail',\n component: () =>\n import('@/views/Delay/ClaimDetail/RegionClaimDetail/index.vue'),\n },\n //! sipo的 Claim delay&delay callback\n {\n path: '/claimDelay/SIPOClaim',\n name: 'sipoClaim',\n component: () => import('@/views/Delay/ClaimDelay/SIPOClaim/index.vue'),\n },\n //! sipo的 claim detail\n {\n path: '/claimDelay/SIPOClaimDetail',\n name: 'sipoClaimDetail',\n component: () =>\n import('@/views/Delay/ClaimDetail/SIPOClaimDetail/index.vue'),\n },\n];\n","import { RouteRecordRaw } from 'vue-router';\n\nexport const communicationRouters: Array = [\n {\n path: '/communication/appeal',\n name: 'appeal',\n component: () =>\n import('@/views/Communication/Appeal/MainPage/index.vue'),\n },\n {\n path: '/communication/appeal/history',\n name: 'appealHistory',\n component: () =>\n import('@/views/Communication/Appeal/History/index.vue'),\n },\n {\n path: '/communication/appeal/detail',\n name: 'appealDetail',\n component: () =>\n import('@/views/Communication/Appeal/Detail/index.vue'),\n },\n];\n","import { RouteRecordRaw } from 'vue-router';\nexport const delayCallbackRouters: Array = [\n {\n path: '/delayCallback',\n name: 'Delay Callback',\n component: () =>\n import('@/views/DelayCallback/Retail/index.vue'),\n },\n {\n path: '/delayCallback/overdueSearchDeclaration',\n name: 'Overdue Search Declaration',\n component: () =>\n import('@/views/DelayCallback/Retail/overdueSearchDeclaration.vue'),\n },\n {\n path: '/delayCallback/dealerDelayApply',\n name: 'Dealer Delay Apply',\n component: () =>\n import('@/views/DelayCallback/Dealer/dealerDelayApply.vue')\n },\n {\n path: '/delayCallback/regionCheckRetail',\n name: 'Region Check Retail',\n component: () =>\n import('@/views/DelayCallback/Region/checkRetail.vue')\n },\n {\n path: '/delayCallback/regionCheckRetailDetail',\n name: 'Region Check Retail Detail',\n component: () =>\n import('@/views/DelayCallback/Region/checkRetailDetail.vue')\n },\n {\n path: '/delayCallback/SIPOCheckRetail',\n name: 'SIPO Check Retail',\n component: () =>\n import('@/views/DelayCallback/SIPO/checkRetail.vue')\n },\n {\n path: '/delayCallback/SIPOCheckRetailDetail',\n name: 'SIPO Check Retail Detail',\n component: () =>\n import('@/views/DelayCallback/SIPO/checkRetailDetail.vue')\n }\n];\n","import { RouteRecordRaw } from \"vue-router\";\nexport const delayUsedCarRouters: Array = [\n {\n path: \"/delayUsedCar/dealer\",\n name: \"Used Car Dealer\",\n component: () => import(\"@/views/DelayUsedCar/Dealer/index.vue\"),\n },\n {\n path: \"/delayUsedCar/dealerDetail\",\n name: \"Used Car Dealer Detail\",\n component: () => import(\"@/views/DelayUsedCar/Dealer/Detail/index.vue\"),\n },\n {\n path: \"/delayUsedCar/regionUC\",\n name: \"Used Car Region\",\n component: () => import(\"@/views/DelayUsedCar/Region/index.vue\"),\n },\n {\n path: \"/delayUsedCar/sipoUC\",\n name: \"Used Car SIPO\",\n component: () => import(\"@/views/DelayUsedCar/SIPO/index.vue\"),\n },\n];\n","import { RouteRecordRaw } from 'vue-router';\n\nexport const salesRepotringRouters: Array = [\n {\n path: '/salesreporting/salespanel',\n name: 'SalesPanel',\n component: () => import('@/views/SalesReporting/SalesPanel/index.vue')\n },\n //03\n {\n path: '/salesreporting/claimCheckingReportOEM',\n name: 'Sales Claim Checking OEM',\n component: () => import('@/views/SalesReporting/ClaimCheckingReportOEM/index.vue')\n },\n {\n path: '/salesreporting/claimCheckingReportDealer',\n name: 'Sales Claim Checking Dealer',\n component: () => import('@/views/SalesReporting/ClaimCheckingReportDealer/index.vue')\n },\n {\n path: '/salesreporting/claimCheckingReportDemoCar',\n name: 'Sales Claim Checking Demo Car',\n component: () => import('@/views/SalesReporting/ClaimCheckingReportDemoCar/index.vue')\n },\n //11\n {\n path: '/salesreporting/vehicleLicenseTrackingReport',\n name: 'Vehicle License Tracking Report',\n component: () => import('@/views/SalesReporting/VehicleLicenseTrackingReport/index.vue')\n },\n {\n path: '/salesreporting/prepaymentQualifiedOEM',\n name: 'PrepaymentQualified',\n component: () => import('@/views/SalesReporting/PrepaymentQualified/OEM/index.vue')\n },\n {\n path: '/salesreporting/prepaymentQualifiedDealer',\n name: 'prepaymentQualifiedDealer',\n component: () => import('@/views/SalesReporting/PrepaymentQualified/Dealer/index.vue')\n },\n {\n path: '/salesreporting/payoutForm',\n name: 'PayoutForm',\n component: () => import('@/views/SalesReporting/PayoutForm/index2.vue')\n },\n {\n path: '/salesreporting/payoutBreakdownDealer',\n name: 'DealerPayoutBreakdown',\n component: () => import('@/views/SalesReporting/PayoutBreakdown/Dealer/index.vue')\n },\n {\n path: '/salesreporting/payoutBreakdownOEM',\n name: 'OEMPayoutBreakdown',\n component: () => import('@/views/SalesReporting/PayoutBreakdown/OEM/index.vue')\n },\n {\n path: '/salesreporting/RVSubmissionOEM',\n name: 'RVSubmissionOEM',\n component: () => import('@/views/SalesReporting/RVSubmission/OEM/index.vue')\n },\n {\n path: '/salesreporting/RVSubmissionDealer',\n name: 'RVSubmissionDealer',\n component: () => import('@/views/SalesReporting/RVSubmission/Dealer/index.vue')\n },\n {\n path: '/salesreporting/saleOverviewDealer',\n name: 'SaleOverview',\n component: () => import('@/views/SalesReporting/SaleOverview/index.vue')\n },\n {\n path: '/salesreporting/failedReasonAnalysis',\n name: 'FailedReasonAnalysis',\n component: () => import('@/views/SalesReporting/FailedReasonAnalysis/index.vue')\n },\n {\n path: '/salesreporting/checkerManagement',\n name: 'CheckerManagement',\n component: () => import('@/views/SalesReporting/CheckerManagement/index.vue')\n },\n {\n path: '/salesreporting/checkingPlanActualReport',\n name: 'CheckingPlanActualReport',\n component: () => import('@/views/SalesReporting/CheckingPlanActualReport/index.vue')\n },\n {\n path: '/salesreporting/failedReasonAnalysisDealer',\n name: 'FailedReasonAnalysisDealer',\n component: () => import('@/views/SalesReporting/FailedReasonAnalysis/Dealer.vue')\n },\n //1-06\n {\n path: '/salesreporting/paymentTrackingReportOEM',\n name: 'paymentTrackingReportOEM',\n component: () => import('@/views/SalesReporting/PaymentTrackingReport/index.vue')\n },\n\n //报表第二期\n {\n path: '/salesreporting/salesPanelOverview',\n name: 'salesPanelOverview',\n component: () => import('@/views/SalesReporting2/SalesPanelOverview/index.vue')\n },\n {\n path: '/salesreporting/estimationReport',\n name: 'EstimationReport',\n component: () => import('@/views/SalesReporting2/SICheckingPayoutEstimationReport/index.vue')\n },\n {\n path: '/salesreporting/paymentTrackingReport',\n name: 'PaymentTrackingReport',\n component: () => import('@/views/SalesReporting2/PaymentTrackingReport/index.vue')\n },\n {\n path: '/salesreporting/paymentTrackingReportReleaseInput',\n name: 'PaymentTrackingReportReleaseInput',\n component: () => import('@/views/SalesReporting2/PaymentTrackingReport/ReleaseInput/index.vue')\n },\n //2-04\n {\n path: '/salesreporting/salesCompetationResult',\n name: 'Sales Competation Result',\n component: () => import('@/views/SalesReporting/SalesCompetationResult/index.vue')\n },\n //2-07\n {\n path: '/salesreporting/rvVsCESARSubmissionAnalystReport',\n name: 'RV vs CESAR Submission Analyst Report',\n component: () => import('@/views/SalesReporting/RVVsCESARSubmissionAnalystReport/index.vue')\n },\n //2-2\n {\n path: '/salesreporting/penetrationReportByProgramContent',\n name: 'Penetration Report',\n component: () => import('@/views/SalesReporting2/PenetrationReportByProgramContent/index.vue')\n }\n];\n","import { RouteRecordRaw } from 'vue-router';\n\nexport const guiDangRouters: Array = [\n {\n path: '/guiDang',\n name: 'GuiDang',\n component: () => import('@/views/Guidang/GuiDangIndex/index.vue')\n },\n {\n path: '/archiveDocument',\n name: 'Archive Document',\n component: () => import('@/views/Guidang/ArchiveDocument/index.vue')\n }\n];\n","import { RouteRecordRaw } from \"vue-router\";\nexport const reportingRouters: RouteRecordRaw[] = [\n {\n path: \"/SIConfigurationReport\",\n name: \"SI Configuration Report\",\n component: () => import(\"@/views/Reporting/Index.vue\"),\n },\n {\n path: \"/ControllerReporting\",\n name: \"Controller Reporting\",\n component: () => import(\"@/views/Reporting/ControllerReporting.vue\"),\n },\n {\n path: \"/SISummaryByVehicle\",\n name: \"SI Summary By Vehicle\",\n component: () => import(\"@/views/Reporting/SISummaryByVehicle.vue\"),\n },\n {\n path: \"/SIBudgetReport\",\n name: \"SI Budget Report\",\n component: () => import(\"@/views/Reporting/SIBudgetReport.vue\"),\n },\n {\n path: \"/GuidelineReportSales\",\n name: \"Guideline Report Sales\",\n component: () => import(\"@/views/Reporting/GuidelineReportSales.vue\"),\n },\n];\n","import { RouteRecordRaw } from 'vue-router';\n\nexport const localRegistrationRouters: Array = [\n {\n path: '/localRegistration/setup/keyModelsSet',\n name: 'Key Models Set',\n component: () =>\n import('@/views/LocalRegistration/Setup/KeyModelsSet.vue'),\n },\n {\n path: '/localRegistration/setup/uploadCurveSelection',\n name: 'Upload curve selection of restricted cities',\n component: () =>\n import('@/views/LocalRegistration/Setup/UploadCurveSelection.vue'),\n },\n {\n path: '/localRegistration/setup/uploadCurveSelection/failedReason',\n name: 'Curve Selection Upload Failed Reason',\n component: () =>\n import(\n '@/views/LocalRegistration/Setup/CurveUploadFailedReason.vue'\n ),\n },\n {\n path: '/localRegistration/setup/restrictedCitySet',\n name: 'Restricted City Set',\n component: () =>\n import('@/views/LocalRegistration/Setup/RestrictedCitySet.vue'),\n },\n {\n path: '/localRegistration/setup/registrationValiditySet',\n name: 'Registration Validity Set',\n component: () =>\n import(\n '@/views/LocalRegistration/Setup/RegistrationValiditySet.vue'\n ),\n },\n {\n path: '/localRegistration/setup/licensePlateMappingCity',\n name: 'License Plate Mapping City',\n component: () =>\n import(\n '@/views/LocalRegistration/Setup/LicensePlateMappingCity.vue'\n ),\n },\n {\n path: '/localRegistration/focusAreaSet/home',\n name: 'Focus Area Set Home',\n component: () =>\n import('@/views/LocalRegistration/FocusAreaSet/index.vue'),\n },\n {\n path: '/localRegistration/focusAreaSet/dealerAdjustment',\n name: 'Focus Area Set Dealer Adjustment',\n component: () =>\n import(\n '@/views/LocalRegistration/FocusAreaSet/DealerAdjustment.vue'\n ),\n },\n {\n path: '/localRegistration/focusAreaSet/dealerAdjustment/add',\n name: 'Focus Area Set Dealer Adjustment Add',\n component: () =>\n import(\n '@/views/LocalRegistration/FocusAreaSet/DealerAdjustmentAdd.vue'\n ),\n },\n {\n path: '/localRegistration/focusAreaSet/dealerAdjustment/add2',\n name: 'Focus Area Set Dealer Adjustment Add2',\n component: () =>\n import(\n '@/views/LocalRegistration/FocusAreaSet/DealerAdjustmentAdd2.vue'\n ),\n },\n {\n path: '/localRegistration/focusAreaSet/dealerAdjustment/delete',\n name: 'Focus Area Set Dealer Adjustment Delete',\n component: () =>\n import(\n '@/views/LocalRegistration/FocusAreaSet/DealerAdjustmentDelete.vue'\n ),\n meta: {\n keepAlive: false,\n },\n },\n {\n path: '/localRegistration/focusAreaSet/dealerAdjustment/delete2',\n name: 'Focus Area Set Dealer Adjustment Delete2',\n component: () =>\n import(\n '@/views/LocalRegistration/FocusAreaSet/DealerAdjustmentDelete2.vue'\n ),\n },\n {\n path: '/localRegistration/focusAreaSet/dealerAdjustment/edit',\n name: 'Focus Area Set Dealer Adjustment Edit',\n component: () =>\n import(\n '@/views/LocalRegistration/FocusAreaSet/QueryFocusAreaList/DealerAdjustmentEdit.vue'\n ),\n },\n {\n path: '/localRegistration/focusAreaSet/dealerAdjustment/edit2',\n name: 'Focus Area Set Dealer Adjustment Edit2',\n component: () =>\n import(\n '@/views/LocalRegistration/FocusAreaSet/QueryFocusAreaList/DealerAdjustmentEdit2.vue'\n ),\n },\n {\n path: '/localRegistration/focusAreaList',\n name: 'Query Focus Area List',\n component: () =>\n import(\n '@/views/LocalRegistration/FocusAreaSet/QueryFocusAreaList/index.vue'\n ),\n children: [\n {\n path: 'query',\n name: 'Query Focus Area List Query',\n component: () =>\n import(\n '@/views/LocalRegistration/FocusAreaSet/QueryFocusAreaList/Query.vue'\n ),\n meta: {\n title: 'Query',\n showInTab: true,\n },\n },\n {\n path: 'changeHistory',\n name: 'Query Focus Area List Change History',\n component: () =>\n import(\n '@/views/LocalRegistration/FocusAreaSet/QueryFocusAreaList/ChangeHistory.vue'\n ),\n meta: {\n title: 'Change History',\n showInTab: true,\n },\n },\n ],\n },\n {\n path: '/localRegistration/focusAreaRuleSet',\n name: 'Focus Area Rule Set',\n component: () =>\n import(\n '@/views/LocalRegistration/FocusAreaSet/FocusAreaRuleSet/index.vue'\n ),\n },\n {\n path: '/localRegistration/dataUpload/exemption',\n name: 'Local Registration Data Upload Exemption',\n component: () =>\n import(\n '@/views/LocalRegistration/LocalRegistrationDataUpload/Exemption/index.vue'\n ),\n },\n {\n path: '/localRegistration/dataUpload/exemption/:mode',\n name: 'Local Registration Data Upload Exemption Editor',\n component: () =>\n import(\n '@/views/LocalRegistration/LocalRegistrationDataUpload/Exemption/Editor.vue'\n ),\n },\n {\n path: '/localRegistration/dataUpload/thirdPartyData',\n name: 'Local Registration Data Upload Third Party Data',\n component: () =>\n import(\n '@/views/LocalRegistration/LocalRegistrationDataUpload/ThirdPartData/index.vue'\n ),\n },\n {\n path: '/localRegistration/dataUpload/thirdPartyData/failedReason',\n name: 'Local Registration Data Upload Third Party Data Failed Reason',\n component: () =>\n import(\n '@/views/LocalRegistration/LocalRegistrationDataUpload/ThirdPartData/FailedReason.vue'\n ),\n },\n {\n path: '/localRegistration/setup/rateCalculationRuleSet',\n name: 'Local Registration Rate Calculation Rule Set',\n component: () =>\n import(\n '@/views/LocalRegistration/Setup/RateCalculationRuleSet/index.vue'\n ),\n },\n {\n path: '/localRegistration/setup/rateCalculationRuleSet/:mode',\n name: 'Local Registration Rate Calculation Rule Editor',\n component: () =>\n import(\n '@/views/LocalRegistration/Setup/RateCalculationRuleSet/Editor.vue'\n ),\n },\n {\n path: '/localRegistration/registrationgResult',\n name: 'Local Registration Registrationg Result',\n component: () =>\n import('@/views/LocalRegistration/RegistrationResult/index.vue'),\n children: [\n {\n path: 'checkingResult',\n name: 'Local Registration Registrationg Result Checking Result',\n component: () =>\n import(\n '@/views/LocalRegistration/RegistrationResult/CheckingResult.vue'\n ),\n meta: {\n title: 'Checking Result',\n showInTab: true,\n },\n },\n {\n path: 'comparison',\n name: 'Local Registration Registrationg Result Comparison',\n component: () =>\n import(\n '@/views/LocalRegistration/RegistrationResult/Comparison.vue'\n ),\n meta: {\n title: 'Comparison',\n showInTab: true,\n },\n },\n ],\n },\n {\n path: '/localRegistration/dealerCheckingResult',\n name: 'Local Registration Dealer Checking Result',\n component: () =>\n import('@/views/LocalRegistration/DealerCheckingResult/index.vue'),\n },\n {\n path: '/localRegistration/centralReport',\n name: 'Local Registration Reporting Central',\n component: () =>\n import('@/views/LocalRegistrationReport/Central/index.vue'),\n },\n {\n path: '/localRegistration/regionReport',\n name: 'Local Registration Reporting Region',\n component: () =>\n import('@/views/LocalRegistrationReport/Region/index.vue'),\n },\n];\n","import { RouteRecordRaw } from \"vue-router\";\nexport const faqRouters: Array = [\n {\n path: \"/faq/management\",\n name: \"FAQ Management\",\n component: () => import(\"@/views/FAQ/Management/index.vue\"),\n },\n {\n path: \"/faq/dealerManagement\",\n name: \"FAQ Dealer Management\",\n component: () => import(\"@/views/FAQ/DealerManagement/index.vue\"),\n },\n {\n path: \"/faq/enquiry\",\n name: \"FAQ Enquiry\",\n component: () => import(\"@/views/FAQ/Enquiry/index.vue\"),\n },\n {\n path: \"/faq/edit/:faqId?\",\n name: \"FAQ Edit\",\n component: () => import(\"@/views/FAQ/Edit/index.vue\"),\n },\n {\n path: \"/faq/configrate/:faqId\",\n name: \"FAQ Configrate\",\n component: () => import(\"@/views/FAQ/Configrate/index.vue\"),\n },\n {\n path: \"/faq/dealerView/:faqId\",\n name: \"FAQ Dealer View\",\n component: () => import(\"@/views/FAQ/DealerView/index.vue\"),\n },\n {\n path: \"/faq/View/:faqId\",\n name: \"FAQ View\",\n component: () => import(\"@/views/FAQ/View/index.vue\"),\n },\n];\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { id: \"over-view\" }\nconst _hoisted_2 = {\n id: \"tabs\",\n class: \"m-t-10 p-10 bg-fff\"\n}\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"Add New Offer Type\")\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"Add New Fleet Custormer Type\")\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"add-si-checkbox\" }, \"Add New SI Offer If Need \", -1)\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"Confirm\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Breadcrumb = _resolveComponent(\"Breadcrumb\")!\n const _component_Navbar = _resolveComponent(\"Navbar\")!\n const _component_offer_list = _resolveComponent(\"offer-list\")!\n const _component_a_tab_pane = _resolveComponent(\"a-tab-pane\")!\n const _component_offer_fleet = _resolveComponent(\"offer-fleet\")!\n const _component_a_tabs = _resolveComponent(\"a-tabs\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_row = _resolveComponent(\"a-row\")!\n const _component_a_checkbox_group = _resolveComponent(\"a-checkbox-group\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Breadcrumb, { dataSource: [] }),\n _createVNode(_component_Navbar, { class: \"p-l-r-10 bg-fff\" }),\n _createElementVNode(\"div\", _hoisted_2, [\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 }, {\n default: _withCtx(() => [\n (_ctx.$btnPermissions('NORMAL SALES'))\n ? (_openBlock(), _createBlock(_component_a_tab_pane, {\n key: \"1\",\n tab: \"Normal Sales\"\n }, {\n default: _withCtx(() => [\n (_ctx.$btnPermissions('ADD NEW OFFER TYPE'))\n ? (_openBlock(), _createBlock(_component_offer_list, {\n key: 0,\n keys: 1\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.$btnPermissions('FLEET SALES'))\n ? (_openBlock(), _createBlock(_component_a_tab_pane, {\n key: \"2\",\n tab: \"Fleet Sales\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_offer_fleet, { keys: 2 }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"activeKey\"])\n ]),\n _createVNode(_component_a_modal, {\n title: \"Select Active SI Offer \",\n centered: \"\",\n zIndex: 1000,\n visible: _ctx.visibleStatus,\n \"onUpdate:visible\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.visibleStatus) = $event)),\n onCancel: _ctx.cancelStatus\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"submit\",\n type: \"primary\",\n onClick: _ctx.confirmStaus\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_checkbox_group, {\n value: _ctx.checkboxArr,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.checkboxArr) = $event)),\n name: \"222\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.optionsData, (item) => {\n return (_openBlock(), _createBlock(_component_a_row, {\n class: \"m-checkbox\",\n key: item.id\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_component_a_checkbox, {\n value: item.id,\n key: item.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.name), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\"]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"i\", {\n class: \"font_family icon-tianjia11 m-l-30 m-r-8\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.visibleSI = true))\n }),\n _hoisted_5\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onCancel\"])\n ]))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_navbar = _resolveComponent(\"navbar\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(_component_navbar, { navArr: _ctx.navArr }, null, 8, [\"navArr\"])\n ]))\n}","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 } from \"vue\"\n\nconst _hoisted_1 = { class: \"navbar\" }\nconst _hoisted_2 = { id: \"mian\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.navArr, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: \"navtag\",\n key: item.id\n }, [\n _createVNode(_component_router_link, {\n to: item.path\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.title) + \" \", 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"font_family tagicon\", item.icon])\n }, null, 2)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]))\n }), 128))\n ])\n ])\n ]))\n}","\nimport { defineComponent, PropType } from 'vue'\n// import { useRoute } from 'vue-router'\nimport { NavbarProps } from './types'\nexport default defineComponent({\n props: {\n navArr: {\n default: () => [],\n type: Array as PropType\n }\n },\n name: '',\n setup () {\n return {\n\n }\n }\n });\n","import { render } from \"./ConfigurationNav.vue?vue&type=template&id=7cfcf39f&ts=true\"\nimport script from \"./ConfigurationNav.vue?vue&type=script&lang=ts\"\nexport * from \"./ConfigurationNav.vue?vue&type=script&lang=ts\"\n\nimport \"./ConfigurationNav.vue?vue&type=style&index=0&id=7cfcf39f&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { defineComponent, ref } from 'vue'\nimport { NavbarProps } from './types'\nimport Navbar from '@/views/Budget/ConfigurationNav.vue'\nimport { btnPermissions } from '@/utils'\nexport default defineComponent({\n components: { Navbar },\n name: '',\n setup() {\n const navArr = ref()\n navArr.value = []\n if (btnPermissions('OFFER TYPE')) {\n navArr.value.push({\n title: 'OFFER TYPE',\n path: '/offertype',\n id: '1',\n })\n }\n if (btnPermissions('BUDGET TEMPLATE')) {\n navArr.value.push({\n title: 'BUDGET TEMPLATE',\n path: '/budgutemplate',\n id: '2',\n })\n }\n return {\n navArr,\n }\n },\n})\n","import { render } from \"./index.vue?vue&type=template&id=b8cab008&ts=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, renderSlot as _renderSlot, createTextVNode as _createTextVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"over-box\" }\nconst _hoisted_2 = {\n class: \"f-r\",\n style: {\"margin-bottom\":\"16px\",\"overflow\":\"hidden\"}\n}\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-tianjia11\" }, null, -1)\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-zhankai\" }, null, -1)\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\" Expand all \")\nconst _hoisted_6 = [\n _hoisted_4,\n _hoisted_5\n]\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-shangchuan\" }, null, -1)\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\" Export to Excel \")\nconst _hoisted_9 = [\n _hoisted_7,\n _hoisted_8\n]\nconst _hoisted_10 = { key: 0 }\nconst _hoisted_11 = {\n key: 0,\n class: \"font_family icon-old-Warning offer-name-icon\"\n}\nconst _hoisted_12 = [\"onClick\"]\nconst _hoisted_13 = [\"onClick\"]\nconst _hoisted_14 = /*#__PURE__*/_createTextVNode(\" Status \")\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-biaogeshaixuan active-color\" }, null, -1)\nconst _hoisted_16 = [\"onClick\"]\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-old-edit1\" }, null, -1)\nconst _hoisted_18 = /*#__PURE__*/_createTextVNode(\" Configuration\")\nconst _hoisted_19 = [\n _hoisted_17,\n _hoisted_18\n]\nconst _hoisted_20 = /*#__PURE__*/_createTextVNode(\"Cancel\")\nconst _hoisted_21 = /*#__PURE__*/_createTextVNode(\"Create\")\nconst _hoisted_22 = /*#__PURE__*/_createTextVNode(\"Confirm\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_menu_item = _resolveComponent(\"a-menu-item\")!\n const _component_a_menu = _resolveComponent(\"a-menu\")!\n const _component_a_dropdown = _resolveComponent(\"a-dropdown\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_form_item = _resolveComponent(\"a-form-item\")!\n const _component_a_input = _resolveComponent(\"a-input\")!\n const _component_a_form = _resolveComponent(\"a-form\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_row = _resolveComponent(\"a-row\")!\n const _component_a_checkbox_group = _resolveComponent(\"a-checkbox-group\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", {\n class: \"btn-operation cursor-p m-l-15\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.handleAddOffer && _ctx.handleAddOffer(...args)))\n }, [\n _hoisted_3,\n _renderSlot(_ctx.$slots, \"default\")\n ]),\n _createElementVNode(\"span\", {\n class: \"btn-operation cursor-p m-l-15\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.handleExpand && _ctx.handleExpand(...args)))\n }, _hoisted_6),\n _createElementVNode(\"span\", {\n class: \"btn-operation cursor-p m-l-15\",\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.expotToExcel && _ctx.expotToExcel(...args)))\n }, _hoisted_9)\n ]),\n _createVNode(_component_a_table, {\n columns: _ctx.columns,\n \"data-source\": _ctx.tableData,\n pagination: false,\n expandIcon: _ctx.expandIcon,\n expandIconColumnIndex: 1,\n expandIconAsCell: false,\n rowKey: tableData => tableData.offerTypeId,\n onExpand: _ctx.onExpand,\n expandedRowKeys: _ctx.expKeys,\n scroll: { y: _ctx.keys === 1 ? _ctx.tableHeight - 30 : (_ctx.tableHeight - 60) / 2 },\n class: \"clearfix self-table-icon-20\",\n rowClassName: (record, index) => (index % 2 === 1 ? 'table-striped' : null)\n }, {\n offerTypeName: _withCtx(({ record, text }) => [\n (record.incentiveCategoryId)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, [\n _createTextVNode(_toDisplayString(text) + \" \", 1),\n (record.needMaintain)\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_11))\n : _createCommentVNode(\"\", true)\n ]))\n : (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: _normalizeClass({'color-grey': !record.active})\n }, _toDisplayString(text), 3))\n ]),\n active: _withCtx(({ record }) => [\n (record.incentiveCategoryId)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass([\"font_family cursor-p f20\", record.offerTypeActive ? 'icon-old-Unlock' : 'icon-old-Lock']),\n onClick: ($event: any) => (_ctx.handleChangeStaus(record))\n }, null, 10, _hoisted_12))\n : (record.offerTypeActive)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: _normalizeClass([\"font_family cursor-p f20\", record.active ? 'icon-old-Unlock' : 'icon-old-Lock']),\n onClick: ($event: any) => (_ctx.handleDisable(record))\n }, null, 10, _hoisted_13))\n : (_openBlock(), _createElementBlock(\"span\", {\n key: 2,\n class: _normalizeClass([\"font_family color-grey f20\", record.active ? 'icon-old-Unlock' : 'icon-old-Lock'])\n }, null, 2))\n ]),\n customTitle: _withCtx(() => [\n _hoisted_14,\n _createVNode(_component_a_dropdown, { placement: \"bottomCenter\" }, {\n overlay: _withCtx(() => [\n _createVNode(_component_a_menu, null, {\n default: _withCtx(() => [\n _createVNode(_component_a_menu_item, null, {\n default: _withCtx(() => [\n _createElementVNode(\"a\", {\n href: \"javascript:;\",\n class: _normalizeClass({'active-color':_ctx.activeText==='active'}),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.tableChange('active')))\n }, \"Active\", 2)\n ]),\n _: 1\n }),\n _createVNode(_component_a_menu_item, null, {\n default: _withCtx(() => [\n _createElementVNode(\"a\", {\n href: \"javascript:;\",\n class: _normalizeClass({'active-color':_ctx.activeText==='inactive'}),\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.tableChange('inactive')))\n }, \"Inactive\", 2)\n ]),\n _: 1\n }),\n _createVNode(_component_a_menu_item, null, {\n default: _withCtx(() => [\n _createElementVNode(\"a\", {\n href: \"javascript:;\",\n class: _normalizeClass({'active-color':_ctx.activeText==='all'}),\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.tableChange('all')))\n }, \"All\", 2)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _hoisted_15\n ]),\n _: 1\n }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.activeText), 1)\n ]),\n operation: _withCtx(({ record }) => [\n (record.incentiveCategoryId && _ctx.$btnPermissions('CONFIGURATION'))\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n onClick: ($event: any) => (_ctx.$router.push({ name: 'Add Offer', params: {id: record.offerTypeId, name: record.offerTypeName, status: record.offerTypeActive} })),\n class: \"cursor-p\"\n }, _hoisted_19, 8, _hoisted_16))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"expandIcon\", \"rowKey\", \"onExpand\", \"expandedRowKeys\", \"scroll\", \"rowClassName\"]),\n _createVNode(_component_a_modal, {\n centered: \"\",\n title: _ctx.isAdd ? 'Add Offer Type/SI Offer' : 'Edit Offer Type/SI Offer',\n visible: _ctx.visibleOffer,\n \"onUpdate:visible\": _cache[9] || (_cache[9] = ($event: any) => ((_ctx.visibleOffer) = $event)),\n onCancel: _ctx.cancelOffer\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"back\",\n onClick: _ctx.cancelOffer\n }, {\n default: _withCtx(() => [\n _hoisted_20\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n key: \"submit\",\n type: \"primary\",\n onClick: _ctx.createOffer\n }, {\n default: _withCtx(() => [\n _hoisted_21\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_form, {\n model: _ctx.form,\n \"label-col\": _ctx.labelCol,\n \"wrapper-col\": _ctx.wrapperCol,\n ref: _ctx.offerRef,\n rules: _ctx.rules\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_form_item, {\n label: \"Sales Channel\",\n name: \"salesnm\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select, {\n disabled: \"\",\n value: _ctx.form.sales,\n \"onUpdate:value\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.form.sales) = $event)),\n placeholder: \"Normal Sales\",\n onChange: _ctx.selectChange\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.salesList, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n data: \"salesid\",\n value: item.salesnm,\n key: item.salesid\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.salesnm), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"])\n ]),\n _: 1\n }),\n _createVNode(_component_a_form_item, {\n label: \"Incentive Category\",\n name: \"incentiveCategoryName\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select, {\n value: _ctx.form.incentiveCategoryName,\n \"onUpdate:value\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.form.incentiveCategoryName) = $event)),\n placeholder: \"Please select\",\n onChange: _ctx.selectChange\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.incaentiveList, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n data: \"incaentiveid\",\n value: item.incentiveCategoryId,\n key: item.incentiveCategoryId\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.incentiveCategoryName), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"])\n ]),\n _: 1\n }),\n _createVNode(_component_a_form_item, {\n label: \"Offer Type\",\n name: \"offerTypeName\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_input, {\n value: _ctx.form.offerTypeName,\n \"onUpdate:value\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.form.offerTypeName) = $event)),\n placeholder: \"Input Name\"\n }, null, 8, [\"value\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"model\", \"label-col\", \"wrapper-col\", \"rules\"])\n ]),\n _: 1\n }, 8, [\"title\", \"visible\", \"onCancel\"]),\n _createVNode(_component_a_modal, {\n title: \"Select Active SI Offer \",\n centered: \"\",\n zIndex: 1000,\n visible: _ctx.visibleStatus,\n \"onUpdate:visible\": _cache[11] || (_cache[11] = ($event: any) => ((_ctx.visibleStatus) = $event)),\n onCancel: _ctx.cancelStatus\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"submit\",\n type: \"primary\",\n onClick: _ctx.confirmStaus\n }, {\n default: _withCtx(() => [\n _hoisted_22\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_checkbox_group, {\n value: _ctx.checkboxArr,\n \"onUpdate:value\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.checkboxArr) = $event)),\n name: \"222\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.optionsData, (item) => {\n return (_openBlock(), _createBlock(_component_a_row, {\n class: \"m-checkbox\",\n key: item.id\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_component_a_checkbox, {\n value: item.id,\n key: item.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.name), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\"])\n ]),\n _: 1\n }, 8, [\"visible\", \"onCancel\"])\n ]))\n}","\nimport { defineComponent, ref, toRefs, reactive, h, onMounted, nextTick, } from \"vue\";\nimport { salesList } from \"@/views/Budget/data\";\nimport { ValidProps } from '@/API/types'\nimport { overviewProps, siofferProps, siofferNameProps, siStatusProps, expandProps } from \"@/views/Budget/types\"\nimport { SelectProps } from '@/API/types'\nimport { OverviewFindall, CheckExisted, AddOverview, AddSioffer, UpdateOfferStatus, UpdateSiStatus, UpdateSiOffer, getProgramType, systemSettingProgramType } from '@/API/budget'\nimport { Modal, message } from \"ant-design-vue\";\nimport deepClone from '@/utils/deepClone'\nimport blobDownload from '@/utils/blobDownload';\nimport { useRouter } from \"vue-router\";\nimport { useStore } from \"vuex\";\nimport useTableHeight from \"@/hooks/useTableHeight\";\n\nconst columns = [\n {\n title: \"Incentive Category\",\n dataIndex: \"incentiveCategoryName\",\n key: \"ientive\",\n width: \"20%\",\n },\n {\n title: \"Offer Type / SI Offer\",\n dataIndex: \"offerTypeName\",\n key: \"offertp\",\n width: \"30%\",\n slots: { customRender: \"offerTypeName\" },\n },\n {\n // title: \"Status * Active\",\n dataIndex: \"active\",\n key: \"active\",\n // filters: [\n // { text: 'active', value: 'active' },\n // { text: 'inactive', value: 'inactive' },\n // { text: 'all', value: 'all' },\n // ],\n // defaultFilteredValue: ['active'], // 设置默认过滤的值\n // filterMultiple: false,\n width: \"30%\",\n slots: { title: 'customTitle' ,customRender: \"active\" },\n },\n {\n title: \"Operation\",\n dataIndex: \"operation\",\n key: \"operation\",\n slots: { customRender: \"operation\" },\n },\n \n];\ninterface FiltersProps {\n active: string[];\n}\n\nexport default defineComponent({\n props: {\n keys: {\n default: 1,\n type: Number\n }\n },\n components: {\n },\n setup() {\n const { tableHeight } = useTableHeight(false);\n const router = useRouter()\n const store = useStore()\n const activeText = ref('active')\n const incaentiveList = ref([])\n // 更改数据的key 用来展示折叠效果\n const changeKey = (data: overviewProps[]) => {\n data.forEach((item) => {\n item['key'] = item.offerTypeId\n for (const key in item) {\n if (key === 'siOffer') {\n item['children'] = item[key];\n item['children'].forEach( (siOffer: siofferProps) => {\n for (const sikey in siOffer) {\n if (sikey === 'name') {\n siOffer['offerTypeName'] = siOffer[sikey]\n }\n if (sikey === 'id') {\n siOffer['offerTypeId'] = siOffer[sikey]\n siOffer['key'] = siOffer[sikey]\n }\n }\n if (!item.offerTypeActive) {\n siOffer['offerTypeActive'] = false\n } else {\n siOffer['offerTypeActive'] = true\n }\n })\n\n }\n }\n })\n return data\n }\n // 过滤si offer\n const tableData = ref([])\n const filterSIoffer = (arr: overviewProps[],type: string) => {\n if (type === 'active') {\n arr.forEach(item => {\n if (item.siOffer) {\n item.siOffer = item.siOffer.filter(sioffer => {\n return sioffer.active === true\n })\n }\n })\n changeKey(arr)\n } \n }\n // 默认获取active的数据 \n const defaultData = (data: overviewProps[]): overviewProps[] => {\n if (sessionStorage.getItem('status') === 'active' || !sessionStorage.getItem('status')) {\n data = data.filter(item => item.offerTypeActive === true)\n filterSIoffer(data, 'active')\n } else if (sessionStorage.getItem('status') === 'inactive') {\n data = data.filter(item => item.offerTypeActive === false)\n }\n return data\n }\n // 用于过滤的原始数据\n const filterTableData = ref([])\n const _incaentiveList = (data: overviewProps[]) => {\n for (const key of data) {\n if (incaentiveList.value.findIndex((item: overviewProps) => item.incentiveCategoryName === key.incentiveCategoryName) < 0) {\n incaentiveList.value.push(key);\n continue;\n }\n }\n }\n // 获取初始化数据\n const initTableData = () => {\n getProgramType().then((res) => {\n _incaentiveList(res)\n filterTableData.value = deepClone(changeKey(res)) \n tableData.value = deepClone(changeKey(defaultData(res))) \n\n }) \n }\n // 过滤table--\n const tableChange = (filters: string) => {\n tableData.value = deepClone(filterTableData.value.filter((item) => {\n if (filters === 'active') {\n activeText.value = 'active'\n sessionStorage.setItem(\"status\", 'active')\n return item.offerTypeActive === true \n }\n if (filters === 'inactive') {\n activeText.value = 'inactive'\n sessionStorage.setItem(\"status\", 'inactive')\n return item.offerTypeActive === false\n }\n if (filters === 'all' || !filters) {\n sessionStorage.setItem(\"status\", 'all')\n activeText.value = 'all'\n return item\n }\n }))\n filterSIoffer(tableData.value, filters)\n }\n\n // -------------------------------------\n // 检查offer/si 是否重复\n let copySiName: string\n let siname: string\n // 点击加符号,添加新的一组input 输入SI Offer\n const siOffarr = ref([])\n // 验重offer type 或者 si offer\n const judgeType = async(value: string, type: string): Promise => { \n const params = {\n name: value,\n type\n }\n const res = await CheckExisted(params)\n return res\n }\n // 判断新增中si offer数组中有无重复数据\n const isRepeat = (arr: siofferNameProps[]): boolean => {\n const hash= {}\n for (const key in arr) {\n console.log(arr[key].name);\n if (hash[arr[key].name]) {\n return true;\n }\n // 不存在该元素,则赋值为true,可以赋任意值,相应的修改if判断条件即可\n hash[arr[key].name] = true;\n }\n return false;\n }\n // 保存si offer的value (必填项的)\n let shortValue = ''\n // 自定义规则\n const validateAsync = async(rule: ValidProps, value: string) => {\n if ((value && value.split(' ').join('').length === 0) || (!value && rule.field && rule.field !== 'siOfferNameAdd')) {\n return Promise.reject('Please input name')\n }\n if ((siname && siname.split(' ').join('').length === 0 && rule.field === 'siOfferNameAdd')) {\n return Promise.reject('Please input name')\n }\n if ((value && value.length > 100) || (siname && siname.length > 100)) {\n return Promise.reject('Length should be 1 to 100')\n }\n if (rule.field === 'offerTypeName') {\n const res = await judgeType(value, 'OFFER-TYPE')\n if (res) {\n return Promise.reject('The Offer Type name already exists')\n }\n }\n if (rule.field === 'siOfferName' && copySiName !== value) {\n shortValue = value\n const res = await judgeType(value, 'SI-OFFER')\n if (res) {\n return Promise.reject('The SI Offer name already exists')\n }\n }\n if (rule.field === 'siOfferNameAdd') {\n if (siname) {\n const res = await judgeType(siname, 'SI-OFFER')\n if (res || siname === shortValue || isRepeat(siOffarr.value)) {\n return Promise.reject('The SI Offer name already exists')\n }\n } \n }\n return Promise.resolve('success')\n }\n // 定义form\n const formData = reactive({\n labelCol: { span: 7 },\n wrapperCol: { span: 15 },\n other: '',\n form: {\n sales: 'Normal Sales',\n salesid: 0,\n incentiveCategoryName: [],\n incentiveCategoryId: '',\n siOfferName: '',\n siOfferId: '',\n offerTypeName: '',\n offerTypeId: ''\n\n },\n rules: {\n incentiveCategoryName: [\n {\n required: true,\n message: 'Please input name',\n trigger: 'blur'\n },\n ],\n offerTypeName: [\n {\n required: true,\n validator: validateAsync,\n trigger: 'blur'\n },\n ],\n siOfferName: [\n {\n required: true,\n validator: validateAsync,\n trigger: 'blur'\n },\n ],\n siOfferNameAdd: [\n {\n validator: validateAsync,\n trigger: 'blur'\n },\n ],\n }\n })\n // 获取form元素\n const getofferRef = ref()\n const offerRef = (el: HTMLElement | null) => {\n nextTick(() => {\n getofferRef.value = el\n })\n }\n \n // 自定义展开icon图标-----------------------展开折叠部分\n const clickExpand = (props: expandProps,e: Element) => {\n props.onExpand(props.record, e)\n } \n // 自定义展开icon\n const expandIcon = (props: expandProps) => {\n if (props.record.children && props.record.children.length > 0 ) {\n if (props.expanded) {\n //有数据-展开时候图标\n return h(\"i\", {\n class: \"font_family icon-xiangxia m-l-5 cursor-p\",\n onClick: (e: Element) => {\n clickExpand(props,e)\n },\n });\n } else {\n //有数据-未展开时候图标\n return h(\"i\", {\n class: \"font_family icon-xiangyou m-l-5 cursor-p\",\n onClick: (e: Element) => {\n clickExpand(props,e)\n },\n });\n }\n } else {\n //无数据-图标\n return h(\"i\", {\n class: \"m-l-5\",\n style: { width: '16px', height: '1px', display: 'inline-block'}\n });\n }\n };\n // 展开所有的折叠--------------\n const expKeys = ref([])\n let expandBool = false\n const handleExpand = () => {\n if (expandBool) {\n expKeys.value = []\n expandBool = false\n } else {\n tableData.value.forEach((item): void => {\n if (item.siOffer) {\n if ( item.siOffer.length > 0) {\n expKeys.value.push(item.offerTypeId)\n expKeys.value = Array.from(new Set(expKeys.value))\n expandBool = true\n } \n }\n \n })\n }\n \n }\n // 点击展开图标触发\n const onExpand = (expanded: boolean, record: overviewProps) => {\n if (expanded) {\n // 设置展开窗Key,代表展开操作\n expKeys.value.push(record.offerTypeId)\n expKeys.value = Array.from(new Set(expKeys.value))\n } else {\n // 代表折叠操作\n if (expKeys.value.length) {\n nextTick( () => {\n expKeys.value = expKeys.value.filter(v => {\n return v !== record.offerTypeId\n })\n })\n \n }\n } \n }\n\n // modal------------------------------------开始\n // 添加offer type (isAdd === 1 代表添加, isAdd === 0 代表编辑)\n const isAdd = ref(1)\n const visibleOffer = ref(false)\n const handleAddOffer = () => {\n visibleOffer.value = true\n isAdd.value = 1\n formData.form.offerTypeName = ''\n }\n \n \n // 用来判断是否可以添加si offer\n const isSIoffer = ref(true)\n // 下拉的回调函数\n const selectChange = (value: string, option: SelectProps) => {\n // 下拉选择 Dealer Incentive时\n formData.form.incentiveCategoryId = option.key\n formData.form.offerTypeName = ''\n // Dealer \n if (option.key === \"67ff8bd2-5be2-4a80-9e12-2a3c92ca769f\" ) {\n isSIoffer.value = false\n siOffarr.value = []\n } else {\n isSIoffer.value = true\n }\n }\n // 添加 offer type\n const createOffer = () => {\n const siOffer: siofferNameProps[] = []\n // 添加的si offer数据\n siOffarr.value.forEach((item) => {\n if (item.name) {\n siOffer.push(item)\n }\n })\n // 如果当前是不是Dealer类型 \n if (isSIoffer.value) {\n // 必填项的si offer数据\n siOffer.push({name: formData.form.siOfferName, active: true})\n }\n const params= {\n incentiveCategoryId: formData.form.incentiveCategoryId,\n offerTypeName: formData.form.offerTypeName,\n }\n getofferRef.value.validate().then(() => {\n AddOverview(params).then((res) => {\n const paramss= {\n incentiveCategoryId: formData.form.incentiveCategoryId,\n offerTypeName: formData.form.offerTypeName,\n offerTypeId: res.offerTypeId\n }\n systemSettingProgramType(paramss)\n // 跳转到add offer\n const { href } = router.resolve({\n path: `/addoffer/${res.offerTypeId}/${res.offerTypeName}/true`,\n })\n window.open(href,'_blank')\n // 设置控制addoffer页面的操作\n store.commit('updateOperable',false)\n siOffarr.value = []\n getofferRef.value.resetFields();\n initTableData()\n })\n visibleOffer.value = false\n message.success(\"Add Offer type successfully!\")\n // 初始化可以添加Si offer\n isSIoffer.value = true\n })\n .catch((error: string) => {\n console.log('error', error);\n });\n }\n // 关闭添加offer type 页面\n const cancelOffer = () => {\n visibleOffer.value = false\n isSIoffer.value = true \n siOffarr.value = []\n getofferRef.value.resetFields();\n }\n // 编辑 offer type (还没设计好。。。)\n const handleEditOffer = () => {\n visibleOffer.value = true\n formData.form.siOfferName = '123'\n isAdd.value = 0\n }\n // 获取Offer type Name (用来展示offer type信息)\n const getOfferType = (id: string): overviewProps=> {\n let offerData: any;\n tableData.value.forEach((item) => {\n if (item.siOffer) {\n item.siOffer.forEach((siOffer) => {\n if (siOffer.id === id) {\n offerData = item\n }\n })\n }\n })\n return offerData\n }\n\n // 添加SI offer的确定\n // let offerTypenm = ''\n const checkboxArr = ref([]) // 需要激活的si offer\n const optionsData = ref([]) // 复选框中的数据\n const newSioffer = ref([]) // 添加si offer后获取的数据,需要添加到复选框中,并默认选中\n const visibleStatus = ref(false)\n\n // 更改status\n // 更改父元素的status\n const handleDisableOffer = (record: overviewProps) => {\n Modal.confirm({\n class: 'my-confirm',\n content: h('div', {}, [\n h('i',{ 'class': 'font_family icon-old-Warning m-confirm'}, ''),\n h('h1',{ 'style': 'font-size: 18px; line-height: 70px'} , `Change status to ${record.offerTypeActive ? \"Inactive\" : \"Active\"} ?`),\n ]),\n cancelText: 'No',\n okText: 'Yes',\n onOk() {\n // inactive --》 active\n const params = { offerTypeActive: !record.offerTypeActive }\n UpdateOfferStatus(params,record.offerTypeId).then(() => {\n message.success(`${record.offerTypeName} status changed to ${record.offerTypeActive ? \"Inactive\" : \"Active\"}!`)\n initTableData()\n })\n },\n onCancel() {\n console.log(\"cancel\");\n },\n });\n };\n\n // 取消复选框的勾选\n const cancelStatus = () => {\n checkboxArr.value = []\n }\n \n // 更改offer type的状态\n const handleChangeStaus = (record: overviewProps) => {\n // 更改成inactive 和 Icentive是Dealer类型\n if (record.offerTypeActive || !record.siOffer.length) {\n handleDisableOffer(record)\n } else {\n visibleStatus.value = true\n formData.form.offerTypeName = record.offerTypeName\n optionsData.value = record.siOffer\n formData.form.offerTypeId = record.offerTypeId\n } \n }\n // SI offer有一个变成acitve, offer Type就变成active, 所以提示信息也需要有SI offer,和offer Type\n const InactiveToActive = (data: overviewProps) => {\n message.success(`${data.offerTypeName} status changed to Active!`)\n for (const item of data.siOffer) {\n message.success(`${item.name} status changed to Active!`)\n }\n }\n // 自定义修改status时的title样式\n // const modalTitle = h('h1', {}, [\n // h('span', {}, 'Select Active SI Offer or Add SI Offer') ,\n // h('i',{ class: 'iconfont icon-pen-31',style: 'margin-left: 10px',onClick: ()=>{\n // visibleSI.value = true\n // }}),\n // ])\n\n // 将offer type的状态inactive修改成active确定时\n const confirmStaus = async() => {\n if (checkboxArr.value.length > 0) {\n const paramsOffer = { offerTypeActive: true }\n await UpdateOfferStatus(paramsOffer, formData.form.offerTypeId)\n const params: siStatusProps[] = []\n checkboxArr.value.forEach((item: string) => {\n params.push({id: item, active: true})\n })\n UpdateSiStatus(params, formData.form.offerTypeId).then(res => {\n InactiveToActive(res)\n initTableData()\n checkboxArr.value = []\n })\n visibleStatus.value = false\n } else {\n message.error('Please activate the SI Offer first!');\n }\n }\n \n // 更改子元素的status\n const handleDisable = (record: siofferProps) => {\n const siOfferArr = getOfferType(record.id).siOffer\n // 默认lastActive是true代表是当前si offer是最后一个active的\n let lastActive = true\n if (record.active) {\n if (siOfferArr){\n siOfferArr.forEach((item) => {\n if ((item.id !== record.id && item.active)) {\n lastActive = false\n }\n })\n \n if (siOfferArr.length === 1) {\n lastActive = true\n }\n }\n } else {\n lastActive = false\n }\n Modal.confirm({\n class: 'my-confirm',\n width: lastActive ? 620 : 400,\n content: h('div', {}, [\n h('i',{ 'class': 'font_family icon-old-Warning m-confirm'}, ''),\n h('h1',{ 'style': `font-size: 18px; line-height: 70px`} , lastActive ? 'If Inactive current SI Offer, Offer Type will also be Inactive.': `Change status to ${record.active ? \"Inactive\" : \"Active\"} ?`),\n ]),\n cancelText: 'No',\n okText: 'Yes',\n onOk() {\n const offerTypeId = getOfferType(record.id).offerTypeId\n \n if (lastActive) {\n // console.log(content);\n const params = { offerTypeActive: false }\n UpdateOfferStatus(params, offerTypeId).then(() => {\n message.success(`${record.name} status changed to Inactive`)\n initTableData()\n })\n } else {\n const params = [\n {\n id: record.id,\n active: !record.active\n }\n ]\n UpdateSiStatus(params,offerTypeId).then(() => {\n initTableData()\n })\n }\n \n },\n onCancel() {\n console.log(\"cancel\");\n },\n });\n };\n // -----------------------------------------\n // save Offer Type\n \n \n\n // 导出excel\n const expotToExcel = () => {\n const params = {\n url: '/pgapi/program/setting/export_program_type',\n params: {\n programTypeKind: 'Normal'\n }\n }\n blobDownload(params)\n }\n \n onMounted(() => {\n // 设置表格的头部状态文字显示\n if (sessionStorage.getItem('status')) activeText.value = sessionStorage.getItem('status') as string\n // 设置控制addoffer页面的操作\n store.commit('updateOperable',true)\n // 初始化数据;\n initTableData()\n });\n return {\n tableHeight,\n // 数据\n tableData,\n optionsData,\n salesList,\n incaentiveList,\n activeText,\n // 自定义title\n // modalTitle,\n // table的分页,过滤\n tableChange,\n columns,\n // table展开icon,控制\n expandIcon,\n onExpand,\n expKeys,\n handleExpand,\n ...toRefs(formData),\n offerRef,\n // modal的事件,变量\n isAdd,\n visibleOffer,\n handleAddOffer,\n createOffer,\n cancelOffer,\n handleEditOffer,\n visibleStatus,\n handleChangeStaus,\n handleDisable,\n confirmStaus,\n selectChange,\n isSIoffer,\n checkboxArr,// 复选框的集合\n cancelStatus,\n // 导出excel\n expotToExcel,\n };\n },\n});\n","import { render } from \"./OfferList.vue?vue&type=template&id=68d5dede&ts=true\"\nimport script from \"./OfferList.vue?vue&type=script&lang=ts\"\nexport * from \"./OfferList.vue?vue&type=script&lang=ts\"\n\nimport \"./OfferList.vue?vue&type=style&index=0&id=68d5dede&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, renderSlot as _renderSlot, renderList as _renderList, Fragment as _Fragment, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-405f177f\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"over-box\" }\nconst _hoisted_2 = {\n class: \"f-r\",\n style: {\"margin-bottom\":\"16px\",\"overflow\":\"hidden\"}\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-tianjia11\" }, null, -1))\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\" Add New Offer Type \")\nconst _hoisted_5 = [\n _hoisted_3,\n _hoisted_4\n]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-shangchuan\" }, null, -1))\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\" Export to Excel \")\nconst _hoisted_8 = [\n _hoisted_6,\n _hoisted_7\n]\nconst _hoisted_9 = { key: 0 }\nconst _hoisted_10 = {\n key: 0,\n class: \"font_family icon-old-Warning offer-name-icon\"\n}\nconst _hoisted_11 = [\"onClick\"]\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\" Status \")\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-biaogeshaixuan active-color\" }, null, -1))\nconst _hoisted_14 = [\"onClick\"]\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-old-edit1\" }, null, -1))\nconst _hoisted_16 = /*#__PURE__*/_createTextVNode(\" Configuration\")\nconst _hoisted_17 = [\n _hoisted_15,\n _hoisted_16\n]\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"large-font-size p-t-12\" }, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"sign-line\" }),\n /*#__PURE__*/_createTextVNode(),\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"m-l-10\" }, \"Fleet Customer Type\")\n], -1))\nconst _hoisted_19 = {\n class: \"f-r\",\n style: {\"margin-bottom\":\"16px\",\"overflow\":\"hidden\"}\n}\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-tianjia11\" }, null, -1))\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-shangchuan\" }, null, -1))\nconst _hoisted_22 = /*#__PURE__*/_createTextVNode(\" Export to Excel \")\nconst _hoisted_23 = [\n _hoisted_21,\n _hoisted_22\n]\nconst _hoisted_24 = { key: 0 }\nconst _hoisted_25 = {\n key: 0,\n class: \"font_family icon-old-Warning offer-name-icon\"\n}\nconst _hoisted_26 = [\"onClick\"]\nconst _hoisted_27 = /*#__PURE__*/_createTextVNode(\" Status \")\nconst _hoisted_28 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-biaogeshaixuan active-color\" }, null, -1))\nconst _hoisted_29 = [\"onClick\"]\nconst _hoisted_30 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-old-edit1\" }, null, -1))\nconst _hoisted_31 = /*#__PURE__*/_createTextVNode(\" Edit\")\nconst _hoisted_32 = [\n _hoisted_30,\n _hoisted_31\n]\nconst _hoisted_33 = /*#__PURE__*/_createTextVNode(\"Cancel\")\nconst _hoisted_34 = /*#__PURE__*/_createTextVNode(\"Create\")\nconst _hoisted_35 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-tianjia11\" }, null, -1))\nconst _hoisted_36 = [\n _hoisted_35\n]\nconst _hoisted_37 = /*#__PURE__*/_createTextVNode(\"Cancel\")\nconst _hoisted_38 = /*#__PURE__*/_createTextVNode(\"Create\")\nconst _hoisted_39 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-tianjia11\" }, null, -1))\nconst _hoisted_40 = [\n _hoisted_39\n]\nconst _hoisted_41 = /*#__PURE__*/_createTextVNode(\"Cancel\")\nconst _hoisted_42 = /*#__PURE__*/_createTextVNode(\"Create\")\nconst _hoisted_43 = /*#__PURE__*/_createTextVNode(\"Confirm\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_menu_item = _resolveComponent(\"a-menu-item\")!\n const _component_a_menu = _resolveComponent(\"a-menu\")!\n const _component_a_dropdown = _resolveComponent(\"a-dropdown\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_form_item = _resolveComponent(\"a-form-item\")!\n const _component_a_input = _resolveComponent(\"a-input\")!\n const _component_a_form = _resolveComponent(\"a-form\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", {\n class: \"btn-operation cursor-p m-l-15\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.handleAddOffer && _ctx.handleAddOffer(...args)))\n }, _hoisted_5),\n _createElementVNode(\"span\", {\n class: \"btn-operation cursor-p m-l-15\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.expotToExcel && _ctx.expotToExcel(...args)))\n }, _hoisted_8)\n ]),\n _createVNode(_component_a_table, {\n columns: _ctx.columns,\n \"data-source\": _ctx.dataSource,\n pagination: false,\n rowKey: tableData => tableData,\n class: \"clearfix self-table-icon-20\",\n rowClassName: (record, index) => (index % 2 === 1 ? 'table-striped' : null)\n }, {\n offerTypeName: _withCtx(({ record, text }) => [\n (record.incentiveCategoryId)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_9, [\n _createTextVNode(_toDisplayString(text) + \" \", 1),\n (record.needMaintain)\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_10))\n : _createCommentVNode(\"\", true)\n ]))\n : (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: _normalizeClass({'color-grey': !record.active})\n }, _toDisplayString(text), 3))\n ]),\n active: _withCtx(({ record }) => [\n (record.incentiveCategoryId)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass([\"font_family cursor-p f20\", record.offerTypeActive ? 'icon-old-Unlock' : 'icon-old-Lock']),\n onClick: ($event: any) => (_ctx.handleChangeOffer(record))\n }, null, 10, _hoisted_11))\n : _createCommentVNode(\"\", true)\n ]),\n customTitle: _withCtx(() => [\n _hoisted_12,\n _createVNode(_component_a_dropdown, { placement: \"bottomCenter\" }, {\n overlay: _withCtx(() => [\n _createVNode(_component_a_menu, null, {\n default: _withCtx(() => [\n _createVNode(_component_a_menu_item, null, {\n default: _withCtx(() => [\n _createElementVNode(\"a\", {\n href: \"javascript:;\",\n class: _normalizeClass({'active-color':_ctx.activeText==='active'}),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.tableChange('active')))\n }, \"Active\", 2)\n ]),\n _: 1\n }),\n _createVNode(_component_a_menu_item, null, {\n default: _withCtx(() => [\n _createElementVNode(\"a\", {\n href: \"javascript:;\",\n class: _normalizeClass({'active-color':_ctx.activeText==='inactive'}),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.tableChange('inactive')))\n }, \"Inactive\", 2)\n ]),\n _: 1\n }),\n _createVNode(_component_a_menu_item, null, {\n default: _withCtx(() => [\n _createElementVNode(\"a\", {\n href: \"javascript:;\",\n class: _normalizeClass({'active-color':_ctx.activeText==='all'}),\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.tableChange('all')))\n }, \"All\", 2)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _hoisted_13\n ]),\n _: 1\n }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.activeText), 1)\n ]),\n operation: _withCtx(({ record }) => [\n (record.incentiveCategoryId && _ctx.$btnPermissions('CONFIGURATION'))\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n onClick: ($event: any) => (_ctx.$router.push({ name: 'Add Offer Fleet', params: {id: record.offerTypeId, name: record.offerTypeName, status: record.offerTypeActive} })),\n class: \"cursor-p\"\n }, _hoisted_17, 8, _hoisted_14))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"rowKey\", \"rowClassName\"]),\n _hoisted_18,\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"span\", {\n class: \"btn-operation cursor-p m-l-15\",\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.visibleFleetOffer = true))\n }, [\n _hoisted_20,\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true)\n ]),\n _createElementVNode(\"span\", {\n class: \"btn-operation cursor-p m-l-15\",\n onClick: _cache[6] || (_cache[6] = \n//@ts-ignore\n(...args) => (_ctx.expotToExcelFleet && _ctx.expotToExcelFleet(...args)))\n }, _hoisted_23)\n ]),\n _createVNode(_component_a_table, {\n columns: _ctx.fleetColumns,\n \"data-source\": _ctx.fleetSource,\n pagination: false,\n rowKey: tableData => tableData,\n class: \"clearfix self-table-icon-20\",\n scroll: {y: 500},\n rowClassName: (record, index) => (index % 2 === 1 ? 'table-striped' : null)\n }, {\n offerTypeName: _withCtx(({ record, text }) => [\n (record.incentiveCategoryId)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_24, [\n _createTextVNode(_toDisplayString(text) + \" \", 1),\n (record.needMaintain)\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_25))\n : _createCommentVNode(\"\", true)\n ]))\n : (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: _normalizeClass({'color-grey': !record.active})\n }, _toDisplayString(text), 3))\n ]),\n active: _withCtx(({ record }) => [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"font_family color-grey cursor-p f20\", record.active ? 'icon-old-Unlock' : 'icon-old-Lock']),\n onClick: ($event: any) => (_ctx.handleChangeStaus(record))\n }, null, 10, _hoisted_26)\n ]),\n customTitle: _withCtx(() => [\n _hoisted_27,\n _createVNode(_component_a_dropdown, { placement: \"bottomCenter\" }, {\n overlay: _withCtx(() => [\n _createVNode(_component_a_menu, null, {\n default: _withCtx(() => [\n _createVNode(_component_a_menu_item, null, {\n default: _withCtx(() => [\n _createElementVNode(\"a\", {\n href: \"javascript:;\",\n class: _normalizeClass({'active-color':_ctx.activeFleeText==='active'}),\n onClick: _cache[7] || (_cache[7] = ($event: any) => (_ctx.tableFleetChange('active')))\n }, \"Active\", 2)\n ]),\n _: 1\n }),\n _createVNode(_component_a_menu_item, null, {\n default: _withCtx(() => [\n _createElementVNode(\"a\", {\n href: \"javascript:;\",\n class: _normalizeClass({'active-color':_ctx.activeFleeText==='inactive'}),\n onClick: _cache[8] || (_cache[8] = ($event: any) => (_ctx.tableFleetChange('inactive')))\n }, \"Inactive\", 2)\n ]),\n _: 1\n }),\n _createVNode(_component_a_menu_item, null, {\n default: _withCtx(() => [\n _createElementVNode(\"a\", {\n href: \"javascript:;\",\n class: _normalizeClass({'active-color':_ctx.activeFleeText==='all'}),\n onClick: _cache[9] || (_cache[9] = ($event: any) => (_ctx.tableFleetChange('all')))\n }, \"All\", 2)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _hoisted_28\n ]),\n _: 1\n }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.activeFleeText), 1)\n ]),\n operation: _withCtx(({ record }) => [\n _createElementVNode(\"span\", {\n onClick: ($event: any) => (_ctx.editCustormerType(record)),\n class: \"customTitle cursor-p\"\n }, _hoisted_32, 8, _hoisted_29)\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"rowKey\", \"rowClassName\"]),\n _createVNode(_component_a_modal, {\n centered: \"\",\n title: \"Add Offer Type\",\n visible: _ctx.visibleOffer,\n \"onUpdate:visible\": _cache[13] || (_cache[13] = ($event: any) => ((_ctx.visibleOffer) = $event)),\n onCancel: _ctx.cancelOffer\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"back\",\n onClick: _ctx.cancelOffer\n }, {\n default: _withCtx(() => [\n _hoisted_33\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n key: \"submit\",\n type: \"primary\",\n onClick: _ctx.createOffer\n }, {\n default: _withCtx(() => [\n _hoisted_34\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_form, {\n model: _ctx.form,\n \"label-col\": _ctx.labelCol,\n \"wrapper-col\": _ctx.wrapperCol,\n ref: _ctx.offerRef,\n rules: _ctx.rules\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_form_item, {\n label: \"Sales Channel\",\n name: \"salesnm\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select, {\n disabled: \"\",\n value: _ctx.form.sales,\n \"onUpdate:value\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.form.sales) = $event)),\n placeholder: \"Normal Sales\",\n onChange: _ctx.selectChange\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.salesList, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n data: \"salesid\",\n value: item.salesnm,\n key: item.salesid\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.salesnm), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"])\n ]),\n _: 1\n }),\n _createVNode(_component_a_form_item, {\n label: \"Incentive Category\",\n name: \"incentiveCategoryName\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select, {\n value: _ctx.form.incentiveCategoryName,\n \"onUpdate:value\": _cache[11] || (_cache[11] = ($event: any) => ((_ctx.form.incentiveCategoryName) = $event)),\n placeholder: \"Please select\",\n onChange: _ctx.selectChange\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.incaentiveList, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n data: \"incaentiveid\",\n value: item.incentiveCategoryId,\n key: item.incentiveCategoryId\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.incentiveCategoryName), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"])\n ]),\n _: 1\n }),\n _createVNode(_component_a_form_item, {\n label: \"Offer Type\",\n name: \"offerTypeName\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_input, {\n value: _ctx.form.offerTypeName,\n \"onUpdate:value\": _cache[12] || (_cache[12] = ($event: any) => ((_ctx.form.offerTypeName) = $event)),\n placeholder: \"Input Name\"\n }, null, 8, [\"value\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"model\", \"label-col\", \"wrapper-col\", \"rules\"])\n ]),\n _: 1\n }, 8, [\"visible\", \"onCancel\"]),\n _createVNode(_component_a_modal, {\n centered: \"\",\n title: \"Add New Fleet Custormer Type\",\n width: \"580px\",\n visible: _ctx.visibleFleetOffer,\n \"onUpdate:visible\": _cache[17] || (_cache[17] = ($event: any) => ((_ctx.visibleFleetOffer) = $event)),\n onCancel: _ctx.cancelOffer\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"back\",\n onClick: _ctx.cancelOffer\n }, {\n default: _withCtx(() => [\n _hoisted_37\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n key: \"submit\",\n type: \"primary\",\n onClick: _ctx.createCustormerType\n }, {\n default: _withCtx(() => [\n _hoisted_38\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_form, {\n model: _ctx.form,\n \"label-col\": _ctx.labelCol,\n \"wrapper-col\": _ctx.wrapperCol,\n ref: _ctx.offerRef,\n rules: _ctx.rules\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_form_item, {\n label: \"Fleet Customer Type\",\n name: \"custormerType\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_input, {\n value: _ctx.form.custormerType,\n \"onUpdate:value\": _cache[14] || (_cache[14] = ($event: any) => ((_ctx.form.custormerType) = $event)),\n placeholder: \"Input Name\"\n }, null, 8, [\"value\"])\n ]),\n _: 1\n }),\n _createVNode(_component_a_form_item, {\n label: \"Fleet Customer Category\",\n class: \"customer-category\",\n name: \"custormerCategory\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select, {\n value: _ctx.form.custormerCategory,\n \"onUpdate:value\": _cache[15] || (_cache[15] = ($event: any) => ((_ctx.form.custormerCategory) = $event)),\n placeholder: \"Please select\",\n onChange: _ctx.selectChange,\n onFocus: _ctx.initCustormerCategoryData\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.custormerCategoryList, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n data: \"incaentiveid\",\n value: item.categoryId,\n key: item.categoryName\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.categoryName), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\", \"onFocus\"]),\n _createElementVNode(\"span\", {\n onClick: _cache[16] || (_cache[16] = ($event: any) => (_ctx.visibleStatus = true)),\n class: \"add-item cursor-p\"\n }, _hoisted_36)\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"model\", \"label-col\", \"wrapper-col\", \"rules\"])\n ]),\n _: 1\n }, 8, [\"visible\", \"onCancel\"]),\n _createVNode(_component_a_modal, {\n centered: \"\",\n title: \"Edit Fleet Customer Type\",\n width: \"580px\",\n visible: _ctx.visibleEdit,\n \"onUpdate:visible\": _cache[21] || (_cache[21] = ($event: any) => ((_ctx.visibleEdit) = $event)),\n onCancel: _ctx.cancelOffer\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"back\",\n onClick: _ctx.cancelOffer\n }, {\n default: _withCtx(() => [\n _hoisted_41\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n key: \"submit\",\n type: \"primary\",\n onClick: _ctx.createMultipleCustormerType\n }, {\n default: _withCtx(() => [\n _hoisted_42\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_form, {\n model: _ctx.form,\n \"label-col\": _ctx.labelCol,\n \"wrapper-col\": _ctx.wrapperCol,\n ref: _ctx.offerRef,\n rules: _ctx.rules\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_form_item, {\n label: \"Customer Type\",\n class: \"customer-category\",\n name: \"customerTypeValue\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_input, {\n onBlur: _ctx.getSIvalue,\n value: _ctx.form.customerTypeValue,\n \"onUpdate:value\": _cache[18] || (_cache[18] = ($event: any) => ((_ctx.form.customerTypeValue) = $event)),\n placeholder: \"Input Name\"\n }, null, 8, [\"onBlur\", \"value\"])\n ]),\n _: 1\n }),\n _createVNode(_component_a_form_item, {\n label: \"Fleet Customer Category\",\n class: \"customer-category\",\n name: \"fleetCategoryName\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select, {\n value: _ctx.form.fleetCategoryName,\n \"onUpdate:value\": _cache[19] || (_cache[19] = ($event: any) => ((_ctx.form.fleetCategoryName) = $event)),\n placeholder: \"Please select\",\n onChange: _ctx.selectChange,\n onFocus: _ctx.initCustormerCategoryData\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.custormerCategoryList, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n data: \"incaentiveid\",\n value: item.categoryName,\n key: item.categoryName\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.categoryName), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\", \"onFocus\"]),\n _createElementVNode(\"span\", {\n onClick: _cache[20] || (_cache[20] = ($event: any) => (_ctx.visibleStatus = true)),\n class: \"add-item cursor-p\"\n }, _hoisted_40)\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"model\", \"label-col\", \"wrapper-col\", \"rules\"])\n ]),\n _: 1\n }, 8, [\"visible\", \"onCancel\"]),\n _createVNode(_component_a_modal, {\n title: \"Add New Fleet Customer Category\",\n centered: \"\",\n zIndex: 1000,\n visible: _ctx.visibleStatus,\n \"onUpdate:visible\": _cache[23] || (_cache[23] = ($event: any) => ((_ctx.visibleStatus) = $event)),\n onCancel: _ctx.cancelStatus\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"submit\",\n type: \"primary\",\n onClick: _ctx.confirmStaus\n }, {\n default: _withCtx(() => [\n _hoisted_43\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_form, {\n model: _ctx.form,\n \"label-col\": _ctx.labelCol,\n \"wrapper-col\": _ctx.wrapperCol,\n ref: _ctx.offerRef,\n rules: _ctx.rules\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_form_item, {\n label: \"Fleet Customer Category \",\n name: \"custormerCategoryItem\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_input, {\n value: _ctx.form.custormerCategoryItem,\n \"onUpdate:value\": _cache[22] || (_cache[22] = ($event: any) => ((_ctx.form.custormerCategoryItem) = $event)),\n placeholder: \"Input Name\"\n }, null, 8, [\"value\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"model\", \"label-col\", \"wrapper-col\", \"rules\"])\n ]),\n _: 1\n }, 8, [\"visible\", \"onCancel\"])\n ]))\n}","\nimport { defineComponent, ref, onMounted, reactive, toRefs, h, nextTick } from 'vue'\nimport { siofferNameProps, } from \"@/views/Budget/types\"\nimport { getOfferFleetTable, getFleetTable, addOfferFleetTable, addFleetCustomerCategory, getCustomerCategoryData, addCustomerType, changeFleetStatus, changeFleetOfferStatus, editCustomerType } from '@/API/budget'\nimport { ValidProps } from '@/API/types'\nimport { useStore } from \"vuex\";\nimport blobDownload from '@/utils/blobDownload';\nimport { salesList } from \"@/views/Budget/data\";\nimport { incaentiveList } from './data'\nimport { message, Modal } from \"ant-design-vue\";\nimport deepClone from '@/utils/deepClone';\nconst columns = [\n {\n title: \"Incentive Category\",\n dataIndex: \"incentiveCategoryName\",\n key: \"ientive\",\n width: \"20%\",\n },\n {\n title: \"Offer Type\",\n dataIndex: \"offerTypeName\",\n key: \"offertp\",\n width: \"30%\",\n slots: { customRender: \"offerTypeName\" },\n },\n {\n dataIndex: \"active\",\n key: \"active\",\n width: \"30%\",\n slots: { title: 'customTitle' ,customRender: \"active\" },\n },\n {\n title: \"Operation\",\n dataIndex: \"operation\",\n key: \"operation\",\n slots: { customRender: \"operation\" },\n },\n \n];\nconst fleetColumns = [\n {\n title: \"Fleet Customer Type\",\n dataIndex: \"name\",\n key: \"ientive\",\n width: \"30%\",\n },\n {\n title: \"Fleet Customer Category\",\n dataIndex: \"fleetCategoryName\",\n key: \"ientive\",\n width: \"30%\",\n },\n {\n dataIndex: \"active\",\n key: \"active\",\n width: \"20%\",\n slots: { title: 'customTitle' ,customRender: \"active\" },\n },\n {\n title: \"Operation\",\n dataIndex: \"operation\",\n key: \"operation\",\n slots: { customRender: \"operation\" },\n },\n]\nexport default defineComponent({\n name: '',\n setup() {\n const activeText = ref('active')\n const activeFleeText = ref('active')\n const store = useStore()\n\n const visibleOffer = ref(false)\n const visibleFleetOffer = ref(false)\n const visibleStatus = ref(false)\n const visibleEdit = ref(false)\n \n // #region\n // 定义form\n const formData = reactive({\n labelCol: { span: 8 },\n wrapperCol: { span: 14 },\n other: '',\n form: {\n sales: 'Fleet Sales',\n salesid: 0,\n incentiveCategoryName: [],\n incentiveCategoryId: '',\n offerTypeName: '',\n offerTypeId: '',\n custormerType: '',\n custormerCategory: '',\n custormerCategoryItem: '',\n customerTypeValue: '',\n fleetCategoryName: '',\n },\n rules: {\n incentiveCategoryName: [\n {\n required: true,\n message: 'Please input name',\n trigger: 'blur'\n },\n ],\n offerTypeName: [\n {\n required: true,\n message: 'Please input name',\n trigger: 'blur'\n },\n ],\n custormerType: [\n {\n required: true,\n message: 'Please input name',\n trigger: 'blur'\n },\n ],\n custormerCategory: [\n {\n required: true,\n message: 'Please input name',\n trigger: 'blur'\n },\n ],\n custormerCategoryItem: [\n {\n required: true,\n message: 'Please input name',\n trigger: 'blur'\n },\n ],\n customerTypeValue: [\n {\n required: true,\n message: 'Please input name',\n trigger: 'blur'\n },\n ],\n fleetCategoryName: [\n {\n required: true,\n message: 'Please input name',\n trigger: 'blur'\n },\n ],\n }\n })\n // #endregion\n // 添加Offer\n const handleAddOffer = () => {\n visibleOffer.value = true\n }\n\n // 获取form元素\n const getofferRef = ref()\n const offerRef = (el: HTMLElement | null) => {\n nextTick(() => {\n getofferRef.value = el\n })\n }\n\n const dataSource = ref()\n const fleetSource = ref()\n const deepCloneData: any[] = []\n const deepCloneFleetData: any[] = []\n\n // 过滤数据\n const filtersData = (dataSource: any, deepCloneData: any, attr: string, filters: string, activeText: any) => {\n dataSource.value = deepCloneData.filter((item: any) => {\n if (filters === 'active') {\n activeText.value = 'active'\n return item[attr] === true \n }\n if (filters === 'inactive') {\n activeText.value = 'inactive'\n return item[attr] === false\n }\n if (filters === 'all' || !filters) {\n activeText.value = 'all'\n return item\n }\n })\n }\n\n const tableChange = (filters: string) => {\n filtersData(dataSource, deepCloneData, 'offerTypeActive', filters, activeText)\n }\n\n const tableFleetChange = (filters: string) => {\n filtersData(fleetSource, deepCloneFleetData, 'active', filters, activeFleeText)\n }\n\n // 获取fleet的数据\n const initTable = () => {\n getOfferFleetTable().then(res => {\n dataSource.value = res\n Object.assign(deepCloneData, res)\n tableChange('active')\n }) \n }\n\n const initFleetTable = () => {\n getFleetTable().then(res => {\n fleetSource.value = res\n Object.assign(deepCloneFleetData, res)\n tableFleetChange('active')\n }) \n }\n\n const custormerCategoryList = ref()\n const initCustormerCategoryData = () => {\n getCustomerCategoryData().then(res => {\n custormerCategoryList.value = res\n })\n }\n\n // 添加 offer type\n const createOffer = () => {\n const params= {\n incentiveCategoryId: formData.form.incentiveCategoryName,\n offerTypeName: formData.form.offerTypeName,\n offerTypeKind: 'Fleet'\n }\n getofferRef.value.validate().then(() => {\n addOfferFleetTable(params).then(() => {\n initTable() \n getofferRef.value.resetFields();\n visibleOffer.value = false \n message.success(\"Add Offer Type Successfully!\")\n })\n })\n .catch((error: string) => {\n console.log('error', error);\n });\n }\n\n // 添加createCustormerType\n const createCustormerType = () => {\n const params = {\n customerCategory: 'Fleet',\n customerTypeName: [formData.form.custormerType],\n fleetCustomerCategory: formData.form.custormerCategory\n }\n getofferRef.value.validate().then(() => {\n addCustomerType(params).then(() => {\n initFleetTable()\n getofferRef.value.resetFields();\n message.success(\"Add Fleet Custormer Type Successfully!\")\n visibleFleetOffer.value = false\n })\n })\n }\n\n // 添加。\n const confirmStaus = () => {\n const params = {\n name: formData.form.custormerCategoryItem,\n }\n getofferRef.value.validate().then(() => {\n addFleetCustomerCategory(params).then(res => {\n getofferRef.value.resetFields();\n visibleStatus.value = false\n })\n })\n }\n\n // 添加多个\n const fleetCustomerCategory = ref()\n const customerTypeArr = ref<{name: string}[]>([])\n const customerTypeId = ref()\n const editCustormerType = (record: any) => {\n visibleEdit.value = true\n formData.form.fleetCategoryName = record.fleetCategoryName\n customerTypeId.value = record.id\n formData.form.customerTypeValue = record.name\n }\n\n // 添加customer Type\n const handlerAddCustomerType = () => {\n customerTypeArr.value.push({\n name: ''\n })\n }\n\n // 创建多个\n const createMultipleCustormerType = () => {\n const categoryNameId = custormerCategoryList.value.find((item: any) => item.categoryName === formData.form.fleetCategoryName).categoryId\n const params = {\n customerCategory: 'Fleet',\n fleetCustomerCategory: categoryNameId,\n customerTypeName: formData.form.customerTypeValue,\n customerTypeId: customerTypeId.value,\n }\n getofferRef.value.validate().then(() => {\n editCustomerType(params).then(() => {\n initFleetTable()\n getofferRef.value.resetFields();\n message.success(\"Edit Fleet Custormer Type Successfully!\")\n visibleEdit.value = false\n })\n })\n }\n\n // 关闭添加offer type 页面\n const cancelOffer = () => {\n visibleOffer.value = false\n visibleFleetOffer.value = false\n visibleEdit.value = false\n getofferRef.value.resetFields();\n }\n\n // 更改状态\n const handleChangeStaus = (record: any) => {\n Modal.confirm({\n class: 'my-confirm',\n content: h('div', {}, [\n h('i',{ 'class': 'font_family icon-old-Warning m-confirm'}, ''),\n h('h1',{ 'style': 'font-size: 18px; line-height: 70px'} , `Change status to ${record.active ? \"Inactive\" : \"Active\"} ?`),\n ]),\n cancelText: 'No',\n okText: 'Yes',\n onOk() {\n // inactive --》 active\n const params = { \n active: !record.active,\n customerTypeId: [record.id]\n }\n changeFleetStatus(params).then(() => {\n message.success(`Successful`)\n initFleetTable()\n })\n },\n onCancel() {\n console.log(\"cancel\");\n },\n });\n }\n\n // 更改offer type的状态\n const handleChangeOffer = (record: any) => {\n Modal.confirm({\n class: 'my-confirm',\n content: h('div', {}, [\n h('i',{ 'class': 'font_family icon-old-Warning m-confirm'}, ''),\n h('h1',{ 'style': 'font-size: 18px; line-height: 70px'} , `Change status to ${record.offerTypeActive ? \"Inactive\" : \"Active\"} ?`),\n ]),\n cancelText: 'No',\n okText: 'Yes',\n onOk() {\n // inactive --》 active\n const params = { \n active: !record.offerTypeActive,\n offerTypeId: record.offerTypeId\n }\n changeFleetOfferStatus(params).then(() => {\n message.success(`Successful`)\n initTable()\n })\n },\n onCancel() {\n console.log(\"cancel\");\n },\n });\n }\n\n // 导出fleet\n const expotToExcel = () => {\n const options = {\n url: '/pgapi/program/setting/export_program_type',\n params: {\n programTypeKind: 'Fleet'\n }\n }\n blobDownload(options)\n }\n\n const expotToExcelFleet = () => {\n const options = {\n url: '/pgapi/program/setting/export_customer_type',\n params: {\n customerCategory: 'Fleet'\n }\n }\n blobDownload(options)\n }\n\n onMounted(() => {\n // 设置表格的头部状态文字显示\n // if (sessionStorage.getItem('status')) activeText.value = sessionStorage.getItem('status') as string\n // 设置控制addoffer页面的操作\n store.commit('updateOperable',true)\n // 初始化数据;\n // initTableData()\n initTable()\n initFleetTable()\n initCustormerCategoryData()\n });\n return {\n columns,\n fleetColumns,\n dataSource,\n fleetSource,\n salesList,\n incaentiveList,\n activeText,\n activeFleeText,\n\n visibleOffer,\n visibleFleetOffer,\n visibleStatus,\n visibleEdit,\n\n custormerCategoryList,\n\n offerRef,\n cancelOffer,\n createOffer,\n confirmStaus,\n createCustormerType,\n editCustormerType,\n\n ...toRefs(formData),\n\n handleAddOffer,\n expotToExcel,\n expotToExcelFleet,\n tableChange,\n tableFleetChange,\n fleetCustomerCategory,\n\n handlerAddCustomerType,\n customerTypeArr,\n createMultipleCustormerType,\n handleChangeStaus,\n handleChangeOffer,\n initCustormerCategoryData,\n \n }\n\n }\n });\n","import { render } from \"./OfferFleet.vue?vue&type=template&id=405f177f&scoped=true&ts=true\"\nimport script from \"./OfferFleet.vue?vue&type=script&lang=ts\"\nexport * from \"./OfferFleet.vue?vue&type=script&lang=ts\"\n\nimport \"./OfferFleet.vue?vue&type=style&index=0&id=405f177f&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-405f177f\"]])\n\nexport default __exports__","\nimport { defineComponent, ref, toRefs, reactive, h, onMounted, nextTick, } from \"vue\";\nimport { salesList, incaentiveList, } from \"@/views/Budget/data\";\nimport { ValidProps } from '@/API/types'\nimport { overviewProps, siofferProps, siofferNameProps, siStatusProps, expandProps } from \"@/views/Budget/types\"\nimport { SelectProps } from '@/API/types'\nimport Navbar from '@/views/Budget/index.vue'\nimport { OverviewFindall, CheckExisted, AddOverview, AddSioffer, UpdateOfferStatus, UpdateSiStatus, UpdateSiOffer } from '@/API/budget'\nimport { Modal, message } from \"ant-design-vue\";\nimport deepClone from '@/utils/deepClone'\nimport blobDownload from '@/utils/blobDownload';\nimport { useRouter } from \"vue-router\";\nimport { useStore } from \"vuex\";\nimport useTableHeight from \"@/hooks/useTableHeight\";\nimport OfferList from './OfferList.vue'\nimport OfferFleet from './OfferFleet.vue'\n\n\ninterface FiltersProps {\n active: string[];\n}\n\nexport default defineComponent({\n components: {\n Navbar,\n OfferList,\n OfferFleet\n },\n setup() {\n const { tableHeight } = useTableHeight(false);\n const router = useRouter()\n const store = useStore()\n const offerStatus = ref(false)\n const activeText = ref('active')\n const activeKey = ref('1')\n // 更改数据的key 用来展示折叠效果\n const changeKey = (data: overviewProps[]) => {\n data.forEach((item) => {\n item['key'] = item.offerTypeId\n for (const key in item) {\n if (key === 'siOffer') {\n item['children'] = item[key];\n item['children'].forEach( (siOffer: siofferProps) => {\n for (const sikey in siOffer) {\n if (sikey === 'name') {\n siOffer['offerTypeName'] = siOffer[sikey]\n }\n if (sikey === 'id') {\n siOffer['offerTypeId'] = siOffer[sikey]\n siOffer['key'] = siOffer[sikey]\n }\n }\n if (!item.offerTypeActive) {\n siOffer['offerTypeActive'] = false\n } else {\n siOffer['offerTypeActive'] = true\n }\n })\n\n }\n }\n })\n return data\n }\n // 过滤si offer\n const tableData = ref([])\n const filterSIoffer = (arr: overviewProps[],type: string) => {\n if (type === 'active') {\n arr.forEach(item => {\n if (item.siOffer) {\n item.siOffer = item.siOffer.filter(sioffer => {\n return sioffer.active === true\n })\n }\n })\n changeKey(arr)\n } \n }\n // 默认获取active的数据 \n const defaultData = (data: overviewProps[]): overviewProps[] => {\n if (sessionStorage.getItem('status') === 'active' || !sessionStorage.getItem('status')) {\n data = data.filter(item => item.offerTypeActive === true)\n filterSIoffer(data, 'active')\n } else if (sessionStorage.getItem('status') === 'inactive') {\n data = data.filter(item => item.offerTypeActive === false)\n }\n return data\n }\n // 用于过滤的原始数据\n const filterTableData = ref([])\n // 获取初始化数据\n // const initTableData = () => {\n // OverviewFindall().then((res) => {\n // filterTableData.value = deepClone(changeKey(res)) \n // tableData.value = deepClone(changeKey(defaultData(res))) \n // }) \n // }\n // 过滤table--\n const tableChange = (filters: string) => {\n tableData.value = deepClone(filterTableData.value.filter((item) => {\n if (filters === 'active') {\n activeText.value = 'active'\n sessionStorage.setItem(\"status\", 'active')\n return item.offerTypeActive === true \n }\n if (filters === 'inactive') {\n activeText.value = 'inactive'\n sessionStorage.setItem(\"status\", 'inactive')\n return item.offerTypeActive === false\n }\n if (filters === 'all' || !filters) {\n sessionStorage.setItem(\"status\", 'all')\n activeText.value = 'all'\n return item\n }\n }))\n filterSIoffer(tableData.value, filters)\n }\n\n // -------------------------------------\n // 检查offer/si 是否重复\n let copySiName: string\n let siname: string\n // 点击加符号,添加新的一组input 输入SI Offer\n const siOffarr = ref([])\n // 验重offer type 或者 si offer\n const judgeType = async(value: string, type: string): Promise => { \n const params = {\n name: value,\n type\n }\n const res = await CheckExisted(params)\n return res\n }\n // 判断新增中si offer数组中有无重复数据\n const isRepeat = (arr: siofferNameProps[]): boolean => {\n const hash= {}\n for (const key in arr) {\n if (hash[arr[key].name]) {\n return true;\n }\n // 不存在该元素,则赋值为true,可以赋任意值,相应的修改if判断条件即可\n hash[arr[key].name] = true;\n }\n return false;\n }\n // 保存si offer的value (必填项的)\n let shortValue = ''\n // 自定义规则\n const validateAsync = async(rule: ValidProps, value: string) => {\n if ((value && value.split(' ').join('').length === 0) || (!value && rule.field && rule.field !== 'siOfferNameAdd')) {\n return Promise.reject('Please input name')\n }\n if ((siname && siname.split(' ').join('').length === 0 && rule.field === 'siOfferNameAdd')) {\n return Promise.reject('Please input name')\n }\n if ((value && value.length > 100) || (siname && siname.length > 100)) {\n return Promise.reject('Length should be 1 to 100')\n }\n if (rule.field === 'offerTypeName') {\n const res = await judgeType(value, 'OFFER-TYPE')\n if (res) {\n return Promise.reject('The Offer Type name already exists')\n }\n }\n if (rule.field === 'siOfferName' && copySiName !== value) {\n shortValue = value\n const res = await judgeType(value, 'SI-OFFER')\n if (res) {\n return Promise.reject('The SI Offer name already exists')\n }\n }\n if (rule.field === 'siOfferNameAdd') {\n if (siname) {\n const res = await judgeType(siname, 'SI-OFFER')\n if (res || siname === shortValue || isRepeat(siOffarr.value)) {\n return Promise.reject('The SI Offer name already exists')\n }\n } \n }\n return Promise.resolve('success')\n }\n // 获取add si offer的value\n const getSIvalue = (e: Event) => {\n const value = e && (e.target as HTMLInputElement).value\n siname = value\n } \n // 定义form\n const formData = reactive({\n labelCol: { span: 7 },\n wrapperCol: { span: 15 },\n other: '',\n form: {\n sales: 'Normal Sales',\n salesid: 0,\n incentiveCategoryName: [],\n incentiveCategoryId: '',\n siOfferName: '',\n siOfferId: '',\n offerTypeName: '',\n offerTypeId: ''\n\n },\n rules: {\n incentiveCategoryName: [\n {\n required: true,\n message: 'Please input name',\n trigger: 'blur'\n },\n ],\n offerTypeName: [\n {\n required: true,\n validator: validateAsync,\n trigger: 'blur'\n },\n ],\n siOfferName: [\n {\n required: true,\n validator: validateAsync,\n trigger: 'blur'\n },\n ],\n siOfferNameAdd: [\n {\n validator: validateAsync,\n trigger: 'blur'\n },\n ],\n }\n })\n // 获取form元素\n const getofferRef = ref()\n const offerRef = (el: HTMLElement | null) => {\n nextTick(() => {\n getofferRef.value = el\n })\n }\n \n // 自定义展开icon图标-----------------------展开折叠部分\n const clickExpand = (props: expandProps,e: Element) => {\n props.onExpand(props.record, e)\n } \n // 自定义展开icon\n const expandIcon = (props: expandProps) => {\n if (props.record.children && props.record.children.length > 0 ) {\n if (props.expanded) {\n //有数据-展开时候图标\n return h(\"i\", {\n class: \"font_family icon-xiangxia m-l-5 cursor-p\",\n onClick: (e: Element) => {\n clickExpand(props,e)\n },\n });\n } else {\n //有数据-未展开时候图标\n return h(\"i\", {\n class: \"font_family icon-xiangyou m-l-5 cursor-p\",\n onClick: (e: Element) => {\n clickExpand(props,e)\n },\n });\n }\n } else {\n //无数据-图标\n return h(\"i\", {\n class: \"m-l-5\",\n style: { width: '16px', height: '1px', display: 'inline-block'}\n });\n }\n };\n // 展开所有的折叠--------------\n const expKeys = ref([])\n let expandBool = false\n const handleExpand = () => {\n if (expandBool) {\n expKeys.value = []\n expandBool = false\n } else {\n tableData.value.forEach((item): void => {\n if (item.siOffer) {\n if ( item.siOffer.length > 0) {\n expKeys.value.push(item.offerTypeId)\n expKeys.value = Array.from(new Set(expKeys.value))\n expandBool = true\n } \n }\n \n })\n }\n \n }\n // 点击展开图标触发\n const onExpand = (expanded: boolean, record: overviewProps) => {\n if (expanded) {\n // 设置展开窗Key,代表展开操作\n expKeys.value.push(record.offerTypeId)\n expKeys.value = Array.from(new Set(expKeys.value))\n } else {\n // 代表折叠操作\n if (expKeys.value.length) {\n nextTick( () => {\n expKeys.value = expKeys.value.filter(v => {\n return v !== record.offerTypeId\n })\n })\n \n }\n } \n }\n\n // modal------------------------------------开始\n // 添加offer type (isAdd === 1 代表添加, isAdd === 0 代表编辑)\n const isAdd = ref(1)\n \n // 用来判断是否可以添加si offer\n const isSIoffer = ref(true)\n // 下拉的回调函数\n const selectChange = (value: string, option: SelectProps) => {\n // 下拉选择 Dealer Incentive时\n formData.form.incentiveCategoryId = option.key\n formData.form.offerTypeName = ''\n // Dealer \n if (option.key === \"67ff8bd2-5be2-4a80-9e12-2a3c92ca769f\" ) {\n isSIoffer.value = false\n siOffarr.value = []\n } else {\n isSIoffer.value = true\n }\n }\n // 获取Offer type Name (用来展示offer type信息)\n const getOfferType = (id: string): overviewProps=> {\n let offerData: any;\n tableData.value.forEach((item) => {\n if (item.siOffer) {\n item.siOffer.forEach((siOffer) => {\n if (siOffer.id === id) {\n offerData = item\n }\n })\n }\n })\n return offerData\n }\n\n // 添加SI offer的确定\n // let offerTypenm = ''\n const checkboxArr = ref([]) // 需要激活的si offer\n const optionsData = ref([]) // 复选框中的数据\n const newSioffer = ref([]) // 添加si offer后获取的数据,需要添加到复选框中,并默认选中\n const visibleStatus = ref(false)\n\n // 更改status\n // 更改父元素的status\n const handleDisableOffer = (record: overviewProps) => {\n Modal.confirm({\n class: 'my-confirm',\n content: h('div', {}, [\n h('i',{ 'class': 'font_family icon-old-Warning m-confirm'}, ''),\n h('h1',{ 'style': 'font-size: 18px; line-height: 70px'} , `Change status to ${record.offerTypeActive ? \"Inactive\" : \"Active\"} ?`),\n ]),\n cancelText: 'No',\n okText: 'Yes',\n onOk() {\n // inactive --》 active\n const params = { offerTypeActive: !record.offerTypeActive }\n UpdateOfferStatus(params,record.offerTypeId).then(() => {\n message.success(`${record.offerTypeName} status changed to ${record.offerTypeActive ? \"Inactive\" : \"Active\"}!`)\n // initTableData()\n })\n },\n onCancel() {\n console.log(\"cancel\");\n },\n });\n };\n\n // 取消复选框的勾选\n const cancelStatus = () => {\n checkboxArr.value = []\n }\n \n // 更改offer type的状态\n const handleChangeStaus = (record: overviewProps) => {\n // 更改成inactive 和 Icentive是Dealer类型\n if (record.offerTypeActive || !record.siOffer) {\n handleDisableOffer(record)\n } else {\n visibleStatus.value = true\n formData.form.offerTypeName = record.offerTypeName\n optionsData.value = record.siOffer\n formData.form.offerTypeId = record.offerTypeId\n } \n }\n // SI offer有一个变成acitve, offer Type就变成active, 所以提示信息也需要有SI offer,和offer Type\n const InactiveToActive = (data: overviewProps) => {\n message.success(`${data.offerTypeName} status changed to Active!`)\n for (const item of data.siOffer) {\n message.success(`${item.name} status changed to Active!`)\n }\n }\n // 自定义修改status时的title样式\n // const modalTitle = h('h1', {}, [\n // h('span', {}, 'Select Active SI Offer or Add SI Offer') ,\n // h('i',{ class: 'iconfont icon-pen-31',style: 'margin-left: 10px',onClick: ()=>{\n // visibleSI.value = true\n // }}),\n // ])\n\n // 将offer type的状态inactive修改成active确定时\n const confirmStaus = async() => {\n if (checkboxArr.value.length > 0) {\n const paramsOffer = { offerTypeActive: true }\n await UpdateOfferStatus(paramsOffer, formData.form.offerTypeId)\n const params: siStatusProps[] = []\n checkboxArr.value.forEach((item: string) => {\n params.push({id: item, active: true})\n })\n UpdateSiStatus(params, formData.form.offerTypeId).then(res => {\n InactiveToActive(res)\n // initTableData()\n checkboxArr.value = []\n })\n visibleStatus.value = false\n } else {\n message.error('Please activate the SI Offer first!');\n }\n }\n \n \n\n // 导出excel\n const expotToExcel = () => {\n const params = {\n url: '/bgapi/system_setting/program_type/excel',\n }\n blobDownload(params)\n }\n \n onMounted(() => {\n // 设置表格的头部状态文字显示\n if (sessionStorage.getItem('status')) activeText.value = sessionStorage.getItem('status') as string\n // 设置控制addoffer页面的操作\n store.commit('updateOperable',true)\n // 初始化数据;\n // initTableData()\n });\n return {\n tableHeight,\n activeKey,\n // 数据\n tableData,\n offerStatus,\n optionsData,\n salesList,\n incaentiveList,\n activeText,\n // 自定义title\n // modalTitle,\n // table的分页,过滤\n tableChange,\n // table展开icon,控制\n expandIcon,\n onExpand,\n expKeys,\n handleExpand,\n ...toRefs(formData),\n offerRef,\n // modal的事件,变量\n visibleStatus,\n handleChangeStaus,\n confirmStaus,\n selectChange,\n isSIoffer,\n checkboxArr,// 复选框的集合\n cancelStatus,\n // 导出excel\n expotToExcel,\n };\n },\n});\n","import { render } from \"./OfferType.vue?vue&type=template&id=00b6bdd5&ts=true\"\nimport script from \"./OfferType.vue?vue&type=script&lang=ts\"\nexport * from \"./OfferType.vue?vue&type=script&lang=ts\"\n\nimport \"./OfferType.vue?vue&type=style&index=0&id=00b6bdd5&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"new-offer bg-fff p-10 m-t-10\" }\nconst _hoisted_2 = { class: \"flex-div align-s\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Breadcrumb = _resolveComponent(\"Breadcrumb\")!\n const _component_navbar = _resolveComponent(\"navbar\")!\n const _component_AddOfferLeft = _resolveComponent(\"AddOfferLeft\")!\n const _component_AddOfferRight = _resolveComponent(\"AddOfferRight\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(_component_Breadcrumb, { dataSource: [{name: 'Offer Type Setting'}] }),\n _createVNode(_component_navbar, {\n navArr: _ctx.navArr,\n class: \"bg-fff p-10 m-t-10\"\n }, null, 8, [\"navArr\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_AddOfferLeft),\n _createVNode(_component_AddOfferRight)\n ])\n ])\n ]))\n}","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"left\",\n style: {\"flex\":\"10\"}\n}\nconst _hoisted_2 = { class: \"flex-div justify-b\" }\nconst _hoisted_3 = {\n style: {\"width\":\"300px\"},\n class: \"ellipsis\"\n}\nconst _hoisted_4 = {\n key: 0,\n class: \"flex-div justify-e\"\n}\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-chuangjian\" }, null, -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"m-l-5\" }, \"Quick Setup\", -1)\nconst _hoisted_7 = [\n _hoisted_5,\n _hoisted_6\n]\nconst _hoisted_8 = { class: \"cursor-p\" }\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-old-save m-l-10\" }, null, -1)\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\"Cancel\")\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\"OK\")\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"flex-div checkbox-header\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { style: {\"flex\":\"3\"} }, \"ATTRIBUTE\"),\n /*#__PURE__*/_createElementVNode(\"span\", { style: {\"flex\":\"1\"} }, \"SELECTED\"),\n /*#__PURE__*/_createElementVNode(\"span\", { style: {\"flex\":\"2\"} }, \"AUTO / MANUAL\")\n], -1)\nconst _hoisted_13 = { class: \"left-content m-scroll\" }\nconst _hoisted_14 = { class: \"flex-div justify-s checkbox-title\" }\nconst _hoisted_15 = { style: {\"width\":\"50%\"} }\nconst _hoisted_16 = [\"onClick\"]\nconst _hoisted_17 = { key: 0 }\nconst _hoisted_18 = { style: {\"flex\":\"3\"} }\nconst _hoisted_19 = { style: {\"flex\":\"1\"} }\nconst _hoisted_20 = { style: {\"flex\":\"2\"} }\nconst _hoisted_21 = { key: 1 }\nconst _hoisted_22 = { style: {\"flex\":\"3\"} }\nconst _hoisted_23 = { style: {\"flex\":\"1\"} }\nconst _hoisted_24 = [\"value\", \"disabled\", \"onClick\", \"checked\", \"name\"]\nconst _hoisted_25 = { style: {\"flex\":\"2\"} }\nconst _hoisted_26 = /*#__PURE__*/_createTextVNode(\"Cancel\")\nconst _hoisted_27 = /*#__PURE__*/_createTextVNode(\"OK\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_form_item = _resolveComponent(\"a-form-item\")!\n const _component_a_form = _resolveComponent(\"a-form\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_input = _resolveComponent(\"a-input\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", _hoisted_3, _toDisplayString(_ctx.$route.params.name), 1),\n (!_ctx.$store.state.operable)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", {\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.showQuickVisble && _ctx.showQuickVisble(...args))),\n class: \"cursor-p\"\n }, _hoisted_7),\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n _createElementVNode(\"span\", {\n class: \"m-l-5\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.saveOffer && _ctx.saveOffer(...args)))\n }, \"Save\")\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(_component_a_modal, {\n visible: _ctx.quickVisble,\n \"onUpdate:visible\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.quickVisble) = $event)),\n centered: \"\",\n onCancel: _ctx.cancelQuick,\n title: \"Select Reference Offer Type\"\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"back\",\n onClick: _ctx.cancelQuick\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n key: \"submit\",\n type: \"primary\",\n onClick: _ctx.createQuick\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_form, {\n model: _ctx.form,\n \"label-col\": _ctx.labelCol,\n \"wrapper-col\": _ctx.wrapperCol\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_form_item, {\n label: \"Reference Type:\",\n name: \"offerType\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select, {\n value: _ctx.form.offerType,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.form.offerType) = $event)),\n onChange: _ctx.changeQuick,\n placeholder: \"Select\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.offerTypeData, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.offerTypeName,\n key: item.offerTypeId\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.offerTypeName), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"model\", \"label-col\", \"wrapper-col\"])\n ]),\n _: 1\n }, 8, [\"visible\", \"onCancel\"]),\n _hoisted_12,\n _createElementVNode(\"div\", _hoisted_13, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.checkDatas, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: item.id,\n class: \"checkbox-content\"\n }, [\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"p\", _hoisted_15, [\n _createTextVNode(_toDisplayString(item.name) + \" \", 1),\n (item.appendable && !_ctx.$store.state.operable)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: \"font_family icon-tianjia11 f-r\",\n onClick: ($event: any) => (_ctx.handleAddAttr(item))\n }, null, 8, _hoisted_16))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(item.attribute, (attr, index) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: index }, [\n (attr.independent)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(attr, (val) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"flex-div justify-s checkbox-subtitle\",\n key: val.id\n }, [\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(val.name), 1),\n _createElementVNode(\"div\", _hoisted_19, [\n _createVNode(_component_a_checkbox, {\n checked: val.selected,\n \"onUpdate:checked\": ($event: any) => ((val.selected) = $event),\n disabled: _ctx.$store.state.operable\n }, null, 8, [\"checked\", \"onUpdate:checked\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_20, [\n (val.selected)\n ? (_openBlock(), _createBlock(_component_a_select, {\n key: 0,\n value: val.manual,\n \"onUpdate:value\": ($event: any) => ((val.manual) = $event),\n style: {\"width\":\"120px\"},\n ref_for: true,\n ref: \"select\",\n disabled: val.manualFixed || _ctx.$store.state.operable\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.manualArr, (value) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: value.title,\n key: value.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(value.title), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"value\", \"onUpdate:value\", \"disabled\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n (attr.exclusive)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_21, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(attr.exclusive, (exclusive) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"flex-div justify-s checkbox-subtitle\",\n key: exclusive.id\n }, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(exclusive.name), 1),\n _createElementVNode(\"div\", _hoisted_23, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n value: exclusive.id,\n disabled: _ctx.$store.state.operable,\n onClick: ($event: any) => (_ctx.onRadio(item.id,exclusive.id)),\n checked: exclusive.selected,\n name: item.name\n }, null, 8, _hoisted_24)\n ]),\n _createElementVNode(\"span\", _hoisted_25, [\n (exclusive.selected && (typeof exclusive.manual !== 'undefined'))\n ? (_openBlock(), _createBlock(_component_a_select, {\n key: 0,\n value: exclusive.manual,\n \"onUpdate:value\": ($event: any) => ((exclusive.manual) = $event),\n style: {\"width\":\"120px\"},\n ref_for: true,\n ref: \"select\",\n disabled: exclusive.manualFixed\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.manualArr, (value) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: value.title,\n key: value.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(value.title), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"value\", \"onUpdate:value\", \"disabled\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ]))\n }), 128))\n ]),\n _createVNode(_component_a_modal, {\n visible: _ctx.visbleAttr,\n \"onUpdate:visible\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.visbleAttr) = $event)),\n centered: \"\",\n onCancel: _ctx.cancelAttr,\n title: \"Add New Budget Field\"\n }, {\n footer: _withCtx(() => [\n _createVNode(_component_a_button, {\n key: \"back\",\n onClick: _ctx.cancelAttr\n }, {\n default: _withCtx(() => [\n _hoisted_26\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n key: \"submit\",\n type: \"primary\",\n onClick: _ctx.createAttr\n }, {\n default: _withCtx(() => [\n _hoisted_27\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_form, {\n ref: _ctx.formRef,\n model: _ctx.form,\n rules: _ctx.rules,\n \"label-col\": _ctx.labelCol,\n \"wrapper-col\": _ctx.wrapperCol\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_form_item, {\n label: \"Budget Field Name:\",\n name: \"attribute\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_input, {\n value: _ctx.form.attribute,\n \"onUpdate:value\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.form.attribute) = $event))\n }, null, 8, [\"value\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"model\", \"rules\", \"label-col\", \"wrapper-col\"])\n ]),\n _: 1\n }, 8, [\"visible\", \"onCancel\"])\n ]))\n}","\nimport { defineComponent, ref, reactive, onMounted, nextTick, toRefs, } from 'vue'\nimport { overviewProps, independentProps, budgetTemplateProps } from './types'\nimport { SelectProps, ValidProps } from '@/API/types'\nimport { manualArr, } from './data'\nimport { useRoute } from 'vue-router'\nimport { useStore } from \"vuex\";\nimport { BudgettpFindall, OverviewFindall, Savebudgettp, AddbudgettpAttr, CheckExisted } from '@/API/budget'\nimport deepClone from '@/utils/deepClone'\nimport useEventbus from \"@/hooks/claim/useEventbus\"\nimport { message, Modal } from 'ant-design-vue'\nexport default defineComponent({\n setup () {\n const route = useRoute()\n const store = useStore()\n const checkDatas = ref([])\n const volumeBase = ref([])\n const offerTypeId = route.params.id \n // 更改value值\n const changeField = (arr: budgetTemplateProps[],type: string): budgetTemplateProps[] => {\n const updatedArr = deepClone(arr)\n updatedArr.forEach(item => {\n item.attribute.forEach(attr => {\n if (attr.exclusive) {\n attr.exclusive.forEach(exclusvie => {\n if ('manual' in exclusvie) {\n if (type === 'intoStr') {\n if (exclusvie.manual) {\n exclusvie.manual = 'Manual'\n } else {\n exclusvie.manual = 'Auto'\n }\n } else {\n if (exclusvie.manual === 'Manual') {\n exclusvie.manual = true\n } else {\n exclusvie.manual = false\n }\n }\n } \n })\n }\n if (attr.independent) {\n if (type === 'intoStr') {\n if (attr.independent.manual) {\n attr.independent.manual = 'Manual'\n } else {\n attr.independent.manual = 'Auto'\n }\n } else {\n if (attr.independent.manual === 'Manual') {\n attr.independent.manual = true\n } else {\n attr.independent.manual = false\n }\n }\n }\n })\n })\n return updatedArr\n }\n \n // 判断是否可以save (两个单选必须选择)\n const judgeSave = (): boolean => {\n let vbaseBool = false\n let cbaseBool = false\n checkDatas.value.forEach(item => {\n item.attribute.forEach(attr => {\n if (attr.exclusive) {\n attr.exclusive.forEach(exclusvie => {\n if (typeof exclusvie.manual === 'undefined') {\n if (exclusvie.selected) {\n vbaseBool = true\n }\n } else {\n if (exclusvie.selected) {\n cbaseBool = true\n }\n }\n })\n }\n })\n })\n if (vbaseBool && cbaseBool) {\n return true\n } else {\n return false\n }\n }\n \n // 初始化数据\n const initTableData = () => {\n BudgettpFindall(offerTypeId).then((res) => {\n // 表示是否维护过\n store.commit('updateMaintain', res.needMaintain)\n checkDatas.value = changeField(res.budgetTemplate, 'intoStr') \n })\n }\n // 自定义规则\n const judgeType = async(value: string): Promise => { \n const params = {\n name: value,\n type: 'ATTRIBUTE-NAME'\n }\n const res = await CheckExisted(params)\n return res\n }\n const validateAsync = async(rule: ValidProps, value: string) => {\n if (!value || value.split(' ').join('').length === 0) {\n return Promise.reject('Please input name')\n }\n if ((value && value.length > 100)) {\n return Promise.reject('Length should be 1 to 100')\n }\n \n if (value) {\n const res = await judgeType(value)\n if (res) {\n return Promise.reject('The Attribute Name already exists')\n }\n }\n return Promise.resolve('success')\n\n }\n // 定义form\n const formData = reactive({\n labelCol: { span: 8 },\n wrapperCol: { span: 14 },\n form: {\n offerType: [],\n offerTypeId: '',\n attribute: '',\n categoryId: ''\n },\n rules: {\n attribute: [\n {\n required: true,\n validator: validateAsync,\n trigger: 'blur'\n },\n ]\n }\n })\n // 获取form元素\n const getFormRef = ref()\n const formRef = (el: HTMLElement | null) => {\n nextTick(() => {\n getFormRef.value = el\n })\n }\n\n // 快速setting弹窗\n const quickVisble = ref(false)\n const selectQuickData = ref('')\n const offerTypeData = ref([])\n // 展示快速设置弹窗\n const showQuickVisble = () => {\n quickVisble.value = true\n if (offerTypeData.value.length < 1) {\n OverviewFindall().then((res) => {\n offerTypeData.value = res\n })\n }\n // getFormRef.value.resetFields();\n \n }\n // 下拉选择offer type触发的事件 获取offer type Id\n const changeQuick = (value: string, option: SelectProps) => {\n formData.form.offerTypeId = option.key\n }\n // 确定快速设置的弹窗\n const showConfirm = () => {\n Modal.confirm({\n title: `Task ${formData.form.offerType} settings as reference`,\n centered: true,\n // content: createVNode('div', { style: 'color:red;' }, 'Some descriptions'),\n cancelText: 'No',\n okText: 'Yes',\n onOk() {\n BudgettpFindall(formData.form.offerTypeId).then((res) => {\n checkDatas.value = changeField(res.budgetTemplate,'intoStr') \n })\n quickVisble.value = false\n formData.form.offerType = []\n \n },\n onCancel() {\n console.log('Cancel');\n },\n class: 'test',\n });\n }\n // 选中offer type 确定导入设置\n const createQuick = () => {\n if (formData.form.offerTypeId) {\n showConfirm()\n } else {\n message.error(\"Please select an Offer Type!\")\n }\n }\n // 取消导入 offer type设置\n const cancelQuick = () => {\n quickVisble.value = false\n formData.form.offerType = []\n \n }\n\n // 静态插入属性\n const getAttributeArr = (id: string, arrValue: independentProps) => {\n checkDatas.value.forEach(item => {\n if (item.id === id) {\n const attr = {\n independent: arrValue\n }\n item.attribute.push(attr)\n }\n })\n } \n // 添加属性的弹窗\n const visbleAttr = ref(false)\n const handleAddAttr = (msg: budgetTemplateProps, ) => {\n formData.form.categoryId = msg.id\n visbleAttr.value = true\n }\n // 确定添加属性\n const createAttr = () => {\n getFormRef.value.validate().then(() => {\n visbleAttr.value = false\n const params = [{\n categoryId: formData.form.categoryId,\n name: formData.form.attribute,\n }]\n let arrValue: independentProps\n AddbudgettpAttr(params, offerTypeId).then((res) => {\n if (res[0].attribute[0].independent.manual) {\n res[0].attribute[0].independent.manual = 'Manual'\n } else {\n res[0].attribute[0].independent.manual = 'Auto'\n }\n arrValue = res[0].attribute[0].independent\n getAttributeArr(formData.form.categoryId, arrValue)\n message.success(`${formData.form.attribute} has been created!`)\n getFormRef.value.resetFields();\n })\n \n })\n }\n // 取消添加属性\n const cancelAttr = () => {\n visbleAttr.value = false\n getFormRef.value.resetFields();\n }\n\n // 得到单选的数据\n const radioData = (parentId: string,id: string) => {\n for (const item of checkDatas.value) {\n item.attribute.forEach((attr) => {\n if (attr.exclusive) {\n attr.exclusive.map((exclus) => {\n if (item.id === parentId) {\n exclus.selected = false\n if (exclus.id === id) {\n exclus.selected = true\n }\n }\n }) \n }\n })\n }\n }\n const onRadio = (parentId: string,id: string) => {\n radioData(parentId,id)\n }\n const { customEmit } = useEventbus()\n \n // save offer \n const saveOffer = async() => {\n if (judgeSave()){\n const params = changeField(checkDatas.value, 'intoBool')\n await Savebudgettp(params, offerTypeId)\n initTableData()\n customEmit(\"updatelayout\")\n } else {\n message.error(\"Please select a single option!\")\n return false\n }\n \n }\n\n onMounted(() => {\n initTableData()\n })\n return {\n onRadio,\n volumeBase,\n checkDatas,\n ...toRefs(formData),\n formRef,\n manualArr,\n quickVisble,\n offerTypeData,\n showQuickVisble,\n changeQuick,\n createQuick,\n cancelQuick,\n visbleAttr,\n handleAddAttr,\n createAttr,\n cancelAttr,\n selectQuickData,\n saveOffer,\n }\n }\n})\n","import { render } from \"./AddOfferLeft.vue?vue&type=template&id=77543d2f&ts=true\"\nimport script from \"./AddOfferLeft.vue?vue&type=script&lang=ts\"\nexport * from \"./AddOfferLeft.vue?vue&type=script&lang=ts\"\n\nimport \"./AddOfferLeft.vue?vue&type=style&index=0&id=77543d2f&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"right m-l-30\",\n style: {\"flex\":\"9\"}\n}\nconst _hoisted_2 = { class: \"flex-div justify-e right-confirm\" }\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"Edit\")\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"Confirm\")\nconst _hoisted_5 = { class: \"flex-div\" }\nconst _hoisted_6 = {\n class: \"layout-left m-scroll\",\n style: {\"flex\":\"9\"}\n}\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"h1\", { class: \"sub-title\" }, \"Budget Form Layout\", -1)\nconst _hoisted_8 = { class: \"btn-icon\" }\nconst _hoisted_9 = { class: \"flex-div flex-d-c\" }\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-old-right\" }, null, -1)\nconst _hoisted_11 = [\n _hoisted_10\n]\nconst _hoisted_12 = { key: 1 }\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-old-Left\" }, null, -1)\nconst _hoisted_14 = [\n _hoisted_13\n]\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-old-Left\" }, null, -1)\nconst _hoisted_16 = [\n _hoisted_15\n]\nconst _hoisted_17 = { key: 3 }\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-old-right\" }, null, -1)\nconst _hoisted_19 = [\n _hoisted_18\n]\nconst _hoisted_20 = {\n class: \"layout-right\",\n style: {\"flex\":\"9\"}\n}\nconst _hoisted_21 = /*#__PURE__*/_createStaticVNode(\"

Removed Field

\", 2)\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\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.$store.state.operable)\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: \"submit\",\n class: \"modal-h my-btn f-r\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$store.commit('updateOperable',false))),\n disabled: !_ctx.stringToBoolean(_ctx.$route.params.status),\n type: \"primary\"\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }, 8, [\"disabled\"]))\n : _createCommentVNode(\"\", true),\n (!_ctx.$store.state.operable)\n ? (_openBlock(), _createBlock(_component_a_button, {\n key: \"submit\",\n class: \"modal-h my-btn f-r\",\n onClick: _ctx.confimLayout,\n type: \"primary\"\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _hoisted_7,\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"font_family icon-xiangshang m-l-10\", {'cursor-p': !_ctx.$store.state.operable}]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (!_ctx.$store.state.operable && _ctx.leftIcon && _ctx.upRemove()))\n }, null, 2),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"font_family icon-xiangxia m-l-10\", {'cursor-p': !_ctx.$store.state.operable}]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (!_ctx.$store.state.operable && _ctx.leftIcon && _ctx.downRemove()))\n }, null, 2),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"font_family icon-old-up m-l-10\", {'cursor-p': !_ctx.$store.state.operable}]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (!_ctx.$store.state.operable && _ctx.leftIcon && _ctx.startRemove()))\n }, null, 2),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"font_family icon-old-down m-l-10\", {'cursor-p': !_ctx.$store.state.operable}]),\n onClick: _cache[4] || (_cache[4] = ($event: any) => (!_ctx.$store.state.operable && _ctx.leftIcon && _ctx.endRemove()))\n }, null, 2)\n ]),\n _createElementVNode(\"ul\", {\n class: \"layout-wrap m-scroll\",\n id: \"layoutlist\",\n onClick: _cache[5] || (_cache[5] = ($event: any) => (!_ctx.$store.state.operable && _ctx.clickColumn($event, true, '#layoutlist li')))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.layoutList.form, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: item.id,\n class: _normalizeClass([\"layout-list\", {'cursor-p': !_ctx.$store.state.operable}])\n }, _toDisplayString(item.name), 3))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n (_ctx.leftIcon)\n ? (_openBlock(), _createElementBlock(\"p\", {\n key: 0,\n onClick: _cache[6] || (_cache[6] = ($event: any) => (!_ctx.$store.state.operable && _ctx.leftIcon && _ctx.canMoveLeft($event, true))),\n class: _normalizeClass({'cursor-p': !_ctx.$store.state.operable})\n }, _hoisted_11, 2))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_12, _hoisted_14)),\n (_ctx.rightIcon)\n ? (_openBlock(), _createElementBlock(\"p\", {\n key: 2,\n onClick: _cache[7] || (_cache[7] = ($event: any) => (!_ctx.$store.state.operable && _ctx.canMoveLeft($event, false))),\n class: _normalizeClass({'cursor-p': !_ctx.$store.state.operable})\n }, _hoisted_16, 2))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_17, _hoisted_19))\n ]),\n _createElementVNode(\"div\", _hoisted_20, [\n _hoisted_21,\n _createElementVNode(\"ul\", {\n class: \"layout-wrap m-scroll\",\n id: \"layoutlistRight\",\n onClick: _cache[8] || (_cache[8] = ($event: any) => (!_ctx.$store.state.operable && _ctx.clickColumn($event, false, '#layoutlistRight li')))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.layoutList.removed, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: item.id,\n class: _normalizeClass([\"layout-list\", {'cursor-p': !_ctx.$store.state.operable}])\n }, _toDisplayString(item.name), 3))\n }), 128))\n ])\n ])\n ])\n ]))\n}","\nimport { defineComponent, ref, onMounted } from 'vue'\nimport { layoutListProps } from './types'\nimport { stringToBoolean } from '@/utils/index'\nimport { BudgetFormLayout, ConfimFormLayout } from '@/API/budget'\nimport deepClone from '@/utils/deepClone';\nimport { useRoute } from 'vue-router'\nimport useEventbus from \"@/hooks/claim/useEventbus\"\nexport default defineComponent({\n setup () {\n const route = useRoute()\n const offerTypeId = route.params.id\n const layoutList = ref({form: [], removed:[]})\n // layoutList.value = layoutList\n const leftIcon = ref(false)\n const rightIcon = ref(false)\n let clickElement: string\n let currentElementIndex: number\n // 初始化数据 \n const initLayouData = () => {\n BudgetFormLayout(offerTypeId).then((res) => {\n layoutList.value = res\n })\n }\n \n // 点击右侧layout元素, isLeft: 是否是左侧,idLocal:是哪个元素\n const clickColumn = (e: MouseEvent, isLeft: string, idLocal: string) => {\n const target = e && (e.target as HTMLElement)\n clickElement = target.innerHTML\n // 得到当前的元素的index\n currentElementIndex = isLeft ? layoutList.value.form.findIndex(item => item.name === clickElement) : layoutList.value.removed.findIndex(item => item.name === clickElement)\n const query = document.querySelectorAll(idLocal)\n for (let i = 0; i < query.length; i++) {\n query[i].style.background = ''\n }\n if (target) {\n target.style.background = '#F8FAFD';\n // isLeft ? leftIcon.value = true : rightIcon.value = true\n if (isLeft) {\n leftIcon.value = true\n rightIcon.value = false\n } else {\n leftIcon.value = false\n rightIcon.value = true\n }\n }\n \n }\n // 点击右移,清掉左侧的,右侧增加\n // 点击右移\n const canMoveLeft = (e: MouseEvent, isLeft: boolean) => {\n // 没有移动的左侧的原始数据数组\n const rawArr = deepClone(isLeft ? layoutList.value.form : layoutList.value.removed)\n // 没有移动的左侧的原始数据对象,点击的当前对象\n const rawObj = rawArr.filter(item => item.name === clickElement)[0]\n // 没有移动的左侧的原始数据对象,点击的当前对象的索引\n // 把左侧的点击当前项目删除\n if (currentElementIndex !== -1) isLeft ? layoutList.value.form.splice(currentElementIndex, 1) : layoutList.value.removed.splice(currentElementIndex, 1)\n // 把左侧移动的数据加到右侧\n !isLeft ? layoutList.value.form.push(rawObj) : layoutList.value.removed.push(rawObj)\n // 把中间的按钮重置\n isLeft ? leftIcon.value = false : rightIcon.value = false\n }\n // 当前行上移,当前的元素已经是索引为0时,证明已经是第一个,不能再上移\n const upRemove = () => {\n if (currentElementIndex === 0) return\n // 得到删除的元素\n const removeObj = layoutList.value.form.splice(currentElementIndex, 1)\n // 把删除的元素插入到上一个索引的位置\n layoutList.value.form.splice(currentElementIndex - 1, 0, removeObj[0])\n // 更新移动的当前点击的index\n currentElementIndex = layoutList.value.form.findIndex(item => item.name === clickElement)\n }\n // 当前行下移,当前的元素已经是整个数组长度-1,证明已经是最后一个,不能再下移\n const downRemove = () => {\n if (currentElementIndex === layoutList.value.form.length - 1) return\n // 得到删除的元素\n const removeObj = layoutList.value.form.splice(currentElementIndex, 1)\n // 把删除的元素插入到上一个索引的位置\n layoutList.value.form.splice(currentElementIndex + 1, 0, removeObj[0])\n // 更新移动的当前点击的index\n currentElementIndex = layoutList.value.form.findIndex(item => item.name === clickElement)\n }\n const startRemove = () => {\n if (currentElementIndex === 0) return\n // 得到删除的元素\n const removeObj = layoutList.value.form.splice(currentElementIndex, 1)\n // 把删除的元素插入到上一个索引的位置\n layoutList.value.form.splice(0, 0, removeObj[0])\n // 更新移动的当前点击的index\n currentElementIndex = layoutList.value.form.findIndex(item => item.name === clickElement)\n }\n const endRemove = () => {\n const maxIndex = deepClone(layoutList.value.form).length - 1\n if (currentElementIndex === maxIndex) return\n // 得到删除的元素\n const removeObj = layoutList.value.form.splice(currentElementIndex, 1)\n // 把删除的元素插入到上一个索引的位置\n layoutList.value.form.splice(maxIndex, 0, removeObj[0])\n // 更新移动的当前点击的index\n currentElementIndex = layoutList.value.form.findIndex(item => item.name === clickElement)\n }\n\n // 确定layout\n const confimLayout = () => {\n ConfimFormLayout(layoutList.value, offerTypeId).then(() => {\n initLayouData()\n })\n }\n // 响应兄弟元素\n const { customOn } = useEventbus()\n customOn(\"updatelayout\", () => {\n initLayouData()\n })\n\n onMounted(() => {\n initLayouData()\n })\n return {\n stringToBoolean,\n layoutList,\n clickColumn,\n leftIcon,\n rightIcon,\n canMoveLeft,\n upRemove,\n downRemove,\n startRemove,\n endRemove,\n confimLayout,\n }\n }\n})\n","import { render } from \"./AddOfferRight.vue?vue&type=template&id=40342c38&ts=true\"\nimport script from \"./AddOfferRight.vue?vue&type=script&lang=ts\"\nexport * from \"./AddOfferRight.vue?vue&type=script&lang=ts\"\n\nimport \"./AddOfferRight.vue?vue&type=style&index=0&id=40342c38&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { defineComponent, ref, watch } from 'vue'\nimport AddOfferLeft from './AddOfferLeft.vue'\nimport AddOfferRight from './AddOfferRight.vue'\nimport Navbar from \"@/views/Budget/ConfigurationNav.vue\"\nimport { useRoute } from 'vue-router'\nimport { NavbarProps } from './types'\nimport { useStore } from 'vuex'\nexport default defineComponent({\n components: { Navbar, AddOfferLeft, AddOfferRight },\n name: 'Add Offer',\n setup () {\n const route = useRoute()\n const store = useStore()\n const pathData = ref('')\n if (route.name === 'Add Offer') {\n sessionStorage.setItem('path', route.path)\n }\n if (sessionStorage.getItem('path')) {\n pathData.value = sessionStorage.getItem('path') as string\n\n }\n const navArr = ref()\n navArr.value = [\n {\n title: 'BUDGET TEMPLATE',\n path: pathData.value,\n icon: store.state.maintain ? 'icon-remove-circle' : 'icon-circle-1',\n id: '1'\n },\n // {\n // title: 'SUPPORTING',\n // path: '/budgetinput',\n // icon: store.state.maintain ? 'icon-remove-circle' : 'icon-circle-1',\n // id: '2'\n // }\n ]\n watch(() => store.state.maintain, () => {\n navArr.value = [\n {\n title: 'BUDGET TEMPLATE',\n path: pathData.value,\n icon: store.state.maintain ? 'icon-remove-circle' : 'icon-circle-1',\n id: '1'\n },\n {\n title: 'SUPPORTING',\n path: '/budgetinput',\n icon: store.state.maintain ? 'icon-remove-circle' : 'icon-circle-1',\n id: '2'\n }\n ]\n })\n return {\n navArr\n }\n }\n})\n","import { render } from \"./AddOffer.vue?vue&type=template&id=9ef43288&ts=true\"\nimport script from \"./AddOffer.vue?vue&type=script&lang=ts\"\nexport * from \"./AddOffer.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"tabs\",\n class: \"m-t-10 p-10\"\n}\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"equation-title\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"m-t-10\" }, \"*Note:\", -1)\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"m-l-10\" }, \" None selected attribute default value equal 100% \", -1)\nconst _hoisted_6 = { class: \"box\" }\nconst _hoisted_7 = { class: \"d-f\" }\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"logic-title\" }, \" Calculation Logic Setting \", -1)\nconst _hoisted_9 = { style: {\"flex\":\"3\"} }\nconst _hoisted_10 = { style: {\"flex\":\"7\"} }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Breadcrumb = _resolveComponent(\"Breadcrumb\")!\n const _component_Navbar = _resolveComponent(\"Navbar\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_a_collapse_panel = _resolveComponent(\"a-collapse-panel\")!\n const _component_a_collapse = _resolveComponent(\"a-collapse\")!\n const _component_a_tab_pane = _resolveComponent(\"a-tab-pane\")!\n const _component_a_tabs = _resolveComponent(\"a-tabs\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(_component_Breadcrumb, { dataSource: [{name: 'Budget Template'}] }),\n _createVNode(_component_Navbar, { class: \"p-l-r-10 bg-fff\" }),\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_a_tabs, {\n type: \"card\",\n activeKey: _ctx.activeTabKey,\n \"onUpdate:activeKey\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.activeTabKey) = $event))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_tab_pane, {\n key: \"1\",\n tab: \"Normal Sales\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_a_collapse, {\n activeKey: _ctx.activeKey,\n \"onUpdate:activeKey\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.activeKey) = $event)),\n class: \"m-scroll\",\n bordered: false\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_collapse_panel, {\n key: \"1\",\n header: \"Budget Data Fields Setting\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_table, {\n columns: _ctx.columns,\n \"data-source\": _ctx.tableData,\n class: \"budgettp-table table-screen\",\n rowKey: tableData => tableData.id,\n pagination: false,\n scroll: { y: _ctx.activeKey.includes('2') ? _ctx.$store.state.scrollHeight - 100 : _ctx.$store.state.scrollHeight }\n }, {\n content: _withCtx(({text}) => [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"font_family\", text ? 'icon-icon-test' : 'icon-remove-circle'])\n }, null, 2)\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"rowKey\", \"scroll\"])\n ]),\n _: 1\n }),\n _createVNode(_component_a_collapse_panel, {\n key: \"2\",\n header: \"Calculation Logic Setting\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.formula, (item, key) => {\n return (_openBlock(), _createElementBlock(\"p\", { key: key }, [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(key.charAt(0).toUpperCase() + key.slice(1)) + \":\", 1),\n _createElementVNode(\"span\", null, _toDisplayString(item), 1)\n ]))\n }), 128)),\n _hoisted_4,\n _hoisted_5\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"activeKey\"])\n ])\n ]),\n _: 1\n }),\n _createVNode(_component_a_tab_pane, {\n key: \"2\",\n tab: \"Others\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_a_collapse, {\n activeKey: _ctx.activeFleetKey,\n \"onUpdate:activeKey\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.activeFleetKey) = $event)),\n class: \"m-scroll\",\n bordered: false\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.othersData, (item) => {\n return (_openBlock(), _createBlock(_component_a_collapse_panel, {\n key: item.key,\n header: item.header\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_7, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(item.fieldOptions, (field) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: field,\n class: \"field-box\"\n }, [\n _createElementVNode(\"div\", null, _toDisplayString(field.value), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"font_family\", field.icon]),\n style: {\"position\":\"absolute\",\"right\":\"2px\",\"bottom\":\"2px\"}\n }, null, 2)\n ]))\n }), 128))\n ]),\n _hoisted_8,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(item.logicOptions, (logic) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"d-f logic-box\",\n key: logic\n }, [\n _createElementVNode(\"div\", _hoisted_9, _toDisplayString(logic.display), 1),\n _createElementVNode(\"div\", _hoisted_10, _toDisplayString(logic.formula), 1)\n ]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"header\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"activeKey\"])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"activeKey\"])\n ])\n ]))\n}","\nimport { defineComponent, onMounted, ref } from 'vue'\nimport Navbar from '@/views/Budget/index.vue'\nimport { GetbudgetTemplate, getbudgetTemplateFleet } from '@/API/budget'\nimport { BudgetTemplateProps, overviewAttr, ShowBudgetTemplate } from '@/views/Budget/types'\nimport deepClone from '@/utils/deepClone'\nimport { othersData } from './data'\ninterface CloumnsProps {\n title: string;\n dataIndex: string;\n width?: string;\n slots?: { customRender: string };\n}\nexport default defineComponent({\n components: {\n Navbar\n },\n name: 'BudgetTemplate',\n setup() {\n const activeKey = ref([1])\n const activeFleetKey = ref([1])\n const switchvalue = ref('a')\n const activeTabKey = ref('1')\n const pageChange = (page: number, pageSize: number) => {\n console.log(page,pageSize);\n }\n const sizeChange = (page: number, pageSize: number) => {\n console.log(page,pageSize,'----');\n }\n \n const tableData = ref([])\n // 切换单选按钮\n const onChange = () => {\n console.log(switchvalue.value);\n }\n const columns = ref([])\n const settingColumns = (data: BudgetTemplateProps) => {\n data.title.forEach((item, index) => {\n if (index === 0) {\n columns.value.push({\n title: item.name,\n dataIndex: 'name',\n width: '12%'\n })\n } else {\n columns.value.push({\n title: item.name,\n dataIndex: item.name,\n slots: { customRender: 'content'}\n })\n }\n })\n }\n const asTableData = (overview: overviewAttr[]) => {\n const updatedArr = deepClone(overview)\n updatedArr.forEach((item) => {\n const obj: ShowBudgetTemplate = {}\n for (const key in item) {\n if (key === 'attribute') {\n if (item[key].length > 0) {\n item.attribute.forEach(attr => {\n obj[attr.name] = attr.enabled\n })\n }\n } else {\n obj[key] = item[key]\n } \n }\n tableData.value.push(obj) \n console.log(tableData.value);\n\n })\n \n }\n\n const formula = ref()\n onMounted(() => {\n GetbudgetTemplate().then(res => {\n formula.value = res.formula\n asTableData(res.overview)\n settingColumns(res) \n }) \n })\n\n \n return {\n activeTabKey,\n activeFleetKey,\n activeKey,\n tableData,\n formula,\n columns,\n switchvalue,\n pageChange,\n sizeChange,\n onChange,\n othersData,\n\n }\n\n }\n });\n","import { render } from \"./BudgetTemplate.vue?vue&type=template&id=16e8828a&ts=true\"\nimport script from \"./BudgetTemplate.vue?vue&type=script&lang=ts\"\nexport * from \"./BudgetTemplate.vue?vue&type=script&lang=ts\"\n\nimport \"./BudgetTemplate.vue?vue&type=style&index=0&id=16e8828a&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-78cc7792\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"p-10 bg-fff m-t-b-10\" }\nconst _hoisted_2 = {\n style: {\"width\":\"300px\",\"font-size\":\"18px\"},\n class: \"ellipsis\"\n}\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"Jack\")\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"Lucy\")\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"Disabled\")\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"yiminghe\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Breadcrumb = _resolveComponent(\"Breadcrumb\")!\n const _component_navbar = _resolveComponent(\"navbar\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_Breadcrumb, { dataSource: [{name: 'Offer Type Setting'}] }),\n _createVNode(_component_navbar, {\n navArr: _ctx.navArr,\n class: \"bg-fff p-10 m-t-10\"\n }, null, 8, [\"navArr\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$route.params.name), 1)\n ]),\n _createVNode(_component_a_table, {\n columns: _ctx.columns,\n \"data-source\": _ctx.dataSource,\n pagination: false,\n scroll: { y: _ctx.tableHeight - 30 },\n rowKey: tableData => tableData.offerTypeId,\n class: \"clearfix self-table-icon-20\",\n rowClassName: (record, index) => (index % 2 === 1 ? 'table-striped' : null)\n }, {\n auto: _withCtx(({ record }) => [\n _createVNode(_component_a_select, {\n ref: \"select\",\n value: record.autoManual,\n \"onUpdate:value\": ($event: any) => ((record.autoManual) = $event),\n style: {\"width\":\"120px\"},\n disabled: \"\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select_option, { value: \"jack\" }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }),\n _createVNode(_component_a_select_option, { value: \"lucy\" }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }),\n _createVNode(_component_a_select_option, {\n value: \"disabled\",\n disabled: \"\"\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }),\n _createVNode(_component_a_select_option, { value: \"Yiminghe\" }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n })\n ]),\n _: 2\n }, 1032, [\"value\", \"onUpdate:value\"])\n ]),\n budgetForm: _withCtx(({ record }) => [\n _createVNode(_component_a_checkbox, {\n checked: record.budgetForm,\n \"onUpdate:checked\": ($event: any) => ((record.budgetForm) = $event),\n disabled: \"\"\n }, null, 8, [\"checked\", \"onUpdate:checked\"])\n ]),\n _: 1\n }, 8, [\"columns\", \"data-source\", \"scroll\", \"rowKey\", \"rowClassName\"])\n ], 64))\n}","\nimport { defineComponent, onMounted, ref } from 'vue'\nimport Navbar from \"@/views/Budget/ConfigurationNav.vue\"\nimport { useRoute } from 'vue-router'\nimport { NavbarProps } from './types'\nimport { useStore } from 'vuex'\nimport { getFleetByOffetId } from '@/API/budget'\nimport useTableHeight from \"@/hooks/useTableHeight\";\nconst columns = [\n {\n title: \"Budget Data Fields\",\n dataIndex: \"budgetDataFields\",\n key: \"budgetDataFields\",\n width: \"40%\",\n // align: 'center'\n },\n {\n title: \"AUTO/MANUAL\",\n key: \"auto\",\n width: \"30%\",\n // align: 'center',\n slots: { customRender: \"auto\" },\n },\n \n {\n title: \"Budget Form\",\n dataIndex: \"operation\",\n key: \"operation\",\n width: \"30%\",\n // align: 'center',\n slots: { customRender: \"budgetForm\" },\n },\n \n];\nexport default defineComponent({\n components: { Navbar, },\n name: '',\n setup() {\n const route = useRoute()\n const store = useStore()\n const navArr = ref()\n const { tableHeight } = useTableHeight(false);\n const pathData = ref('')\n navArr.value = [\n {\n title: 'BUDGET TEMPLATE',\n path: pathData.value,\n icon: store.state.maintain ? 'icon-remove-circle' : 'icon-circle-1',\n id: '1'\n },\n ]\n const dataSource = ref()\n const initData = () => {\n getFleetByOffetId(route.params.id as string).then(res => {\n dataSource.value = res\n })\n }\n\n onMounted(() => {\n initData()\n })\n\n return {\n navArr,\n columns,\n dataSource,\n tableHeight,\n }\n\n }\n });\n","import { render } from \"./FleetConfiguration.vue?vue&type=template&id=78cc7792&scoped=true&ts=true\"\nimport script from \"./FleetConfiguration.vue?vue&type=script&lang=ts\"\nexport * from \"./FleetConfiguration.vue?vue&type=script&lang=ts\"\n\nimport \"./FleetConfiguration.vue?vue&type=style&index=0&id=78cc7792&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-78cc7792\"]])\n\nexport default __exports__","import {\n createRouter,\n createWebHashHistory,\n RouteRecordRaw,\n NavigationGuardNext,\n RouteLocationNormalized,\n} from \"vue-router\";\nimport Home from \"@/views/Home.vue\";\nimport PrivilegeGroup from \"@/views/User/Index.vue\";\nimport Role from \"@/views/User/Role.vue\";\nimport User from \"@/views/User/User.vue\";\nimport PGSetting from \"@/views/User/PGSetting.vue\";\nimport RoleSetting from \"@/views/User/RoleSetting.vue\";\nimport UserSetting from \"@/views/User/UserSetting.vue\";\nimport UserRoleMatrix from \"@/views/User/UserRoleMatrix/index.vue\";\nimport BudgutInput from \"@/views/Budget/BudgetInput/BudgutInput.vue\";\nimport BudgutInputControlling from \"@/views/Budget/BudgetInput/BudgutInputControlling.vue\";\nimport BudgutExcel from \"@/views/Budget/DownloadExcel.vue\";\n//budget report\nimport BudgetReport from '@/views/Budget/BudgetReport/index.vue';\n//budget Allocation\nimport BudgetAllocation from '@/views/Budget/BudgetAllocation/index.vue';\nimport { isMobile } from './../utils/index';\nimport { PageView } from '@/API/log';\n\n// program\nconst ProgramDesign = () => import('@/views/Program/ProgramDesign.vue');\nconst Design = () => import('@/views/Program/Design.vue');\nconst CombinabilitySetting = () => import('@/views/Program/CombinabilitySetting/Index.vue');\n\n// SSSC\nconst SSSCIndex = () => import('@/views/SSSC/SSSCIndex.vue');\n\n// RetailValidation\nimport { rvRouters } from './rv';\n// Claim\nimport { claimRouters } from './claim';\n\n// Checking\nimport { checkingRouters } from './checking';\n\n// payment\nimport { pmtRouters } from './payment';\n//systemVehicle\nimport { systemVehicleRouters } from './systemRouters';\n//dealerMasterData\nimport { dealerMasterDataRouters } from '@/router/dealerMasterData';\n// closing\nimport { closingRouters } from './closing';\n// forecast\nimport { forecastRouters } from './forecast';\n// planning\nimport { planningRouters } from './planning';\n//vehiclelicense\nimport { vlRouters } from './vl';\n// setting\nimport { settingRouters } from './setting';\n\n// taskcenter\nimport { taskCenterRouters } from './taskCenter';\n\n// delay\nimport { delayRouters } from './delay';\n\n// communication\nimport { communicationRouters } from './communication';\n\n// delayCallback\nimport { delayCallbackRouters } from './delayCallback';\n\n// delayUsedCar\nimport { delayUsedCarRouters } from './delayUsedCar';\n\n// Sales\nimport { salesRepotringRouters } from './SalesReportiong';\n// guiDang\nimport { guiDangRouters } from './guidang';\n// SI Confirguration Report\nimport { reportingRouters } from './reporting';\n\n// localRegistration\nimport { localRegistrationRouters } from './localRegistration';\n\nimport { faqRouters } from './faq';\n\n// FA 页面组件\nconst CalculatorMaintain = () => import('@/views/Finance/CalculatorMaintain.vue');\nconst CalculatorStatus = () => import('@/views/Finance/CalculatorStatus.vue');\nconst FaSetting = () => import('@/views/Finance/FaSetting.vue');\nconst EstimatedPer = () => import('@/views/Finance/EstimatedPer.vue');\nconst CalculatorVersion = () => import('@/views/Finance/CalculatorVersion.vue');\nconst CalcelatorReopen = () => import('@/views/Finance/CalculatorReopen.vue');\n\n//审批流页面组件\n//sales role\nconst ProgramHome = () => import('@/views/Approve/SalesRoleApprove/ProgramHome/index.vue');\nconst OverallCombinabilityMatrix = () =>\n import('@/views/Approve/SalesRoleApprove/OverallCombinabilityMatrix/index.vue');\nconst CreatePackage = () => import('@/views/Approve/SalesRoleApprove/CreatePackage/index.vue');\nconst PackageHome = () => import('@/views/Approve/SalesRoleApprove/PackageHome/index.vue');\nconst ReleasePackageHome = () => import('@/views/Approve/SalesRoleApprove/ReleasePackageHome/index.vue');\nconst ReleaseSetting = () => import('@/views/Approve/SalesRoleApprove/ReleaseSetting/index.vue');\n//mg role\nconst MgPackageHome = () => import('@/views/Approve/MgRoleApprove/PackageHome/index.vue');\nconst MgPackageDetail = () => import('@/views/Approve/MgRoleApprove/PackageDetail/index.vue');\n//controlling role\nconst ControllingProgramHome = () => import('@/views/Approve/ControllingRoleApprove/ProgramHome/index.vue');\nconst WordingBudget = () => import('@/views/Approve/ControllingRoleApprove/ProgramHome/WordingBudget.vue');\n// F&A\nconst ApproveFA = () => import('@/views/Approve/SalesRoleApprove/FA/Index.vue');\n\n// UAM 路由\nconst uamRouters: Array = [\n {\n path: '/privilegegroup',\n name: 'Privilege Group',\n component: PrivilegeGroup\n },\n {\n path: '/pgsetting/:id',\n name: 'Privilege Group Setting',\n component: PGSetting\n },\n {\n path: '/role',\n name: 'Role',\n component: Role\n },\n {\n path: '/rolesetting/:id/:rolid',\n name: 'Role Setting',\n component: RoleSetting\n },\n {\n path: '/user',\n name: 'User',\n component: User\n },\n {\n path: '/usersetting/:id/:type/:name/:orgid/:usrtpcode',\n name: 'User Setting',\n component: UserSetting\n },\n {\n path: \"/userRoleMatrix\",\n name: \"User Role Matrix\",\n component: UserRoleMatrix,\n },\n // 审批流\n /*{\n path: '/approvalChian',\n name: 'Approval Chian',\n component: () =>\n import('@/views/User/ApprovalProcess/ApprovalChian/index.vue'),\n children: [\n { path: '/edit', name: 'edit',component: () => import('@/views/User/ApprovalProcess/ApprovalChian/edit.vue') }\n ]\n },*/\n {\n path: '/approvalChainEdit',\n name: 'Approval Chain Edit',\n component: () => import('@/views/User/ApprovalProcess/ApprovalChain/edit.vue'),\n children: [\n {\n path: '',\n name: 'configurationApprovalChainDetail',\n component: () => import('@/views/User/ApprovalProcess/components/approvalChainTable.vue'),\n meta: { keepAlive: true }\n },\n {\n path: '/customApprovalChainFirst',\n name: 'customApprovalChainFirst',\n component: () => import('@/views/User/ApprovalProcess/components/customApprovalChainTableFirst.vue'),\n meta: { keepAlive: true }\n },\n {\n path: '/customApprovalChainSecond',\n name: 'customApprovalChainSecond',\n component: () => import('@/views/User/ApprovalProcess/components/customApprovalChainTableSecond.vue'),\n meta: { keepAlive: true }\n },\n {\n path: '/customApprovalChainThird',\n name: 'customApprovalChainThird',\n component: () => import('@/views/User/ApprovalProcess/components/customApprovalChainTableThird.vue'),\n meta: { keepAlive: true }\n }\n ]\n }\n];\n\n// Budget 路由\nimport { OfferType, BudgetTemplate, AddOffer } from '@/views/Budget/index';\nimport FleetConfiguration from '@/views/Budget/FleetConfiguration.vue';\nconst budgetRouters: Array = [\n {\n path: '/addoffer/:id/:name/:status',\n name: 'Add Offer',\n component: AddOffer\n },\n {\n path: '/addofferfleet/:id/:name/:status',\n name: 'Add Offer Fleet',\n component: FleetConfiguration\n },\n {\n path: '/budgetinput',\n name: 'Budgut Input',\n component: BudgutInput\n },\n {\n path: '/budgutinputcontrolling',\n name: 'Budgut Input Controlling',\n component: BudgutInputControlling\n },\n {\n path: '/budgetAllocation/:siOfferId',\n name: 'budgetAllocation',\n component: BudgetAllocation,\n props: (route) => ({\n pgmId: route.query.pgmId,\n siOfferId: route.params.siOfferId\n })\n },\n {\n path: '/budgetReport/:id',\n name: 'budgetReport',\n component: BudgetReport,\n props: true\n },\n {\n path: '/budgutexcel',\n name: 'Budgut Excel',\n component: BudgutExcel\n },\n {\n path: '/offertype',\n name: 'Offer Type',\n component: OfferType,\n beforeEnter: (to, from) => {\n //to是当用户点击进入当前页面的时候,我们可以进行一些拦截设置\n //from当来自其他页面进入当前页面的时候,我们也可以进行拦截提示用户\n if (from.name !== 'Add Offer') {\n sessionStorage.setItem('status', 'active');\n }\n }\n },\n {\n path: '/budgutemplate',\n name: 'Budgut Template',\n component: BudgetTemplate\n },\n {\n path: '/budgutexcel',\n name: 'Budgut Excel',\n component: BudgutExcel\n }\n];\n\n// program 路由\nconst programRouters: Array = [\n {\n path: '/programdesign',\n component: ProgramDesign,\n children: [\n { path: 'design', name: 'Design', component: Design },\n { path: 'combinabilitysetting', component: CombinabilitySetting }\n ]\n },\n {\n path: '/wordingedit',\n name: 'Wording Edit',\n component: () => import('@/views/Program/Wording/WordingEdit.vue')\n },\n {\n path: '/wordingcompare',\n name: 'Wording Compare',\n component: () => import('@/views/Program/Wording/WordingCompare.vue')\n },\n {\n path: '/coverpagedit',\n name: 'Cover Page Edit',\n component: () => import('@/views/Program/Wording/CoverPageEdit.vue')\n }\n];\n\n// FA 路由\nconst faRouters: Array = [\n {\n path: '/calculatormaintain',\n name: 'Calculator Maintain',\n component: CalculatorMaintain\n },\n {\n path: '/calculator/status',\n name: 'Calculator Status',\n component: CalculatorStatus\n },\n {\n path: '/finance/setting',\n name: 'Fa Setting',\n component: FaSetting\n },\n {\n path: '/estimated/penetration',\n name: 'Estimated Penetration',\n component: EstimatedPer\n },\n {\n path: '/calculator/version',\n name: 'Calculator Version',\n component: CalculatorVersion\n },\n {\n path: '/calculator/reopen',\n name: 'Calculator Reopen',\n component: CalcelatorReopen\n }\n];\n\n// 审批流 路由\nconst approvalRouters: Array = [\n // sales\n {\n path: '/approval/sales/programHome',\n name: 'programHome',\n component: ProgramHome\n },\n {\n path: '/approval/sales/programHome/overallCombinabilityMatrix',\n name: 'overallCombinabilityMatrix',\n component: OverallCombinabilityMatrix\n },\n {\n path: '/approval/sales/createPackage',\n name: 'createPackage',\n component: CreatePackage,\n props: (route) => ({ batchId: route.query.batchId })\n },\n {\n path: '/approval/sales/packageHome',\n name: 'packageHome',\n component: PackageHome\n },\n {\n path: '/approval/sales/releasePackageHome',\n name: 'releasePackageHome',\n component: ReleasePackageHome\n },\n {\n path: '/approval/sales/releaseSetting',\n name: 'releaseSetting',\n component: ReleaseSetting,\n props: (route) => ({\n releaseId: route.query.releaseId,\n status: route.query.status\n })\n },\n // release\n {\n path: '/approval/sales/releaseSetting/release',\n name: 'Release',\n component: () => import('@/views/Approve/SalesRoleApprove/ReleaseSetting/Release/index.vue')\n },\n //management\n {\n path: '/approval/mg/packageHome',\n name: 'mgPackageHome',\n component: MgPackageHome\n },\n {\n path: '/approval/mg/package/:id',\n name: 'mgPackageDetail',\n component: MgPackageDetail,\n props: (route) => ({ id: route.params.id, tag: route.query.tag })\n },\n {\n path: '/sales/measure',\n name: 'salesMeasure',\n component: () => import('@/views/Approve/SalesMeasure/Index.vue')\n },\n {\n path: '/measure/detail',\n name: 'sales Measure Detail',\n component: () => import('@/views/Approve/SalesMeasure/Detail.vue')\n },\n // mobile\n {\n path: '/mobile/management/pending/approval',\n name: 'Mobile Management Pending Approval',\n meta: {\n isMobile: true\n },\n component: () => import('@/views/Approve/Mobile/Index.vue')\n },\n {\n path: '/mobile/specific/program/batch',\n name: 'Mobile Specific Program Batch',\n meta: {\n isMobile: true\n },\n component: () => import('@/views/Approve/Mobile/SpecificProgramBatch.vue')\n },\n //controlling\n {\n path: '/approval/controlling/programHome',\n name: 'controllingProgramHome',\n component: ControllingProgramHome,\n children: [\n {\n path: '',\n name: 'controllingProgramHome Program Confirm',\n component: () => import('@/views/Approve/ControllingRoleApprove/ProgramHome/components/ProgramApprove.vue'),\n meta: {\n title: 'Program Confirm',\n showInTab: true\n }\n },\n {\n path: 'guidelineReport',\n name: 'controllingProgramHome Guideline Report',\n component: () => import('@/views/Budget/BudgetReport/Content.vue'),\n meta: {\n title: 'Guideline Report',\n showInTab: true\n }\n },\n {\n path: 'setGuideline',\n name: 'controllingProgramHome Set Guideline',\n component: () => import('@/views/Approve/ControllingRoleApprove/ProgramHome/components/SetGuideline.vue'),\n meta: {\n title: 'Set Guideline',\n showInTab: true\n }\n }\n ]\n },\n {\n path: '/wordingbudget',\n name: 'wordingBudget',\n component: WordingBudget\n },\n // F&A\n {\n path: '/approval/fa',\n name: 'ApproveFA',\n component: ApproveFA\n },\n // 工作流配置\n {\n path: '/approvalChain',\n name: 'ApprovalChain',\n component: () => import('@/views/User/ApprovalProcess/ApprovalChain/index.vue'),\n children: [\n {\n path: '',\n name: 'ProgramChain',\n meta: {\n showInTab: true,\n title: 'Program Approval Chain',\n permission: { path: '/approvalChain', privcd: 'AC-01' }\n },\n component: () => import('@/views/User/ApprovalProcess/ApprovalChain/ProgramChain/index.vue')\n },\n {\n path: 'payoutChain',\n name: 'PayoutChain',\n meta: {\n showInTab: true,\n title: 'Payout Approval Chain',\n permission: { path: '/approvalChain', privcd: 'AC-02' }\n },\n component: () => import('@/views/User/ApprovalProcess/ApprovalChain/PayoutChian/index.vue')\n },\n {\n path: 'roleSetting',\n name: 'roleSetting',\n meta: {\n showInTab: true,\n title: 'Approval Role Setting',\n permission: { path: '/approvalChain', privcd: 'AC-03' }\n },\n component: () => import('@/views/User/ApprovalProcess/ApprovalChain/RoleSetting/index.vue')\n }\n ]\n },\n // 审批代理信息配置\n {\n path: '/approval/delegationSetting',\n name: 'ApprovalDelegationSetting',\n component: () => import('@/views/User/ApprovalProcess/ApprovalDelegation/index.vue')\n },\n {\n path: '/spotCheckingConfiguration',\n name: 'spotCheckingConfiguration',\n component: () => import('@/views/User/ApprovalProcess/SpotCheckingConfiguration/index.vue'),\n children: [\n {\n path: '',\n name: 'sampleCheckRule',\n meta: {\n showInTab: true,\n title: 'Sample Check Rule'\n },\n component: () => import('@/views/User/ApprovalProcess/SpotCheckingConfiguration/SampleCheckRule/index.vue')\n },\n {\n path: 'billRate',\n name: 'billRate',\n meta: {\n showInTab: true,\n title: 'Bill Rate'\n },\n component: () => import('@/views/User/ApprovalProcess/SpotCheckingConfiguration/BillRate/index.vue')\n },\n {\n path: 'serviceVat',\n name: 'serviceVat',\n meta: {\n showInTab: true,\n title: 'Service VAT'\n },\n component: () => import('@/views/User/ApprovalProcess/SpotCheckingConfiguration/ServiceVat/index.vue')\n },\n {\n path: 'contractActivationDays',\n name: 'contractActivationDays',\n meta: {\n showInTab: true,\n title: 'Contract Activation Days'\n },\n component: () =>\n import('@/views/User/ApprovalProcess/SpotCheckingConfiguration/ContractActivationDays/index.vue')\n },\n {\n path: 'floorPlanDays',\n name: 'floorPlanDays',\n meta: {\n showInTab: true,\n title: 'Floor Plan Days'\n },\n component: () => import('@/views/User/ApprovalProcess/SpotCheckingConfiguration/FloorPlanDays/index.vue')\n }\n ]\n }\n];\n\nconst routes: Array = [\n {\n path: '/login',\n name: 'Login',\n component: () => import('@/views/Login/index.vue')\n },\n {\n path: '/',\n name: 'Home',\n component: Home\n // redirect: ''\n },\n ...uamRouters,\n ...budgetRouters,\n ...programRouters,\n // SSSC\n {\n path: '/ssscindex',\n name: 'SSSC Index',\n component: SSSCIndex\n },\n // FA路由\n ...faRouters,\n //审批流路由\n ...approvalRouters,\n // RetailValidation\n ...rvRouters,\n //claim\n ...claimRouters,\n //checking\n ...checkingRouters,\n //payment\n ...pmtRouters,\n //vehicle\n ...systemVehicleRouters,\n //closing\n ...closingRouters,\n //forecast\n ...forecastRouters,\n //planning\n ...planningRouters,\n //vehiclelicense\n ...vlRouters,\n //dealerMaster\n ...dealerMasterDataRouters,\n // setting\n ...settingRouters,\n //taskcenter\n ...taskCenterRouters,\n //claimDelay\n ...delayRouters,\n //communication\n ...communicationRouters,\n //delayCallback\n ...delayCallbackRouters,\n //delayUsedCar\n ...delayUsedCarRouters,\n //salesRepotring\n ...salesRepotringRouters,\n //guiDang\n ...guiDangRouters,\n ...reportingRouters,\n //localRegistration\n ...localRegistrationRouters,\n //faq\n ...faqRouters\n];\n\nconst router = createRouter({\n history: createWebHashHistory(),\n routes\n});\n\nimport store from '@/store';\n\n/* TODO 登录拦截-相关 勿删 */\nconst routerNext = (to: RouteLocationNormalized, from: RouteLocationNormalized, next: NavigationGuardNext) => {\n if (isMobile()) {\n if (!to.meta?.isMobile) {\n // next({ name: 'Mobile Pending Approval' });\n next({ path: '/' + localStorage.getItem('userUrl') });\n return;\n } else {\n next();\n }\n } else {\n next();\n return;\n }\n};\n\nrouter.beforeEach((to, from, next) => {\n const Authorization = store.state.Authorization;\n if (to.name === 'Login') {\n routerNext(to, from, next);\n } else if (Authorization) {\n const data = {\n action: 'VIEW',\n button: 'NA',\n menu: to.name\n };\n PageView(data);\n routerNext(to, from, next);\n }\n});\n/* TODO 登录拦截-相关 end */\n\nexport default router;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAGAAAAADiNXWtAAAAtUlEQVRIDWNkuPqfjeHmxyYGhv9xDP8ZJBmoARgZnjMwMC5iUOevY2RY96GD4f//cmqYi2EGI2Mn0IL3z6jmcnQbgD5hopnhIMuAQc6Ebim1+YPLgv9BAgwgTAoYXD4gxeUwtUPfBywwr6DT+CITmxzjug/oRoD5NA8inD7A5iKYy7HJYXU+UJDmPhi1AFfQw8VxRjJcBRKDlMiFaRsOcQCuoGEeojINrjJBtT/NAOMiRlo3WwDgcC438N+7bQAAAABJRU5ErkJggg==\"","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!./ConfigurationNav.vue?vue&type=style&index=0&id=7cfcf39f&lang=scss\"","module.exports = __webpack_public_path__ + \"img/fulfill.3b598940.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!./index.vue?vue&type=style&index=0&id=34b49642&lang=scss\"","import deepClone from \"@/utils/deepClone\";\nimport GC from \"@grapecity/spread-sheets\";\nimport { Header, RowProps, BudgetReportProps } from './types';\n\n//分组列在第一次没有数据初始化后会导致后续更新报错,所以分组列必须要在有数据才可以分组\nexport function initOutlineColumn(sheet: GC.Spread.Sheets.Worksheet) {\n sheet.outlineColumn.options({\n columnIndex: 0,\n showImage: true,\n showCheckBox: false,\n expandIndicator: require('@/assets/images/increaseIndicator.png'),\n collapseIndicator: require('@/assets/images/decreaseIndicator.png'),\n maxLevel: 2\n });\n sheet.showRowOutline(false);\n sheet.outlineColumn.refresh();\n}\n\n// 设置表格的头部,可以不占用单元格\nexport const setHeader = (sheet: GC.Spread.Sheets.Worksheet, header: Header[][]) => {\n //挂起\n sheet.suspendPaint();\n //设置header行数为2行\n sheet.setRowCount(2, GC.Spread.Sheets.SheetArea.colHeader);\n const row = sheet.getRange(1, -1, 1, -1, GC.Spread.Sheets.SheetArea.colHeader);\n row.wordWrap(true);\n //set header 设置头的样式\n for (let row = 0; row < header.length; row++) {\n for (let cell = 0; cell < header[row].length; cell++) {\n sheet.setValue(row, cell, header[row][cell].name, GC.Spread.Sheets.SheetArea.colHeader);\n if ([1].includes(cell)) {\n sheet.getCell(row, cell, GC.Spread.Sheets.SheetArea.colHeader).hAlign(GC.Spread.Sheets.HorizontalAlign.left);\n }\n }\n sheet.setRowHeight(row, 30, GC.Spread.Sheets.SheetArea.colHeader);\n }\n //合并行 \n // sheet.addSpan(0, 0, 2, 1, GC.Spread.Sheets.SheetArea.colHeader);\n // 筛选\n // const range = new GC.Spread.Sheets.Range(-1, 0, -1, 2);\n // const rowFilter = new GC.Spread.Sheets.Filter.HideRowFilter(range);\n // sheet.rowFilter(rowFilter);\n sheet.addSpan(0, 0, 1, 2, GC.Spread.Sheets.SheetArea.colHeader);\n sheet.addSpan(0, 2, 1, 4, GC.Spread.Sheets.SheetArea.colHeader);\n sheet.addSpan(0, 6, 1, 4, GC.Spread.Sheets.SheetArea.colHeader);\n // // 必须加上这两个才能折叠展开\n // sheet.options.protectionOptions.allowOutlineRows = true\n // sheet.options.protectionOptions.allowOutlineColumns = true\n // 自动合并\n // const ranges = new GC.Spread.Sheets.Range(-1, -1, -1, -1);\n // sheet.autoMerge(ranges, GC.Spread.Sheets.AutoMerge.AutoMergeDirection.row, GC.Spread.Sheets.AutoMerge.AutoMergeMode.free, GC.Spread.Sheets.SheetArea.colHeader);\n // sheet.autoMerge(ranges, GC.Spread.Sheets.AutoMerge.AutoMergeDirection.column, GC.Spread.Sheets.AutoMerge.AutoMergeMode.free, GC.Spread.Sheets.SheetArea.rowHeader);2\n //重绘\n sheet.resumePaint();\n\n}\n\nexport const setCollapsed = (sheet: GC.Spread.Sheets.Worksheet, data: RowProps[], isCollapsed: boolean, level = 1) => {\n sheet.suspendPaint();\n //强制折叠所有二级\n for (let row = 0; row < data.length; row++) {\n if (data[row].level === level) {\n console.log(isCollapsed, 'row', row, data[row].level)\n sheet.rowOutlines.setCollapsed(row, isCollapsed);\n }\n }\n //根据type来确认是否显示图标\n /* if (type === 'TypeClass') {\n sheet.outlineColumn.options().showIndicator = true;\n sheet.outlineColumn.options().expandIndicator = require('@/assets/images/increaseIndicator.png');\n sheet.outlineColumn.options().collapseIndicator = require('@/assets/images/decreaseIndicator.png');\n } else {\n sheet.outlineColumn.options().showIndicator = false;\n sheet.outlineColumn.options().expandIndicator = null;\n sheet.outlineColumn.options().collapseIndicator = null;\n }*/\n\n sheet.outlineColumn.refresh();\n sheet.resumePaint();\n}\n\n\nexport const bindDataTable = (sheet: GC.Spread.Sheets.Worksheet, data: RowProps[]): void => {\n //挂起\n sheet.suspendPaint();\n //设置数据源\n sheet.setDataSource(data);\n\n /* //setDataSource true 重置表格样式也会重置,这里重新设置默认样式\n sheet.options.rowHeaderVisible = false;\n //默认对其方式\n const defaultStyle = new GC.Spread.Sheets.Style();\n //默认对其方式\n defaultStyle.hAlign = GC.Spread.Sheets.HorizontalAlign.center;\n defaultStyle.vAlign = GC.Spread.Sheets.VerticalAlign.center;\n defaultStyle.locked = true;\n sheet.setDefaultStyle(defaultStyle);\n*/\n\n\n //绑定列\n sheet.bindColumn(0, 'typeClass');\n sheet.bindColumn(1, 'model');\n sheet.bindColumn(2, 'mavgSiPercent');\n sheet.bindColumn(3, 'mguideline');\n sheet.bindColumn(4, 'mdeviation');\n sheet.bindColumn(5, 'mdeviationAbsolutAmount');\n sheet.bindColumn(6, 'yavgSiPercent');\n sheet.bindColumn(7, 'yguideline');\n sheet.bindColumn(8, 'ydeviation');\n sheet.bindColumn(9, 'ydeviationAbsolutAmount');\n\n //设置列数\n sheet.setColumnCount(10, GC.Spread.Sheets.SheetArea.viewport);\n\n //设置没列的宽度\n sheet.setColumnWidth(0, '2*');\n sheet.setColumnWidth(1, '4*');\n sheet.setColumnWidth(2, '2*');\n sheet.setColumnWidth(3, '2*');\n sheet.setColumnWidth(4, '2*');\n sheet.setColumnWidth(5, '2*');\n sheet.setColumnWidth(6, '2*');\n sheet.setColumnWidth(7, '2*');\n sheet.setColumnWidth(8, '2*');\n sheet.setColumnWidth(9, '2*');\n\n //数据格式化\n for (let row = 0; row < data.length; row++) {\n const level = data[row].level;\n sheet.getCell(row, 0).textIndent(level);\n sheet.getCell(row, 1).wordWrap(true);\n sheet.getCell(row, 1).hAlign(GC.Spread.Sheets.HorizontalAlign.left);\n sheet.setRowHeight(row, 30, GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 2, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 3, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 4, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 5, \"#,##0\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 6, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 7, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 8, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 9, \"#,##0\", GC.Spread.Sheets.SheetArea.viewport);\n // 金额右对齐\n sheet.getCell(row, 5).hAlign(GC.Spread.Sheets.HorizontalAlign.right)\n sheet.getCell(row, 9).hAlign(GC.Spread.Sheets.HorizontalAlign.right)\n\n // 自定义边框样式 区分MTD和YTD\n sheet.getRange(-1, 5, -1, 1, GC.Spread.Sheets.SheetArea.viewport).borderRight(new GC.Spread.Sheets.LineBorder(\"#333\", GC.Spread.Sheets.LineStyle.thin));\n sheet.getRange(-1, 5, -1, 1, GC.Spread.Sheets.SheetArea.colHeader).borderRight(new GC.Spread.Sheets.LineBorder(\"#333\", GC.Spread.Sheets.LineStyle.thin));\n sheet.getRange(-1, 1, -1, 1, GC.Spread.Sheets.SheetArea.viewport).borderRight(new GC.Spread.Sheets.LineBorder(\"#333\", GC.Spread.Sheets.LineStyle.thin));\n sheet.getRange(-1, 1, -1, 1, GC.Spread.Sheets.SheetArea.colHeader).borderRight(new GC.Spread.Sheets.LineBorder(\"#333\", GC.Spread.Sheets.LineStyle.thin));\n \n\n // 加粗typeclass\n sheet.getCell(row, 0).font('700 11pt Calibri');\n\n //deviation 为负数高亮显示\n if (Number(data[row].mdeviation) < 0) {\n sheet.getCell(row, 4).foreColor('red');\n }\n //deviation 为负数高亮显示\n if (Number(data[row].ydeviation) < 0) {\n sheet.getCell(row, 8).foreColor('red');\n }\n\n //根据数据中的visible字段来控制row显示\n if (!data[row].visible) {\n sheet.setRowVisible(row, false);\n } else {\n sheet.setRowVisible(row, true);\n }\n for (let i = 0; i < 10; i++) {\n if (data[row].level === 0) {\n sheet.getCell(row, i).backColor('#B0CEEA');\n sheet.getCell(row, i).font('700 11pt Calibri');\n }\n\n if (data[row].level === 1) {\n sheet.getCell(row, i).font('700 11pt Calibri');\n }\n }\n \n\n }\n //重绘\n sheet.resumePaint();\n}\n\nexport const initSpread = (spread: GC.Spread.Sheets.Workbook, sheet: GC.Spread.Sheets.Worksheet, header: Header[][], data: RowProps[]): void => {\n spread.suspendPaint();\n\n //填充铺满整个canvas\n spread.options.scrollbarMaxAlign = true;\n spread.options.scrollByPixel = true;\n\n spread.options.tabNavigationVisible = false;\n spread.options.tabStripVisible = false;\n\n // 滚动条样式\n // spread.options.scrollbarAppearance = GC.Spread.Sheets.ScrollbarAppearance.mobile;\n\n // 设置header的高度\n // sheet.setRowHeight(0, 80, GC.Spread.Sheets.SheetArea.colHeader);\n\n // 设置多少行和列\n sheet.setRowCount(data.length, GC.Spread.Sheets.SheetArea.viewport);\n\n //禁止缩放\n spread.options.allowUserZoom = false;\n // 必须加上这两个才能折叠展开\n sheet.options.protectionOptions.allowOutlineRows = true\n sheet.options.protectionOptions.allowOutlineColumns = true\n\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 //禁止拖动填充\n spread.options.allowUserDragFill = false;\n spread.options.allowUserDragDrop = false;\n\n // 设置隐藏头和列\n sheet.options.rowHeaderVisible = false\n // 要设置允保护,不允许的才能生效\n sheet.options.isProtected = true\n\n const defaultStyle = new GC.Spread.Sheets.Style();\n //默认对其方式\n defaultStyle.hAlign = GC.Spread.Sheets.HorizontalAlign.center;\n defaultStyle.vAlign = GC.Spread.Sheets.VerticalAlign.center;\n defaultStyle.locked = true;\n sheet.setDefaultStyle(defaultStyle);\n\n // 绑定数据\n bindDataTable(sheet, data);\n\n // 设置头部\n setHeader(sheet, header);\n\n spread.resumePaint();\n}\n// model 为空的时候 不显示这一行\nconst modelRowEmpty = (data: RowProps[]): RowProps[] => {\n if (!data.length) {\n return data\n }\n const excludeKey = ['make', 'model', 'typeClass'] \n const keys = Object.keys(data[0]).filter(key => !excludeKey.includes(key))\n return data.filter(item => keys.some(key => {\n return Number(item[key])\n }))\n}\n\n// 如果数据为0 转换成- \nconst transEmptyData = (data: RowProps[]) => {\n const excludeKey = ['make', 'model', 'typeClass', 'level', 'visible'] \n const keys = Object.keys(data[0]).filter(key => !excludeKey.includes(key))\n data.forEach(item => {\n keys.forEach(key => {\n if (!Number(item[key])) {\n item[key] = '-'\n }\n })\n })\n}\n\n// 排序\nconst compare = (object1: RowProps, object2: RowProps, attr: string) => {\n const val1 = object1[attr]\n const val2 = object2[attr]\n if (val1 < val2) {\n return -1;\n } else if (val1 > val2) {\n return 1;\n } else {\n return 0;\n }\n}\n/**\n *\n * @param data\n * @param type 类型为TypeClass listModel合并到listTypeclass下 Model 不处理listTypeclass只需要listModel, visible 是根据type来控制row是否显示\n */\nexport const transformData = (data: BudgetReportProps, type: string): RowProps[] => {\n let _data: RowProps[] = [];\n const make = data.listMake.map((val) => {\n val.visible = true;\n val.typeClass = val.make;\n val.level = 0\n return val\n })\n // 不需要判断每个字段值没有的情况\n // data.listModel = deepClone((modelRowEmpty(data.listModel)).sort((object1, object2) => compare(object1, object2, 'model')))\n data.listTypeclass = data.listTypeclass.sort((object1, object2) => compare(object1, object2, 'typeClass'))\n data.listTypeclass.forEach(item => {\n item.level = 1;\n //根据type来处理数据\n if (type === 'TypeClass') {\n item.visible = true;\n } else {\n item.visible = false;\n }\n _data.push(item);\n const children = data.listModel.filter(row => row.typeClass == item.typeClass).map(row => {\n row.visible = true;\n row.level = 2;\n //根据type来处理数据\n if (type === 'TypeClass') {\n row.typeClass = '';\n }\n return row;\n \n });\n _data = [..._data, ...children];\n })\n _data = [...make, ..._data]\n if (_data.length) transEmptyData(_data)\n return _data;\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!./BudgetTemplate.vue?vue&type=style&index=0&id=16e8828a&lang=scss\"","export default function useWait() {\n let toRun: ((value: unknown) => void) | undefined = undefined\n const wait: Promise & { toRun?: Function } = new Promise((resolve) => {\n toRun = resolve\n })\n wait.toRun = toRun\n return wait\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!./Role.vue?vue&type=style&index=1&id=1b23a3ba&lang=scss\"","const deepClone = (values: T): T => {\n let copy: any\n // // 处理基本数据类型 null undefined\n if (values === null || typeof values !== 'object') return values\n\n // 处理数组\n if (values instanceof Array) {\n copy = []\n for (let i = 0; i < values.length; i++) {\n copy[i] = deepClone(values[i])\n }\n return copy\n }\n\n // 处理对象\n if (values instanceof Object) {\n copy = {}\n for (const attr in values) {\n if (Object.keys(values).length > 0) {\n copy[attr] = deepClone(values[attr])\n }\n }\n return copy\n }\n\n throw Error('大哥,请告诉我你传进来一个什么值??')\n }\n export default deepClone","import { resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, KeepAlive as _KeepAlive, withCtx as _withCtx, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"root\" }\nconst _hoisted_2 = { class: \"d-f\" }\nconst _hoisted_3 = { style: {\"width\":\"0\"} }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Header = _resolveComponent(\"Header\")!\n const _component_SideNav = _resolveComponent(\"SideNav\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_MainWrapper = _resolveComponent(\"MainWrapper\")!\n const _component_a_spin = _resolveComponent(\"a-spin\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.$store.state.Authorization && _ctx.$route.path !== '/login' && _ctx.$route.meta && !_ctx.$route.meta.isMobile)\n ? (_openBlock(), _createBlock(_component_a_spin, {\n key: 0,\n spinning: _ctx.$store.state.spinning || _ctx.$store.state.pageSpinning,\n wrapperClassName: \"spingWrapper\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_MainWrapper, null, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n name: \"header\",\n style: _normalizeStyle({\n background: `url(${require('@/assets/images/header-bg.jpg')})`\n })\n }, [\n _createVNode(_component_Header)\n ], 4),\n _createElementVNode(\"main\", _hoisted_2, [\n _createVNode(_component_SideNav),\n _createElementVNode(\"aside\", _hoisted_3, [\n _createVNode(_component_router_view, null, {\n default: _withCtx(({ Component }) => [\n (_openBlock(), _createBlock(_KeepAlive, { include: _ctx.keepAliveComponentNames }, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(Component)))\n ], 1032, [\"include\"]))\n ]),\n _: 1\n })\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"spinning\"]))\n : (_openBlock(), _createBlock(_component_router_view, { key: 1 }, {\n default: _withCtx(({ Component }) => [\n (_openBlock(), _createBlock(_KeepAlive, { include: _ctx.keepAliveComponentNames }, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(Component)))\n ], 1032, [\"include\"]))\n ]),\n _: 1\n }))\n ]))\n}","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, createVNode as _createVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\nimport _imports_0 from '@/assets/images/mercedes-benz-logo-desktop.png'\nimport _imports_1 from '@/assets/images/header.png'\n\n\nconst _hoisted_1 = {\n id: \"header\",\n class: \"flex-div white-c\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"div\", { style: {\"flex\":\"1\"} }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"headerImg\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n style: {\"width\":\"220px\",\"height\":\"54px\"},\n alt: \"\"\n }),\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_1,\n style: {\"width\":\"120px\",\"height\":\"44px\"},\n alt: \"\"\n }),\n /*#__PURE__*/_createElementVNode(\"span\", null, \"Optimized & Advanced Sales Incentive System \")\n ])\n], -1)\nconst _hoisted_3 = { class: \"d-f align-c\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"icon question\" }, null, -1)\nconst _hoisted_5 = { class: \"d-f align-c\" }\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"icon user\" }, null, -1)\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"icon signout\" }, null, -1)\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"span\", null, \"Logout\", -1)\nconst _hoisted_9 = [\n _hoisted_7,\n _hoisted_8\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_divider = _resolveComponent(\"a-divider\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n (_ctx.hasHelpCenter)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createElementVNode(\"div\", {\n class: \"d-f align-c cursor-p\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.gotoFaq && _ctx.gotoFaq(...args)))\n }, [\n _hoisted_4,\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.helpCenterStr), 1)\n ]),\n _createVNode(_component_a_divider, { type: \"vertical\" })\n ], 64))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$store.state.user.fulnm), 1)\n ]),\n _createVNode(_component_a_divider, { type: \"vertical\" }),\n _createElementVNode(\"div\", {\n class: \"d-f align-c cursor-p\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.hanlderLogout && _ctx.hanlderLogout(...args)))\n }, _hoisted_9)\n ])\n ]))\n}","\nimport { defineComponent, computed, ref } from \"vue\";\nimport store from \"@/store\";\nimport { useStore } from \"vuex\";\nimport { useRouter } from \"vue-router\";\nimport { findCurrentUser, outLogin } from \"@/API/user\";\nimport { message } from \"ant-design-vue\";\ninterface EventMenu {\n key: number;\n keyPath: string[];\n item: string[];\n domEvent: MouseEvent;\n}\nconst users = [\n {\n id: \"1-u-1\",\n usrnm: \"DealerUser\",\n fulnm: \"Dealer User\",\n token: \"OU1v6w9v6zbxzG0T4ntkVy5ZY.OEMITADMIN\",\n },\n {\n id: \"2-u-2\",\n usrnm: \"OEMITADMIN\",\n fulnm: \"OEM IT Admin\",\n token: \"OU1v6w9v6zbxzG0T4ntkVy5ZY.OEMITADMIN\",\n },\n {\n id: \"3-u-3\",\n usrnm: \"ERIN00\",\n fulnm: \"经销商管理员\",\n token: \"OU1v6w9v6zbxzG0T4ntkVy5ZY.ERIN00\",\n },\n {\n id: \"4-u-3\",\n usrnm: \"CONTRO\",\n fulnm: \"OEM controlling\",\n token: \"OU1v6w9v6zbxzG0T4ntkVy5ZY.CONTRO\",\n },\n {\n id: \"5-u-5\",\n usrnm: \"FINANCE\",\n fulnm: \"Financial User\",\n token: \"OU1v6w9v6zbxzG0T4ntkVy5ZY.FINANCE\",\n },\n {\n id: \"6-u-6\",\n usrnm: \"SALES\",\n fulnm: \"Sales User\",\n token: \"OU1v6w9v6zbxzG0T4ntkVy5ZY.SALES\",\n },\n {\n id: \"7-u-7\",\n usrnm: \"MBLC\",\n fulnm: \"MBLC\",\n token: \"OU1v6w9v6zbxzG0T4ntkVy5ZY.MBLC\",\n },\n {\n id: \"8-u-8\",\n usrnm: \"MBAFC\",\n fulnm: \"MBAFC\",\n token: \"OU1v6w9v6zbxzG0T4ntkVy5ZY.MBAFC\",\n },\n {\n id: \"9-u-9\",\n usrnm: \"APU1\",\n fulnm: \"ApprovalUser1\",\n token: \"OU1v6w9v6zbxzG0T4ntkVy5ZY.APU1\",\n },\n {\n id: \"10-u-10\",\n usrnm: \"APU2\",\n fulnm: \"ApprovalUser2\",\n token: \"OU1v6w9v6zbxzG0T4ntkVy5ZY.APU2\",\n },\n];\nexport default defineComponent({\n methods: {\n // 切换语言\n handleChange() {\n if (this.$i18n.locale === \"zh\") {\n this.$i18n.locale = \"en\";\n } else {\n this.$i18n.locale = \"zh\";\n }\n store.commit(\"updateLang\", this.$i18n.locale);\n },\n },\n setup() {\n const store = useStore();\n const router = useRouter();\n\n /* TODO 登录拦截-相关 勿删 */\n const hanlderLogout = () => {\n if (process.env.VUE_APP_SSO === \"yes\") {\n const Authorization = store.state.Authorization;\n const params = {\n token: Authorization,\n };\n outLogin(params)\n .then((res) => {\n store.commit('updateSideNavKeys', {\n openKeys: [],\n selectedKeys: []\n })\n store.state.user.usrnm = \"\";\n store.commit(\"updateAuthorization\", \"\");\n window.location.href = res;\n localStorage.removeItem(\"userUrl\");\n })\n .catch((err) => {\n message.error(err);\n });\n } else {\n store.commit(\"updateAuthorization\", \"\");\n router.push(\"/login\");\n }\n };\n /* TODO 登录拦截-相关 end */\n\n let helpCenterUrl = \"\";\n const helpCenterStr = ref(\"\");\n const hasHelpCenter = computed(() => {\n const helpCenterMenuList = store.state.user.menulist.filter(\n (menu: any) => {\n return [\n \"Help Center Mangement\",\n \"Help Center Enquiry\",\n \"帮助中心查询\",\n ].includes(menu.mnunmen);\n }\n );\n if (helpCenterMenuList.length > 0) {\n helpCenterUrl = helpCenterMenuList[0].mnuuri;\n helpCenterStr.value = helpCenterMenuList[0].mnunmen;\n return true;\n }\n return false;\n });\n\n const gotoFaq = () => {\n router.push(helpCenterUrl);\n };\n\n return {\n hanlderLogout,\n users,\n gotoFaq,\n hasHelpCenter,\n helpCenterStr,\n };\n },\n});\n","import { render } from \"./Header.vue?vue&type=template&id=1c1a24bc&ts=true\"\nimport script from \"./Header.vue?vue&type=script&lang=ts\"\nexport * from \"./Header.vue?vue&type=script&lang=ts\"\n\nimport \"./Header.vue?vue&type=style&index=0&id=1c1a24bc&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"font_family icon-shouqi f-r\",\n \"data-name\": \"toggle\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"font_family icon-zhankai f-r\",\n \"data-name\": \"toggle\"\n}\nconst _hoisted_3 = [\"title\"]\nconst _hoisted_4 = [\"title\"]\nconst _hoisted_5 = { class: \"cursor-p\" }\nconst _hoisted_6 = [\"title\"]\nconst _hoisted_7 = { class: \"cursor-p\" }\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_router_link = _resolveComponent(\"router-link\")!\n const _component_a_menu_item = _resolveComponent(\"a-menu-item\")!\n const _component_a_sub_menu = _resolveComponent(\"a-sub-menu\")!\n const _component_a_menu = _resolveComponent(\"a-menu\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"side-nav-left\",\n style: _normalizeStyle({\n 'min-width': _ctx.collapsed ? '50px' : '260px',\n background: `url(${require('@/assets/images/side-nav-bg.jpg')})`,\n })\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass({ 'side-fixed': _ctx.isFixed }),\n style: _normalizeStyle({ width: _ctx.collapsed ? '50px' : '260px' })\n }, [\n _createVNode(_component_a_button, {\n ghost: \"\",\n onClick: _ctx.toggleCollapsed,\n style: {\"margin-bottom\":\"16px\",\"border\":\"0\"}\n }, {\n default: _withCtx(() => [\n (_ctx.collapsed)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_2))\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_menu, {\n openKeys: _ctx.openKeys,\n selectedKeys: _ctx.selectedKeys,\n \"onUpdate:selectedKeys\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedKeys) = $event)),\n mode: \"inline\",\n theme: \"dark\",\n \"inline-collapsed\": _ctx.collapsed,\n onOpenChange: _ctx.onOpenChange\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.$store.state.user.menulist, (item) => {\n return (_openBlock(), _createElementBlock(_Fragment, {\n key: item.mnuid\n }, [\n (item.children.length === 0)\n ? (_openBlock(), _createBlock(_component_a_menu_item, {\n key: item.mnuid,\n class: \"level-one-menu\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_router_link, {\n to: item.mnuuri\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"font_family cursor-p\", item.icon]),\n style: _normalizeStyle(\n _ctx.collapsed\n ? 'margin-right: 34px;font-size: 20px'\n : 'margin-right:10px'\n )\n }, null, 6),\n _createElementVNode(\"span\", {\n class: \"p-r-30 cursor-p\",\n title: _ctx.$i18n.locale === 'en' ? item.mnunmen : item.mnunmcn\n }, _toDisplayString(_ctx.$i18n.locale === \"en\" ? item.mnunmen : item.mnunmcn), 9, _hoisted_3)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]),\n _: 2\n }, 1024))\n : (_openBlock(), _createBlock(_component_a_sub_menu, {\n key: item.mnuid\n }, {\n title: _withCtx(() => [\n _createElementVNode(\"span\", null, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"font_family cursor-p\", item.icon]),\n style: _normalizeStyle(\n _ctx.collapsed ? 'margin-right: 34px;' : 'margin-right:10px'\n )\n }, null, 6),\n _createElementVNode(\"span\", {\n class: \"p-r-30 cursor-p\",\n title: _ctx.$i18n.locale === 'en' ? item.mnunmen : item.mnunmcn\n }, _toDisplayString(_ctx.$i18n.locale === \"en\" ? item.mnunmen : item.mnunmcn), 9, _hoisted_4)\n ])\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(item.children, (childrenNav) => {\n return (_openBlock(), _createBlock(_component_router_link, {\n to: childrenNav.mnuuri === '#' ? '' : childrenNav.mnuuri,\n key: childrenNav.mnuid\n }, {\n default: _withCtx(() => [\n (!childrenNav.children.length)\n ? (_openBlock(), _createBlock(_component_a_menu_item, {\n key: childrenNav.mnuid,\n title: \n _ctx.$i18n.locale === 'en'\n ? childrenNav.mnunmen\n : childrenNav.mnunmcn\n \n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$i18n.locale === \"en\"\n ? childrenNav.mnunmen\n : childrenNav.mnunmcn), 1)\n ]),\n _: 2\n }, 1032, [\"title\"]))\n : (_openBlock(), _createBlock(_component_a_sub_menu, {\n key: childrenNav.mnuid\n }, {\n title: _withCtx(() => [\n _createElementVNode(\"span\", null, [\n _createElementVNode(\"span\", {\n class: \"p-r-30 cursor-p\",\n title: \n _ctx.$i18n.locale === 'en'\n ? childrenNav.mnunmen\n : childrenNav.mnunmcn\n \n }, _toDisplayString(_ctx.$i18n.locale === \"en\"\n ? childrenNav.mnunmen\n : childrenNav.mnunmcn), 9, _hoisted_6)\n ])\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(childrenNav.children, (thirdChildNav) => {\n return (_openBlock(), _createBlock(_component_router_link, {\n to: thirdChildNav.mnuuri,\n key: thirdChildNav.mnuid\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_component_a_menu_item, {\n key: thirdChildNav.mnuid,\n title: \n _ctx.$i18n.locale === 'en'\n ? thirdChildNav.mnunmen\n : thirdChildNav.mnunmcn\n \n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.$i18n.locale === \"en\"\n ? thirdChildNav.mnunmen\n : thirdChildNav.mnunmcn), 1)\n ]),\n _: 2\n }, 1032, [\"title\"]))\n ]),\n _: 2\n }, 1032, [\"to\"]))\n }), 128))\n ]),\n _: 2\n }, 1024))\n ]),\n _: 2\n }, 1032, [\"to\"]))\n }), 128))\n ]),\n _: 2\n }, 1024))\n ], 64))\n }), 128))\n ]),\n _: 1\n }, 8, [\"openKeys\", \"selectedKeys\", \"inline-collapsed\", \"onOpenChange\"])\n ], 6)\n ], 4))\n}","\nimport {\n computed,\n ref,\n defineComponent,\n onMounted,\n reactive,\n toRefs,\n watch,\n} from \"vue\";\nimport { TreeProps } from \"@/views/User/types\";\nimport { useStore } from \"vuex\";\n\nfunction menuKeyPaths(menuKeys: TreeProps[], key: string): string[] {\n for (const menuKey of menuKeys) {\n if (menuKey.mnuid === key) {\n return [menuKey.mnuid];\n }\n const path = menuKeyPaths(menuKey.children, key);\n if (path.length) {\n return [menuKey.mnuid, ...path];\n }\n }\n return [];\n}\n\nexport default defineComponent({\n setup() {\n const { commit, state } = useStore();\n\n const menuKeys = reactive<{\n openKeys: string[];\n selectedKeys: string[];\n }>({\n openKeys: state.sideNavKeys.openKeys,\n selectedKeys: state.sideNavKeys.selectedKeys,\n });\n\n // 是否收起来\n const collapsed = ref(false);\n const toggleCollapsed = () => {\n collapsed.value = !collapsed.value;\n //每次更新都更新\n commit(\"updateSideNavCollapsed\", collapsed.value);\n };\n\n const isFixed = ref(false);\n // 当展开一个时把弄一个之前的关闭\n const onOpenChange = (openKeys: string[]) => {\n if (openKeys.length > menuKeys.openKeys.length) {\n // 展开\n const path = menuKeyPaths(\n state.user.menulist,\n openKeys[openKeys.length - 1]\n );\n menuKeys.openKeys = [...path];\n } else {\n // 关闭\n menuKeys.openKeys = openKeys;\n }\n };\n\n // 点击当前路由存储\n watch(\n () => menuKeys.selectedKeys,\n (value) => {\n commit(\"updateSideNavKeys\", {\n openKeys: menuKeys.openKeys,\n selectedKeys: value,\n });\n }\n );\n // watch(\n // () => state.sideNavKeys,\n // (value) => {\n // menuKeys.openKeys = state.sideNavKeys.openKeys;\n // menuKeys.selectedKeys = state.sideNavKeys.selectedKeys;\n // }\n // );\n onMounted(() => {\n //初始化值\n commit(\"updateSideNavCollapsed\", collapsed.value);\n window.addEventListener(\"scroll\", () => {\n isFixed.value = document.documentElement.scrollTop > 100;\n });\n });\n return {\n collapsed,\n toggleCollapsed,\n isFixed,\n ...toRefs(menuKeys),\n onOpenChange,\n };\n },\n});\n","import { render } from \"./SideNav.vue?vue&type=template&id=5803f4ca&ts=true\"\nimport script from \"./SideNav.vue?vue&type=script&lang=ts\"\nexport * from \"./SideNav.vue?vue&type=script&lang=ts\"\n\nimport \"./SideNav.vue?vue&type=style&index=0&id=5803f4ca&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { computed, defineComponent, ref, provide } from 'vue';\nimport { useStore } from 'vuex';\nimport Header from './components/Header.vue';\nimport SideNav from './components/SideNav.vue';\nimport * as echarts from 'echarts';\n\nexport default defineComponent({\n components: {\n Header,\n SideNav\n },\n setup() {\n provide('ec', echarts); //provide\n const store = useStore();\n const screenHeight = ref(window.screen.width);\n store.commit('updatedHeight', screenHeight.value);\n store.commit('updateIsPolling', true);\n const keepAliveComponentNames = computed(() => store.state.keepAliveComponentNames);\n return {\n keepAliveComponentNames\n };\n }\n});\n","import { render } from \"./App.vue?vue&type=template&id=37582065&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=37582065&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import store from '@/store'\nimport router from '@/router'\nimport { getUrlParams } from '@/utils/index';\nconst Authorization = sessionStorage.getItem('Authorization');\n\n// 获取地址连接上的code\nconst permissionCode = getUrlParams().code;\nexport default function permission(): void {\n permissionCode && sessionStorage.setItem('CODE', permissionCode)\n // 获取地址连接上的code后去除url上的参数\n // 重定向到地址链接对应域名地址\n const protocolStr = window.location.protocol;\n const hostStr = window.location.host;\n const path = localStorage.getItem('userUrl') ?? '';\n const urlStrHome = protocolStr + '//' + hostStr + '/#/' + path;\n history.replaceState(null, '', urlStrHome);\n \n if (process.env.VUE_APP_SSO === 'yes') {\n if (permissionCode && !Authorization) {\n\n // 有code无token\n // 用code请求token\n // 获取Authorization(token)和用户信息\n store.dispatch('authAndUser', {\n code: permissionCode\n }).catch(() => {/**/});\n } else {\n // 一下三种情况都应访问currentuser接口\n // 有code有token--拿用户信息\n // 无code有token--重定向到认证页面\n // 无code无token--重定向到认证页面\n store.dispatch('updateUser').catch(() => {/**/});\n }\n } else {\n if (!Authorization) {\n router.push('/login');\n } else {\n store.dispatch('updateUser').catch(() => {/**/});\n }\n }\n}","import { renderSlot as _renderSlot, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-d4029dd6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"main-wrapper d-f flex-d-c\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _renderSlot(_ctx.$slots, \"header\", {}, undefined, true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"main flex-w-auto d-f flex-d-c\", $props.className])\n }, [\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true)\n ], 2)\n ]))\n}","\n export default {\n name: \"MainWrapper\",\n props: {\n className: {\n type: String\n }\n }\n }\n","import { render } from \"./MainWrapper.vue?vue&type=template&id=d4029dd6&scoped=true&ts=true\"\nimport script from \"./MainWrapper.vue?vue&type=script&lang=ts\"\nexport * from \"./MainWrapper.vue?vue&type=script&lang=ts\"\n\nimport \"./MainWrapper.vue?vue&type=style&index=0&id=d4029dd6&scoped=true&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d4029dd6\"]])\n\nexport default __exports__","import { createApp } from 'vue'\nimport App from './App.vue'\nimport router from './router'\nimport store from './store'\nimport Antd from 'ant-design-vue'\nimport 'ant-design-vue/dist/antd.css'\n//reset.scss 覆盖ant的默认reset样式列如:dl,ul ol 的默认 margin-bottom: 1em;\nimport './assets/css/reset.scss'\nimport './assets/css/preview.scss'\n\n//echarts\nimport * as echarts from 'echarts'\n// 国际化\nimport i18n from './locales/index'\n// TODO 登录拦截 勿删\nimport permission from './utils/permission'\nimport { btnPermissions } from './utils'\n//公用的组件全局注册\nimport Breadcrumb from \"./components/Breadcrumb.vue\"\nimport MainWrapper from \"./components/MainWrapper.vue\"\n\ndeclare global {\n interface Window {\n wangEditor?: any;\n }\n}\n\n/* TODO 登录拦截 勿删 */ \nconst app = createApp(App).use(store).use(router).use(i18n).use(Antd);\n[Breadcrumb, MainWrapper].forEach(component => {\n app.component(component.name, component);\n})\napp.config.globalProperties.$echarts = echarts;\napp.config.globalProperties.$btnPermissions = btnPermissions;\napp.mount('#app')\n\npermission()","import { fetchGet, fetchPost, fetchPut, fetch } from './index';\nimport { ProgramHomePageData, QueryParams, BrandResponse } from '@/views/Approve/SalesRoleApprove/ProgramHome/types';\nimport { ApproveProgressResponse, PackageDetailResponse } from '@/views/Approve/MgRoleApprove/PackageDetail/types';\nimport {\n PendingApproveResponse,\n ApproveStatusResponseItem,\n BatchTrackingPackage,\n BatchTrackingQueryParams,\n ProgramTrackingQueryParams\n} from '@/views/Approve/MgRoleApprove/PackageHome/types';\nimport {\n BuItem,\n TypeClassItem,\n ProgramStatusItem,\n CopyResponse,\n HistoryCommentsProps\n} from '@/views/Approve/SalesRoleApprove/ProgramHome/types';\nimport {\n BuProps,\n MakeItem,\n BrandItem,\n QueryParams as ControllingQueryParams\n} from '@/views/Approve/ControllingRoleApprove/ProgramHome/types';\nimport {\n CreatePackageReq,\n CreatePackageRes,\n SavePackageReq,\n SavePackageRes\n} from '@/views/Approve/SalesRoleApprove/CreatePackage/types';\nimport {\n PackageListRes,\n QueryParams as PackageQueryParams,\n BatchStatus\n} from '@/views/Approve/SalesRoleApprove/PackageHome/types';\nimport { ReleaseBatchProps } from '@/views/Approve/SalesRoleApprove/ReleaseSetting/types';\nimport {\n ReleaseBatchRes,\n QueryParams as ReleaseQueryParams\n} from '@/views/Approve/SalesRoleApprove/ReleasePackageHome/types';\nimport {\n SalesMeasureRes,\n QueryParams as SalesMeasureQueryParams,\n DetailParams,\n QueryDetailParams,\n DetailAttachmentProgram\n} from '@/views/Approve/SalesMeasure/types';\n// sales\n\n//提交program\nexport const submitProgram = (data: { program: { id: string }[] }): Promise => {\n return fetchPost('/pgapi/maintain/submit', data);\n};\n\n//拷贝\nexport const copyProgram = (params = {}): Promise => {\n return fetchPost('/pgapi/maintain/copy_program', params);\n};\n\n//删除\nexport const deleteProgram = (data: { program: { id: string }[] }): Promise => {\n return fetchPost('/pgapi/maintain/delete_program', data);\n};\n\n//cancel\nexport const reviseProgram = (data: { programId: string; comment: string }): Promise => {\n return fetchPost('/pgapi/maintain/revise_program', data);\n};\n\n//cancel\nexport const cancelProgram = (data: { programId: string[]; comment: string }): Promise => {\n return fetchPost('/pgapi/maintain/cancel_program', data);\n};\n\n//callback\nexport const callbackProgram = (data: { programId: string[]; comment: string }): Promise => {\n return fetchPost('/pgapi/maintain/callback_program', data);\n};\n\n// confirm\nexport const confirmProgram = (data = {}): Promise => {\n return fetchPost('/pgapi/maintain/sipo_confirm_parameter', data);\n};\n\n// 获取offer type\nexport const getProgramCategory = (): Promise => {\n return fetchGet('/pgapi/program/setting/get_program_type?programTypeKind=Normal');\n};\n\nexport const getProgramCategoryFleet = (): Promise => {\n return fetchGet('/pgapi/program/setting/get_program_type?programTypeKind=Fleet');\n};\n// [Sales] 获取历史提交的 Cancel、Callback 说明信息\nexport const getHistoryComments = (params: {\n params: { programId: string; programStatus: string };\n}): Promise => {\n return fetchGet('/pgapi/maintain/get_history_comments', params);\n};\n\nexport const getLog = (params: { params: { programId: string } }): Promise => {\n return fetchGet('/pgapi/maintain/get_log', params);\n};\n\n//witchDraw program\nexport const witchDrawProgram = (data: { program: { id: string }[] }): Promise => {\n return fetchPost('/pgapi/maintain/withdraw_program', data);\n};\n\n//获取program hone data\nexport const getProgramHomePageData = (params: { params: any }): Promise => {\n return fetchGet('/pgapi/maintain/overview', params);\n};\n\n// 更改add 后的列表接口\nexport const getReleaseAddList = (params = {}): Promise => {\n return fetchPost('/pgapi/maintain/available_program', params);\n};\n\n// sales create package\n\n//打包\nexport const createPackage = (data: CreatePackageReq): Promise => {\n return fetchPost('/pgapi/maintain/create_batch', data);\n};\n\nexport const savePackage = (data: SavePackageReq): Promise => {\n return fetchPost('/pgapi/maintain/save_batch', data);\n};\n\nexport const submitCreatePackage = (data: { batchId: string }): Promise => {\n return fetchPost('/pgapi/maintain/submit_batch', data);\n};\n\nexport const getPackageList = (params: { params: PackageQueryParams }): Promise => {\n return fetchGet('/pgapi/maintain/list_batch', params);\n};\n// pgapi/maintain/batch_status\nexport const maintainBatchStatus = (params: { params: PackageQueryParams }): Promise => {\n return fetchGet('/pgapi/maintain/batch_status', params);\n};\nexport const releaseBatchStatus = (params: { params: PackageQueryParams }): Promise => {\n return fetchGet('/pgapi/maintain/release_batch_status', params);\n};\n\nexport const getPackageDetail = (params: { params: { batchId: string } }): Promise => {\n return fetchGet('/pgapi/maintain/view_batch', params);\n};\n\nexport const submitPackage = (data: { batchId: string }[]): Promise<{}> => {\n return fetchPost('/pgapi/maintain/submit_batchlist', data);\n};\n\nexport const discardPackage = (data: { batchId: string }[]): Promise<{}> => {\n return fetchPost('/pgapi/maintain/discard_batch', data);\n};\n\nexport const withdrawPackage = (data: { batchId: string }[]): Promise => {\n return fetchPost('/pgapi/maintain/withdraw_batch', data);\n};\n\n//sales release package\nexport const saveReleaseBatch = (data: ReleaseBatchProps): Promise => {\n return fetchPost('/pgapi/maintain/save_release_batch', data);\n};\n\nexport const sendReleaseBatch = (data: { programs: any; id: string }): Promise => {\n return fetchPost('/pgapi/maintain/send_release_batch', data);\n};\n\n// 发送邮件\nexport const sendReleaseEmail = (params = {}): Promise => {\n return fetchGet('/pgapi/program/release/sendEmail', { params });\n};\n\nexport const getReleaseBatchDetail = (params: { params: { id: string } }): Promise => {\n return fetchGet('/pgapi/maintain/view_release_batch', params);\n};\n\nexport const getReleaseBatchList = (params: { params: ReleaseQueryParams }): Promise => {\n return fetchGet('/pgapi/maintain/list_release_batch', params);\n};\n// sales measure\nexport const searchReleaseBatch = (params: { params: SalesMeasureQueryParams }): Promise => {\n return fetchGet('/pgapi/sales_measure/search_release_batch', params);\n};\n\n// sales measure detail\nexport const searchReleaseBatchContent = (params: { params: QueryDetailParams }): Promise => {\n return fetchGet('/pgapi/sales_measure/search_release_batch_content', params);\n};\n\nexport const createReleaseBatch = (data: { programs: { programId: string }[] }): Promise => {\n return fetchPost('/pgapi/maintain/create_release_batch', data);\n};\n\n// 更换接口confirm\nexport const confirmReleaseBatch = (data = {}): Promise => {\n return fetchPost('/pgapi/maintain/insert_release_batch', data);\n};\n\nexport const sendReleaseBatchList = (data: { id: string }[]): Promise => {\n return fetchPost('/pgapi/maintain/send_release_ids', data);\n};\n\nexport const controllingModifyStatus = (params = {}): Promise<{ programId: string; status: string }> => {\n return fetchPost('/pgapi/maintain/controlling_modify_status', params);\n};\n\nexport const discardReleaseBatch = (data: { id: string }[]): Promise => {\n return fetchPost('/pgapi/maintain/discard_release_batch', data);\n};\n\n//mg\nexport const getMgPendingApprove = (): Promise => {\n return fetchGet('/apapi/program/get_user_pending_packages');\n};\n\nexport const getMgPackageDetail = (params: { batchId: string }): Promise => {\n return fetchGet('/apapi/managementBatch/getPackageDetailByBatchId', params);\n};\n\n// export const approvePackage = (data: { batchId: string; approvalSatus: string; content: string }[]): Promise => {\n// return fetchPut('/apapi/approvalPackage/approvalPackage', data);\n// }\n\nexport const approvePackage = (data: { batchId: string; approvalSatus: string; content: string }[]): Promise => {\n return fetchPut('/apapi/approval_package/process', data);\n};\n\nexport const getBatchTracking = (params: { params: BatchTrackingQueryParams }): Promise => {\n return fetchGet('/apapi/managementBatch/getBatchTracking', params);\n};\n\nexport const getProgramTracking = (params: { params: ProgramTrackingQueryParams }): Promise => {\n return fetchGet('/apapi/managementBatch/getProgramTracking', params);\n};\n\nexport const getCurrentUserApprovalStatus = (batchId: string): Promise => {\n return fetchGet(`/apapi/approvalQuery/findCurrentBatchUserApprovalStatus/${batchId}`);\n};\n\n// export const getApprove\n\n//controlling\nexport const controllingConfirmProgram = (data = {}): Promise => {\n return fetchPost('/pgapi/maintain/controlling_confirm', data);\n};\n\nexport const getControllingProgramData = (params: ControllingQueryParams): Promise => {\n return fetchGet('/pgapi/maintain/controlling_overview', params);\n};\n\n// scenrio list data\nexport const scenrioList = (params = {}): Promise => {\n return fetchGet('/pcapi/scenrio/list', params);\n};\n\n//获取审批进度接口通用\n\n//获取审批进度\nexport const getApproveProgress = (params: { params: { batchId: string } }): Promise => {\n return fetchGet('/apapi/approvalPackage/getApprovalPackageByBatchId', params);\n};\n\n// export const findApproveProgressByBu = (params: { params: { bu: string } }): Promise => {\n// return fetchGet('/apapi/approvalPackage/getApprovalPackageByBu', params);\n// }\n\nexport const findApproveProgressByBu = (params: { params: { bu: string } }): Promise => {\n return fetchGet('/apapi/approval_package/getApprovalPackageByBu', params);\n};\n\n//获取审批状态\nexport const getApproveStatus = (params: { params: { type: string } }): Promise => {\n return fetchGet('/apapi/approval_package/batch_status_list', params);\n};\n\n//获取BU\nexport const getSubscribedBu = (): Promise => {\n // return fetchGet('/usapi/users/findsubscribedbu');\n return fetchGet('/usapi/users/bu/selected');\n};\n//获取所有一级BU\nexport const getAllParentBu = (): Promise => {\n return fetchGet('/usapi/noAuth/bu/parentBu');\n};\n//获取所有的Bu\nexport const getAllBu = (): Promise => {\n return fetchGet('/mdapi/bu');\n};\n\n//获取program status\nexport const getProgramStatus = (params = {}): Promise => {\n return fetchGet('/pgapi/maintain/program_status_list', params);\n};\n\n//根据bu获取brand\nexport const getBrand = (params: {\n params: {\n bu?: string[];\n buCode?: string[];\n includeBrand?: boolean;\n display?: string;\n };\n}): Promise => {\n Object.assign(params.params, { includeBrand: true, display: 'tree' });\n return fetchGet('/pgapi/program/setting/get_brand_by_bu', params);\n};\n\n//获取vehicle brand\nexport const getVehicleBand = (): Promise => {\n return fetchGet('/vapi/get_property_lov?property=brand');\n};\n\n//获取vehicle make\nexport const getVehicleMake = (): Promise => {\n return fetchGet('/vapi/get_property_lov?property=make');\n};\n\n//获取vehicle type class\nexport const getVehicleTypeClass = (): Promise => {\n return fetchGet('/vapi/get_property_lov?property=typeClass');\n};\n\n//获取programWordling\nexport const getWording = (programId: string | (string | null)[] | null): Promise => {\n return fetch({\n method: 'GET',\n url: '/pgapi/program/wording/preview_pdf',\n responseType: 'blob',\n params: {\n image: true,\n lang: 'en',\n type: 'Internal',\n programId: programId\n }\n });\n};\nexport const getBudget2 = (programId: string | (string | null)[] | null): Promise => {\n return fetch({\n method: 'GET',\n url: '/bgapi/budget/exportapproval/v2/' + programId\n });\n};\nexport const getBudget = (programId: string | (string | null)[] | null): Promise => {\n return fetch({\n method: 'GET',\n url: '/bgapi/budget/exportapproval/' + programId,\n responseType: 'blob'\n // data: {\n // 'programPeriod': 'programPeriod',\n // programInfoId: programId,\n // }\n });\n};\n// pdf preview\nexport const pdfPreview = (batchId: string): Promise => {\n return fetch({\n method: 'GET',\n url: `/pgapi/program/wording/preview_release_batch_pdf`,\n responseType: 'blob',\n params: {\n batchId: batchId\n }\n });\n};\n\n//获取收藏条件\nexport const getSearchValue = (params: { type: string }): Promise => {\n return fetchGet('/pgapi/maintain/list_program_collection', { params });\n};\n\n//设置搜索条件\nexport const setSearchValue = (data: { selJson: string; type: string }): Promise => {\n return fetchPost('/pgapi/maintain/save_program_collection', data);\n};\nexport const deleteProgramCollection = (data = {}): Promise => {\n return fetchPost('/pgapi/maintain/delete_program_collection', data);\n};\n\n// fa 审批\nexport const getBatchList = (type: string): Promise => {\n return fetchGet('/apapi/approvalQuery/findFinancingBatchList/' + type);\n};\n\n// findComments\nexport const findComments = (params = {}): Promise<{ type: string; comment: string }[]> => {\n return fetchGet('/pgapi/program_approval/findComments', params);\n};\n\n// setComments\nexport const setComments = (params = {}): Promise<{ type: string; comment: string }[]> => {\n return fetchPost('/pgapi/program_approval/setComments', params);\n};\nexport const findFinancingBatchList = (params = {}): Promise => {\n return fetchGet(`/apapi/approvalQuery/findFinancingBatchList/OASIS`, params);\n};\n\n// 根据bu获取审批list\nexport const findApprovalListBybu = (params = {}): Promise => {\n return fetchGet(`/apapi/program/search_program_approval_chain`, params);\n};\n// 根据bu获取审批list\nexport const getApprovalChainPath = (params = {}): Promise => {\n return fetchGet(`/apapi/program/get_approval_chain_path`, params);\n};\n\n// bu brand make typeclas 联动接口\nexport const findBuVehicleList = (params = {}): Promise => {\n return fetchGet(`/pgapi/maintain/search_bu_vehicle`, { params });\n};\n\n// release 接口部分\nimport {\n OrganizationProxy,\n EntityProxy,\n UserProxy,\n RegionProxy\n} from '@/views/Approve/SalesRoleApprove/ReleaseSetting/Release/types';\n// 根据entityType查询所有的entity\nexport const getentityAll = (): Promise => {\n return fetchGet(`/pgapi/program/release/getAllLegalEntity`);\n};\n\n// 获取region\nexport const getRegionList = (params = {}): Promise => {\n return fetchGet(`pgapi/program/release/getRegion`, { params });\n};\n\n// 获取user list\nexport const getUserList = (): Promise => {\n return fetchGet('/usapi/users/findall?pageIndex=0&pageSize=10000');\n};\n\n// 获取batch 历史\nexport const geAvailBatchList = (pathParams: string, params = {}): Promise => {\n return fetchGet('/pgapi/program/release/' + pathParams, { params });\n};\n\n// 获取列表\nexport const getReleaseData = (pathParams: string, params = {}): Promise => {\n return fetchGet(`/pgapi/program/release/` + pathParams, { params });\n};\n\n// 根据parentId 查询 Entity\nexport const findEntityByids = (id: number | string): Promise => {\n return fetchGet(`/usapi/entity/children/${id}?entityType=organization`);\n};\n\n// 添加组\nexport const releaseAddGroup = (addPath: string, params = {}): Promise => {\n return fetchPost(`/pgapi/program/release/${addPath}ternalAddGroup`, params);\n};\n\n// 添加user\nexport const releaseAddUser = (addPath: string, params = {}): Promise => {\n return fetchPost(`/pgapi/program/release/${addPath}ternalAddUser`, params);\n};\n\n// copy batch list\nexport const releaseAddList = (addPath: string, params = {}): Promise => {\n return fetchPost(`/pgapi/program/release/${addPath}ternalAddList`, params);\n};\n\n// 删除\nexport const releaseDeleteById = (deletePath: string, params = {}): Promise => {\n return fetchGet('/pgapi/program/release/' + deletePath, { params });\n};\n\n// 18948\nexport const deleteSml = (params = {}): Promise => {\n return fetchGet('/pgapi/program/release/deleteSml', { params });\n};\n\nexport const viewSml = (params = {}): Promise => {\n return fetchGet('/pgapi/program/release/viewSml', { params });\n};\n\nexport const generateSml = (params = {}): Promise => {\n return fetchGet('/pgapi/program/release/generateSml', { params });\n};\n\nexport const isWordingUploadAllBatch = (params = {}): Promise => {\n return fetchPost('/pgapi/program/wording/wording_is_upload_all', params);\n};\n\nexport const searchCombinability = (params = {}): Promise => {\n return fetchPost('/pgapi/program/combinability/export_combinability', params);\n};\n\nexport const compareCombinability = (params = {}): Promise => {\n return fetch({\n method: 'GET',\n url: '/pgapi/program/combinability/compare_combinability',\n params: params\n });\n};\n\nexport const filterCombProgram = (params = {}): Promise => {\n return fetchGet('/pgapi/program/combinability/filter_comb_program', { params });\n};\n\nexport const searchCombinabilityDealer = (params = {}): Promise => {\n return fetchPost('/pgapi/program/combinability/dealer/export_combinability', params);\n};\n\nexport const compareCombinabilityDealer = (params = {}): Promise => {\n return fetch({\n method: 'GET',\n url: '/pgapi/program/combinability/dealer/compare_combinability',\n params: params\n });\n};\n\nexport const filterCombProgramDealer = (params = {}): Promise => {\n return fetchGet('/pgapi/program/combinability/dealer/filter_comb_program', { params });\n};\n\nexport const sendApprovalRemindNoticeByBatchId = (batchId: string): Promise => {\n return fetchGet('/apapi/approvalPackage/sendApprovalRemindNoticeByBatchId', { params: { batchId } });\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!./BudgutInput.vue?vue&type=style&index=0&id=a8abc730&lang=scss&scoped=true\"","module.exports = __webpack_public_path__ + \"img/pending.373cf93d.svg\";","import { TreeProps, RoleTableProps } from '@/views/User/types'\nimport { AutoTableCellProps, APIDataProps, RowCellProps, CategoryProps } from '@/types'\nimport { ColmunsProps } from '@/API/types'\nimport { useRoute } from 'vue-router'\nimport store from '@/store'\nimport deepClone from '@/utils/deepClone'\nimport { ref, onMounted, onUnmounted } from 'vue'\nimport type { BuTreeProps } from '@/store/'\n\nexport const addDataKey = (data: any) => {\n data.forEach((item: any, index: number) => {\n item.key = index + 1\n })\n return data\n}\n/** findParent\n * @param {}[] arr 目标数据\n * @param string mnuuri 传入的,路由url\n * @param callFied 匹配mnuuri的目标数据Key\n * @param callbackType 返回数据类型\n * @param callbackKey 返回权限数据的来源字段\n*/\nexport const findParent = (arr: TreeProps[], mnuuri: string, callFied: string, callbackType: string, callbackKey: string): any => {\n let callType;\n switch (callbackType) {\n case 'Array':\n callType = [];\n break;\n case 'Object':\n callType = {};\n break;\n default:\n callType = '';\n\n }\n if (arr === []) return callType\n for (const obj of arr) {\n if (obj[callFied] === mnuuri) {\n return obj[callbackKey] ? obj[callbackKey] : callType\n }\n const ret = findParent(obj.children, mnuuri, callFied, callbackType, callbackKey)\n if (ret.length > 0) return ret\n }\n return callType;\n}\n\n/** 根据路由,获取权限信息\n * @param path 路由\n*/\nexport const getPermissions = (path = ''): RoleTableProps[] => {\n const route = useRoute()\n path = !path ? route.path : path\n if (Object.keys(store.state.user).length > 0) {\n return findParent(store.state.user.menulist, path, 'mnuuri', 'Array', 'privlist')\n }\n return []\n}\n/** @param privcd string 传过来的权限矩阵表里,设置的对应按钮的privcd\n * @param path string 路由\n */\nexport const btnPermissions = (privcd: string, path = '') => {\n /* todo\n zhangyan 定的:\n 0。权限不涉及到的按钮,不控制,默认显示\n 1。权限里面需要控制的按钮:\n (1)后端返回的privlist找不到privcd,显示\n (2)后端返回的privlist找到了privcd,并且state: true的时候显示\n return !(getPermissions().filter(item => item.privcd === privcd).length < 0) || (getPermissions().filter(item => item.privcd === privcd && item.state)).length > 0\n todo */\n // 目前先按之前的做,等后端收集全,再改成上面的\n return (getPermissions(path).filter(item => item.privcd === privcd)).length > 0\n}\n\n\n// 字符串转换布尔值\nexport const stringToBoolean = (str: string) => {\n switch (str.toLowerCase().trim()) {\n case \"true\": case \"yes\": case \"1\": return true;\n case \"false\": case \"no\": case \"0\": case null: return false;\n default: return Boolean(str);\n }\n}\n\n// 递归一棵树\nexport const fnChildren = (data: any, id = '0', link = 'parent') => \n data.filter((item: any) => item[link] === id)\n .map((item: any) => ({...item, children: fnChildren(data, item.id)}))\n\n\nexport const formatData = (data: APIDataProps[]) => {\n data.forEach((item: APIDataProps) => {\n if (item.tableCell && item.tableCell.length > 0) {\n for (const key of item.tableCell) {\n for (const i in key) {\n if (key[i].constructor === Object) {\n (key[i] as RowCellProps).isEdit = true;\n (key[i] as RowCellProps).isAuto = false\n if ((key[i].val as string[]).length > 0) {\n for (const s of key.children as AutoTableCellProps[]) {\n (s[i] as RowCellProps).isEdit = false;\n (s[i] as RowCellProps).isAuto = false\n }\n } else {\n for (const s of key.children as AutoTableCellProps[]) {\n (s[i] as RowCellProps).isEdit = true;\n (s[i] as RowCellProps).isAuto = false\n }\n }\n }\n }\n }\n }\n })\n}\n\n// 找到category, base info category用\nexport const getCategory = (): void => {\n const arr = store.state.pgmData.businessUnit.option.filter((item: CategoryProps) => item.id === store.state.pgmData.businessUnit.selected)\n if (arr.length > 0) {\n store.commit('updatePgmGroupCategorys', arr[0].category)\n }\n}\n\n// 格式化program的base info的分类信息,用于下面的大分类显示\nexport const formatPgmCategory = (): void => {\n let arr: CategoryProps[] = []\n const sourceData = deepClone(store.state.pgmGroupCategorys)\n for (const item of sourceData) {\n arr = arr.concat(item.offerType)\n }\n store.commit('updatePgmCategory', arr)\n}\n\n// 保存FA的参数\nexport const formatFaSaveParams = (finacingParams: any, flParams: any, agilityParams: any, updateParams: any) => {\n const params = {\n finacingParams,\n flParams,\n agilityParams,\n updateParams,\n }\n \n store.commit('updatedFaSave', params)\n}\n\n// item不传时,在新建vehicle组时,下面的pre需要更新用\n// 传item时,是直接更新pre的vehicle组\nexport const getGroup = () => {\n const arr: { id: string; display: string; selected: boolean }[] = []\n for (const i of store.state.pgmData.eligibility.vehicle) {\n const param = {\n id: i.groupId,\n display: i.groupName,\n selected: false\n }\n arr.push(param)\n }\n return arr\n}\n\n\n// 处理向后端传的参数,后端不希望把tableCellSelect的值给它,所以要清空\nexport const formatRequestData = () => {\n const param = deepClone(store.state.pgmData)\n // delete param.select\n param.eligibility.dealer.tableCellSelect = []\n for (const item of param.eligibility.vehicle) {\n item.tableCellSelect = []\n }\n return param\n}\n\n// 转换数字 例如 1 =》 01\nexport const formatInt = (number: number, len: number): string => {\n let mask = ''\n let returnVal = ''\n for (let i = 0; i < len; i++) mask += \"0\";\n returnVal = mask + number; \n returnVal = returnVal.substr(returnVal.length - len, len);\n return returnVal;\n}\n\n// 生成UUID\nexport const guid = (): string => {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = Math.random() * 16 | 0,\n v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n })\n}\n\n// Model Year带Pre的处理\nexport const handleChangePre = (col: string, row: AutoTableCellProps) => {\n // 当最后选到Pre时,要把前面非pre都清掉\n if (row[col].val[row[col].val.length - 1] && row[col].val[row[col].val.length - 1].indexOf('Pre') !== -1 ) {\n row[col].val = [row[col].val[row[col].val.length - 1]]\n } else {\n // 当前面已经存在pre,再想选别的,那么就清掉带pre的\n const index = row[col].val.findIndex((item: string) => item.indexOf('Pre') !== -1)\n if (row[col].val.findIndex((item: string) => item.indexOf('Pre') !== -1) !== -1) {\n row[col].val.splice(index, 1)\n }\n }\n}\n\n// 根据title 查找对应的id 用于动态表头\nexport const findColumnIdBytitle = (title: string, columns: ColmunsProps[] = []): string => {\n const childrenArr: any[] = []\n const colArr: any[] = []\n let dataId = '' \n columns.forEach((col) => {\n for (const key in col) {\n if (key === 'children') {\n childrenArr.push(col.children)\n }\n if (Object.prototype.hasOwnProperty.call(col, 'children')) {\n colArr.push(col)\n }\n \n // if (!col.hasOwnProperty('children')) {\n // colArr.push(col)\n // }\n }\n }) \n // if (colArr.length > 0 && colArr[0].title) dataId = colArr.filter(item => title === item.title)[0].dataIndex\n if (childrenArr.flat().length > 0 && childrenArr.flat().filter(item => title === item.title).length > 0) dataId = childrenArr.flat().filter(item => title === item.title)[0].dataIndex\n return dataId\n}\n\n// 表格的行的勾选框是否可勾\nexport const getCheckboxProps = (record: AutoTableCellProps) => {\n return record.parent !== '0' ? { disabled: true } : { disabled: false }\n}\n\nexport const elementSize = (element: string | HTMLElement) => {\n let elementDom: HTMLElement | null = null\n const size = ref({\n width: 0,\n height: 0\n })\n const getSize = () => {\n if (elementDom) {\n size.value.width = elementDom.offsetWidth\n size.value.height = elementDom.offsetHeight\n }\n }\n onMounted(() => {\n elementDom = typeof element === 'string' ? document.querySelector(element) : element\n getSize()\n })\n \n window.addEventListener('resize', getSize)\n\n onUnmounted(() => {\n window.removeEventListener('resize', getSize)\n })\n\n return size\n}\n\nexport function isMobile() {\n return /Android|webOS|iPhone|iPod|BlackBerry|mobile/i.test(navigator.userAgent)\n}\n\n/**\n * 根据指定参数名称获取参数值\n * @param {String} url 参数名称\n * @return {Object} 参数值\n * */\nexport function getUrlParams(url: string | undefined = location.href): any {\n return Object.fromEntries(new URL(url).searchParams.entries())\n}\n\nexport interface ProgramConfigProps {\n programId: string;\n programName: string;\n programCode: string;\n programPeriod: APIDataProps;\n programOfferType: () => CategoryProps[];\n}\n\nexport const programConfig = (): ProgramConfigProps => {\n const param = {\n programId: store.state.pgmData.programId,\n programName: store.state.pgmData.programName,\n programCode: store.state.pgmData.programCode,\n programPeriod: store.state.pgmData.eligibility.period,\n programOfferType: () => store.state.pgmCategory.filter((item: CategoryProps) => item.selected)\n }\n return param\n}\n\nexport function replaceUrl(url: string | undefined = location.href) {\n url = url.split('?')[0];\n if (url.indexOf('?') !== -1) {\n window.history.replaceState(null, '', url);\n }\n}\n\n// 获取月\nexport function getMonth(date: Date = new Date()): number {\n return date.getMonth()\n}\n\n/**\n * 获取一级BU\n * @param buTree BU Tree\n * @param bu BU英文名\n * @returns \n */\nfunction _getFirstLevelBU(buTree: BuTreeProps[], bu: string) {\n for (const buItem of buTree) {\n if (buItem.nameEn === bu || _getFirstLevelBU(buItem.children, bu)) {\n return buItem\n }\n }\n return null;\n}\n\n/**\n * 获取一级BU\n */\nexport function getFirstLevelBU() {\n return _getFirstLevelBU(store.state.user.buTreeList ?? [], store.state.user.bu?.orgnmen ?? '')\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!./MainWrapper.vue?vue&type=style&index=0&id=d4029dd6&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./BudgutInputControlling.vue?vue&type=style&index=0&id=4d45b05e&lang=scss&scoped=true\"","import { ref, watch, onMounted } from 'vue';\n\nexport default (height: number) => {\n //* 设置表格\n const docHeight = ref(document.documentElement.clientHeight);\n const usedHeight = height; // 从上到下其他固定高度的部分占据的空间\n const tableHeight = ref(docHeight.value - usedHeight);\n watch(docHeight, (newVal) => {\n tableHeight.value = newVal - usedHeight;\n });\n onMounted(() => {\n window.onresize = () => {\n docHeight.value = document.documentElement.clientHeight;\n // tableHeight.value = docHeight.value - usedHeight;\n };\n });\n return tableHeight;\n};\n","import axios from 'axios'\nimport { AxiosRequestConfig } from '@/API/types'\nexport default (options: AxiosRequestConfig) => { \n const { url, method = 'get', params, fileName: resFileName } = 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 if (res.headers['content-disposition']) {\n const contentDisposition = res.headers['content-disposition'].replace(/\"/g, '')\n const suffixIndex = contentDisposition.indexOf('.') + 1\n let type = ''\n const suffix = contentDisposition.substr(suffixIndex)\n switch (suffix) {\n case 'xlsx':\n type = 'application/vnd-excel; char-set=UTF-8'\n break\n case 'zip':\n type = 'application/zip; char-set=UTF-8'\n break\n case 'pdf':\n type = 'application/pdf; char-set=UTF-8'\n break\n // case 'doc':\n // type = 'application/msword; char-set=UTF-8'\n // break\n }\n const fileNameIndex = contentDisposition.indexOf('=') + 1\n let fileName = ''\n if (resFileName) {\n fileName = resFileName + '.' + suffix\n } else {\n fileName = decodeURIComponent(contentDisposition.substr(fileNameIndex))\n }\n // 文件格式\n const blob = new Blob([res.data], { type })\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 } else {\n if (\n res.data instanceof Blob &&\n res.data.type === 'application/json'\n ) {\n res.data.text().then((res: any) => {\n reject(JSON.parse(res).message)\n })\n } else {\n reject('No File!')\n }\n \n }\n }).catch(function (error: string) {\n console.log(error)\n return reject(error)\n })\n })\n}\n\nexport function downloadFromStream(response: any) {\n const matches = response.headers['content-disposition'].replace(/\"/g, '').match(/filename=([^;]+)/)\n const filename = matches.length === 2 ? decodeURIComponent(decodeURIComponent(matches[1])) : 'download'\n\n const blob = new Blob([response.data])\n const downloadElement = document.createElement('a')\n const href = window.URL.createObjectURL(blob)\n downloadElement.href = href\n downloadElement.download = filename\n downloadElement.click() \n window.URL.revokeObjectURL(href)\n}\n\nexport function downloadFromUrl(url: string): void {\n const downloadElement = document.createElement('a')\n downloadElement.href = url\n document.body.appendChild(downloadElement)\n downloadElement.click()\n document.body.removeChild(downloadElement)\n}\n\nexport function downloadFromUrls(urls: string[]): void {\n const iframesSet = new Set()\n urls.forEach(url => {\n const downloadElement = document.createElement('iframe')\n downloadElement.src = url\n downloadElement.style.display = 'none'\n document.body.appendChild(downloadElement)\n iframesSet.add(downloadElement)\n })\n\n // 下载完成后清除iframe\n if (iframesSet) {\n const timer = setInterval(() => {\n for (const iframe of iframesSet) {\n if (iframe.contentDocument?.readyState === 'complete') {\n iframesSet.delete(iframe)\n document.body.removeChild(iframe)\n }\n }\n if (iframesSet.size === 0) {\n clearInterval(timer)\n }\n }, 10000)\n }\n}","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, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-a8ab41a0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"d-f flex-d-c\" }\nconst _hoisted_2 = { class: \"searchMain bg-fff m-t-8\" }\nconst _hoisted_3 = { class: \"d-f\" }\nconst _hoisted_4 = { class: \"d-f flex-d-c flex-w-auto m-l-16\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"Year\", -1))\nconst _hoisted_6 = { class: \"d-f flex-d-c flex-w-auto m-l-16\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"BU\", -1))\nconst _hoisted_8 = { class: \"d-f flex-d-c flex-w-auto m-l-16\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"Brand\", -1))\nconst _hoisted_10 = { class: \"d-f flex-d-c flex-w-auto m-l-16\" }\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"RT/WS\", -1))\nconst _hoisted_12 = { class: \"d-f flex-w-auto flex-d-c m-l-16\" }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"Submit Status\", -1))\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"flex-w-auto m-l-16 hide\" }, null, -1))\nconst _hoisted_15 = { class: \"d-f m-t-16\" }\nconst _hoisted_16 = { class: \"d-f flex-w-auto flex-d-c m-l-16\" }\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"Q/M\", -1))\nconst _hoisted_18 = { class: \"d-f flex-d-c flex-w-auto m-l-16\" }\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"Make\", -1))\nconst _hoisted_20 = { class: \"d-f flex-w-auto flex-d-c m-l-16\" }\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"Kufri\", -1))\nconst _hoisted_22 = { class: \"d-f flex-w-auto flex-d-c m-l-16\" }\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"Active Status\", -1))\nconst _hoisted_24 = /*#__PURE__*/_createTextVNode(\" Active \")\nconst _hoisted_25 = /*#__PURE__*/_createTextVNode(\" InActive \")\nconst _hoisted_26 = { class: \"d-f flex-w-auto flex-d-c m-l-16\" }\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"Planning version\", -1))\nconst _hoisted_28 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"flex-w-auto m-l-16 hide\" }, null, -1))\nconst _hoisted_29 = { class: \"d-f search-btns\" }\nconst _hoisted_30 = /*#__PURE__*/_createTextVNode(\"Reset\")\nconst _hoisted_31 = /*#__PURE__*/_createTextVNode(\"Search\")\nconst _hoisted_32 = { class: \"main bg-fff flex-w-auto d-f flex-d-c\" }\nconst _hoisted_33 = { class: \"d-f m-t-16\" }\nconst _hoisted_34 = { class: \"d-f flex-w-auto flex-d-c\" }\nconst _hoisted_35 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"Report View\", -1))\nconst _hoisted_36 = { class: \"d-f flex-w-auto flex-d-c m-l-16\" }\nconst _hoisted_37 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", {\n class: \"label-text-12\",\n style: {\"visibility\":\"hidden\"}\n}, \"Active Status\", -1))\nconst _hoisted_38 = { class: \"flex-w-auto d-f align-c\" }\nconst _hoisted_39 = /*#__PURE__*/_createTextVNode(\"Expand to Model\")\nconst _hoisted_40 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-f flex-w-auto flex-d-c m-l-16\" }, null, -1))\nconst _hoisted_41 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"flex-w-auto m-l-16 hide\" }, null, -1))\nconst _hoisted_42 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"flex-w-auto m-l-16 hide\" }, null, -1))\nconst _hoisted_43 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"m-t-8 flex-w-auto table-wrapper\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { id: \"report\" })\n], -1))\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_tree_select = _resolveComponent(\"a-tree-select\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_input = _resolveComponent(\"a-input\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createVNode(_component_a_date_picker, {\n mode: \"year\",\n valueFormat: \"YYYY\",\n format: \"YYYY\",\n value: _ctx.year,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.year) = $event)),\n open: _ctx.openYear,\n onOpenChange: _ctx.handlerOpenChange,\n onPanelChange: _ctx.handlerPanelChange\n }, null, 8, [\"value\", \"open\", \"onOpenChange\", \"onPanelChange\"])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _hoisted_7,\n _createVNode(_component_a_tree_select, {\n value: _ctx.bu,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.bu) = $event)),\n treeData: _ctx.buOptions,\n \"allow-clear\": \"\",\n \"tree-checkable\": \"\",\n \"show-checked-strategy\": _ctx.SHOW_PARENT,\n onChange: _ctx.handleChangeBu,\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.handleFocus('buId')))\n }, null, 8, [\"value\", \"treeData\", \"show-checked-strategy\", \"onChange\"])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n _createVNode(_component_a_select, {\n value: _ctx.brand,\n \"onUpdate:value\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.brand) = $event)),\n mode: \"multiple\",\n onFocus: _cache[4] || (_cache[4] = ($event: any) => (_ctx.handleFocus('brand')))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.brandOptions, (item, index) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.name,\n key: index\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 ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _hoisted_11,\n _createVNode(_component_a_select, {\n value: _ctx.rtOrWs,\n \"onUpdate:value\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.rtOrWs) = $event))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.rtWsOptions, (item, index) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.value,\n key: index\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 ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n _createVNode(_component_a_select, {\n value: _ctx.submitStatus,\n \"onUpdate:value\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.submitStatus) = $event)),\n mode: \"multiple\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.programStatusOptions, (item, index) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.id,\n key: index\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.display), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\"])\n ]),\n _hoisted_14\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", _hoisted_16, [\n _hoisted_17,\n _createVNode(_component_a_tree_select, {\n value: _ctx.qm,\n \"onUpdate:value\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.qm) = $event)),\n style: {\"width\":\"100%\"},\n \"tree-data\": _ctx.qmOptions,\n \"tree-checkable\": \"\",\n \"allow-clear\": \"\",\n \"show-checked-strategy\": _ctx.SHOW_PARENT,\n \"search-placeholder\": \"Please select\"\n }, null, 8, [\"value\", \"tree-data\", \"show-checked-strategy\"])\n ]),\n _createElementVNode(\"div\", _hoisted_18, [\n _hoisted_19,\n _createVNode(_component_a_select, {\n value: _ctx.make,\n \"onUpdate:value\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.make) = $event)),\n onFocus: _cache[9] || (_cache[9] = ($event: any) => (_ctx.handleFocus('make')))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.makeOptions, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.name,\n key: item.name\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 ]),\n _createElementVNode(\"div\", _hoisted_20, [\n _hoisted_21,\n _createVNode(_component_a_input, {\n disabled: true,\n value: _ctx.kufri\n }, null, 8, [\"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_22, [\n _hoisted_23,\n _createVNode(_component_a_select, {\n value: _ctx.activeStatus,\n \"onUpdate:value\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.activeStatus) = $event))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_select_option, { value: \"active\" }, {\n default: _withCtx(() => [\n _hoisted_24\n ]),\n _: 1\n }),\n _createVNode(_component_a_select_option, { value: \"inactive\" }, {\n default: _withCtx(() => [\n _hoisted_25\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_26, [\n _hoisted_27,\n _createVNode(_component_a_select, {\n value: _ctx.planningName,\n disabled: \"\"\n }, null, 8, [\"value\"])\n ]),\n _hoisted_28\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _createVNode(_component_a_button, {\n class: \"m-l-16\",\n onClick: _ctx.handlerResetClick\n }, {\n default: _withCtx(() => [\n _hoisted_30\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n class: \"m-l-16\",\n type: \"primary\",\n onClick: _ctx.initData\n }, {\n default: _withCtx(() => [\n _hoisted_31\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_32, [\n _createElementVNode(\"div\", _hoisted_33, [\n _createElementVNode(\"div\", _hoisted_34, [\n _hoisted_35,\n _createVNode(_component_a_select, {\n value: _ctx.reportView,\n \"onUpdate:value\": _cache[11] || (_cache[11] = ($event: any) => ((_ctx.reportView) = $event))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.reportViewOptions, (item, index) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.value,\n key: index\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 ]),\n _createElementVNode(\"div\", _hoisted_36, [\n _hoisted_37,\n _createElementVNode(\"div\", _hoisted_38, [\n _createVNode(_component_a_checkbox, {\n checked: _ctx.check,\n \"onUpdate:checked\": _cache[12] || (_cache[12] = ($event: any) => ((_ctx.check) = $event)),\n disabled: _ctx.reportView == 'Model' ? true : false\n }, {\n default: _withCtx(() => [\n _hoisted_39\n ]),\n _: 1\n }, 8, [\"checked\", \"disabled\"])\n ])\n ]),\n _hoisted_40,\n _hoisted_41,\n _hoisted_42\n ]),\n _hoisted_43\n ])\n ]))\n}","\n import { defineComponent, onMounted, ref, reactive, toRefs, watch, onBeforeUnmount, nextTick } from 'vue';\n import { TreeSelect } from 'ant-design-vue';\n import GC from \"@grapecity/spread-sheets\";\n import moment from \"moment\";\n import { initSpread, transformData, bindDataTable, setCollapsed, setHeader, initOutlineColumn } from './utils';\n import { RowProps, Header, QueryParams } from './types';\n import { getBudgetReportData, getVersion } from '@/API/budget';\n import { getSubscribedBu, getBrand, getProgramStatus, getVehicleMake, scenrioList, findBuVehicleList } from '@/API/approve';\n import useFetch from \"@/hooks/useFetch\";\n import { BrandItem, BuItem, ProgramStatusItem } from \"@/views/Approve/SalesRoleApprove/ProgramHome/types\";\n import { ScenarioResultProps } from './types'\n import { useStore } from \"vuex\";\n import { getGuideLineConfig } from '@/API/budget'\n import { GuideLineConfig } from '@/views/Approve/ControllingRoleApprove/ProgramHome/types'\n import useWait from '@/utils/payment/useWait'\n import { getBuList } from '@/API/approvalChain'\n import { cloneDeep } from 'lodash'\n\n const SHOW_PARENT = TreeSelect.SHOW_PARENT;\n const SHOW_ALL = TreeSelect.SHOW_ALL;\n\n interface TreeDataItem {\n value: string;\n key: string;\n title?: string;\n disabled?: boolean;\n children?: TreeDataItem[];\n }\n\n const qmOptions: TreeDataItem[] = [\n {\n title: 'Q1',\n value: 'Q1',\n key: 'Q1',\n children: [\n {\n title: '01',\n value: '01',\n key: '01',\n },\n {\n title: '02',\n value: '02',\n key: '02',\n },\n {\n title: '03',\n value: '03',\n key: '03',\n },\n ],\n },\n {\n title: 'Q2',\n value: 'Q2',\n key: 'Q2',\n children: [\n {\n title: '04',\n value: '04',\n key: '04',\n },\n {\n title: '05',\n value: '05',\n key: '05',\n },\n {\n title: '06',\n value: '06',\n key: '06',\n },\n ],\n },\n {\n title: 'Q3',\n value: 'Q3',\n key: 'Q3',\n children: [\n {\n title: '07',\n value: '07',\n key: '07',\n },\n {\n title: '08',\n value: '08',\n key: '08',\n },\n {\n title: '09',\n value: '09',\n key: '09',\n },\n ],\n },\n {\n title: 'Q4',\n value: 'Q4',\n key: 'Q4',\n children: [\n {\n title: '10',\n value: '10',\n key: '10',\n },\n {\n title: '11',\n value: '11',\n key: '11',\n },\n {\n title: '12',\n value: '12',\n key: '12',\n },\n ],\n },\n ];\n\n const header: Header[][] = [\n [\n {\n name: ''\n },\n {\n name: ''\n },\n {\n name: 'MTD'\n },\n {\n name: 'MTD'\n },\n {\n name: 'MTD'\n },\n {\n name: 'MTD'\n },\n {\n name: 'YTD'\n },\n {\n name: 'YTD'\n },\n {\n name: 'YTD'\n },\n {\n name: 'YTD'\n }\n ],\n [\n {\n name: 'Type Class'\n },\n {\n name: 'Model'\n },\n {\n name: '%AVG.SI'\n },\n {\n name: '%Guideline'\n },\n {\n name: '%Deviation'\n },\n {\n name: 'Deviation Absolut Amount'\n },\n {\n name: '%AVG.SI'\n },\n {\n name: '%Guideline'\n },\n {\n name: '%Deviation'\n },\n {\n name: 'Deviation Absolut Amount'\n },\n ],\n ]\n\n const wait = useWait()\n let inited = false\n let defaultBuIds: string[] = []\n\n export default defineComponent({\n name: \"budgetReport\",\n setup() {\n const { state } = useStore();\n const queryParams = reactive({\n brand: [],\n bu: [],\n check: false,\n kufri: '',\n make: '',\n reportView: 'TypeClass',\n rtOrWs: 'RT',\n yearQm: '',\n submitStatus: [],\n activeStatus: 'Active',\n planningName: '',\n })\n\n const year = ref(moment().add('month', 1).format('YYYY'));\n\n const openYear = ref(false);\n\n const getDefaultQm = (): string => {\n return 'Q' + moment().add('month', 1).quarter();\n }\n\n const qm = ref([getDefaultQm()]);\n\n // sheet当前表格的初始化\n let workbook: GC.Spread.Sheets.Workbook | null;\n\n let worksheet: GC.Spread.Sheets.Worksheet | null;\n\n const reportViewOptions = ref<{ name: string; value: string}[]>([\n {\n name: 'Type Class',\n value: 'TypeClass'\n },\n {\n name: 'Model',\n value: 'Model'\n }\n ])\n\n const rtWsOptions = ref<{ name: string; value: string}[]>([\n {\n name: 'RT',\n value: 'RT'\n },\n {\n name: 'WS',\n value: 'WS'\n }\n ])\n\n const buTree: TreeDataItem[] = []\n\n //programStatus options\n const { data: programStatusOptions } = useFetch({type: 'guideline'}, [], getProgramStatus);\n const reportData = ref([]);\n\n const buOptions = ref()\n const makeOptions = ref()\n //brand options\n const brandOptions = ref();\n const typeClassOptions = ref()\n const intoFull = (target: string) => {\n switch (target) {\n // case 'buId':\n // buOptions.value = []\n // break;\n case 'make':\n makeOptions.value = []\n break;\n case 'brand':\n brandOptions.value = []\n break;\n case 'typeClass':\n typeClassOptions.value = []\n break;\n }\n } \n\n const initVehicleMake = () => {\n const params = {\n target: 'make',\n buId: queryParams.bu,\n brand: queryParams.brand,\n }\n return findBuVehicleList(params).then(res => {\n makeOptions.value = res\n if (!res.some((item: any) => item.name === queryParams.make)) {\n Object.assign(queryParams, {make: makeOptions.value[0].name});\n } \n })\n }\n\n const initBuTree = async () => {\n const buList = (await getBuList() as any).filter((bu: any) => bu.deleted === 0)\n .sort((a: any, b: any) => a.parentId < b.parentId ? -1 : 1)\n const buMap = new Map()\n for (const bu of buList) {\n const buItem: TreeDataItem = {\n value: bu.id.toString(),\n key: bu.id.toString(),\n title: bu.nameEn,\n children: []\n }\n buMap.set(bu.id.toString(), buItem)\n if (bu.parentId === null) {\n buTree.push(buItem)\n } else {\n buMap.get(bu.parentId.toString())?.children?.push(buItem)\n }\n }\n }\n\n const _findBuNameById = (buTreeItems: TreeDataItem[], buIds: string[]) => {\n let buNames: string[] = []\n buTreeItems.forEach(buTreeItem => {\n if (buIds.includes(buTreeItem.key) && buTreeItem.title) {\n buNames.push(buTreeItem.title)\n }\n if (buTreeItem.children?.length) {\n buNames = buNames.concat(_findBuNameById(buTreeItem.children, buIds))\n }\n })\n return buNames\n }\n\n const findBuNameById = (buIds: string[]) => {\n return _findBuNameById(buTree, buIds)\n }\n\n const _findBuTreeDataItemByName = (buTreeItems: TreeDataItem[], name: string): TreeDataItem|null => {\n for (const buTreeItem of buTreeItems) {\n if (buTreeItem.title === name && buTreeItem.key) {\n return buTreeItem\n }\n if (buTreeItem.children?.length) {\n const matchTreeDataItem = _findBuTreeDataItemByName(buTreeItem.children, name)\n if (matchTreeDataItem) {\n return matchTreeDataItem\n }\n }\n }\n return null\n }\n\n const _findChildrenBuIds = (buTreeItem: TreeDataItem) => {\n let buIds: string[] = buTreeItem?.key ? [buTreeItem?.key]: []\n buTreeItem.children?.forEach(b => {\n buIds = buIds.concat(_findChildrenBuIds(b))\n })\n return buIds\n }\n\n const findBuIdsByParentName = (buTree: TreeDataItem[], name: string) => {\n const buTreeDataItem = _findBuTreeDataItemByName(buTree, name)\n return buTreeDataItem ? _findChildrenBuIds(buTreeDataItem): []\n }\n\n const buIdsWithChildren = (buTree: TreeDataItem[], ids: string[]) => {\n const allIds: string[] = cloneDeep(ids)\n buTree.forEach(buTreeItem => {\n if (ids.includes(buTreeItem.key)) {\n allIds.push(..._findChildrenBuIds(buTreeItem))\n }\n })\n\n return Array.from(new Set(allIds))\n }\n\n const _filterBuTree = (buTreeItem: TreeDataItem, buIds: Set) => {\n if (!buIds.has(buTreeItem.key)) {\n return undefined\n }\n if (buTreeItem.children?.length) {\n buTreeItem.children = buTreeItem.children.filter(b => _filterBuTree(b, buIds))\n }\n return buTreeItem\n }\n\n const getBuOptions = (buList: {id: string; name: string}[]) => {\n const buIds = new Set(buList.map(bu => bu.id))\n const buOptions = cloneDeep(buTree)\n const filteredBuOptions: TreeDataItem[] = []\n buOptions.forEach(buOption => {\n const result = _filterBuTree(buOption, buIds)\n if (result) {\n filteredBuOptions.push(result)\n }\n })\n return filteredBuOptions\n }\n\n const initVehicleBu = async () => {\n const params = {\n target: 'buId',\n make: queryParams.make\n }\n const buList = await findBuVehicleList(params)\n buOptions.value = getBuOptions(buList)\n queryParams.bu = findBuIdsByParentName(buOptions.value, 'MBPC')\n defaultBuIds = queryParams.bu\n } \n\n const queryBrand = ref([])\n const initVehicleBrand = () => {\n const params = {\n target: 'brand',\n buId: queryParams.bu,\n make: queryParams.make,\n }\n findBuVehicleList(params).then(res => {\n queryBrand.value = res.map((item: { name: string}) => item.name)\n })\n } \n\n // 获取焦点获取数据 \n const handleFocus = (target: string) => {\n const params = {\n buId: queryParams.bu,\n brand: queryParams.brand,\n make: queryParams.make,\n // typeClass: queryParams.typeClass,\n target\n }\n intoFull(target)\n nextTick(() => {\n findBuVehicleList(params).then(res => {\n switch (target) {\n case 'buId':\n buOptions.value = getBuOptions(res)\n break;\n case 'make':\n makeOptions.value = res\n break;\n case 'brand':\n brandOptions.value = res\n break;\n case 'typeClass':\n typeClassOptions.value = res\n break;\n }\n })\n })\n }\n\n const handlerOpenChange = (status: any): void =>{\n if (status) {\n openYear.value = true;\n }\n }\n\n const handlerPanelChange = (value: string): void =>{\n const time = moment(value).format('YYYY');\n year.value = time as string;\n openYear.value = false;\n }\n\n const ssHotTopInit = (data: RowProps[]): void => {\n const spread = new GC.Spread.Sheets.Workbook(document.getElementById('report') as HTMLElement);\n const sheet = spread.getActiveSheet();\n worksheet = sheet;\n workbook = spread;\n initSpread(spread, sheet, header, data);\n //是否分组列\n if (data.length > 0 && queryParams.reportView === 'TypeClass') {\n initOutlineColumn(sheet);\n }\n //根据reportView来判断是否折叠\n if (queryParams.reportView === 'TypeClass' && queryParams.check === false) {\n setCollapsed(worksheet, data, !queryParams.check)\n }\n // 默认展开到typeclass\n if (queryParams.reportView === 'TypeClass') {\n setCollapsed(worksheet, data, false, 0)\n }\n }\n\n //因为分组列显示和普通显示切换有问题所以每次都是销毁后重新创建\n const initData = async () => {\n await wait\n //year 有值并且qm没有值,则拼接全年的日期\n const _year = year.value && qm.value.length == 0 ? ['Q1', 'Q2', 'Q3', 'Q4'].map(item => `${year.value}.${item}`).join(',') : qm.value.map(item => `${year.value}.${item}`).join(',');\n const body = Object.assign({}, queryParams, { yearQm: _year });\n if (queryParams.bu.length) {\n body.bu = findBuNameById(queryParams.bu)\n }\n body.brand = body.brand.length ? body.brand : queryBrand.value\n getBudgetReportData(body).then(res => {\n const data = transformData(res, queryParams.reportView);\n Object.assign(reportData.value, data);\n workbook && workbook.destroy();\n workbook = null;\n worksheet = null;\n ssHotTopInit(data);\n })\n }\n //根据bu获取version最新版本\n const fetchLastVersion = (make: string) => {\n getVersion(make).then(data => {\n queryParams.kufri = data;\n initData()\n })\n }\n\n const handlerResetClick = () => {\n Object.assign(queryParams, {\n brand: [],\n bu: defaultBuIds,\n check: true,\n // kufri: '',\n // make: '',\n reportView: 'TypeClass',\n rtOrWs: 'RT',\n yearQm: '',\n submitStatus: [],\n activeStatus: 'Active'\n })\n year.value = moment().add('month', 1).format('YYYY');\n qm.value = [getDefaultQm()];\n initData();\n }\n\n const fetchFindBrandByBu = async (buId: string[]): Promise => {\n try {\n const result = await getBrand({ params: { bu: buId } });\n const brands = result.map(item => {\n return item.brands;\n })\n Object.assign(brandOptions.value, brands.flat());\n } catch (e) {\n console.log(e);\n }\n }\n\n const handleChangeBu = () => {\n queryParams.bu = buIdsWithChildren(buTree, queryParams.bu)\n }\n\n\n watch(() => queryParams.bu, (async value => {\n if (!inited) {\n return\n }\n brandOptions.value = [];\n queryParams.brand = [];\n if (value) {\n initVehicleMake()\n initVehicleBrand()\n const bu = findBuNameById(queryParams.bu)\n //根据BU是AMG修改Report View 为model\n if (bu.includes(\"AMG\")) {\n queryParams.reportView = 'Model';\n }\n }\n }))\n\n watch(() => queryParams.brand, (value => {\n initVehicleMake()\n }))\n\n watch(() => queryParams.reportView, (value => {\n if (value === 'Model') {\n queryParams.check = false;\n }\n }))\n\n //处理侧边栏变化后刷新spread js\n watch(() => state.sideNavCollapsed, (value) => {\n nextTick(() => {\n workbook && workbook.refresh();\n })\n })\n\n let guideLineConfig: Record | undefined = undefined\n\n watch(() => queryParams.make, (value) => {\n initVehicleBu()\n if (value) {\n fetchLastVersion(value)\n queryParams.planningName = guideLineConfig?.[value].planningName\n }\n \n })\n\n onMounted(async () => {\n // 因为业务需求改变,make和kufri有可以请求数据\n // initData();\n guideLineConfig = await getGuideLineConfig()\n await initBuTree()\n await initVehicleMake()\n await initVehicleBu()\n inited = true\n wait.toRun?.()\n })\n onBeforeUnmount(() => {\n workbook && workbook.destroy();\n })\n return {\n handlerResetClick,\n ...toRefs(queryParams),\n reportData,\n\n // options\n reportViewOptions,\n rtWsOptions,\n makeOptions,\n buOptions,\n brandOptions,\n programStatusOptions,\n qmOptions,\n SHOW_PARENT,\n SHOW_ALL,\n //year q/m\n year,\n qm,\n openYear,\n handlerOpenChange,\n handlerPanelChange,\n handleChangeBu,\n initData,\n handleFocus,\n }\n }\n })\n","import { render } from \"./Content.vue?vue&type=template&id=a8ab41a0&scoped=true&ts=true\"\nimport script from \"./Content.vue?vue&type=script&lang=ts\"\nexport * from \"./Content.vue?vue&type=script&lang=ts\"\n\nimport \"./Content.vue?vue&type=style&index=0&id=a8ab41a0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a8ab41a0\"]])\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!./Role.vue?vue&type=style&index=0&id=1b23a3ba&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!./Content.vue?vue&type=style&index=0&id=a8ab41a0&scoped=true&lang=scss\"","module.exports = __webpack_public_path__ + \"img/mercedes-benz-logo-desktop.c9e30137.png\";","import { fetchGet, fetchPost, fetchPut } from './index'\nimport { ResProps } from './types'\nimport {\n overviewProps,\n budgetDataProps,\n layoutListProps,\n independentProps,\n BudgetTemplateProps,\n} from '@/views/Budget/types';\nimport {\n BudgetInfoProps,\n BudgetTableProps,\n BudgetKufriProps,\n SmallTableProps\n} from '@/views/Budget/BudgetInput/types';\nimport { BudgetAllocationTableProps } from '@/views/Budget/BudgetAllocation/types';\nimport { QueryParams, BudgetReportProps } from '@/views/Budget/BudgetReport/types';\nimport { QueryParams as QueryParamsGuideline } from '@/views/Reporting/types';\nimport { GuideLineConfig, GuideLineData, GuideLineDataParam } from '@/views/Approve/ControllingRoleApprove/ProgramHome/types'\n\n\n// 获取Overview全量--------------------\nexport const OverviewFindall = (): Promise => {\n return fetchGet('/bgapi/system_setting/program_type')\n}\n\n\n// 获取全部 Offer type\nexport const settingGetOfferType = (): Promise => {\n return fetchGet('/pgapi/program/setting/get_offer_type')\n}\n\nexport const getProgramType = (): Promise => {\n return fetchGet('/pgapi/program/setting/get_program_type')\n}\n// 检查是否重复\nexport const CheckExisted = (params = {}): Promise => {\n return fetchPost(`/bgapi/system_setting/is_existing`, params)\n // return fetchPost(`/pgapi/program/setting/is_existing_program_type`, params)\n}\n\n// 添加Offer Type\nexport const AddOverview = (params = {}): Promise => {\n return fetchPost('/pgapi/program/setting/add_program_type', params)\n}\n\n// 添加si offer\nexport const AddSioffer = (params = {}, offerTypeId: string): Promise => {\n return fetchPost(`/bgapi/system_setting/program_type/${offerTypeId}/si_offer`, params)\n}\nexport const systemSettingProgramType = (params = {}): Promise => {\n return fetchPost('/bgapi/system_setting/program_type', params)\n}\n\n// 更改Offer status状态\nexport const UpdateOfferStatus = (params = {}, offerTypeId: string) => {\n return fetchPut(`/bgapi/system_setting/program_type/${offerTypeId}`, params)\n}\n\n\n// 更改si status状态\nexport const UpdateSiStatus = (params = {}, offerTypeId: string): Promise => {\n return fetchPut(`/bgapi/system_setting/program_type/${offerTypeId}/si_offer`, params)\n}\n\n// 修改si offer\nexport const UpdateSiOffer = (params = {}, offerTypeId: string, siofferId: string): Promise => {\n return fetchPut(`/bgapi/system_setting/program_type/${offerTypeId}/si_offer/${siofferId}`, params)\n}\n\n// 导出excel\nexport const ExportToexcel = (): Promise => {\n return fetchGet('/bgapi/system_setting/program_type/excel')\n}\n// ------------------------------\n\n// budget template\n// 获取全量\nexport const BudgettpFindall = (offerTypeId: string | string[]): Promise => {\n return fetchGet(`/bgapi/system_setting/program_type/${offerTypeId}/budget_template`)\n}\n\n// 修改budget template\nexport const Savebudgettp = (params = {}, offerTypeId: string | string[]): Promise => {\n return fetchPut(`/bgapi/system_setting/program_type/${offerTypeId}/budget_template`, params)\n}\n\n// 添加budget template的属性\nexport const AddbudgettpAttr = (params = {}, offerTypeId: string | string[]): Promise => {\n return fetchPost(`/bgapi/system_setting/program_type/${offerTypeId}/budget_template/attribute`, params)\n}\n\n// 快速添加设置\nexport const QuickReplace = (params = {}, offerTypeId: string | string[]): Promise => {\n return fetchPost(`/bgapi/system_setting/program_type/${offerTypeId}/budget_template/replace`, params)\n}\n\n// 获取budget template layout全量\nexport const BudgetFormLayout = (offerTypeId: string | string[]): Promise => {\n return fetchGet(`/bgapi/system_setting/program_type/${offerTypeId}/budget_template/form`)\n}\n\n// 确认budget template layout\n\nexport const ConfimFormLayout = (params = {}, offerTypeId: string | string[]): Promise => {\n return fetchPut(`/bgapi/system_setting/program_type/${offerTypeId}/budget_template/form`, params)\n}\n\n// 获取budget template的数据\nexport const GetbudgetTemplate = (): Promise => {\n return fetchGet('/bgapi/system_setting/program_type/budget_template/overview')\n}\n\nexport const getbudgetTemplateFleet = (): Promise => {\n return fetchGet('/bgapi/budget/fleet/overview')\n}\n\n\n//budget input 和 detail\n\n//获取budget页面下所以的offerType\nexport const getBudgetInfo = (offerTypeID: string | (string | null)[] | null): Promise => {\n return fetchGet(`/bgapi/budget/findbudget_info/${offerTypeID}`);\n}\n\n//获取budget input table data\nexport const getBudgetTableData = (siofferId: string | number): Promise => {\n return fetchGet(`/bgapi/budget/findbudget_data/${siofferId}`);\n}\n// 查询fleetBudget Overview汇总数据\nexport const findbudgetDataOverview = (programId: string | (string | null)[] | null , offerTypeId: string | number): Promise => {\n return fetchGet(`/bgapi/budget/findbudget_data/${programId}/${offerTypeId}`);\n}\n// 查询fleetBudget Overview汇总数据\nexport const fleetBudgetDataSummary = (programId: string | (string | null)[] | null , offerTypeId: string | number): Promise => {\n return fetchGet(`/bgapi/budget/fleet_budget_data/summary/${programId}/${offerTypeId}`);\n}\n\n//更新budget input 区域的cell\nexport const updateInputData = (data: BudgetTableProps): Promise<{}> => {\n return fetchPost('/bgapi/budget/update_inputdata', data);\n}\n\n//获取budget header信息\nexport const getBudgetKufriData = (siofferId: string): Promise => {\n return fetchPost(`/bgapi/budget/sum_kufri_budget/${siofferId}`);\n}\n\n\n//获取分摊budget input 数据\nexport const getBudgetAllocationData = (psiOfferCustomerId: string): Promise => {\n return fetchGet(`bgapi/allocation/${psiOfferCustomerId}`);\n}\n\n//获取最新的version\nexport const getVersion = (bu: string): Promise => {\n return fetchGet(`/bgapi/budget/kufri_version_latest/${bu}`);\n}\n\n//更新version\nexport const updateVersion = (make: string, programId: string): Promise => {\n return fetchPost(`/bgapi/budget/update_kufri_version/${make}/${programId}`);\n}\n\n//budget report\nexport const getBudgetReportData = (data: any): Promise => {\n return fetchPost(`/bgapi/budget/exportGuideline`, data);\n}\n\n//为了budgetReport 使用不关心结果,在budgetInput更新后调用\nexport const updateProgramView = (siOfferId: string): Promise => {\n return fetchPut(`/bgapi/budget/update/program/view/${siOfferId}`);\n}\n\n//为了budgetReport 使用不关心结果,在budget 分摊后后调用\nexport const budgetExportView = (siOfferId: string): Promise => {\n return fetchPut(`/bgapi/allocation/budget/export/view/${siOfferId}`);\n}\n\n// input by month\nexport const getFillInMonthlyData = (siOfferId: string): Promise => {\n return fetchGet(`/bgapi/budget/budget/fillInMonthly/${siOfferId}`);\n}\n\nexport const getCancelFillInMonthlyData = (siOfferId: string): Promise => {\n return fetchGet(`/bgapi/budget/budget/cancelFillInMonthly/${siOfferId}`);\n}\n\nexport const findbudgetExist = (id: string): Promise => {\n return fetchGet(`/bgapi/budget/findbudget_exist/${id}`);\n}\n// Fleet\nexport const getOfferFleetTable = (): Promise => {\n return fetchGet(`/pgapi/program/setting/get_program_type?programTypeKind=Fleet`);\n}\n\nexport const getFleetTable = (): Promise => {\n return fetchGet(`/pgapi/program/setting/get_customer_type?customerCategory=Fleet`);\n}\n\n// 添加offer type\nexport const addOfferFleetTable = (params = {}): Promise => {\n return fetchPost(`/pgapi/program/setting/add_program_type`, params);\n}\n\n// 添加Fleet Customer Category \nexport const addFleetCustomerCategory = (params = {}): Promise => {\n return fetchPost(`/pgapi/program/setting/add_fleet_customer_category`, params);\n}\n\n// 获取fleet_customer_category\nexport const getCustomerCategoryData = (params = {}): Promise => {\n return fetchGet(`/pgapi/program/setting/get_fleet_customer_category`, params);\n}\n\n// 添加fleet_customer_category\nexport const addCustomerType = (params = {}): Promise => {\n return fetchPost(`/pgapi/program/setting/add_customer_type`, params);\n}\n\nexport const editCustomerType = (params = {}): Promise => {\n return fetchPost(`/pgapi/program/setting/edit_customer_type`, params);\n}\n\n// fleet Configuration\nexport const getFleetByOffetId = (offerId: string): Promise => {\n return fetchGet(`/bgapi/budget/fleet/${offerId}`);\n}\n\n// 更改状态\nexport const changeFleetStatus = (params = {}): Promise => {\n return fetchPost(`/pgapi/program/setting/active_customer_type`, params);\n}\n\n// 更改状态Offer type\n\nexport const changeFleetOfferStatus = (params = {}): Promise => {\n return fetchPost(`/pgapi/program/setting/active_program_type`, params);\n}\n// 添加多个customer\nexport const changeFleetStatus1 = (params = {}): Promise => {\n return fetchPost(`/pgapi/program/setting/active_customer_type`, params);\n}\n\nexport const getGuideLineConfig = (): Promise> => {\n return fetchGet('/bgapi/budget/guideLine/config')\n}\n\nexport const saveGuideLineConfig = (config: GuideLineConfig) => {\n return fetchPost('/bgapi/budget/guideLine/config/save', config)\n}\n\nexport const getGuideLineTodoCount = (): Promise => {\n return fetchGet('/bgapi/budget/guideLine/data/todo/counts')\n}\n\nexport const getGuideLineDataList = (make: string, buId: string, brandList: string[], typeClassList: string[]): Promise => {\n return fetchGet('/bgapi/budget/guideLine/data/list', {\n params: {\n make,\n buId,\n brandList,\n typeClassList\n }\n })\n}\n\nexport const saveGuideLineData = (params: GuideLineDataParam[]) => {\n return fetchPost('/bgapi/budget/guideLine/data/save', params)\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!./Role.vue?vue&type=style&index=0&id=402ef94d&lang=scss\""],"sourceRoot":""}