{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/sample/r02.png","webpack:///./src/Utils/decorator/data-load.ts","webpack:///./src/component/evaluate/components/finance-vs-card.vue?2173","webpack:///./src/component/evaluate/comprehensive-benefit-analysis/card.vue?d957","webpack:///./src/Utils/profile.ts","webpack:///./src/assets/svg/数字孪生dark.png","webpack:///./src/assets/sample/所得税前.svg","webpack:///./src/component/NavigationInformation/menu-item/navigation-information.ts","webpack:///./src/prioritization/detailedInformation/detailed-information.vue?3fa5","webpack:///./src/Api/api_data.ts","webpack:///./src/assets/sample/r04.png","webpack:///./src/assets/font/iconfont.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/component/template/tools/template.ts","webpack:///./src/component/template/tools/source.ts","webpack:///./src/assets/sample/r03.png","webpack:///./src/layout/layout.vue?18e9","webpack:///./src/component/weather/baidumap/location.ts","webpack:///./src/assets/font_2033331_hfi48kq1kxv/iconfont.js","webpack:///./src/assets/svg/ies.svg","webpack:///./src/Api/index.ts","webpack:///./src/prioritization/prioritization-scheme/prioritization-scheme.vue?b75f","webpack:///./src/Utils/run_time.ts","webpack:///./src/Api/env.ts","webpack:///./src/layout/slider/data-manage.vue?3559","webpack:///./src/component/evaluate/components/finance-bar.vue?1a07","webpack:///./src/assets/svg/数字孪生.png","webpack:///./src/Api/auth.ts","webpack:///./src/Api/api_simulaion.ts","webpack:///./src/Utils/date-format.ts","webpack:///./src/layout/data-manage/data-view.vue?0a7e","webpack:///./src/Utils/average.ts","webpack:///./src/store/modules/auth.ts","webpack:///./src/store/modules/locationMessage.ts","webpack:///./src/store/modules/weather-data.ts","webpack:///./src/component/evaluate/data/enum.ts","webpack:///./src/component/evaluate/data/cardParam.ts","webpack:///./src/store/modules/evaluate.ts","webpack:///./src/store/modules/project.ts","webpack:///./src/store/store.ts","webpack:///./src/component/DigitalTwins/index.vue?8056","webpack:///./src/component/evaluate/comprehensive-benefit-analysis/environmental-protection.vue?9965","webpack:///./src/component/evaluate/components/finance-container.vue?399a","webpack:///./src/prioritization/chart/information-chart.vue?2bf4","webpack:///./src/prioritization/chart/information-chart.vue","webpack:///./src/prioritization/chart/information-chart.vue?92a0","webpack:///./src/prioritization/chart/information-chart.vue?6098","webpack:///./src/App.vue?be41","webpack:///./src/views/Diagram/index.tsx","webpack:///./src/App.vue","webpack:///./src/App.vue?0ab4","webpack:///./src/App.vue?bff9","webpack:///./src/layout/data-manage/data-view.vue?f2b0","webpack:///./src/layout/slider/data-manage.vue?6107","webpack:///./src/layout/slider/data-manage.vue","webpack:///./src/layout/slider/data-manage.vue?dd6b","webpack:///./src/layout/slider/data-manage.vue?7988","webpack:///./src/layout/data-manage/data-view.vue","webpack:///./src/layout/data-manage/data-view.vue?a84b","webpack:///./src/layout/data-manage/data-view.vue?d156","webpack:///./src/layout/middleware.vue?a851","webpack:///./src/layout/middleware.vue","webpack:///./src/layout/middleware.vue?bb06","webpack:///./src/layout/middleware.vue?d9df","webpack:///./src/component/weather/weather/weather.vue?104f","webpack:///./src/component/weather/Charts/echarts.vue?79d8","webpack:///./src/component/weather/Charts/options.ts","webpack:///./src/component/weather/Charts/echarts.vue","webpack:///./src/component/weather/Charts/echarts.vue?30e7","webpack:///./src/component/weather/Charts/echarts.vue?8045","webpack:///./src/component/weather/weather/chart-option/weather-option-line.ts","webpack:///./src/component/weather/weather/index.ts","webpack:///./src/component/weather/weather/table-column.ts","webpack:///./src/component/weather/weather/weather.vue","webpack:///./src/component/weather/weather/weather.vue?a42f","webpack:///./src/component/weather/weather/weather.vue?160e","webpack:///./src/component/weather/baidumap/baidu-map-location.vue?cb0e","webpack:///./src/component/weather/baidumap/baidu-map-location.vue","webpack:///./src/component/weather/baidumap/baidu-map-location.vue?9a22","webpack:///./src/component/weather/baidumap/baidu-map-location.vue?0094","webpack:///./src/router/index.ts","webpack:///./src/router/data-management.ts","webpack:///./src/layout/layout.vue?c7b8","webpack:///./src/layout/slider/navigation.vue?33d9","webpack:///./src/layout/slider/navigation.vue","webpack:///./src/layout/slider/navigation.vue?5f1f","webpack:///./src/layout/slider/navigation.vue?1fff","webpack:///./src/layout/layout.vue","webpack:///./src/layout/layout.vue?db48","webpack:///./src/layout/layout.vue?9546","webpack:///./src/prioritization/prioritization-scheme/prioritization-scheme.vue?e978","webpack:///./src/prioritization/detailedInformation/detailed-information.vue?66c9","webpack:///./src/prioritization/detailedInformation/detailed-information.vue","webpack:///./src/prioritization/detailedInformation/detailed-information.vue?a675","webpack:///./src/prioritization/detailedInformation/detailed-information.vue?053e","webpack:///./src/Utils/project-export-tool.ts","webpack:///./src/prioritization/prioritization-scheme/prioritization-scheme.vue","webpack:///./src/prioritization/prioritization-scheme/prioritization-scheme.vue?227f","webpack:///./src/prioritization/prioritization-scheme/prioritization-scheme.vue?4423","webpack:///./src/component/DigitalTwins/index.vue?e9ff","webpack:///./src/component/DigitalTwins/index.vue","webpack:///./src/component/DigitalTwins/index.vue?0403","webpack:///./src/component/DigitalTwins/index.vue?dd43","webpack:///./src/component/evaluate/views/finance/finance.vue?9f85","webpack:///./src/component/evaluate/components/finance-bar.vue?704c","webpack:///./src/component/evaluate/components/finance-bar.vue","webpack:///./src/component/evaluate/components/finance-bar.vue?3872","webpack:///./src/component/evaluate/components/finance-bar.vue?23b5","webpack:///./src/component/evaluate/components/finance-container.vue?5333","webpack:///./src/component/evaluate/components/finance-banner.vue?4a5d","webpack:///./src/component/evaluate/components/finance-banner.vue","webpack:///./src/component/evaluate/components/finance-banner.vue?0af1","webpack:///./src/component/evaluate/components/finance-banner.vue?1955","webpack:///./src/component/evaluate/components/finance-vs-card.vue?a3b6","webpack:///./src/component/evaluate/components/finance-vs-card.vue","webpack:///./src/component/evaluate/components/finance-vs-card.vue?83ee","webpack:///./src/component/evaluate/components/finance-vs-card.vue?fb6a","webpack:///./src/component/evaluate/components/finance-container.vue","webpack:///./src/component/evaluate/components/finance-container.vue?a1de","webpack:///./src/component/evaluate/components/finance-container.vue?02e3","webpack:///./src/Utils/promise-utils.ts","webpack:///./src/component/evaluate/views/finance/finance.vue","webpack:///./src/component/evaluate/views/finance/finance.vue?6f74","webpack:///./src/component/evaluate/views/finance/finance.vue?d397","webpack:///./src/component/evaluate/base/base-component.vue?9582","webpack:///./src/component/evaluate/base/param-card-list.ts","webpack:///./src/component/evaluate/base/params-map-list.ts","webpack:///./src/component/evaluate/base/base-load.ts","webpack:///./src/component/evaluate/card-params/param-card.vue?e9f0","webpack:///./src/component/evaluate/card-params/param-card.vue","webpack:///./src/component/evaluate/card-params/param-card.vue?2899","webpack:///./src/component/evaluate/card-params/param-card.vue?7ebb","webpack:///./src/component/evaluate/base/base-component.vue","webpack:///./src/component/evaluate/base/base-component.vue?3fb2","webpack:///./src/component/evaluate/base/base-component.vue?acb7","webpack:///./src/component/evaluate/comprehensive-benefit-analysis/energyEfficiency.vue?1cd8","webpack:///./src/component/evaluate/comprehensive-benefit-analysis/card.vue?940e","webpack:///./src/component/evaluate/comprehensive-benefit-analysis/card.vue","webpack:///./src/component/evaluate/comprehensive-benefit-analysis/card.vue?9581","webpack:///./src/component/evaluate/comprehensive-benefit-analysis/card.vue?dc86","webpack:///./src/component/evaluate/comprehensive-benefit-analysis/energyEfficiency.vue","webpack:///./src/component/evaluate/comprehensive-benefit-analysis/energyEfficiency.vue?4371","webpack:///./src/component/evaluate/comprehensive-benefit-analysis/energyEfficiency.vue?b717","webpack:///./src/component/evaluate/views/finance/finance-component.vue?400c","webpack:///./src/component/evaluate/components/profitTable.vue?b2c2","webpack:///./src/component/evaluate/components/profitTable.vue","webpack:///./src/component/evaluate/components/profitTable.vue?9889","webpack:///./src/component/evaluate/components/profitTable.vue?724f","webpack:///./src/component/evaluate/components/echarts.vue?1343","webpack:///./src/component/evaluate/components/echarts.vue","webpack:///./src/component/evaluate/components/echarts.vue?8bc4","webpack:///./src/component/evaluate/components/echarts.vue?e661","webpack:///./src/component/evaluate/views/finance/finance-load.ts","webpack:///./src/component/evaluate/views/finance/finance-component.vue","webpack:///./src/component/evaluate/views/finance/finance-component.vue?961b","webpack:///./src/component/evaluate/views/finance/finance-component.vue?b301","webpack:///./src/component/evaluate/views/finance/profit-component.vue?bc04","webpack:///./src/component/evaluate/views/finance/profit-component.vue","webpack:///./src/component/evaluate/views/finance/profit-component.vue?6860","webpack:///./src/component/evaluate/views/finance/profit-component.vue?d284","webpack:///./src/component/evaluate/comprehensive-benefit-analysis/environmental-protection.vue?4a3e","webpack:///./src/component/evaluate/comprehensive-benefit-analysis/environmental-protection.vue","webpack:///./src/component/evaluate/comprehensive-benefit-analysis/environmental-protection.vue?6915","webpack:///./src/component/evaluate/comprehensive-benefit-analysis/environmental-protection.vue?788c","webpack:///./src/component/evaluate/router.ts","webpack:///./src/router/router.ts","webpack:///./src/Utils/version.ts","webpack:///./src/main.ts","webpack:///./src/assets/sample/所得税后.svg","webpack:///./src/component/template/tools/tools.ts","webpack:///./src/Utils/message/message-bus.ts","webpack:///./src/layout/slider/navigation.vue?4fa7","webpack:///./node_modules/handsontable/node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/assets/sample/r01.png","webpack:///./src/assets/sample/箭头.svg"],"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","DataLoad","propertyKey","descriptor","method","async","args","commit","this","profile","Map","querySelectorAll","forEach","el","prop","set","content","NavigationInformation","_active","active","onSelect","unSelect","select","borderColor","valueItem","Message","find","x","component","aim","color","boxShadow","backgroundColor","borderBottom","getQueryString","qs","location","search","substring","items","split","len","item","decodeURIComponent","transformNumberToString","String","deleteProjectGroup","id","getProjectGroup","params","postProjectGroup","config","putProjectGroup","deleteSimuData","postSimuData","getSimuData","catch","putSimuData","getOperationStrategy","deleteOperationStrategy","postWeatherParam","putWeatherParam","getWeatherParam","getWeatherData","postWeatherData","header","updateWeatherData","loadWeaterData","loadDateData","getProjectcalculation","getDataByParams","simu_id","kind","getDataBySearchValue","getEvaluationDataByParams","planId","postEvaluationDataByParams","patchEvaluationDataByParams","postInvestmentBatchAndProportion","getInvestmentBatchAndProportion","param","getConstruction","postConstruction","getTaskManagerData","time","deleteResource","patchDataByType","postDataByType","getTypicalCase","__iconfont__svg__cssinject__","write","log","addEventListener","indexOf","readyState","removeEventListener","attachEvent","a","h","documentElement","doScroll","onreadystatechange","innerHTML","style","position","width","height","overflow","firstChild","insertBefore","body","map","webpackContext","req","webpackContextResolve","keys","templateData","GasTurbine","HeatPump","GasBoiler","CompRefrg","AbsorptionChiller","CentrifugalPump","excelMap","fuels","燃料类型","计量单位","CO2排放系数","NOx排放系数","SO2排放系数","灰尘排放系数","常数电价","类型","route","deal","Notification","description","分时电价","时间","Array","index","阶梯电价","quantity","模型名称","计价方式","光伏","生产厂商","设备型号","功率因数","风机","热管式太阳能集热器","蓄电池","储水罐","蓄冰空调","变压器","传输线","模块化多电平变流器","管道","负荷名称","负荷模型","负荷类型","区分工作日和休息日","光伏_建模仿真","风机_建模仿真","热管式太阳能集热器_建模仿真","蓄电池_建模仿真","储水罐_建模仿真","蓄冰空调_建模仿真","变压器_建模仿真","传输线_建模仿真","模块化多电平变流器_建模仿真","管道_建模仿真","日采暖制冷起始时间","日采暖制冷结束时间","Location","lng","lat","_latitude","Number","_MARK_MODE","_longitude","v","z","setConfig","headers","getters","getToken","interceptors","use","url","includes","defaults","withCredentials","response","status","POST","new_config","base","state","iesMode","iesURL","baseURL","post","res","GET","newUrl","PUT","put","DELETE","delete","PATCH","patch","run_time","callback","delay","setInterval","_intervalIdList","_timeoutIdList","clearInterval","isDev","remote","origin","userCenter","testUrl","projectUrl","getProfile","query","payload","variables","input","token","logout","runOptimization","getOptimizationResult","getPlanDetailInfo","simuId","taskId","simuid","taskid","resultType","getRelatedOptimizationResult","getLastSimulationTask","getSimuLog","removeOptimizationTask","saveDataToclickhouse","getEconomyResult","getEnergyEvaluation","getEnvironmentalEvaluation","getLiabilityAssetsResult","getFinancialPlanCashFlowResult","getInvestPlanDataResult","getFlowCashEvaluteResult","getAssetsDepreciationResult","getSumCostResult","getSumInvestFlowCashResult","getProjectCashFlowResult","getIncomeTaxResult","getLoanRepaymentPlanResult","getOverviewResult","dateFormat","fmt","date","ret","Date","opt","getFullYear","toString","getMonth","getDate","getHours","getMinutes","getSeconds","k","RegExp","exec","replace","padStart","dateParse","average","numbers","isArray","reduce","b","toFixed","arrayTransposition","arr","newArray","_col","row","removeDuplicates","obj","resultArr","newItem","authMessage","userInfo","getUserInfo","mutations","setToken","setUserInfo","actions","putUserInfo","context","locationMessage","getLocationMessage","setLocationMessage","Weather","weatherDataList","setWeatherData","getWeatherDataByLocation","SCHEDULE_TYPE","SOURCE_TYPE","ASSETS_TYPE","PRODUCTION_COST_TYPE","CHARGE_TYPE","ANALYSIS_TYPE","SCHEDULE_TYPE_TO_DATA","SOURCE_TYPE_TO_DATA","ASSETS_TYPE_TO_DATA","PRODUCTION_COST_TYPE_TO_DATA","CHARGE_TYPE_TO_DATA","ANALYSIS_TYPE_TO_DATA","cardParam","editable","cardParam2","cardParam3","cardParam4","cardParam5","cardParam6","Evaluate","schedule","routeName","theme","planList","getCardParamBySchedule","getTheme","getPlanList","setSchedule","setRoute","setTheme","localStorage","setItem","setPlanList","payLoad","Project","project","simusPlan","getProjectData","getSimusPlan","setProjectData","setProjectDataWithFinance","finance_overview","setProjectDataWithEnvironment","environment_evaluation","results","setProjectDataWithEnergy","energy_evaluation","setSimusPlan","setProjectDataWithTaskId","simus","runTime","loadStepTime","titleMap","蒸汽按热量计价","采暖用热按热量计价","冷负荷中的按热量计价","能效水平","可再生能源利用比例","Store","current_id","isLoading","projects","running","runend","progress","currentPlanId","optimizationMode","isStop","navigationRecords","diagram","scheme","evaluate","digitalTwins","isMainOnLoading","stringFieldRules","required","trigger","numberFieldRules","transform","pattern","isTypicalLibraryEditMode","hotSettingsData","studioIframe","setCurrentId","setProjects","setTaskId","setRunning","setRunend","setIsStop","setprogress","setCurrentPlanId","setOptimizationMode","newProject","desc","modifiedTime","setNavigationRecord","setIsMainOnLoading","sethotSettingsData","task_id","optimizationpara","contData","runningGet","mag","msg","element","_setTimeout","_clearTimeTickers","getProcess","getTaskId","getRunend","getRunning","getOptimizationMode","getCurrentPlanId","getTitle","getNavigationRecords","getIsMainOnLoading","getHotSettingsData","render","_vm","_h","$createElement","_c","_self","defaultHeight","attrs","staticRenderFns","lineStyle","colorList","areaStyle","y","x2","y2","colorStops","offset","global","title","text","textStyle","fontSize","left","top","legend","xAxis","splitArea","show","xAxisData","yAxis","series","creatSeries","chart","option","CreatOption","setOption","resize","$el","onresize","default","immediate","deep","zh_CN","SIMU_STUDIO_PATH","$store","nVal","oVal","URL","env","hash","encodeURIComponent","currentProject","model","onOption","$route","urlChange","u","jobFilter","jobIndex","jobRid","$refs","contentWindow","newHash","job","parserHash","newURL","oldHash","oldJob","oldURL","oldJobRid","$router","path","endsWith","getItem","className","themeClass","_nVal","_oVal","setIES","components","editor","staticClass","staticStyle","_e","this$1","maxWidth","minWidth","openKeys","on","$event","openPage","$$v","selectKeys","expression","class","_v","_l","routes","Group","PIndex","children","CIndex","getMenuItemIsShow","_s","meta","SubMenu","template","isSubMenu","props","menuInfo","openNames","isExpanded","Boolean","disableInTypicalLib","childKey","searchNode","node","previousValue","currentValue","routeArr","parseInt","searchOpenKeys","eventBus","$on","currentNavigation","currentRoute","matched","$emit","parentPath","routeToArray","childrenPath","parentIndex","findIndex","childIndex","isRouterAlive","$nextTick","DataManage","pageSpinning","xs","sm","md","exportLoading","download","disabledFunction","uploadExcel","timeData","year","yearSource","$set","month","monthSource","daySource","editFlag","checked","editTable","htSettings","ref","columns","weather_data","tableSpinning","record","weatherOption","chartList","getStaticStyle","tooltip","axisPointer","crossStyle","toolbox","feature","dataView","readOnly","magicType","restore","saveAsImage","min","max","interval","axisLabel","formatter","yAxisIndex","val","propoption","WeatherOptionLine","line","grid","right","dataIESType","dataWeatherNewType","label","fill","_x","day","WEATHER_HT_COLUMNS","WEATHER_COLUMNS","dataIndex","align","WEATHER_COLUMNS_New","WEATHER_HT_COLUMNS_New","ieslabDisableRules","iesDisableRules","chartSelectListIES","stretchH","autoWrapRow","maxRows","rowHeights","manualRowResize","manualColumnResize","rowHeaders","manualRowMove","manualColumnMove","ht_columns","colHeaders","values","afterChange","changes","source","isNaN","weather_data_cache","afterAutofill","fillData","sourceRange","targetRange","end","to","start","from","getDateFunc","formatStatsData","tsoil3","lwgab_swgdn","t10m","u10m","u50m","v10m","v50m","qv10m","adj_sfc_sw_direct_all_1h","adj_sfc_sw_diff_all_1h","solar_zen_angle_1h","time_after","time_before","sid","toFixedData","weather_coordinates","chartSelectListNew","allRequests","xx","$notification","success","yData","nameTextStyle","cloudPssTheme","splitLine","chartSelectList","info","$message","getData","init","Worksheet","initStyle","unshift","size","addRows","file","userUpload","pop","loadDataByExcel","dataList","isValidateDate","validateDate","duration","list","str","valid","test","startYear","firstTime","lastYear","lastTime","EChart","spinning","center","mapReady","padding","moveMapMark","loadWeatherData","marginLeft","MARK_MODE","getBackMarker","slot","marker_position","display","latitude","longitude","saveLocation","param_id","simu","BMap","Bmap","isMapRender","styleLocal","enableScrollWheelZoom","point","panTo","Point","Control","Navigation","Marker","Scale","CityList","iesResilienceEval","ieslabWeatherData","ieslabPhotovoltaicSys","ieslabWindPowerGenerator","ieslabGasTurbine","ieslabHeatPump","ieslabGasBoiler","ieslabHPSolarCollector","ieslabCompRefrg","ieslabAbsorptionChiller","ieslabBattery","ieslabWaterTank","ieslabIceStorageAC","ieslabTransformer","ieslabTransferLine","ieslabMMC","ieslabCentrifugalPump","ieslabPipe","ieslabThermalLoads","ieslabPowerLoad","ieslabFuel","ieslabHVACHeating","ieslabHVACCooling","ieslabConstPower","ieslabTimeSharing","ieslabLadderElectricity","ieslabLadderTime","GeneralTemplate","dataRouter","redirect","requireAuth","middleware","role","icon","visible","isShowBatchImport","iesDataRouter","glHeader","short","projectInfo","container","it","openPlan","isActive","directives","rawName","useState","useGetters","isRunOptimizationVisible","ieslabGmm","ieslabScheme","ieslabEvaluate","ieslabDigitalTwins","ieslabResilienceEval","ieslabResiliencePlan","ieslabResilienceRecovery","ieslabResilienceGenerate","_props","router","commonList","visable","iesList","VueInstance","startsWith","navigationRecord","navigation","loadPlanList","publicLevel","dispatch","open","Diagram","modeCode","onChange","simulation","isRunning","stopCalculate","deleteTask","startCalculate","showLog","exportProject","tableType","loadingDeviceParameterList","getDeviceParameterList","createdate","cmd","tableData","tableColumns","scopedSlots","_u","fn","initDetail","relatedTaskId","deviceParameterList","detailColumn","informationTaskId","plan","_m","selectComparisonPlan","returnScheme","planData","defaultName","upDataDefaultName","groupList","group","loading","systemDataColumns","systemBodyData","initialPlanId","normal","emphasis","barBorderWidth","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","u_name","typicalDay","resultDataDict","usrDefinedName","containLabel","brush","xAxisIndex","iconStyle","silent","axisLine","onZero","dataZoom","filterMode","inverse","loadDetailData","initEcharts","initTable","getTypicalDay","getPlanData","headerDesc","bodyData","handleTableData","group2","JSON","parse","stringify","newVal","refreshChart","dealDetailData","drawData","drawGroup","groupDesc","showGoup","keyset","itemStyle","lineData","column","hearderName","dataItem","rowData","compName","fixed","customRender","projectName","flat","newArr","initNewSheets","nameList","dataObj","tmp","Math","floor","InformationChart","responseOfLastSimulationTask","responseOfOptimizationResult","responseOfPlanDetailInfo","headerDescList","promiseListOfEquipmentInformationData","equipmentList","equipmentListWithTable","ls","api_data","tHeader","handleData","equipmentInformationData","initXlsxData","ratedParam","PerformanceCurve","OperateParam","operationalConstraints","economicParam","manufacturer","equipType","loadPlanListData","promiseOfPlanDetailInfoList","loadPlanDetailInfo","planDetailInfoList","exportXlsxFile","equipmentInformationDataList","loadEquipmentInformationDetailsData","relatedPlanList","optimizedSystem","term","contrastivePlan","relatedPlanTableData","contrastivePlanIndex","stopFlag","loadLastSimulationTask","optPara","addtime","logInfo","runEnd","getSimulationResult","responseData","taskData","innerWidth","planDataList","DeviceParameterList","DeviceData","exportProjectTool","exportToFiles","DetailedInformation","flag","exportToFile","getRelatedCalculateData","financialAppraisalData","relatedData","banners","banner","bannerPrice","bannerTitle","bannerColor","contextTitle","unit","contextPrice","vsCards","card","preValue","preDesc","postValue","postDesc","extend","alignItems","项目动态总投资","年销售收入","总投资收益率","平均年总成本费用","资本金利润率","资本金内部收益率","所得税前投资内部收益率","所得税后投资内部收益率","所得税前投资财务净现值","所得税后投资财务净现值","所得税前投资回报期","所得税后投资回报期","delayedPromise","defaultFinancialAppraisalData","relatedSimuId","api_simulaion","margin","getCalculateResult","getRelatedPlanList","excelData","$options","periodicGetCalculateResult","signTime","isGotData","paramsMapList","cardMessage","options","rate","updateData","ParamCardList","projectperiod","initialTerm","operate","build","capitalsource","capitalRatio","borrowingRate","loanTerm","periodGrace","predeterminedNumber","repayment","assetformation","fixedAssetsRatio","residualRrate","depreciationPeriod","reimbursementPeriod","productioncost","capacity","annualSalary","welfareFactor","insuranceRate","materialsExpenses","otherExpenses","workingcapitalandfinancialexpenses","workingCapitalLoanRatio","interestRateAndWorkingCapital","annualAPCirculationTimes","annualStockCirculationTimes","annualCashCirculationTimes","annualARCirculationTimes","projectcalculation","electricityVATRate","steamSaleVATRate","hotColdVATRate","fuelBoughtVATRate","materialBoughtVATRate","legalAccumulationFundRate","aleatoricAccumulationFundRate","cityMaintenanceConstructionTaxTate","educationFeePlus","localEducationPlus","corporateIncomeTaxRate","basicDiscountRate","项目起始年限","折旧年限","摊销年限","贷款年限","计息次数","还款方式","应收账款年周转次数","存货年周转次数","现金年周转次数","应付账款年周转次数","dataType","spinningStatus","LoadType","loadParamsMapMessage","loadData","inputVisible","form","span","rules","initialValue","validator","checkInput","confirm","cancel","onClickEditButton","validateFields","errors","getFieldValue","_rule","$form","createForm","saveResults","saveData","ParamCard","startCal","getEnergyAnalysisData","background","energyAnalysisData","yearIndex","monthIndex","equipmentsList","getTableData","DefaultEnergyAnalysisData","totalPowerSypply","totalPowerLoad","totalPowerLoss","totalHeatSupply","totalHeatLoad","totalHeatLoss","totalCoolSupply","totalCoolLoad","totalCoolLoss","totalSteamSupply","totalSteamLoad","totalSteamLoss","energyEfficiency","renewableEnergyRatio","总供电","总用电","网耗","总供热","总用热","总供冷","总用冷","equipmentName","energyTypeList","energyKey","yearSpan","cool","totalSheetData","cardStruct","concat","sheetsData","yearSheetData","power","heat","steam","CMD_TYPE","isPolling","Card","dataSource","treeMap","barOption","clear","borderWidth","gapWidth","upperLabel","colorSaturation","borderColorSaturation","treeMapData","optionChange","tableMessage","handleDataColumn","handleDataSource","cleanData","targetColumn","headerName","genTreeData","genTreeMapData","handleEchartsData","treePathInfo","treePath","encodeHTML","join","addCommas","visibleMin","levels","getLevelOption","treeData","ParamKeys","genEchartsBarData","tabledata","tableTreeList","sort","serialNumber","ikea","tp","getTreeParent","datasource","key_path","temp_key","temp_data","paramkeys","axisTick","barGap","item1","retList","countParma","ikey","abs","sheetData","dataIndexList","childRow","profitTable","charts","textAlign","cardList","backgroundImage","subtitle","isShowYear","currentYearIndex","endYear","DefaultEnvironmentalData","CO2","氮化物","SO2","烟尘","totalCO2","totalNOX","totalSO2","totalDist","yearList","environmentalData","timeSpan","monthList","pollutionType","yearTableData","monthTableData","getEnvironmentalEvaluationCyclic","monthSheetData","saveDataToWorkingArea","Composition","evaluateRouter","finance","ProjectOverView","permission","newrouter","whiteList","beforeEach","next","store","warn","printVersion","IS_PROD","print","format","productionTip","$mount","Tools","fileName","initData","transposition","dictList","initTemplate","filterVal","formatJson","sheets","workbook","Workbook","creator","created","properties","date1904","views","firstSheet","activeTab","visibility","sheet","worksheet","addWorksheet","addRow","buffer","xlsx","writeBuffer","sheetName","Header","specialCharacters","alignment","horizontal","vertical","outlineLevel","getRow","File","blobURL","createObjectURL","tempLink","decodeURI","click","revokeObjectURL","oninput","files","remove","jsonData","verification","formatTimeString","testField","newDate","setHours","load","arrayBuffer","worksheets","eachRow","cells","cell","isPassesValidation","eachSheet","verifyFields","loadRowDataFromExcelByOption","mapInfo","condition","isSatisfyTheCondition","filedMap","cellData","sheetsName","MessageBus","level","Config"],"mappings":"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ACLsc,MAAO,KACPxf,KAAM,OACNgpB,UAAU,GAEd,CACItsB,KAAM,OACNwG,IAAK,OACLsc,MAAO,UACPxf,KAAM,WAEV,CACItD,KAAM,cACNwG,IAAK,cACLsc,MAAO,eACPxf,KAAM,WAEV,CACItD,KAAM,SACNwG,IAAK,SACLsc,MAAO,YACPxf,KAAM,WAEV,CACItD,KAAM,OACNwG,IAAK,OACLsc,MAAO,mBACPxf,KAAM,WAEV,CACItD,KAAM,OACNwG,IAAK,OACLsc,MAAO,mBACPxf,KAAM,WAEV,CACItD,KAAM,OACNwG,IAAK,OACLsc,MAAO,mBACPxf,KAAM,WAEV,CACItD,KAAM,OACNwG,IAAK,OACLsc,MAAO,mBACPxf,KAAM,YAMRuqB,GAAkB,CACpB,CACIC,UAAW,OACXtnB,IAAK,OACLsc,MAAO,KACPnV,MAAO,IACPogB,MAAO,UAEX,CACID,UAAW,OACXtnB,IAAK,OACLsc,MAAO,UACPnV,MAAO,IACPogB,MAAO,UAEX,CACID,UAAW,cACXtnB,IAAK,cACLsc,MAAO,eACPnV,MAAO,IACPogB,MAAO,UAEX,CACID,UAAW,SACXtnB,IAAK,SACLsc,MAAO,YACPnV,MAAO,IACPogB,MAAO,UAEX,CACID,UAAW,OACXtnB,IAAK,OACLsc,MAAO,mBACPnV,MAAO,IACPogB,MAAO,UAEX,CACID,UAAW,OACXtnB,IAAK,OACLsc,MAAO,mBACPnV,MAAO,IACPogB,MAAO,UAEX,CACID,UAAW,OACXtnB,IAAK,OACLsc,MAAO,mBACPnV,MAAO,IACPogB,MAAO,UAEX,CACID,UAAW,OACXtnB,IAAK,OACLsc,MAAO,mBACPnV,MAAO,IACPogB,MAAO,WAOTC,GAAsB,CACxB,CACIF,UAAW,OACXtnB,IAAK,OACLsc,MAAO,KACPnV,MAAO,IACPogB,MAAO,UAEX,CACID,UAAW,OACXtnB,IAAK,OACLsc,MAAO,UACPnV,MAAO,IACPogB,MAAO,UAEX,CACID,UAAW,SACXtnB,IAAK,SACLsc,MAAO,YACPnV,MAAO,IACPogB,MAAO,UAEX,CACID,UAAW,OACXtnB,IAAK,O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","file":"js/app.a629901f.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-07e5a198\":\"f5149172\",\"chunk-2d0da6c6\":\"31902295\",\"chunk-3de6024a\":\"5350a7a1\",\"chunk-a910bd30\":\"3b9a05e8\"}[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-07e5a198\":1,\"chunk-3de6024a\":1,\"chunk-a910bd30\":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-07e5a198\":\"34ecdeda\",\"chunk-2d0da6c6\":\"31d6cfe0\",\"chunk-3de6024a\":\"8802ef48\",\"chunk-a910bd30\":\"fcad1cc1\"}[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 = \"/ieslab/\";\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","module.exports = __webpack_public_path__ + \"img/r02.0e4257d9.png\";","import { delayedPromise } from '@/Utils/promise-utils';\nimport store from '@/store/store';\n\n/**\n * 用于数据加载的方法,使用这个装饰器会自动让方法运行时界面处于加载中状态\n */\nexport function DataLoad(): MethodDecorator {\n return ((target, propertyKey, descriptor: TypedPropertyDescriptor<(...args) => Promise>) => {\n const method = descriptor.value;\n if (method == null) {\n return;\n }\n descriptor.value = async function (...args): Promise {\n store.commit('setIsMainOnLoading', true);\n await method.call(this, ...args);\n store.commit('setIsMainOnLoading', false);\n };\n return descriptor;\n }) as MethodDecorator;\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance-vs-card.vue?vue&type=style&index=0&id=42c68165&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./card.vue?vue&type=style&index=0&lang=css&\"","const profile = new Map();\ndocument.querySelectorAll('head > [itemprop]').forEach((el) => {\n const prop = el.getAttribute('itemprop');\n if (prop) {\n profile.set(prop, el.href || el.content);\n }\n});\nexport { profile };\n","module.exports = __webpack_public_path__ + \"img/数字孪生dark.07acd917.png\";","module.exports = __webpack_public_path__ + \"img/所得税前.8fef710a.svg\";","import { isArray } from 'lodash';\n\n/** NavigationInformationItem */\nexport type NavigationInformationItem = { name: string; icon?: string; component?: string; value?: unknown };\n/**\n * @author guan\n * @description new NavigationInformation()定义一个导航信息\n * @return void\n */\nexport default class NavigationInformation {\n /** 被选中的样式 */\n static readonly onSelect = {\n color: '#4877fb',\n // borderRadius: '4px',\n boxShadow: ' 0px 0px 2px rgb(0 0 0 / 0.25) inset',\n // backgroundColor: 'rgb(0 0 0 / 0.02)',\n };\n /**正常的蓝色选择样式 */\n static readonly select = {\n backgroundColor: '#5783fb',\n color: '#fff',\n };\n /** 未选中的样式 */\n static readonly unSelect = {};\n /** 小型选项卡样式 */\n static readonly borderColor = {\n borderBottom: '1px solid #3ab9ff',\n color: '#5783fb',\n };\n\n /** 导航名称列表 */\n public Message!: NavigationInformationItem[];\n\n /** 当前选中的导航项 */\n private _active!: string;\n /** _active存取器 */\n get active(): string {\n return this._active;\n }\n /** _active存取器 */\n set active(value: string) {\n this._active = value;\n }\n /**\n * @author guan\n * @description style 的get方法\n * @return void\n */\n getStyle(value: string): typeof NavigationInformation.unSelect | typeof NavigationInformation.onSelect {\n if (this.active === value) {\n return NavigationInformation.onSelect;\n } else {\n return NavigationInformation.unSelect;\n }\n }\n /**\n * @author guan\n * @description style 的get方法\n * @return void\n */\n getStaticStyle(value: string): typeof NavigationInformation.unSelect | typeof NavigationInformation.onSelect {\n if (this.active === value) {\n return NavigationInformation.select;\n } else {\n return NavigationInformation.unSelect;\n }\n }\n /**\n * @author guan\n * @description style 的get方法\n * @return void\n */\n getItemStyle(value: string): typeof NavigationInformation.borderColor | void {\n if (this.active === value) {\n return NavigationInformation.borderColor;\n }\n }\n /** 获取当前状态下的值 */\n getValue(): unknown {\n const valueItem = this.Message.find((x) => {\n return x.name === this.active;\n });\n if (valueItem) return valueItem.value;\n else return '';\n }\n /**\n * @author guan\n * @description 获取对应的组件\n * @return 组件说明\n */\n getComponent(): string | void {\n const component = this.Message.find((x) => {\n return x.name === this.active;\n });\n if (!component) {\n throw new Error('未找到值,请检查错误');\n } else return component.component;\n }\n /**\n * @author: guan\n * @description: 通过值设置当前选中状态\n */\n setActiveByValue(value: string): void {\n const aim = this.Message.find((x) => x.value === value);\n if (aim) {\n this.active = aim.name;\n } else return;\n }\n /** 类的构造器 */\n constructor(name: NavigationInformationItem[], select: string) {\n if (!isArray(name)) {\n throw new Error('出错');\n }\n this.Message = name;\n this.active = select;\n }\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./detailed-information.vue?vue&type=style&index=0&lang=css&\"","import * as API from './';\nimport { WeatherParam } from '@/interfaces/weather_interface';\nimport { ProjectGroup } from '@/interfaces/api_interface';\nimport { AxiosRequestConfig } from 'axios';\n\n/**\n * responseMessage\n */\nexport interface responseMessage {\n /**\n * links\n */\n links: object;\n /**\n * count\n */\n count: number;\n /**\n * current\n */\n current: number;\n /**\n * results\n */\n results: T;\n}\n\n/**\n * EquipmentInformation\n */\nexport interface EquipmentInformation {\n /**\n * id\n */\n id: number;\n /**\n * manufacturer\n */\n manufacturer: string;\n /**\n * kind\n */\n kind: string;\n /**\n * equipType\n */\n equipType: string;\n /**\n * ratedParam\n */\n ratedParam: Record;\n /**\n * operationalConstraints\n */\n operationalConstraints: Record;\n /**\n * economicParameters\n */\n economicParameters: {\n PurchaseCost: string;\n FixedOMCost: string;\n VariableOMCost: string;\n };\n /**\n * isDelete\n */\n isDelete: boolean;\n /**\n * simu\n */\n simu: number;\n}\n\n/**\n *获取路径中的参数\n */\nexport function getQueryString(): Record {\n const qs = location.search.substring(1); // 获取url中\"?\"符后的字串\n const args: Record = {}; // 保存参数数据的对象\n const items = qs.length ? qs.split('&') : []; // 取得每一个参数项,\n const len = items.length;\n\n for (let i = 0; i < len; i++) {\n const item = items[i].split('=');\n const name = decodeURIComponent(item[0]),\n value = decodeURIComponent(item[1]);\n if (name) {\n args[name] = value;\n }\n }\n return args;\n}\n\n/**\n *把数字转为字符串\n */\nexport function transformNumberToString(data: object): void {\n if (data == null) {\n return;\n }\n for (const key in data) {\n if (key === 'simu' || key === 'id') {\n continue;\n }\n if (typeof data[key] === 'number') {\n data[key] = String(data[key]);\n } else if (typeof data[key] === 'object') {\n transformNumberToString(data[key]);\n }\n }\n}\n\nexport default {\n deleteProjectGroup: async (id: number): Promise> => {\n return await API.DELETE('/rest/projectgroup/' + id + '/');\n },\n getProjectGroup: async (params: Record): Promise<{ results: ProjectGroup[] }> => {\n return await API.GET('/rest/projectgroup/', params);\n },\n postProjectGroup: async (params: Record, config?: AxiosRequestConfig): Promise> => {\n return await API.POST('/rest/projectgroup/', params, config);\n },\n putProjectGroup: async (params: Record, config?: AxiosRequestConfig): Promise> => {\n return await API.PUT(`/rest/projectgroup/${params.id}/`, params, config);\n },\n deleteSimuData: async (id: number): Promise> => {\n return await API.DELETE('/rest/simu/' + id + '/');\n },\n postSimuData: async (params: Record, config?: Record): Promise> => {\n return await API.POST>('/rest/simu/', params, config);\n },\n //eslint-disable-next-line\n getSimuData: (params: Record): Promise => {\n const p = params;\n if (p.id) {\n return API.GET('/rest/simu/' + p.id + '/').catch((e) => {\n throw e;\n });\n } else {\n return API.GET('/rest/simu/', params);\n }\n },\n //eslint-disable-next-line\n putSimuData: (params: { id: number }): any => {\n return API.PUT('/rest/simu/' + params.id + '/', params);\n },\n //eslint-disable-next-line\n getOperationStrategy: (params: object): any => {\n return API.GET('/rest/operation_strategy/', params);\n },\n //eslint-disable-next-line\n deleteOperationStrategy: (params: { id: number }): any => {\n return API.DELETE('/rest/operation_strategy/' + params.id + '/', {});\n },\n /** 获取天气 */\n postWeatherParam: (params: { lat: number; lng: number; simu_id: number; id?: number; simu?: number }): Promise => {\n return API.POST('/rest/weather_param/', params, {});\n },\n putWeatherParam: (params: { lat: number; lng: number; simu_id: number; id?: number; simu?: number }): unknown => {\n return API.PUT('/rest/weather_param/' + params.id + '/', params);\n },\n getWeatherParam: (params: object): Promise<{ results: Array<{ id: number; lat: string; lng: string; simu: number }> }> => {\n return API.GET('/rest/weather_param/', params);\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getWeatherData: (params: { time_after?: string; time_before?: string; sid: string; size?: number; mode?: string }): Promise<{ results: any }> => {\n return API.GET(`/rest/weather_data/`, params);\n },\n postWeatherData: (params: object, header: object): unknown => {\n return API.POST('/rest/weather_data/', params, header);\n },\n\n updateWeatherData: (params: { id: number }): unknown => {\n return API.PUT('/rest/weather_data/' + params.id + '/', params);\n },\n // 加载天气数据\n loadWeaterData: (params: WeatherParam): Promise => {\n return API.GET('/load_weather/', params);\n },\n // 加载日期数据\n loadDateData: (params: { simu_id: number }): Promise<{ firstTime: string; lastTime: string }> => {\n return API.GET('/load_date/', params) as Promise<{ firstTime: string; lastTime: string }>;\n },\n /**\n * 方案评估模块下的rest方法\n */\n getProjectcalculation: (params: object): unknown => {\n return API.GET('/rest/projectcalculation/', params);\n },\n // 带参数信息库接口\n getDataByParams: (params: { type: string; params: string; search?: string }): Promise> => {\n if (params.search) {\n return API.GET>(`/rest/${params.type}/`, {\n simu_id: getQueryString()['simu_id'],\n kind: params.params,\n search: params.search,\n });\n } else return API.GET>(`/rest/${params.type}/`, { simu_id: getQueryString()['simu_id'], kind: params.params });\n },\n\n // 方案评估模块get 统一方法\n getDataBySearchValue: (params: { type: string; params: string }): Promise> => {\n return API.GET('/rest/search/', { type: params.type, value: params.params });\n },\n getEvaluationDataByParams: (params: { type: string; id: number }): Promise> => {\n return API.GET>(`/rest/${params.type}/`, { simu_id: getQueryString()['simu_id'], planId: params.id });\n },\n\n // 方案评估模块put 统一方法\n postEvaluationDataByParams: (params: Record): unknown => {\n return API.POST(`/rest/${params.type}/`, { ...params, type: undefined }, {});\n },\n\n // 方案评估模块put 统一方法\n patchEvaluationDataByParams: (params: Record): unknown => {\n return API.PUT(`/rest/${params.type}/` + params.id + '/', params);\n },\n //投资批次以及比例\n postInvestmentBatchAndProportion: (data: Array<{ planId: number; rate: string; simu: string; year: string }>): Promise => {\n return API.POST('/rest/investmentbanchandproportion/', data, {});\n },\n getInvestmentBatchAndProportion: (param: {\n simu_id: number;\n planId: number;\n }): Promise<{ results: Array<{ id: number; year: string; rate: string; simu: number; planId: number }> }> => {\n return API.GET('/rest/investmentbanchandproportion/', param);\n },\n //建设投资明细\n getConstruction: (param: Record): Promise => {\n return API.GET('/taskmanager/getConstruction/', param);\n },\n postConstruction: (data: object): Promise => {\n return API.POST('/rest/detailsconstructioninvestment/', data, {});\n },\n\n getTaskManagerData: (params: { type: string; params?: string; id: number; time?: number }): Promise> => {\n return API.GET>(`/taskmanager/${params.type}`, {\n simu_id: getQueryString()['simu_id'],\n planId: params.id,\n time: params.time ? params.time : 0,\n });\n },\n /**\n * 数据管理模块下的数据删除方式\n */\n deleteResource: (params: { type: string; id: number }): Promise => {\n return API.DELETE(`/rest/${params.type}/${params.id}/`, {});\n },\n patchDataByType: (id: number, params: object, type: string): Promise => {\n transformNumberToString(params);\n return API.PATCH(`/rest/${type}/${id}/`, params);\n },\n\n postDataByType: (\n type: string,\n params: Array>,\n header: Record,\n config: Record,\n ): Promise => {\n transformNumberToString(params);\n return API.POST(`/rest/${type}/`, params, config);\n },\n getTypicalCase: (params: { type: string }): Promise => {\n return API.GET('/get_typical_case/', params);\n },\n};\n","module.exports = __webpack_public_path__ + \"img/r04.64a1d539.png\";","!(function (s) {\n var c,\n t =\n '',\n l = (c = document.getElementsByTagName('script'))[c.length - 1].getAttribute('data-injectcss');\n if (l && !s.__iconfont__svg__cssinject__) {\n s.__iconfont__svg__cssinject__ = !0;\n try {\n document.write('');\n } catch (c) {\n console && console.log(c);\n }\n }\n !(function (c) {\n if (document.addEventListener)\n if (~['complete', 'loaded', 'interactive'].indexOf(document.readyState)) setTimeout(c, 0);\n else {\n var l = function () {\n document.removeEventListener('DOMContentLoaded', l, !1), c();\n };\n document.addEventListener('DOMContentLoaded', l, !1);\n }\n else\n document.attachEvent &&\n ((t = c),\n (a = s.document),\n (o = !1),\n (e = function () {\n o || ((o = !0), t());\n }),\n (h = function () {\n try {\n a.documentElement.doScroll('left');\n } catch (c) {\n return void setTimeout(h, 50);\n }\n e();\n })(),\n (a.onreadystatechange = function () {\n 'complete' == a.readyState && ((a.onreadystatechange = null), e());\n }));\n var t, a, o, e, h;\n })(function () {\n var c, l;\n ((c = document.createElement('div')).innerHTML = t),\n (t = null),\n (l = c.getElementsByTagName('svg')[0]) &&\n (l.setAttribute('aria-hidden', 'true'),\n (l.style.position = 'absolute'),\n (l.style.width = 0),\n (l.style.height = 0),\n (l.style.overflow = 'hidden'),\n (function (c, l) {\n l.firstChild\n ? (function (c, l) {\n l.parentNode.insertBefore(c, l);\n })(c, l.firstChild)\n : l.appendChild(c);\n })(l, document.body));\n });\n})(window);\n","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\";","/**\n * 2021-3-29 建模仿真导入导出excel数据模板\n * 带有表格的数据\n */\n\nconst templateData = {\n // 燃气轮机\n GasTurbine: [\n {\n key: 'manufacturer',\n name: '生产厂商',\n },\n {\n key: 'equipType',\n name: '设备型号',\n },\n {\n key: 'LocalPressureDropCoe',\n name: '局部压降系数(kPa/(m³·s⁻¹)²)',\n },\n {\n key: 'PowerFactor',\n name: '功率因数',\n },\n {\n key: 'GeneratingPower',\n name: '发电功率[kW]',\n },\n {\n key: 'GeneratingEfficiency',\n name: '发电效率[%]',\n },\n {\n key: 'HeatEfficiency',\n name: '制热效率[%]',\n },\n {\n key: 'MiniOutletTemp',\n name: '最小供水温度 (℃)',\n },\n {\n key: 'MaxOutletTemp',\n name: '最大供水温度 (℃)',\n },\n {\n key: 'PurchaseCost',\n name: '采购成本(万元/台)',\n },\n {\n key: 'FixedOMCost',\n name: '固定运维成本(万元/年)',\n },\n {\n key: 'VariableOMCost',\n name: '可变运维成本(元/kWh)',\n },\n ],\n // 热泵\n HeatPump: [\n {\n key: 'manufacturer',\n name: '生产厂商',\n },\n {\n key: 'equipType',\n name: '设备型号',\n },\n {\n key: 'LocalPressureDropCoe',\n name: '局部压降系数(kPa/(m³·s⁻¹)²)',\n },\n {\n key: 'PowerFactor',\n name: '功率因数',\n },\n {\n key: 'COP',\n name: 'COP',\n },\n {\n key: 'EnergySupply',\n name: '制冷制热功率[kW](制冷为负,制热为正)',\n },\n {\n key: 'MiniHeatOutletTemp',\n name: '制热最小供水温度 (℃)',\n },\n {\n key: 'MaxHeatOutletTemp',\n name: '制热最大供水温度 (℃)',\n },\n {\n key: 'MiniCoolOutletTemp',\n name: '制冷最小供水温度 (℃)',\n },\n {\n key: 'MaxCoolOutletTemp',\n name: '制冷最大供水温度 (℃)',\n },\n {\n key: 'PurchaseCost',\n name: '采购成本(万元/台)',\n },\n {\n key: 'FixedOMCost',\n name: '固定运维成本(万元/年)',\n },\n {\n key: 'VariableOMCost',\n name: '可变运维成本(元/kWh)',\n },\n ],\n // 燃气锅炉\n GasBoiler: [\n {\n key: 'manufacturer',\n name: '生产厂商',\n },\n {\n key: 'equipType',\n name: '设备型号',\n },\n {\n key: 'LocalPressureDropCoe',\n name: '局部压降系数(kPa/(m³·s⁻¹)²)',\n },\n {\n key: 'HeatEfficiency',\n name: '制热效率[%]',\n },\n {\n key: 'HeatPower',\n name: '供热功率[kW]',\n },\n {\n key: 'MiniOutletTemp',\n name: '最小供水温度 (℃)',\n },\n {\n key: 'MaxOutletTemp',\n name: '最大供水温度 (℃)',\n },\n {\n key: 'PurchaseCost',\n name: '采购成本(万元/台)',\n },\n {\n key: 'FixedOMCost',\n name: '固定运维成本(万元/年)',\n },\n {\n key: 'VariableOMCost',\n name: '可变运维成本(元/kWh)',\n },\n ],\n // 电压缩制冷机\n CompRefrg: [\n {\n key: 'manufacturer',\n name: '生产厂商',\n },\n {\n key: 'equipType',\n name: '设备型号',\n },\n {\n key: 'LocalPressureDropCoe',\n name: '局部压降系数(kPa/(m³·s⁻¹)²)',\n },\n {\n key: 'PowerFactor',\n name: '功率因数',\n },\n {\n key: 'COP',\n name: 'COP',\n },\n {\n key: 'CoolSupply',\n name: '制冷功率[kW]',\n },\n {\n key: 'MiniOutletTemp',\n name: '最小供水温度 (℃)',\n },\n {\n key: 'MaxOutletTemp',\n name: '最大供水温度 (℃)',\n },\n {\n key: 'PurchaseCost',\n name: '采购成本(万元/台)',\n },\n {\n key: 'FixedOMCost',\n name: '固定运维成本(万元/年)',\n },\n {\n key: 'VariableOMCost',\n name: '可变运维成本(元/kWh)',\n },\n ],\n // 收缩式制冷机\n AbsorptionChiller: [\n {\n key: 'manufacturer',\n name: '生产厂商',\n },\n {\n key: 'equipType',\n name: '设备型号',\n },\n {\n key: 'PrimaryLocalPressureDropCoe',\n name: '热水侧局部压降系数(kPa/(m³·s⁻¹)²)',\n },\n {\n key: 'SecondaryLocalPressureDropCoe',\n name: '冷水侧局部压降系数(kPa/(m³·s⁻¹)²)',\n },\n {\n key: 'PowerFactor',\n name: '功率因数',\n },\n {\n key: 'CoolHeatRatio',\n name: '冷热比',\n },\n {\n key: 'CoolSupply',\n name: '制冷功率[kW]',\n },\n {\n key: 'PowerConsume',\n name: '电功率[kW]',\n },\n {\n key: 'PrimaryMaxOutletTemp',\n name: '热水侧最大出口温度(℃)',\n },\n {\n key: 'PrimaryMiniOutletTemp',\n name: '热水侧最小出口温度(℃)',\n },\n {\n key: 'SecondaryMaxOutletTemp',\n name: '冷水侧最大出口温度(℃)',\n },\n {\n key: 'SecondaryMiniOutletTemp',\n name: '冷水侧最小出口温度 (℃)',\n },\n {\n key: 'PurchaseCost',\n name: '采购成本(万元/台)',\n },\n {\n key: 'FixedOMCost',\n name: '固定运维成本(万元/年)',\n },\n {\n key: 'VariableOMCost',\n name: '可变运维成本(元/kWh)',\n },\n ],\n // 离心泵\n CentrifugalPump: [\n {\n key: 'manufacturer',\n name: '生产厂商',\n },\n {\n key: 'equipType',\n name: '设备型号',\n },\n {\n key: 'RatedPumpSpeed',\n name: '额定转速 (rpm)',\n },\n {\n key: 'MaxPumpSpeed',\n name: '最大工作转速',\n },\n {\n key: 'MinPumpSpeed',\n name: '最小工作转速',\n },\n {\n key: 'PowerFactor',\n name: '功率因数',\n },\n {\n key: 'MassFlowrate',\n name: '流量(m³/h)',\n },\n {\n key: 'Lift',\n name: '扬程(m)',\n },\n {\n key: 'Effiency',\n name: '效率(%)',\n },\n {\n key: 'PurchaseCost',\n name: '采购成本(万元/台)',\n },\n {\n key: 'FixedOMCost',\n name: '固定运维成本(万元/年)',\n },\n ],\n};\n\nexport default templateData;\n","import MessageBus from '@/Utils/message/message-bus';\nconst excelMap = {\n fuels: {\n 燃料类型: 'fuelType',\n 计量单位: 'calculatingUnit',\n '热值(MJ/计量单位)': 'calorificFuel',\n '价格(元/计量单位)': 'priceFuel',\n CO2排放系数: 'PollutantDischargeFactor.pollutionCO2',\n NOx排放系数: 'PollutantDischargeFactor.pollutionNOX',\n SO2排放系数: 'PollutantDischargeFactor.pollutionSO2',\n 灰尘排放系数: 'PollutantDischargeFactor.dust',\n },\n 常数电价: {\n 类型: 'name',\n '电价(元/kWh)': {\n route: 'purchasePriceModel.params',\n deal: (data: Array<{ value: string[] }>): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return [data[0].value[0]];\n },\n },\n },\n 分时电价: {\n 类型: 'name',\n 时间: {\n route: 'purchasePriceModel.params',\n deal: (data: Array<{ value: string[] }>): number[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return [...Array(data[0].value.length)].map((x, index) => index);\n },\n },\n '分时电价(元/kwh)': {\n route: 'purchasePriceModel.params',\n deal: (data: Array<{ value: string[] }>): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return data[0].value;\n },\n },\n },\n 阶梯电价: {\n 类型: 'name',\n '容量下限(kwh)': {\n route: 'purchasePriceModel.params',\n deal: (data: Array<{ value: string[]; quantity: string }>): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return data.map((x) => x.quantity);\n },\n },\n '阶梯电价(元/kwh)': {\n route: 'purchasePriceModel.params',\n deal: (data: Array<{ value: string[]; quantity: string }>): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return data.map((x) => x.value[0]);\n },\n },\n },\n '分时+阶梯': {\n 类型: 'name',\n '阶段(kwh)': {\n route: 'purchasePriceModel.params',\n deal: (data: Array<{ value: string[] }>): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return [...Array(24)].map((x, index) => `${index}h`);\n },\n },\n },\n '热-按热量计价': {\n 模型名称: 'name',\n 计价方式: 'purchasePriceModel.pricingMethod',\n '价格(元/kWh)': 'purchasePriceModel.price',\n },\n '热-按用量计价': {\n 模型名称: 'name',\n 计价方式: 'purchasePriceModel.pricingMethod',\n '价格(元/t)': 'purchasePriceModel.price',\n },\n '热-按采暖面积计价': {\n 模型名称: 'name',\n 计价方式: 'purchasePriceModel.pricingMethod',\n '价格(元/㎡)': 'purchasePriceModel.price',\n },\n '冷-按热量计价': {\n 模型名称: 'name',\n 计价方式: 'purchasePriceModel.pricingMethod',\n '价格(元/kWh)': 'purchasePriceModel.price',\n },\n '冷-按用量计价': {\n 模型名称: 'name',\n 计价方式: 'purchasePriceModel.pricingMethod',\n '价格(元/t)': 'purchasePriceModel.price',\n },\n '冷-按供冷面积计价': {\n 模型名称: 'name',\n 计价方式: 'purchasePriceModel.pricingMethod',\n '价格(元/㎡)': 'purchasePriceModel.price',\n },\n 光伏: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '光伏板面积(m²)': 'ratedParam.SinglePanelArea',\n '光电转换效率(%)': 'ratedParam.ConversionEfficiency',\n 功率因数: 'ratedParam.PowerFactor',\n '最大发电功功率(kW)': 'operationalConstraints.maxPowerGenerating',\n '采购成本(万元/台)': 'economicParam.PurchaseCost',\n '固定运维成本(万元/年)': 'economicParam.FixedOMCost',\n '可变运维成本(元/kWh)': 'economicParam.VariableOMCost',\n },\n 风机: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '额定发电量(kW)': 'ratedParam.RatedPowerGenerating',\n '额定风速(m/s)': 'ratedParam.RatedWindSpeed',\n '切入风速(m/s)': 'ratedParam.CutinWindSpeed',\n '切出风速(m/s)': 'ratedParam.CutoutWindSpeed',\n '轮毂高度(m)': 'ratedParam.HubHeight',\n 功率因数: 'ratedParam.PowerFactor',\n '采购成本(万元/台)': 'economicParam.PurchaseCost',\n '固定运维成本(万元/年)': 'economicParam.FixedOMCost',\n '可变运维成本(元/kWh)': 'economicParam.VariableOMCost',\n },\n\n 热管式太阳能集热器: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '局部压降系数(kPa/(m³·s⁻¹)²)': 'ratedParam.LocalPressureDropCoe',\n '集热器面积(m²)': 'ratedParam.PlateArea',\n '集热效率(%)': 'ratedParam.CollectionEfficiency',\n '最小供水温度 (℃)': 'operationalConstraints.MiniOutletTemp',\n '最大供水温度 (℃)': 'operationalConstraints.MaxOutletTemp',\n '采购成本(万元/台)': 'economicParam.PurchaseCost',\n '固定运维成本(万元/年)': 'economicParam.FixedOMCost',\n '可变运维成本(元/kWh)': 'economicParam.VariableOMCost',\n },\n\n 蓄电池: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '充电效率(%)': 'ratedParam.ChargingEfficiency',\n '放电效率(%)': 'ratedParam.DischargingEfficiency',\n 功率因数: 'ratedParam.PowerFactor',\n '最大充电功率(kW)': 'operationalConstraints.MaxChargingPower',\n '最大放电功率(kW)': 'operationalConstraints.MaxDischargingPower',\n '电池最大容量(kWh)': 'operationalConstraints.PowerStorageLimit',\n '采购成本(万元/台)': 'economicParam.PurchaseCost',\n '固定运维成本(万元/年)': 'economicParam.FixedOMCost',\n '可变运维成本(元/kWh)': 'economicParam.VariableOMCost',\n },\n 储水罐: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '入口侧局部压降系数(kPa/(m³·s⁻¹)²)': 'ratedParam.InletLocalPressureDropCoe',\n '出口侧局部压降系数(kPa/(m³·s⁻¹)²)': 'ratedParam.OutletLocalPressureDropCoe',\n '罐底面积(m²)': 'ratedParam.FloorArea',\n '最大允许水位高度(m)': 'operationalConstraints.MaxWaterLevel',\n '最小允许水位高度(m)': 'operationalConstraints.MiniWaterLevel',\n '采购成本(万元/台)': 'economicParam.PurchaseCost',\n '固定运维成本(万元/年)': 'economicParam.FixedOMCost',\n '可变运维成本(元/kWh)': 'economicParam.VariableOMCost',\n },\n 蓄冰空调: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '额定蓄冷功率(kW)': 'ratedParam.ratedChargingCool',\n '蓄冷效率(%)': 'ratedParam.chargingEfficiency',\n '额定放冷功率(kW)': 'ratedParam.ratedDischargingCool',\n '放冷效率(%)': 'ratedParam.dischargingEfficiency',\n // 功率因数: 'ratedParam.PowerFactor',\n '最大冷水出口温度(℃)': 'operationalConstraints.maxColdWaterOutletTemp',\n '最小冷水出口温度(℃)': 'operationalConstraints.miniColdWaterOutletTemp',\n '最大冷水进口温度(℃)': 'operationalConstraints.maxColdWaterInletTemp',\n '最小冷水进口温度(℃)': 'operationalConstraints.miniColdWaterInletTemp',\n '蓄冰空调最大容量(kWh)': 'operationalConstraints.capacity',\n '采购成本(万元/台)': 'economicParam.PurchaseCost',\n '固定运维成本(万元/年)': 'economicParam.FixedOMCost',\n '可变运维成本(元/kWh)': 'economicParam.VariableOMCost',\n },\n 变压器: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '额定容量(MVA)': 'ratedParam.windingMVABase',\n '一次侧短路电阻(Ω)': 'ratedParam.shortCircuitResistance',\n '一次侧短路电抗(Ω)': 'ratedParam.shortCircuitImpedance',\n '变压器非标准变比(p.u.)': 'ratedParam.wind2Ratio',\n '最大非标准变比(p.u.)': 'operationalConstraints.maxWind2Ratio',\n '最小非标准变比(p.u.)': 'operationalConstraints.miniWind2Ratio',\n '采购成本(万元/台)': 'economicParam.PurchaseCost',\n '固定运维成本(万元/年)': 'economicParam.FixedOMCost',\n },\n 传输线: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '单位长度电阻(Ω/km)': 'ratedParam.resistanceOfUnitLength',\n '单位长度电抗(Ω/km)': 'ratedParam.reactanceOfUnitLength',\n '单位长度容抗(MΩ*km)': 'ratedParam.chargingBofUnitLength',\n '采购成本(万元/km)': 'economicParam.PurchaseCost',\n '固定维护成本(万元/(km·年))': 'economicParam.FixedOMCost',\n },\n\n 模块化多电平变流器: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '额定电压(kV)': 'ratedParam.BaseVoltage',\n '采购成本(万元/台)': 'economicParam.PurchaseCost',\n '固定运维成本(万元/年)': 'economicParam.FixedOMCost',\n },\n\n 管道: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '管道内径(mm)': 'ratedParam.interDiameter',\n '管道壁厚(mm)': 'ratedParam.thickness',\n '管道粗糙度(mm)': 'ratedParam.roughness',\n '管道总传热系数(W/(m·K))': 'ratedParam.heatExchangeFactor',\n '管道设计压力(MPa)': 'operationalConstraints.maxPressure',\n '采购成本(万元/km)': 'economicParam.PurchaseCost',\n '固定维护成本(万元/(km·年))': 'economicParam.FixedOMCost',\n },\n\n '电负荷-典型日负荷': {\n 负荷名称: 'loadName',\n 负荷模型: {\n route: 'loadParam.model',\n deal: (data: string): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return ['典型日负荷'];\n },\n },\n 负荷类型: 'loadParam.rough_load.buildingType',\n '建筑面积(m2)': 'loadParam.rough_load.Floorage',\n '单位建筑面积负荷指标(W/㎡)': 'loadParam.rough_load.UnitFloorageElectricalLoadIndex',\n 功率因数: 'loadParam.rough_load.PowerFactor',\n },\n '电负荷-分月详细负荷-区分工作日': {\n 负荷名称: 'loadName',\n 负荷模型: {\n route: 'loadParam.model',\n deal: (data: string): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return ['分月详细负荷'];\n },\n },\n 区分工作日和休息日: 'loadParam.detail_load.isDayOff',\n 功率因数: 'loadParam.detail_load.PowerFactor',\n },\n '电负荷-分月详细负荷-不区分工作日': {\n 负荷名称: 'loadName',\n 负荷模型: {\n route: 'loadParam.model',\n deal: (data: string): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return ['分月详细负荷'];\n },\n },\n 区分工作日和休息日: 'loadParam.detail_load.isDayOff',\n 功率因数: 'loadParam.detail_load.PowerFactor',\n },\n '电负荷-自定义': {\n 负荷名称: 'loadName',\n 负荷模型: {\n route: 'loadParam.model',\n deal: (data: string): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return ['自定义负荷'];\n },\n },\n },\n /**\n * 2021-5-24 更新\n * 建模仿真模块 电负荷\n */\n '电负荷建模仿真-典型日负荷': {\n 负荷名称: 'loadName',\n 负荷模型: {\n route: 'loadParam.model',\n deal: (data: string): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return ['典型日负荷'];\n },\n },\n 负荷类型: 'loadParam.rough_load.buildingType',\n '建筑面积(m2)': 'loadParam.rough_load.Floorage',\n '单位建筑面积负荷指标(W/㎡)': 'loadParam.rough_load.UnitFloorageElectricalLoadIndex',\n // '电负荷指标(kW)': 'loadParam.rough_load.ElectricalLoadIndex',\n 功率因数: 'loadParam.rough_load.PowerFactor',\n },\n '电负荷建模仿真-分月详细负荷-区分工作日': {\n 负荷名称: 'loadName',\n 负荷模型: {\n route: 'loadParam.model',\n deal: (data: string): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return ['分月详细负荷'];\n },\n },\n 区分工作日和休息日: 'loadParam.detail_load.isDayOff',\n 功率因数: 'loadParam.detail_load.PowerFactor',\n },\n '电负荷建模仿真-分月详细负荷-不区分工作日': {\n 负荷名称: 'loadName',\n 负荷模型: {\n route: 'loadParam.model',\n deal: (data: string): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return ['分月详细负荷'];\n },\n },\n 区分工作日和休息日: 'loadParam.detail_load.isDayOff',\n 功率因数: 'loadParam.detail_load.PowerFactor',\n },\n '电负荷建模仿真-自定义': {\n 负荷名称: 'loadName',\n 负荷模型: {\n route: 'loadParam.model',\n deal: (data: string): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return ['自定义负荷'];\n },\n },\n },\n\n '充电桩负荷-区分工作日': {\n 负荷名称: 'loadName',\n 区分工作日和休息日: 'loadParam.loadCurve.isDayOff',\n },\n '充电桩负荷-不区分工作日': {\n 负荷名称: 'loadName',\n 区分工作日和休息日: 'loadParam.loadCurve.isDayOff',\n },\n //建模仿真 设备信息库\n 光伏_建模仿真: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '光伏板面积(m²)': 'ratedParam.SinglePanelArea',\n '光电转换效率(%)': 'ratedParam.ConversionEfficiency',\n 功率因数: 'ratedParam.PowerFactor',\n '最大发电功功率(kW)': 'operationalConstraints.maxPowerGenerating',\n },\n 风机_建模仿真: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '额定发电量(kW)': 'ratedParam.RatedPowerGenerating',\n '额定风速(m/s)': 'ratedParam.RatedWindSpeed',\n '切入风速(m/s)': 'ratedParam.CutinWindSpeed',\n '切出风速(m/s)': 'ratedParam.CutoutWindSpeed',\n '轮毂高度(m)': 'ratedParam.HubHeight',\n 功率因数: 'ratedParam.PowerFactor',\n },\n 热管式太阳能集热器_建模仿真: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '局部压降系数(kPa/(m³·s⁻¹)²)': 'ratedParam.LocalPressureDropCoe',\n '集热器面积(m²)': 'ratedParam.PlateArea',\n '集热效率(%)': 'ratedParam.CollectionEfficiency',\n '最小供水温度 (℃)': 'operationalConstraints.MiniOutletTemp',\n '最大供水温度 (℃)': 'operationalConstraints.MaxOutletTemp',\n },\n 蓄电池_建模仿真: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '充电效率(%)': 'ratedParam.ChargingEfficiency',\n '放电效率(%)': 'ratedParam.DischargingEfficiency',\n 功率因数: 'ratedParam.PowerFactor',\n '最大充电功率(kW)': 'operationalConstraints.MaxChargingPower',\n '最大放电功率(kW)': 'operationalConstraints.MaxDischargingPower',\n '电池最大容量(kWh)': 'operationalConstraints.PowerStorageLimit',\n },\n 储水罐_建模仿真: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '入口侧局部压降系数(kPa/(m³·s⁻¹)²)': 'ratedParam.InletLocalPressureDropCoe',\n '出口侧局部压降系数(kPa/(m³·s⁻¹)²)': 'ratedParam.OutletLocalPressureDropCoe',\n '罐底面积(m²)': 'ratedParam.FloorArea',\n '最大允许水位高度(m)': 'operationalConstraints.MaxWaterLevel',\n '最小允许水位高度(m)': 'operationalConstraints.MiniWaterLevel',\n },\n 蓄冰空调_建模仿真: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '额定蓄冷功率(kW)': 'ratedParam.ratedChargingCool',\n '蓄冷效率(%)': 'ratedParam.chargingEfficiency',\n '额定放冷功率(kW)': 'ratedParam.ratedDischargingCool',\n '放冷效率(%)': 'ratedParam.dischargingEfficiency',\n 功率因数: 'ratedParam.PowerFactor',\n '最大冷水出口温度(℃)': 'operationalConstraints.maxColdWaterOutletTemp',\n '最小冷水出口温度(℃)': 'operationalConstraints.miniColdWaterOutletTemp',\n '最大冷水进口温度(℃)': 'operationalConstraints.maxColdWaterInletTemp',\n '最小冷水进口温度(℃)': 'operationalConstraints.miniColdWaterInletTemp',\n '蓄冰空调最大容量(kWh)': 'operationalConstraints.capacity',\n },\n 变压器_建模仿真: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '额定容量(MVA)': 'ratedParam.windingMVABase',\n '一次侧短路电阻(Ω)': 'ratedParam.shortCircuitResistance',\n '一次侧短路电抗(Ω)': 'ratedParam.shortCircuitImpedance',\n '变压器非标准变比(p.u.)': 'ratedParam.wind2Ratio',\n '最大非标准变比(p.u.)': 'operationalConstraints.maxWind2Ratio',\n '最小非标准变比(p.u.)': 'operationalConstraints.miniWind2Ratio',\n },\n 传输线_建模仿真: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '单位长度电阻(Ω/km)': 'ratedParam.resistanceOfUnitLength',\n '单位长度电抗(Ω/km)': 'ratedParam.reactanceOfUnitLength',\n '单位长度容抗(MΩ*km)': 'ratedParam.chargingBofUnitLength',\n },\n 模块化多电平变流器_建模仿真: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '额定电压(kV)': 'ratedParam.BaseVoltage',\n },\n 管道_建模仿真: {\n 生产厂商: 'manufacturer',\n 设备型号: 'equipType',\n '管道内径(mm)': 'ratedParam.interDiameter',\n '管道壁厚(mm)': 'ratedParam.thickness',\n '管道粗糙度(mm)': 'ratedParam.roughness',\n '管道总传热系数(W/(m·K))': 'ratedParam.heatExchangeFactor',\n '管道设计压力(MPa)': 'operationalConstraints.maxPressure',\n },\n\n /**\n * 采暖制冷负荷\n * 2022-10-9 更新\n */\n '采暖制冷负荷-典型日负荷': {\n 负荷名称: 'loadName',\n 负荷模型: {\n route: 'loadParam.model',\n deal: (data: string): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return ['典型日负荷'];\n },\n },\n 负荷类型: 'loadParam.rough_load.buildingType',\n '建筑面积(m2)': 'loadParam.rough_load.Floorage',\n '采暖面积/建筑面积': 'loadParam.rough_load.HeatingAreaRatio',\n '空调面积/建筑面积': 'loadParam.rough_load.CoolingAreaRatio',\n '单位建筑面积热负荷指标(正值,W/㎡)': 'loadParam.rough_load.UnitFloorageHeatingLoadIndex',\n '单位建筑面积冷负荷指标(负值,W/㎡)': 'loadParam.rough_load.UnitFloorageCoolingLoadIndex',\n 日采暖制冷起始时间: 'loadParam.rough_load.dayCycleStart',\n 日采暖制冷结束时间: 'loadParam.rough_load.dayCycleEnd',\n },\n '采暖制冷负荷-分月详细负荷-不区分工作日': {\n 负荷名称: 'loadName',\n 负荷模型: {\n route: 'loadParam.model',\n deal: (data: string): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return ['分月详细负荷'];\n },\n },\n '建筑面积(m2)': 'loadParam.detail_load.Floorage',\n 区分工作日和休息日: 'loadParam.detail_load.isDayOff',\n },\n '采暖制冷负荷-分月详细负荷-区分工作日': {\n 负荷名称: 'loadName',\n 负荷模型: {\n route: 'loadParam.model',\n deal: (data: string): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return ['分月详细负荷'];\n },\n },\n '建筑面积(m2)': 'loadParam.detail_load.Floorage',\n 区分工作日和休息日: 'loadParam.detail_load.isDayOff',\n },\n '采暖制冷负荷-自定义负荷': {\n 负荷名称: 'loadName',\n 负荷模型: {\n route: 'loadParam.model',\n deal: (data: string): string[] => {\n if (!data) {\n MessageBus.Notification('error', { description: '数据类型有问题,请联系管理员处理!', message: '提示' });\n }\n return ['自定义负荷'];\n },\n },\n },\n};\nexport default excelMap;\n","module.exports = __webpack_public_path__ + \"img/r03.8f84fbd1.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./layout.vue?vue&type=style&index=0&id=068acc09&scoped=true&lang=css&\"","/**\n * @author guan\n * @description 地图定位信息\n *\n * new Location() 定义一个定位信息\n * @return void\n */\nexport default class Location {\n /** 表示经度 */\n private _longitude = 120.591586;\n /** 表示纬度 */\n private _latitude = 33.20745;\n /** 定位/不定位 */\n private _MARK_MODE = false;\n /** 表示一个记录值 */\n public marker_position = {\n lng: 120.591586,\n lat: 33.20745,\n };\n /**\n * @author guan\n * @description 纬度存取器\n * @return void\n */\n get latitude(): number {\n return this._latitude;\n }\n\n set latitude(value: number) {\n this._latitude = Number(value);\n }\n /**\n *\n */\n get MARK_MODE(): boolean {\n return this._MARK_MODE;\n }\n\n set MARK_MODE(value: boolean) {\n this._MARK_MODE = value;\n }\n\n /**\n *\n */\n get longitude(): number {\n return this._longitude;\n }\n\n set longitude(value: number) {\n this._longitude = Number(value);\n }\n}\n","!(function (h) {\n var c,\n a,\n l,\n v,\n z,\n t,\n i =\n '',\n m = (m = document.getElementsByTagName('script'))[m.length - 1].getAttribute('data-injectcss');\n if (m && !h.__iconfont__svg__cssinject__) {\n h.__iconfont__svg__cssinject__ = !0;\n try {\n document.write('');\n } catch (h) {\n console && console.log(h);\n }\n }\n function o() {\n z || ((z = !0), l());\n }\n (c = function () {\n var h, c, a, l;\n ((l = document.createElement('div')).innerHTML = i),\n (i = null),\n (a = l.getElementsByTagName('svg')[0]) &&\n (a.setAttribute('aria-hidden', 'true'),\n (a.style.position = 'absolute'),\n (a.style.width = 0),\n (a.style.height = 0),\n (a.style.overflow = 'hidden'),\n (h = a),\n (c = document.body).firstChild ? ((l = h), (a = c.firstChild).parentNode.insertBefore(l, a)) : c.appendChild(h));\n }),\n document.addEventListener\n ? ~['complete', 'loaded', 'interactive'].indexOf(document.readyState)\n ? setTimeout(c, 0)\n : ((a = function () {\n document.removeEventListener('DOMContentLoaded', a, !1), c();\n }),\n document.addEventListener('DOMContentLoaded', a, !1))\n : document.attachEvent &&\n ((l = c),\n (v = h.document),\n (z = !1),\n (t = function () {\n try {\n v.documentElement.doScroll('left');\n } catch (h) {\n return void setTimeout(t, 50);\n }\n o();\n })(),\n (v.onreadystatechange = function () {\n 'complete' == v.readyState && ((v.onreadystatechange = null), o());\n }));\n})(window);\n","module.exports = __webpack_public_path__ + \"img/ies.6dcb7f84.svg\";","import axios, { AxiosRequestConfig } from 'axios';\n\nimport Env from './env';\nimport { notification } from 'ant-design-vue';\nimport store from '@/store/store';\n\n// import Vue from 'vue'\n\n// axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;\n// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';//配置请求头\n\n//添加一个请求拦截器;\naxios.interceptors.request.use(\n (config) => {\n if ((config.url as string).includes('api-token-auth')) {\n config.headers['Authorization'] = '';\n }\n return config;\n },\n function (error) {\n // Do something with request error\n return Promise.reject(error);\n },\n);\n\naxios.defaults.withCredentials = true;\n// 添加一个响应拦截器\naxios.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n if (error.response) {\n switch (error.response.status) {\n case 401:\n // 401 清除token信息并跳转到登录页面\n // logout();\n // void newrouter.replace({\n // path: 'login',\n // query: { redirect: newrouter.currentRoute.fullPath },\n // });\n notification.error({\n message: 'Unauthorized',\n description: '用户认证失败',\n });\n break;\n case 403:\n notification.error({\n message: '权限出错',\n description: '未得到相关权限,请联系工作人员',\n });\n // 401 清除token信息并跳转到登录页面\n // store.commit(types.LOGOUT);\n // router.replace({\n // path: 'login',\n // query: {redirect: router.currentRoute.fullPath}\n // })\n break;\n }\n }\n return Promise.reject(error.response.data);\n },\n);\n\nexport { axios };\n/**\n * setConfig\n */\nexport function setConfig(config?: AxiosRequestConfig): AxiosRequestConfig {\n if (!config) {\n config = {} as AxiosRequestConfig;\n }\n if (!config.headers) {\n config.headers = {};\n }\n config.headers['Authorization'] = `Bearer ${store.getters.getToken} `;\n config.headers['Content-Type'] = 'application/json';\n return config;\n}\n\n//通用方法\nexport const POST = (url: string, params: object, config: any): Promise => {\n //eslint-disable-line\n const new_config = setConfig(config);\n let base = '';\n if (!store.state.iesMode) {\n base = Env.baseURL;\n } else {\n base = Env.iesURL;\n }\n return axios.post(`${base}${url}`, params, new_config).then((res) => res.data);\n};\n\nexport const GET = (url: string, params?: object, config?: AxiosRequestConfig, newUrl?: string): Promise => {\n const new_config = setConfig(config);\n let base = '';\n if (!store.state.iesMode) {\n base = Env.baseURL;\n } else {\n base = Env.iesURL;\n }\n return (\n axios\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n .get(`${newUrl ?? base}${url}`, { params: params, ...new_config })\n .then((res) => res.data)\n );\n};\nexport const PUT = (url: string, params: object, config?: { headers?: Record }): Promise => {\n let base = '';\n if (!store.state.iesMode) {\n base = Env.baseURL;\n } else {\n base = Env.iesURL;\n }\n const new_config = setConfig(config as { headers: Record });\n return axios.put(`${base}${url}`, params, new_config).then((res) => res.data);\n};\n\nexport const DELETE = (url: string, config?: object): any => {\n //eslint-disable-line\n let base = '';\n if (!store.state.iesMode) {\n base = Env.baseURL;\n } else {\n base = Env.iesURL;\n }\n const new_config = setConfig(config as { headers: Record });\n return axios.delete(`${base}${url}`, new_config).then((res) => res.data);\n};\n\nexport const PATCH = (url: string, params: object, config?: any): any => {\n //eslint-disable-line\n let base = '';\n if (!store.state.iesMode) {\n base = Env.baseURL;\n } else {\n base = Env.iesURL;\n }\n const new_config = setConfig(config);\n return axios.patch(`${base}${url}`, params, new_config).then((res) => res.data);\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./prioritization-scheme.vue?vue&type=style&index=0&id=ee2f34cc&lang=less&scoped=true&\"","export default class run_time {\n private _intervalIdList: number[] = [];\n private _timeoutIdList: number[] = [];\n\n _setInterval(callback: Function, delay: number) {\n var id = setInterval(callback, delay);\n this._intervalIdList.push(id);\n return id;\n }\n\n _setTimeout(callback: Function, delay: number) {\n var id = setTimeout(callback, delay);\n this._timeoutIdList.push(id);\n return id;\n }\n\n _clearTimeTickers() {\n for (var i = 0; i < this._intervalIdList.length; i++) {\n clearInterval(this._intervalIdList[i]);\n }\n for (var i = 0; i < this._timeoutIdList.length; i++) {\n clearTimeout(this._timeoutIdList[i]);\n }\n this._intervalIdList = [];\n this._timeoutIdList = [];\n }\n\n _clearTimeOutList() {\n for (var i = 0; i < this._timeoutIdList.length; i++) {\n clearTimeout(this._timeoutIdList[i]);\n }\n this._timeoutIdList = [];\n }\n _clearintervalList() {\n for (var i = 0; i < this._intervalIdList.length; i++) {\n clearInterval(this._intervalIdList[i]);\n }\n this._intervalIdList = [];\n }\n}\n","const isDev = process.env.NODE_ENV !== 'production';\nconst remote = isDev ? 'http://10.101.10.45' : location.origin;\n\nexport default {\n baseURL: `${remote}/api/ieslab-plan`,\n iesURL: `${remote}/api/ieslab-simulation`,\n userCenter: `${remote}/api`,\n isDev: !remote,\n testUrl: 'https://10.112.10.39:8081',\n projectUrl: isDev ? 'http://10.101.10.95:8089' : `${remote}/`,\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./data-manage.vue?vue&type=style&index=0&id=1088eb04&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance-bar.vue?vue&type=style&index=0&id=49c8410e&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/数字孪生.3b499d02.png\";","import { AuthInformation } from '@/store/modules/auth';\nimport { GET, axios, setConfig } from '.';\nimport env from './env';\n\n/**\n * @author yms\n * @description 获取用户权限验证\n * @returns AuthInformation\n */\nexport function getProfile(): Promise {\n const query = `query ($input: AccountTokenInput!) {\n accountToken(input: $input) {\n user {\n cid\n name\n displayName\n company\n phone\n email\n type\n bio\n secure_digest\n challenges {\n phone\n email\n totp\n wechat\n webauthn\n }\n }\n }\n }`;\n const payload = {\n query: query,\n variables: {\n input: {\n token: null,\n },\n },\n };\n return axios.post('/graphql', payload, setConfig()).then((res) => {\n return res['data']['data']['accountToken']['user'];\n });\n}\n/**\n * @author yms\n * @description 退出\n * @returns AuthInformation\n */\nexport function logout(): Promise {\n return GET(`/auth/logout`, undefined, undefined, env.userCenter);\n}\n","import * as API from './';\nimport { OptimizationResultParam, OptimizationTasksParam, PlanDetailInfo } from '@/interfaces/api_interface';\nimport { PlanList, SimuLog, TaskInformation } from '@/prioritization/interface/interface';\nexport default {\n /**\n * 运行优化任务\n * @param params 请求参数\n */\n runOptimization: (params: object): Promise => {\n return API.GET('/taskmanager/runOptimization', params);\n },\n /**\n * 获取优化结果方法\n * @param params 请求参数\n */\n getOptimizationResult: (params: OptimizationResultParam): Promise<{ data: PlanList[] }> => {\n return API.GET<{ data: PlanList[] }>('/taskmanager/getOptimizationResult', params);\n },\n getPlanDetailInfo: async (simuId: number | string, taskId: string, planId: number): Promise => {\n return API.GET('/taskmanager/getOptimizationResult', { simuid: simuId, taskid: taskId, planId: planId, resultType: 1 });\n },\n getRelatedOptimizationResult: (params: OptimizationResultParam): Promise<{ simu: number; data: PlanList[] }> => {\n return API.GET<{ simu: number; data: PlanList[] }>('/taskmanager/getRelatedOptimizationResult', params);\n },\n\n getLastSimulationTask: (params: OptimizationTasksParam): Promise => {\n return API.GET('/taskmanager/getSimuLastTasks', params);\n },\n /**\n * 运行优化任务\n * @param params 请求参数\n */\n getSimuLog: (params: object): Promise => {\n return API.GET('/taskmanager/getOptimizationLog', params);\n },\n\n /**\n * 运行优化任务\n * @param params 请求参数\n */\n removeOptimizationTask: (params: object): Promise => {\n return API.GET('/taskmanager/removeOptimizationTask', params);\n },\n\n /**\n * 获取\n * @param params 请求参数\n */\n getConstruction: (params: object): Promise => {\n return API.GET('/taskmanager/getConstruction', params);\n },\n saveDataToclickhouse: (params: object): Promise => {\n return API.GET('/taskmanager/saveDataToclickhouse', params);\n },\n\n /**\n * 获取结果\n */\n getEconomyResult: (params: object): Promise => {\n return API.GET('/taskmanager/getEconomyResult', params);\n },\n\n /**\n * 获取能效水平数据\n */\n getEnergyEvaluation: (params: object): Promise => {\n // return new Promise((resolve,reject)=>{\n // resolve({results:[{data:energyData.energyData}]});\n // })\n return API.GET('/taskmanager/getEnergyEvaluation', params);\n },\n /**\n * 获取环保评价数据\n */\n getEnvironmentalEvaluation: (params: object): Promise => {\n return API.GET('/taskmanager/getEnvironmentalEvaluation', params);\n },\n /**\n * 资产负债表\n */\n getLiabilityAssetsResult: (params: object): Promise => {\n return API.GET('/taskmanager/getLiabilityAssetsResult', params);\n },\n /**\n * 财务计划现金流量\n */\n getFinancialPlanCashFlowResult: (params: object): Promise => {\n return API.GET('/taskmanager/getFinancialPlanCashFlowResult', params);\n },\n /**\n * 投资使用计划与资金筹措\n */\n getInvestPlanDataResult: (params: object): Promise => {\n return API.GET('/taskmanager/getInvestPlanDataResult', params);\n },\n /**\n * 流动资金估算\n */\n getFlowCashEvaluteResult: (params: object): Promise => {\n return API.GET('/taskmanager/getFlowCashEvaluteResult', params);\n },\n /**\n * 资产折旧与摊销估算\n */\n getAssetsDepreciationResult: (params: object): Promise => {\n return API.GET('/taskmanager/getAssetsDepreciationResult', params);\n },\n /**\n * 总成本费用估算\n */\n getSumCostResult: (params: object): Promise => {\n return API.GET('/taskmanager/getSumCostResult', params);\n },\n /**\n * 项目总投资现金流量\n */\n getSumInvestFlowCashResult: (params: object): Promise => {\n return API.GET('/taskmanager/getSumInvestFlowCashResult', params);\n },\n /**\n * 项目资本金现金流量\n */\n getProjectCashFlowResult: (params: object): Promise => {\n return API.GET('/taskmanager/getProjectCashFlowResult', params);\n },\n /**\n * 营业收入_税金_附加和增值税估算\n */\n getIncomeTaxResult: (params: object): Promise => {\n return API.GET('/taskmanager/getIncomeTaxResult', params);\n },\n /**\n * 借款还本付息计划\n */\n getLoanRepaymentPlanResult: (params: object): Promise => {\n return API.GET('/taskmanager/getLoanRepaymentPlanResult', params);\n },\n /**\n * 概览表\n */\n getOverviewResult: (\n params: object,\n ): Promise<{\n error: number;\n task_id: string;\n results: Array<{\n data: {\n 项目动态总投资: number;\n 年销售收入: number;\n 平均年总成本费用: number;\n 总投资收益率: number;\n 资本金利润率: number;\n 资本金内部收益率: number;\n 所得税前投资内部收益率: number;\n 所得税前投资财务净现值: number;\n 所得税前投资回报期: number;\n 所得税后投资内部收益率: number;\n 所得税后投资财务净现值: number;\n 所得税后投资回报期: number;\n };\n time: number;\n }>;\n }> => {\n return API.GET<{\n error: number;\n task_id: string;\n results: [\n {\n data: {\n 项目动态总投资: number;\n 年销售收入: number;\n 平均年总成本费用: number;\n 总投资收益率: number;\n 资本金利润率: number;\n 资本金内部收益率: number;\n 所得税前投资内部收益率: number;\n 所得税前投资财务净现值: number;\n 所得税前投资回报期: number;\n 所得税后投资内部收益率: number;\n 所得税后投资财务净现值: number;\n 所得税后投资回报期: number;\n };\n time: number;\n },\n ];\n }>('/taskmanager/getOverviewResult', params);\n },\n};\n","export function dateFormat(fmt: string, date: Date | string): string {\n let ret;\n date = new Date(date);\n const opt = {\n 'y+': date.getFullYear().toString(), // 年\n 'm+': (date.getMonth() + 1).toString(), // 月\n 'd+': date.getDate().toString(), // 日\n 'h+': date.getHours().toString(), // 时\n 'M+': date.getMinutes().toString(), // 分\n 's+': date.getSeconds().toString(), // 秒\n // 有其他格式化字符需求可以继续添加,必须转化成字符串\n };\n for (const k in opt) {\n ret = new RegExp('(' + k + ')').exec(fmt);\n if (ret) {\n // eslint-disable-next-line eqeqeq\n fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'));\n }\n }\n return fmt;\n}\n\nexport function dateParse(fmt: string, date: Date | string): string {\n let ret;\n date = new Date(date);\n const opt = {\n 'y+': date.getFullYear().toString(), // 年\n 'm+': (date.getMonth() + 1).toString(), // 月\n 'd+': date.getDate().toString(), // 日\n 'h+': (Number(date.getHours()) + 8).toString(), // 时\n 'M+': date.getMinutes().toString(), // 分\n 's+': date.getSeconds().toString(), // 秒\n // 有其他格式化字符需求可以继续添加,必须转化成字符串\n };\n for (const k in opt) {\n ret = new RegExp('(' + k + ')').exec(fmt);\n if (ret) {\n // eslint-disable-next-line eqeqeq\n fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'));\n }\n }\n return fmt;\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./data-view.vue?vue&type=style&index=0&id=2ea2f575&scoped=true&lang=css&\"","/**\nimport { isArray } from 'lodash';\n * 获得数组平均数;保存两位小数\n * @param numbers\n * @returns\n */\nexport function average(numbers: string[]): string {\n if (Array.isArray(numbers)) {\n const data = numbers.map((x: string) => {\n return Number(x);\n });\n return (data.reduce((a, b) => a + b) / numbers.length).toFixed(2);\n } else {\n return '';\n }\n}\n\n/**\n * 二维数组转置\n */\nexport function arrayTransposition(arr: string[][]): string[][] {\n const data = arr[0];\n if (Array.isArray(data)) {\n const newArray = data.map((_col, i) => {\n return arr.map((row) => {\n return row[i];\n });\n });\n return newArray;\n } else {\n return [];\n }\n}\n\n/**\n * 数组去重\n * 要求重复的值改为`值-1`的形式\n */\nexport function removeDuplicates(arr: string[]): string[] {\n let obj = {};\n let resultArr: string[] = [];\n\n for (let i = 0; i < arr.length; i++) {\n let item = arr[i];\n if (!obj[item]) {\n obj[item] = 1;\n resultArr.push(item);\n } else {\n let newItem = item + '-' + obj[item];\n obj[item]++;\n obj[newItem] = 1;\n resultArr.push(newItem);\n }\n }\n return resultArr;\n}\n","import { Store, StoreOptions } from 'vuex';\n\nimport { getProfile } from '@/Api/auth';\n\nexport interface AuthInformation {\n id: 1;\n username: string;\n cid: number;\n email: string;\n mobile: string;\n nickname: string;\n company: string;\n description: string;\n is_staff: true;\n}\ntype Subset = Partial;\n\n/**\n * @author guan\n * @description 用户认证信息\n *\n */\nconst authMessage: StoreOptions<{ [key in string]: any }> = {\n state: {\n token: '',\n userInfo: {},\n },\n getters: {\n /**\n * @author guan\n * @description 获取token\n * @return 返回token信息\n */\n getToken: (state): string => {\n return state.token;\n },\n /**\n *\n * @author yms\n * @description 获取用户信息\n * @returns 返回用户信息的子集\n */\n getUserInfo: (state): Subset => {\n return state.userInfo;\n },\n },\n mutations: {\n /**\n * @author yms\n * @description 设置token\n * @param v token 值\n */\n setToken: (state, v: string): void => {\n state.token = v;\n },\n /**\n * @author yms\n * @description 设置userInfo\n * @param Subset\n */\n setUserInfo: (state, v: Subset): void => {\n state.userInfo = v;\n },\n },\n actions: {\n /**\n * @author yms\n * @param context store\n * @description 获取用户信息\n */\n putUserInfo: (context): Promise => {\n return new Promise((resolve, reject) => {\n getProfile()\n .then((res) => {\n context.commit('setUserInfo', res);\n resolve();\n })\n .catch((e) => {\n reject(e);\n });\n });\n },\n },\n};\nexport default authMessage;\n","/**\n * @author guan\n * @description 经纬度信息\n *\n */\nimport Location from '@/component/weather/baidumap/location';\nconst location = new Location();\nconst locationMessage = {\n state: {\n locationMessage: location,\n },\n getters: {\n /**\n * @author guan\n * @description 获取位置信息\n * @return Location 返回位置信息\n * @param state locationMessage new Location()\n */\n getLocationMessage: (state: { locationMessage: Location }): Location => {\n return state.locationMessage;\n },\n },\n mutations: {\n /**\n * @author guan\n * @description 设置位置信息\n * @return void\n * @param state locationMessage new Location()\n * @param params 新的位置信息\n */\n setLocationMessage: (state: { locationMessage: Location }, params: Location): void => {\n state.locationMessage = params;\n },\n },\n actions: {},\n};\nexport default locationMessage;\n","import API from '@/Api/api_data';\nimport { WeatherParam, WeatherData } from '@/interfaces/weather_interface';\n\nconst Weather = {\n state: {\n weatherDataList: new Array(),\n },\n getters: {\n /**\n * @author guan\n * @description 返回天气数据\n * @param state weatherData 天气数据\n * @return void\n */\n getWeatherData: (state: { weatherDataList: WeatherData[] }) => {\n return state.weatherDataList;\n },\n },\n mutations: {\n /**\n * @author guan\n * @description 设置天气数据\n * @return void\n */\n setWeatherData: (state: { weatherDataList: WeatherData[] }, params: WeatherData[]) => {\n state.weatherDataList = params;\n },\n },\n actions: {\n getWeatherDataByLocation: () => (param: WeatherParam) => {\n API.loadWeaterData(param)\n .then((res: any) => {})\n .catch((error) => error);\n },\n },\n};\nexport default Weather;\n","export enum SCHEDULE_TYPE {\n initialTerm,\n operate,\n build,\n}\n\nexport enum SOURCE_TYPE {\n capitalRatio,\n borrowingRate,\n predeterminedNumber,\n loanTerm,\n periodGrace,\n repayment,\n}\n\nexport enum ASSETS_TYPE {\n fixedAssetsRatio,\n residualRrate,\n depreciationPeriod,\n reimbursementPeriod,\n}\n\nexport enum PRODUCTION_COST_TYPE {\n capacity,\n annualSalary,\n welfareFactor,\n insuranceRate,\n materialsExpenses,\n otherExpenses,\n}\n\nexport enum CHARGE_TYPE {\n workingCapitalLoanRatio,\n interestRateAndWorkingCapital,\n annualAPCirculationTimes,\n annualStockCirculationTimes,\n annualCashCirculationTimes,\n annualARCirculationTimes,\n}\n\nexport enum ANALYSIS_TYPE {\n electricityVATRate,\n steamSaleVATRate,\n hotColdVATRate,\n fuelBoughtVATRate,\n materialBoughtVATRate,\n legalAccumulationFundRate,\n aleatoricAccumulationFundRate,\n cityMaintenanceConstructionTaxTate,\n educationFeePlus,\n localEducationPlus,\n corporateIncomeTaxRate,\n basicDiscountRate,\n}\n\nexport enum SCHEDULE_TYPE_TO_DATA {\n '项目起始年限' = 'initialTerm',\n '项目建设期(年)' = 'build',\n '项目运营期(年)' = 'operate',\n}\n\nexport enum SOURCE_TYPE_TO_DATA {\n '资本金比例(%)' = 'capitalRatio',\n '借款年利率(%)' = 'borrowingRate',\n '贷款年限' = 'loanTerm',\n '宽限期(年)' = 'periodGrace',\n '计息次数' = 'predeterminedNumber',\n '还款方式' = 'repayment',\n}\n\nexport enum ASSETS_TYPE_TO_DATA {\n '固定资产比例(%)' = 'fixedAssetsRatio',\n '残值(%)' = 'residualRrate',\n '折旧年限' = 'depreciationPeriod',\n '摊销年限' = 'reimbursementPeriod',\n}\n\nexport enum PRODUCTION_COST_TYPE_TO_DATA {\n '定员(人)' = 'capacity',\n '工资(万元/(人·年))' = 'annualSalary',\n '福利系数(%)' = 'welfareFactor',\n '保险费率(%)' = 'insuranceRate',\n '材料费(万元/年)' = 'materialsExpenses',\n '其他费用(万元/年)' = 'otherExpenses',\n}\n\nexport enum CHARGE_TYPE_TO_DATA {\n '流动资金贷款比例(%)' = 'workingCapitalLoanRatio',\n '短期贷款及流动资金利率(%)' = 'interestRateAndWorkingCapital',\n '应收账款年周转次数' = 'annualAPCirculationTimes',\n '存货年周转次数' = 'annualStockCirculationTimes',\n '现金年周转次数' = 'annualCashCirculationTimes',\n '应付账款年周转次数' = 'annualARCirculationTimes',\n}\n\nexport enum ANALYSIS_TYPE_TO_DATA {\n '售电增值税税率%' = 'electricityVATRate',\n '售汽增值税率%' = 'steamSaleVATRate',\n '售冷热增值税税率%' = 'hotColdVATRate',\n '燃料增值税税率%' = 'fuelBoughtVATRate',\n '材料费进项增值税率%' = 'materialBoughtVATRate',\n '法定公积金率%' = 'legalAccumulationFundRate',\n '任意公积金率%' = 'aleatoricAccumulationFundRate',\n '城市维护建设税税率%' = 'cityMaintenanceConstructionTaxTate',\n '教育费附加%' = 'educationFeePlus',\n '地方教育附加%' = 'localEducationPlus',\n '企业所得税税率%' = 'corporateIncomeTaxRate',\n '基准折现率%' = 'basicDiscountRate',\n}\n","/**\n * 项目工期\n */\nexport const cardParam = [\n {\n content: '项目起始年限',\n backgroundColor: '#5ed0db',\n value: '0',\n editable: false,\n },\n {\n content: '项目建设期(年)',\n backgroundColor: '#b590f9',\n value: '0',\n editable: false,\n },\n {\n content: '项目运营期(年)',\n backgroundColor: '#8ac1f7',\n value: '0',\n editable: false,\n },\n];\n\n/**\n * 资金来源\n */\nexport const cardParam2 = [\n {\n content: '资本金比例(%)',\n backgroundColor: '#5ed0db',\n value: '0',\n },\n {\n content: '借款年利率(%)',\n backgroundColor: '#b590f9',\n value: '0',\n },\n {\n content: '计息次数',\n backgroundColor: '#8ac1f7',\n value: '0',\n },\n {\n content: '贷款年限',\n backgroundColor: '#f6c1a2',\n value: '0',\n },\n {\n content: '宽限期(年)',\n backgroundColor: '#97bffa',\n value: '0',\n },\n {\n content: '还款方式',\n backgroundColor: '#c3b8fa',\n value: '等额本息',\n },\n];\n\n/**\n * 资产形式\n */\nexport const cardParam3 = [\n {\n content: '固定资产比例(%)',\n backgroundColor: '#5ed0db',\n value: '0',\n },\n {\n content: '残值(%)',\n backgroundColor: '#b590f9',\n value: '0',\n },\n {\n content: '折旧年限',\n backgroundColor: '#8ac1f7',\n value: '0',\n },\n {\n content: '摊销年限',\n backgroundColor: '#f6c1a2',\n value: '0',\n },\n];\n\n/**\n * 生产成本\n */\nexport const cardParam4 = [\n {\n content: '定员(人)',\n backgroundColor: '#5ed0db',\n value: '0',\n },\n {\n content: '工资(万元/(人·年))',\n backgroundColor: '#b590f9',\n value: '0',\n },\n {\n content: '福利系数(%)',\n backgroundColor: '#8ac1f7',\n value: '0',\n },\n {\n content: '保险费率(%)',\n backgroundColor: '#f6c1a2',\n value: '0',\n },\n {\n content: '材料费(万元/年)',\n backgroundColor: '#97bffa',\n value: '0',\n },\n {\n content: '其他费用(万元/年)',\n backgroundColor: '#c3b8fa',\n value: '0',\n },\n];\n\n/**\n * 流动资金及财务费用\n */\nexport const cardParam5 = [\n {\n content: '流动资金贷款比例(%)',\n backgroundColor: '#5ed0db',\n value: '0',\n },\n {\n content: '短期贷款及流动资金利率(%)',\n backgroundColor: '#b590f9',\n value: '0',\n },\n {\n content: '应收账款年周转次数',\n backgroundColor: '#8ac1f7',\n value: '0',\n },\n {\n content: '存货年周转次数',\n backgroundColor: '#f6c1a2',\n value: '0',\n },\n {\n content: '现金年周转次数',\n backgroundColor: '#97bffa',\n value: '0',\n },\n {\n content: '应付账款年周转次数',\n backgroundColor: '#c3b8fa',\n value: '0',\n },\n];\n\n/**\n * 项目测算\n */\nexport const cardParam6 = [\n {\n content: '售电增值税税率%',\n backgroundColor: '#5ed0db',\n value: '0',\n },\n {\n content: '售汽增值税率%',\n backgroundColor: '#b590f9',\n value: '0',\n },\n {\n content: '售冷热增值税税率%',\n backgroundColor: '#8ac1f7',\n value: '0',\n },\n {\n content: '燃料增值税税率%',\n backgroundColor: '#f6c1a2',\n value: '0',\n },\n {\n content: '材料费进项增值税率%',\n backgroundColor: '#97bffa',\n value: '0',\n },\n {\n content: '法定公积金率%',\n backgroundColor: '#c3b8fa',\n value: '0',\n },\n {\n content: '任意公积金率%',\n backgroundColor: '#a2abfa',\n value: '0',\n },\n {\n content: '城市维护建设税税率%',\n backgroundColor: '#f7b3ae',\n value: '0',\n },\n {\n content: '教育费附加%',\n backgroundColor: '#a796f4',\n value: '0',\n },\n {\n content: '地方教育附加%',\n backgroundColor: '#f6c6c6',\n value: '0',\n },\n {\n content: '企业所得税税率%',\n backgroundColor: '#97b1fb',\n value: '0',\n },\n {\n content: '基准折现率%',\n backgroundColor: '#f7bd97',\n value: '0',\n },\n];\n","import { ANALYSIS_TYPE, ASSETS_TYPE, CHARGE_TYPE, PRODUCTION_COST_TYPE, SCHEDULE_TYPE, SOURCE_TYPE } from '@/component/evaluate/data/enum';\nimport { CardParam, Schedule } from '@/component/evaluate/data/interface';\nimport { cardParam, cardParam2, cardParam3, cardParam4, cardParam5, cardParam6 } from '@/component/evaluate/data/cardParam';\n\nconst Evaluate = {\n state: {\n schedule: {},\n routeName: '',\n theme: 'light',\n planList: [],\n },\n getters: {\n getCardParamBySchedule: (state: { schedule: CardParam[]; routeName: string }) => {\n switch (state.routeName) {\n case 'schedule':\n Object.keys(SCHEDULE_TYPE).forEach((key: string) => {\n if (Object.prototype.hasOwnProperty.call(state.schedule, key)) {\n cardParam[SCHEDULE_TYPE[key]].value = state.schedule[key];\n }\n });\n return cardParam;\n case 'source':\n Object.keys(SOURCE_TYPE).forEach((key: string) => {\n if (Object.prototype.hasOwnProperty.call(state.schedule, key)) {\n cardParam2[SOURCE_TYPE[key]].value = state.schedule[key];\n }\n });\n return cardParam2;\n case 'assets':\n Object.keys(ASSETS_TYPE).forEach((key: string) => {\n if (Object.prototype.hasOwnProperty.call(state.schedule, key)) {\n cardParam3[ASSETS_TYPE[key]].value = state.schedule[key];\n }\n });\n return cardParam3;\n case 'productionCost':\n Object.keys(PRODUCTION_COST_TYPE).forEach((key: string) => {\n if (Object.prototype.hasOwnProperty.call(state.schedule, key)) {\n cardParam4[PRODUCTION_COST_TYPE[key]].value = state.schedule[key];\n }\n });\n return cardParam4;\n case 'charge':\n Object.keys(CHARGE_TYPE).forEach((key: string) => {\n if (Object.prototype.hasOwnProperty.call(state.schedule, key)) {\n cardParam5[CHARGE_TYPE[key]].value = state.schedule[key];\n }\n });\n return cardParam5;\n default:\n Object.keys(ANALYSIS_TYPE).forEach((key: string) => {\n if (Object.prototype.hasOwnProperty.call(state.schedule, key)) {\n cardParam6[ANALYSIS_TYPE[key]].value = state.schedule[key];\n }\n });\n return cardParam6;\n }\n },\n\n getTheme: (state) => {\n return state.theme;\n },\n getPlanList: (state) => {\n return state.planList;\n },\n },\n mutations: {\n setSchedule: (state, data: Schedule) => {\n state.schedule = data;\n },\n setRoute: (state, data: string) => {\n state.routeName = data;\n },\n setTheme: (state, data: string) => {\n localStorage.setItem('theme', data);\n state.theme = data;\n },\n setPlanList: (state, payLoad) => {\n state.planList = payLoad;\n },\n },\n actions: {},\n};\nexport default Evaluate;\n","import { ProjectData, SimusPlanData } from '@/interfaces/api_interface';\n\nconst Project = {\n state: {\n project: {},\n simusPlan: [],\n },\n\n getters: {\n getProjectData: (state: { project: ProjectData }) => {\n return state.project;\n },\n getSimusPlan: (state: { simusPlan: Record[] }) => {\n return state.simusPlan;\n },\n },\n\n mutations: {\n // 设置页面数据\n setProjectData: (state: { project: ProjectData }, data: ProjectData) => {\n state.project = data;\n },\n // 设置财务数据\n setProjectDataWithFinance: (state: { simusPlan: SimusPlanData[] }, data: { id: string; data: { data: Record }[] }) => {\n state.simusPlan.forEach((x) => {\n if (x.id === data.id) {\n x.finance_overview = data.data[0];\n }\n });\n },\n // 设置环保数据\n setProjectDataWithEnvironment: (\n state: { simusPlan: SimusPlanData[] },\n data: { id: string; data: { results: { data: Record }[] } },\n ) => {\n state.simusPlan.forEach((x) => {\n if (x.id === data.id) {\n x.environment_evaluation = data.data.results[0];\n }\n });\n },\n // 设置能效数据\n setProjectDataWithEnergy: (\n state: { simusPlan: SimusPlanData[] },\n data: { id: string; data: { results: { data: Record }[] } },\n ) => {\n state.simusPlan.forEach((x) => {\n if (x.id === data.id) {\n x.energy_evaluation = data.data.results[0];\n }\n });\n },\n // 多选方案\n setSimusPlan: (state: { simusPlan: Record[] }, data: Record[]) => {\n state.simusPlan = data;\n },\n // 增加taskId\n setProjectDataWithTaskId: (state: { project: ProjectData }, data: { id: number; taskId: string }) => {\n state.project.simus.forEach((item) => {\n if (item.id === data.id) {\n item.taskId = data.taskId;\n }\n });\n },\n },\n};\n\nexport default Project;\n","import Vuex, { StoreOptions } from 'vuex';\n\nimport API from '@/Api/api_data';\nimport Vue from 'vue';\nimport authMessage from './modules/auth';\nimport dosimu from '@/Api/api_simulaion';\nimport locationMessage from '@/store/modules/locationMessage';\nimport run_time from '../Utils/run_time';\nimport Weather from '@/store/modules/weather-data';\nimport Evaluate from '@/store/modules/evaluate';\nimport Project from '@/store/modules/project';\nVue.use(Vuex);\n\nconst runTime = new run_time();\nconst loadStepTime = 10;\nconst titleMap: Record = {\n 阶梯电价: '阶梯电价的结算周期为1个月',\n 蒸汽按热量计价: '热量的计算方法为负荷处的蒸汽与对应压力下的饱和水之间的焓差',\n 采暖用热按热量计价: '热量的计算方法为负荷进出口水之间的焓差',\n 冷负荷中的按热量计价: '热量的计算方法为负荷进出口水之间的焓差',\n '年运营支出(万元)': '运维费用主要包括购买燃料和从公共电网购电两项费用',\n 能效水平: '指实际用能占实际供能的比例(四种能源形式的平均值)',\n 可再生能源利用比例: '指通过利用可再生能源生产的能量(电能、热能)在总供能(电能、热能)中的比例',\n};\nexport default new Vuex.Store({\n state: {\n current_id: 0,\n isLoading: false,\n projects: {},\n taskId: '',\n running: false,\n runend: false,\n progress: 0,\n currentPlanId: 0,\n optimizationMode: 0,\n isStop: false,\n iesMode: false,\n navigationRecords: { data: '', diagram: '', scheme: '', evaluate: '', digitalTwins: '' },\n isMainOnLoading: false,\n stringFieldRules: [{ required: true, message: '该字段不能为空', trigger: 'blur' }],\n numberFieldRules: [\n { required: true, message: '该字段不能为空', trigger: 'blur' },\n //字段不能为function,此处标记为string绕过检查\n { type: 'string', message: '该字段只能为数字', transform: ((value) => String(value)) as unknown as string, pattern: /^-?\\d*\\.?\\d+$/ },\n ],\n isTypicalLibraryEditMode: false,\n hotSettingsData: {} as Record>>,\n studioIframe: null,\n },\n mutations: {\n setIsTypicalLibraryEditMode(state, value) {\n state.isTypicalLibraryEditMode = value;\n },\n setStudioIframe(state, value) {\n state.studioIframe = value;\n },\n setIESMode(state, value) {\n state.iesMode = value;\n },\n // 控制loading显示隐藏\n updateLoadingStatus(state, payload) {\n state.isLoading = payload.isLoading;\n },\n setCurrentId: (state: any, id: any) => {\n state.current_id = id;\n },\n setProjects: (state: any, projects: any) => {\n state.projects = projects;\n },\n setTaskId: (state: { taskId: string }, taskId: string) => {\n state.taskId = taskId;\n },\n setRunning: (state: { running: boolean }, running: boolean) => {\n state.running = running;\n },\n setRunend: (state: { runend: boolean }, runend: boolean) => {\n state.runend = runend;\n },\n setIsStop: (state: { isStop: boolean }, isStop: boolean) => {\n state.isStop = isStop;\n },\n setprogress: (state: { progress: number }, progress: number) => {\n state.progress = progress;\n },\n\n setCurrentPlanId: (state: { currentPlanId: number }, currentPlanId: number) => {\n state.currentPlanId = currentPlanId;\n },\n setOptimizationMode: (state: { optimizationMode: number }, optimizationMode: number) => {\n state.optimizationMode = optimizationMode;\n },\n newProject: (state: any, params: any) => {\n state.projects.push({\n id: state.projects.length,\n name: params.name,\n desc: params.desc,\n modifiedTime: params.modifiedTime,\n status: 0,\n });\n },\n\n setNavigationRecord: (state, payload: { key: string; value: string }) => {\n state.navigationRecords[payload.key] = payload.value;\n },\n setIsMainOnLoading: (state, payload: boolean) => {\n state.isMainOnLoading = payload;\n },\n sethotSettingsData: (state, payload: Record>>) => {\n state.hotSettingsData = payload;\n },\n },\n actions: {\n getProjectListSyc(context, id) {\n return API.getSimuData({ id: id }).then((res: any) => {\n context.commit('setProjects', res);\n context.commit('setCurrentId', id);\n return res;\n });\n },\n loadLastSimulationTask(context, simuid) {\n return dosimu.getLastSimulationTask({ simuid: simuid }).then((ret: any) => {\n if (!ret.error) {\n context.commit('setTaskId', ret.data.task_id);\n context.commit('setOptimizationMode', ret.data.optimizationpara['OptimizationMode'] || 0);\n if (ret.data.status == 'stop') {\n context.commit('setIsStop', true);\n }\n return ret;\n } else if (ret.error == -1) {\n context.commit('setRunning', false);\n\n return ret;\n } else {\n context.commit('setRunning', false);\n return ret;\n }\n });\n },\n getSimulationLog(context, contData) {\n const taskid = context.state.taskId;\n const simuid = contData.simuid;\n const runningGet = () => {\n dosimu.getSimuLog({ simuid: simuid, taskid: taskid }).then((data: any) => {\n const mag = data.msg;\n for (let index = 0; index < mag.length; index++) {\n const element = mag[index];\n if (element.data == 'run start') {\n context.commit('setRunning', true);\n }\n if (element.data == 'run ends') {\n context.commit('setRunend', true);\n context.commit('setRunning', false);\n break;\n }\n }\n if (context.state.isStop) {\n if (contData.callback) {\n contData.callback(false);\n }\n context.commit('setRunend', true);\n context.commit('setRunning', false);\n return;\n }\n if (context.state.runend) {\n // this.getSimuResult()\n // this.progress = 100;\n if (contData.callback) {\n contData.callback(false);\n }\n context.commit('setprogress', 100);\n } else if (context.state.running) {\n if (contData.callback) {\n contData.callback(false);\n }\n // this.progress = Number((data.progress.data || 0).toFixed(2))\n context.commit('setprogress', Number((data.progress.data || 0).toFixed(2)));\n if (runTime) {\n runTime._setTimeout(() => {\n // this.getSimuLog();\n if (!context.state.runend) {\n runningGet();\n }\n }, loadStepTime * 1000);\n }\n } else {\n if (contData.callback) {\n contData.callback(true);\n }\n }\n });\n };\n runningGet();\n },\n clearRunTime(context) {\n context.commit('setRunning', false);\n runTime._clearTimeTickers();\n },\n },\n getters: {\n getProcess: (state) => {\n return state.progress;\n },\n getTaskId: (state) => {\n return state.taskId;\n },\n getRunend: (state) => {\n return state.runend;\n },\n getRunning: (state) => {\n return state.running;\n },\n\n getOptimizationMode: (state) => {\n return state.optimizationMode;\n },\n\n getCurrentPlanId: (state) => {\n return state.currentPlanId;\n },\n getTitle: () => (name: string) => {\n return titleMap[name];\n },\n getNavigationRecords: (state) => {\n return state.navigationRecords;\n },\n getIsMainOnLoading: (state) => {\n return state.isMainOnLoading;\n },\n getHotSettingsData: (state) => {\n return state.hotSettingsData;\n },\n },\n modules: {\n Weather,\n locationMessage,\n Evaluate,\n authMessage,\n Project,\n },\n} as unknown as StoreOptions>);\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=less&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./environmental-protection.vue?vue&type=style&index=0&id=59f70a60&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance-container.vue?vue&type=style&index=0&id=1da55612&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{style:({ width: '100%', height: this.defaultHeight }),attrs:{\"id\":\"chart_component\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\nimport { ECharts, EChartsOption, init } from 'echarts';\n/**\n * @author guan\n * @description 共用图表组件 new Echarts 构建图表\n */\n@Component({})\nexport default class InformationChart extends Vue {\n /** 预设颜色 */\n readonly colorList = ['#0497f8', '#49269a'];\n /** x轴参数 */\n readonly xAxisData = Array.apply(null, Array(12)).map((x, index) => `${index + 1}月`);\n /** 数据 */\n @Prop({\n default: () => [[1, 2, 4, 5, 6]],\n })\n data!: Array>;\n /**\n * @author guan\n * @description 创建图表series\n * @return EChartOption.Series[] 返回图表series\n */\n creatSeries(): EChartsOption['series'] | undefined {\n const name = ['去年', '今年'];\n const result: EChartsOption['series'] = this.data.map((x, index) => {\n return {\n data: x,\n name: name[index],\n type: 'line',\n lineStyle: {\n color: this.colorList[index],\n },\n areaStyle: {\n color: {\n type: 'linear',\n x: 0,\n y: 0,\n x2: 0,\n y2: 1,\n colorStops: [\n {\n offset: 0,\n color: this.colorList[index], // 0% 处的颜色\n },\n {\n offset: 1,\n color: 'transparent', // 100% 处的颜色\n },\n ],\n global: false, // 缺省为 false\n },\n },\n };\n });\n return result;\n }\n /** title */\n @Prop({ default: () => '默认值' })\n title!: string;\n /**\n * @author guan\n * @description 获取option\n * @return void\n */\n CreatOption(): EChartsOption {\n return {\n title: {\n text: this.title,\n textStyle: {\n fontSize: 14,\n },\n left: 'left',\n top: '10%',\n },\n legend: {},\n xAxis: {\n type: 'category',\n splitArea: {\n show: false,\n },\n data: this.xAxisData,\n },\n yAxis: {\n type: 'value',\n },\n series: this.creatSeries(),\n };\n }\n /** 传入的容器高度 */\n @Prop({ default: () => '350px' })\n private defaultHeight!: string;\n /** 图表实例 */\n private chart!: ECharts;\n /**\n * @author guan\n * @description 监听option,option变化时更新图表\n * @return void\n */\n @Watch('data', { immediate: true, deep: true })\n onPersonChanged1(): void {\n if (this.chart) {\n const option = this.CreatOption();\n this.chart.setOption(option, true);\n // setTimeout(() => {\n // this.chart.resize();\n // }, 500);\n this.chart.resize();\n }\n }\n /**\n * @author guan\n * @description 初始化图表\n * @return void\n */\n mounted(): void {\n /** 初始化 */\n this.chart = init(this.$el as HTMLDivElement);\n window.onresize = () => {\n this.chart.resize();\n };\n const option = this.CreatOption();\n this.chart.setOption(option);\n this.chart.resize();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./information-chart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./information-chart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./information-chart.vue?vue&type=template&id=753b4065&\"\nimport script from \"./information-chart.vue?vue&type=script&lang=ts&\"\nexport * from \"./information-chart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('a-config-provider',{attrs:{\"locale\":_vm.zh_CN}},[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue, Watch } from 'vue-property-decorator';\nimport { CreateElement } from 'vue';\nimport env from '../../Api/env';\n\nconst SIMU_STUDIO_PATH = [\n 'ies/diagram',\n 'diagram',\n 'gmm',\n 'ies/run-simulation',\n 'ies/run-optimization',\n 'scenario-generate',\n 'resilience-eval',\n 'resilience-plan',\n 'resilience-recovery',\n];\n@Component({})\nexport default class Diagram extends Vue {\n private src = '/model/admin/ies-simulation-454';\n get currentProject() {\n return this.$store.state.projects;\n }\n context = {};\n @Watch('$route.name', { immediate: true, deep: true })\n onOption(nVal: string, oVal: string): void {\n const url = new URL(`${this.src}`, env.projectUrl);\n if (nVal === 'diagram') {\n url.hash = `${this.context['currentComponent'] ?? '#/design/diagram/canvas/canvas_0'}`;\n } else if (nVal === 'ies/diagram') {\n url.hash = `${this.context['currentComponent'] ?? '#/design/diagram/canvas/canvas_0'}`;\n } else if (nVal === 'ies/run-simulation') {\n url.hash = `#/run/cases/${encodeURIComponent(\n `|function/CloudPSS/ieslab-simulation[${this.context['function/CloudPSS/ieslab-simulation'] ?? 0}]`,\n )}`;\n } else if (nVal === 'ies/run-optimization') {\n url.hash = `#/run/cases/${encodeURIComponent(\n `|function/CloudPSS/ieslab-optimization[${this.context['function/CloudPSS/ieslab-optimization'] ?? 0}]`,\n )}`;\n } else if (nVal === 'gmm') {\n url.hash = `#/run/cases/${encodeURIComponent(`|function/CloudPSS/ieslab-gmm[${this.context['function/CloudPSS/ieslab-gmm'] ?? 0}]`)}`;\n } else if (SIMU_STUDIO_PATH.includes(nVal)) {\n url.hash = `#/run/cases/${encodeURIComponent(`|function/CloudPSS/${nVal}[${this.context[`function/CloudPSS/${nVal}`] ?? 0}]`)}`;\n }\n this.src = url.href;\n }\n\n urlChange(): void {\n const iesMode = this.$store.state.iesMode ? 'ieslab-simulation' : 'ieslab-plan';\n if (this.currentProject != null && this.currentProject.model != null) {\n const url = new URL(`${this.currentProject.model}?simulation=${this.currentProject.id}&mode=${iesMode}`, env.projectUrl);\n this.src = url.href;\n this.onOption(this.$route.name ?? '', '');\n }\n }\n @Watch('currentProject', { deep: true })\n onProjectChanged(a, b) {\n this.urlChange();\n }\n\n parserHash(url: string): [string, [string, string], string] {\n const u = new URL(url);\n const s = u.hash.split('/');\n const hash = s[1];\n if (hash === 'run') {\n const p = decodeURIComponent(s[s.length - 1]);\n const [, jobFilter, jobIndex] = /([^/]+\\/[^/]+\\/[^/[]+)?\\[(\\d+)\\]/.exec(p) ?? [];\n\n const jobRid = jobFilter.split('|')[1];\n return [s[1], [jobRid, jobIndex], ''];\n }\n return [s[1], ['', ''], u.hash];\n }\n onload() {\n this.$store.commit('setStudioIframe', this.$refs['iframe']);\n (this.$refs['iframe'] as HTMLIFrameElement).contentWindow?.addEventListener('hashchange', (e) => {\n const iesMode = this.$store.state.iesMode;\n const env = e as HashChangeEvent;\n const [newHash, job, hash] = this.parserHash(env.newURL);\n\n const query = this.$route.query;\n const routeName = this.$route.name;\n if (!['ies/diagram', 'diagram', 'gmm', 'ies/run-simulation', 'ies/run-optimization'].includes(routeName ?? '')) return;\n\n if (newHash === 'run') {\n const [oldHash, oldJob] = this.parserHash(env.oldURL);\n const [jobRid, jobIndex] = job;\n\n const [oldJobRid] = oldJob;\n this.context[jobRid] = jobIndex;\n if (jobRid === oldJobRid) return;\n\n if (jobRid === 'function/CloudPSS/ieslab-optimization') {\n if (routeName === 'ies/run-optimization') return;\n this.$router.push({ path: 'run-optimization', query });\n return;\n } else if (jobRid === 'function/CloudPSS/ieslab-simulation') {\n if (routeName === 'ies/run-simulation') return;\n this.$router.push({ path: 'run-simulation', query });\n return;\n } else if (jobRid === 'function/CloudPSS/ieslab-gmm') {\n if (routeName === 'gmm') return;\n this.$router.push({ path: 'gmm', query });\n return;\n } else {\n if (routeName && jobRid.endsWith(routeName)) return;\n const p = jobRid.split('/')[2];\n console.log(p);\n this.$router.push({ path: p, query });\n return;\n }\n } else if (newHash === 'design') {\n this.context['currentComponent'] = hash;\n if (routeName?.includes('diagram')) return;\n\n if (iesMode) {\n this.$router.push({ path: 'diagram', query });\n } else {\n this.$router.push({ path: 'diagram', query });\n }\n }\n });\n }\n\n render(_h: CreateElement) {\n return (\n
\n \n
\n );\n }\n}\n","\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport zh_CN from 'ant-design-vue/lib/locale-provider/zh_CN';\nimport './App.less';\nimport editor from '@/views/Diagram/index';\nimport '@/assets/icon/iconfont.css';\nimport '@/layout/css/dark.less';\n/**\n *\n */\n@Component({\n components: {\n editor,\n },\n})\nexport default class App extends Vue {\n /** */\n private zh_CN = zh_CN;\n\n /**\n * mounted\n */\n mounted(): void {\n const theme = localStorage.getItem('theme');\n if (theme) {\n this.$store.commit('setTheme', theme);\n } else localStorage.setItem('theme', 'light');\n document.body.className = this.themeClass;\n }\n\n /**\n * path\n */\n @Watch('$route.path', { immediate: true, deep: true })\n onOption(_nVal: string, _oVal: string): void {\n this.setIES(_nVal.includes('/ies'));\n }\n /**\n * setIES\n */\n setIES(value: boolean): void {\n this.$store.commit('setIESMode', value);\n }\n\n /**\n * onThemeClass\n */\n @Watch('themeClass')\n onThemeClass(): void {\n document.body.className = this.themeClass;\n }\n\n /**\n *获取类名\n */\n get themeClass(): string {\n if (this.$store.getters.getTheme === 'dark') {\n return 'could_pss_dark_theme dark_theme';\n } else {\n return 'light_theme';\n }\n }\n}\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=4016672a&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a-layout',{staticClass:\"data-view\"},[_c('DataManage'),_c('a-spin',{staticStyle:{\"width\":\"100%\",\"overflow\":\"auto\",\"height\":\"100%\"},attrs:{\"spinning\":_vm.isMainOnLoading,\"tip\":\"Loading...\",\"size\":\"large\",\"delay\":500}},[_c('a-layout-content',{staticStyle:{\"padding\":\"15px 15px 0 15px\",\"height\":\"100%\"}},[(_vm.isRouterAlive)?_c('router-view'):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {\nvar this$1 = this;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!['prioritization', 'digitalTwins-index'].includes(this.$route.name))?_c('a-layout-sider',{staticClass:\"layout_sider\",staticStyle:{\"overflow\":\"auto\"},style:({ width: '210px', maxWidth: '250px', minWidth: '210px', height: '100%' })},[_c('a-menu',{attrs:{\"mode\":\"inline\",\"theme\":\"dark\",\"openKeys\":_vm.openKeys},on:{\"update:openKeys\":function($event){_vm.openKeys=$event},\"update:open-keys\":function($event){_vm.openKeys=$event},\"click\":function (params) {\n this$1.openPage(params);\n }},model:{value:(_vm.selectKeys),callback:function ($$v) {_vm.selectKeys=$$v},expression:\"selectKeys\"}},[(this.$route.path === '/simu/open')?_c('a-menu-item',{key:\"IESOpenSimu\",attrs:{\"id\":\"/ies/simu/open\"}},[_c('i',{class:\"iconfont project\",staticStyle:{\"margin-left\":\"5px\"}}),_c('span',[_vm._v(\"建模仿真\")])]):_vm._e(),_vm._l((_vm.routes[_vm.Group.PIndex].children[_vm.Group.CIndex].children\n ? _vm.routes[_vm.Group.PIndex].children[_vm.Group.CIndex].children\n : _vm.routes[_vm.Group.PIndex].children),function(item){return [(item.name !== 'ies/diagram' && _vm.getMenuItemIsShow(item))?[(!item.children)?_c('a-menu-item',{key:item.name,attrs:{\"id\":item.path}},[_c('span',[_vm._v(_vm._s(item.meta.title))])]):_c('sub-menu',{key:item.name,attrs:{\"open-names\":_vm.openKeys,\"is-expanded\":_vm.openKeys.includes(item.name),\"menu-info\":item}})]:_vm._e()]}),(this.$route.path === '/ies/simu/open')?_c('a-menu-item',{key:\"OpenSimu\",attrs:{\"id\":\"/simu/open\"}},[_c('i',{class:\"iconfont project\",staticStyle:{\"margin-left\":\"5px\"}}),_c('span',[_vm._v(\"规划设计(预览)\")])]):_vm._e()],2)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { routes } from '@/router/router';\nimport { eventBus } from '@/main';\nimport { RouteConfig } from 'vue-router';\nimport { Menu } from 'ant-design-vue';\n\nconst SubMenu = {\n template: `\n \n \n {{ menuInfo.meta.title}}\n \n \n \n `,\n name: 'SubMenu',\n // must add isSubMenu: true\n isSubMenu: true,\n props: {\n ...(Menu.SubMenu as unknown as { props: object }).props,\n // Cannot overlap with properties within Menu.SubMenu.props\n menuInfo: {\n type: Object,\n default: () => ({}),\n },\n openNames: {\n type: Array,\n default: () => [],\n },\n isExpanded: {\n type: Boolean,\n default: false,\n },\n },\n};\n\n/**\n * @author guan\n * @description 数据管理界面\n */\n@Component({\n components: { 'sub-menu': SubMenu },\n})\nexport default class DataManage extends Vue {\n /** */\n private routes = routes;\n /** 当前选中的key */\n selectKeys: string[] = [];\n /** 当前展开的key数组 */\n openKeys: string[] = [];\n\n /**\n *\n */\n get isTypicalLibraryEditMode(): boolean {\n return this.$store.state.isTypicalLibraryEditMode;\n }\n\n /**\n * 检查这个菜单项目是否该显示\n */\n getMenuItemIsShow(item: RouteConfig): boolean {\n return !(this.isTypicalLibraryEditMode && item.meta?.disableInTypicalLib);\n }\n\n /**\n *搜寻选择key的父key\n */\n searchOpenKeys(childKey: string): string[] {\n const openKeys = new Array();\n const searchNode = (node: RouteConfig): boolean => {\n if (node.name === childKey) {\n return true;\n } else if (node.children != null && node.children.length > 0) {\n if (node.children.map((item) => searchNode(item)).reduce((previousValue, currentValue) => previousValue || currentValue)) {\n openKeys.push(node.name as string);\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n };\n this.routes.forEach((item) => searchNode(item));\n return openKeys;\n }\n /**\n * @author guan\n * @description 将路径转换为数组对象\n * @return void\n * @param route 路径\n */\n routeToArray(route: string): { routeArr: string[]; params: string } {\n if (!route) {\n return {\n routeArr: [],\n params: '',\n };\n }\n const arr: string[] = route.split('/');\n const ret: string[] = [];\n let params = '';\n arr.shift();\n arr.forEach((item, index) => {\n if (parseInt(item, 10)) {\n params = item;\n return;\n }\n ret.push(index ? item : `/${item}`);\n });\n return {\n routeArr: ret,\n params,\n };\n }\n /**\n * @author guan\n * @description\n * @return void\n */\n mounted(): void {\n this.selectKeys = [this.$route.name as string];\n this.openKeys = this.searchOpenKeys(this.$route.name as string);\n eventBus.$on('upMenuStates', () => {\n this.selectKeys = ['weather_data'];\n });\n }\n /**\n *\n */\n get routeName(): string | null | undefined {\n return this.$route.name;\n }\n /**\n *\n */\n @Watch('routeName')\n routeNameChange(): void {\n this.selectKeys = [this.$route.name as string];\n this.openKeys = this.searchOpenKeys(this.$route.name as string);\n }\n\n /**\n * @author guan\n * @description 跳转路径\n * @return void\n * @param item 操作的key\n */\n openPage(item: { key: string }): void {\n const query = this.$route.query;\n let route = {\n name: item.key,\n query: query,\n };\n this.$router\n .push(route)\n .then(() => {\n const currentNavigation = String(this.$router.currentRoute.matched[1].name);\n this.$store.commit('setNavigationRecord', { key: currentNavigation, value: item.key });\n eventBus.$emit('reload');\n })\n .catch((e: Error) => {\n console.log(e.message);\n });\n }\n /**\n * @author guan\n * @description 获取当前路径下的数据\n * @return number 返回index\n */\n get Group(): unknown {\n let parentPath: string = this.routeToArray(this.$route.path).routeArr[0];\n let childrenPath: string = this.routeToArray(this.$route.path).routeArr[1];\n if (this.$route.path.includes('/ies')) {\n if (this.$route.path === '/ies/simu/open') {\n parentPath = '/ies';\n childrenPath = this.routeToArray(this.$route.path).routeArr[1] + '/' + this.routeToArray(this.$route.path).routeArr[2];\n } else {\n parentPath = this.routeToArray(this.$route.path).routeArr[0] + '/' + this.routeToArray(this.$route.path).routeArr[1];\n childrenPath = this.routeToArray(this.$route.path).routeArr[2];\n }\n }\n const parentIndex = this.routes.findIndex((x) => x.name === parentPath);\n let childIndex = 0;\n if (parentIndex === -1) {\n throw new Error('未知错误');\n } else {\n childIndex = (this.routes[parentIndex].children as unknown[]).findIndex((x) => (x as { path: string }).path === childrenPath);\n }\n return { PIndex: parentIndex, CIndex: childIndex };\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./data-manage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./data-manage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./data-manage.vue?vue&type=template&id=1088eb04&scoped=true&\"\nimport script from \"./data-manage.vue?vue&type=script&lang=ts&\"\nexport * from \"./data-manage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./data-manage.vue?vue&type=style&index=0&id=1088eb04&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1088eb04\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport DataManage from '@/layout/slider/data-manage.vue';\nimport { eventBus } from '@/main';\n/**\n * 框架入口文件\n */\n@Component({\n components: {\n DataManage,\n },\n})\nexport default class DataView extends Vue {\n /** */\n isRouterAlive = true;\n\n /**\n *获取主界面是否在加载中\n */\n get isMainOnLoading(): boolean {\n return this.$store.getters.getIsMainOnLoading;\n }\n /**\n * @author guan\n * @description\n * @return void\n */\n mounted(): void {\n eventBus.$on('reload', () => {\n this.isRouterAlive = false;\n this.$nextTick(() => (this.isRouterAlive = true));\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./data-view.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./data-view.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./data-view.vue?vue&type=template&id=2ea2f575&scoped=true&\"\nimport script from \"./data-view.vue?vue&type=script&lang=ts&\"\nexport * from \"./data-view.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./data-view.vue?vue&type=style&index=0&id=2ea2f575&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2ea2f575\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\n/**\n *\n */\n@Component({})\nexport default class Home extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./middleware.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./middleware.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./middleware.vue?vue&type=template&id=5ced69ae&\"\nimport script from \"./middleware.vue?vue&type=script&lang=ts&\"\nexport * from \"./middleware.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a-spin',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"tip\":\"数据上传中。。。\",\"spinning\":_vm.pageSpinning}},[_c('div',{staticClass:\"weather\",staticStyle:{\"height\":\"100%\",\"width\":\"100%\"}},[_c('div',{staticClass:\"baseColor\",staticStyle:{\"margin-bottom\":\"15px\",\"height\":\"3em\"}},[_c('a-row',{staticStyle:{\"color\":\"#3ab9ff !important\"},attrs:{\"gutter\":{ xs: 8, sm: 16, md: 24 }}},[_c('a-col',{staticStyle:{\"line-height\":\"3em\"},attrs:{\"xs\":14,\"sm\":14,\"md\":14,\"lg\":14,\"xl\":14,\"xxl\":17}},[_c('a-button',{staticStyle:{\"margin-left\":\"0.5em\"},attrs:{\"type\":\"primary\",\"loading\":_vm.exportLoading},on:{\"click\":function($event){return _vm.download()}}},[(!_vm.exportLoading)?_c('a-icon',{attrs:{\"type\":\"download\"}}):_vm._e(),_vm._v(\" 导出气象数据 \")],1),_c('a-button',{staticStyle:{\"margin-left\":\"1.2em\"},attrs:{\"disabled\":_vm.disabledFunction,\"type\":_vm.disabledFunction ? '' : 'primary'},on:{\"click\":function($event){return _vm.uploadExcel()}}},[_c('a-icon',{attrs:{\"type\":\"upload\"}}),_vm._v(\" 上传气象数据 \")],1)],1),_c('a-col',{staticStyle:{\"height\":\"3em\",\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"center\"},attrs:{\"xs\":10,\"sm\":10,\"md\":10,\"lg\":10,\"xl\":10,\"xxl\":7}},[_c('a-select',{staticStyle:{\"width\":\"100px\",\"border-radius\":\"5px\"},attrs:{\"default-value\":_vm.timeData.year,\"size\":\"small\",\"options\":_vm.yearSource},model:{value:(_vm.timeData.year),callback:function ($$v) {_vm.$set(_vm.timeData, \"year\", $$v)},expression:\"timeData.year\"}}),_c('a-select',{staticStyle:{\"width\":\"70px\",\"border-radius\":\"5px\",\"margin-left\":\"10px\"},attrs:{\"default-value\":_vm.timeData.month,\"size\":\"small\",\"options\":_vm.monthSource},model:{value:(_vm.timeData.month),callback:function ($$v) {_vm.$set(_vm.timeData, \"month\", $$v)},expression:\"timeData.month\"}}),_c('a-select',{staticStyle:{\"margin-left\":\"10px\",\"width\":\"70px\",\"border-radius\":\"5px\"},attrs:{\"options\":_vm.daySource,\"size\":\"small\"},model:{value:(_vm.timeData.day),callback:function ($$v) {_vm.$set(_vm.timeData, \"day\", $$v)},expression:\"timeData.day\"}}),_c('span',{staticStyle:{\"margin-left\":\"20px\"}},[_vm._v(\"编辑\")]),_c('a-switch',{staticStyle:{\"margin-left\":\"10px\"},attrs:{\"disabled\":_vm.disabledFunction,\"defaultChecked\":_vm.editFlag},on:{\"change\":function (checked) { return _vm.editTable(checked); }}})],1)],1)],1),(_vm.editFlag)?_c('hot-table',{attrs:{\"licenseKey\":\"non-commercial-and-evaluation\",\"settings\":_vm.htSettings}}):_c('a-table',{ref:\"formTable\",staticStyle:{\"height\":\"350px\"},attrs:{\"id\":\"weatherTable\",\"rowKey\":\"time\",\"columns\":_vm.columns,\"dataSource\":_vm.weather_data,\"pagination\":false,\"loading\":_vm.tableSpinning,\"bordered\":\"\",\"rowClassName\":function (record, index) { return (index % 2 === 0 ? 'oColor' : 'aColor'); },\"scroll\":{ x: 1300, y: 290 }}}),_c('div',{staticClass:\"baseColor\",staticStyle:{\"height\":\"320px\",\"margin-top\":\"15px\",\"width\":\"100%\"}},[_c('EChart',{ref:\"w_echart\",attrs:{\"defaultHeight\":'320px',\"propoption\":_vm.weatherOption}})],1),_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"flex-start\",\"flex-wrap\":\"wrap\"}},_vm._l((_vm.chartList.Message),function(item){return _c('div',{key:item.value,staticClass:\"baseColor weather-div__chartsSelect\",style:(_vm.chartList.getStaticStyle(item.name)),on:{\"click\":function($event){_vm.chartList.active = item.name}}},[_c('span',[_vm._v(_vm._s(item.name))])])}),0)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{style:({ width: '100%', height: this.defaultHeight }),attrs:{\"id\":\"chart_component\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { EChartsOption } from 'echarts';\n\nconst option: EChartsOption = {\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#999',\n },\n },\n },\n toolbox: {\n feature: {\n dataView: { show: true, readOnly: false },\n magicType: { show: true, type: ['line', 'bar'] },\n restore: { show: true },\n saveAsImage: { show: true },\n },\n },\n legend: {\n data: ['蒸发量', '降水量', '平均温度'],\n textStyle: {\n color: '#fff',\n },\n },\n xAxis: [\n {\n type: 'category',\n data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n axisPointer: {\n type: 'shadow',\n },\n },\n ],\n yAxis: [\n {\n type: 'value',\n name: '水量',\n min: 0,\n max: 250,\n interval: 50,\n axisLabel: {\n formatter: '{value} ml',\n },\n },\n {\n type: 'value',\n name: '温度',\n min: 0,\n max: 25,\n interval: 5,\n axisLabel: {\n formatter: '{value} °C',\n },\n },\n ],\n series: [\n {\n name: '蒸发量',\n type: 'bar',\n data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],\n },\n {\n name: '降水量',\n type: 'bar',\n data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],\n },\n {\n name: '平均温度',\n type: 'line',\n yAxisIndex: 1,\n data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],\n },\n ],\n};\nexport default option;\n","\n\n\n\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\nimport { ECharts, EChartsOption, init } from 'echarts';\nimport option from './options';\n/**\n * @author guan\n * @description 共用图表组件 new Echarts 构建图表\n */\n@Component({})\nexport default class Echarts extends Vue {\n /** 传入的option */\n @Prop({ default: () => option })\n private propoption!: EChartsOption;\n /** 传入的容器高度 */\n @Prop({ default: () => '350px' })\n private defaultHeight!: string;\n /** 图表实例 */\n private chart!: ECharts;\n\n /**\n * @author guan\n * @description 监听option,option变化时更新图表\n * @return void\n * @param val 新配置\n */\n @Watch('propoption', { deep: true })\n onPersonChanged1(val: EChartsOption): void {\n if (this.chart) {\n this.chart.setOption(val);\n }\n }\n /**\n * @author guan\n * @description 初始化图表\n * @return void\n */\n mounted(): void {\n /** 初始化 */\n this.chart = init(this.$el as HTMLDivElement, 'macarons');\n window.onresize = () => {\n this.chart.resize();\n };\n setTimeout(() => {\n this.chart.setOption(this.propoption);\n this.chart.resize();\n }, 1000);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./echarts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./echarts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./echarts.vue?vue&type=template&id=88cacd2c&\"\nimport script from \"./echarts.vue?vue&type=script&lang=ts&\"\nexport * from \"./echarts.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { EChartsOption } from 'echarts';\nconst WeatherOptionLine: EChartsOption = {\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#999',\n },\n },\n },\n toolbox: {\n feature: {\n dataView: { show: true, readOnly: false },\n magicType: { show: true, type: ['line', 'bar'], title: { line: '切换为曲线图' } },\n restore: { show: true },\n saveAsImage: { show: true },\n },\n },\n\n grid: {\n left: 100,\n right: 100,\n backgroundColor: 'transparent',\n },\n yAxis: {},\n series: [{}],\n};\nexport default WeatherOptionLine;\n","import { Vue } from 'vue-property-decorator';\nimport WeatherOptionLine from './chart-option/weather-option-line';\nimport { WeatherData } from '@/interfaces/weather_interface';\n\n// 建模仿真\nexport enum dataIESType {\n time = '日期',\n t10m = '环境温度(℃)',\n lwgab_swgdn = '太阳辐射强度(W/m2)',\n tsoil3 = '土壤平均温度(℃)',\n u10m = '距地面10m处东向风速(m/s)',\n u50m = '距地面50m处东向风速(m/s)',\n v10m = '距地面10m处北向风速(m/s)',\n v50m = '距地面50m处北向风速(m/s)',\n}\n\n// 天气新数据格式\nexport enum dataWeatherNewType {\n time = '日期',\n t10m = '环境温度(℃)',\n tsoil3 = '土壤平均温度(℃)',\n u10m = '距地面10m处东向风速(m/s)',\n u50m = '距地面50m处东向风速(m/s)',\n v10m = '距地面10m处北向风速(m/s)',\n v50m = '距地面50m处北向风速(m/s)',\n adj_sfc_sw_direct_all_1h = '短波直射强度(W/m²)',\n adj_sfc_sw_diff_all_1h = '短波散射强度(W/m²)',\n solar_zen_angle_1h = '太阳天顶角°',\n}\n\n/**\n * 天气模块基础类\n */\nexport default class Weather_Base extends Vue {\n /**\n * 年数据列表\n */\n yearSource = [2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021].map((x) => {\n return {\n value: x,\n label: `${x}年`,\n };\n });\n /** 月数据列表 */\n monthSource = new Array(12).fill('').map((_x, index) => {\n return { value: index + 1, label: `${index + 1}月` };\n });\n\n /** 时间绑定 */\n timeData = { year: 2021, month: 1, day: 1 };\n\n /** 日数据列表 */\n get daySource(): Array<{ value: number; label: string }> {\n const d = new Date(this.timeData.year, this.timeData.month, 0);\n const length = d.getDate();\n return new Array(length).fill('').map((x, index) => {\n return { value: index + 1, label: `${index + 1}日` };\n });\n }\n\n /** 天气数据表 */\n weather_data: WeatherData[] = [];\n\n /** 天气数据缓存表 */\n weather_data_cache: WeatherData[] = [];\n\n /** 图表默认option */\n weatherOption = {\n ...WeatherOptionLine,\n xAxis: {\n type: 'category',\n data: new Array(24).fill('').map((x, index) => {\n return `${index}h`;\n }),\n axisPointer: {\n type: 'shadow',\n },\n axisLabel: {},\n },\n toolbox: {\n feature: {\n magicType: { show: true, type: ['line', 'bar'], title: { line: '切换为曲线图' } },\n restore: { show: true },\n saveAsImage: { show: true },\n },\n right: '2%',\n top: 0,\n },\n };\n\n /** 天气坐标 */\n weather_coordinates = {\n lat: 10,\n lng: 10,\n };\n}\n","/**\n * 旧版数据 handsontable\n */\nconst WEATHER_HT_COLUMNS = [\n {\n data: 'time',\n key: 'time',\n title: '日期',\n type: 'text',\n readOnly: true,\n },\n {\n data: 't10m',\n key: 't10m',\n title: '环境温度(℃)',\n type: 'numeric',\n },\n {\n data: 'lwgab_swgdn',\n key: 'lwgab_swgdn',\n title: '太阳辐射强度(W/m2)',\n type: 'numeric',\n },\n {\n data: 'tsoil3',\n key: 'tsoil3',\n title: '土壤平均温度(℃)',\n type: 'numeric',\n },\n {\n data: 'u10m',\n key: 'u10m',\n title: '距地面10m处东向风速(m/s)',\n type: 'numeric',\n },\n {\n data: 'u50m',\n key: 'u50m',\n title: '距地面50m处东向风速(m/s)',\n type: 'numeric',\n },\n {\n data: 'v10m',\n key: 'v10m',\n title: '距地面10m处北向风速(m/s)',\n type: 'numeric',\n },\n {\n data: 'v50m',\n key: 'v50m',\n title: '距地面50m处北向风速(m/s)',\n type: 'numeric',\n },\n];\n/**\n * 旧版数据\n */\nconst WEATHER_COLUMNS = [\n {\n dataIndex: 'time',\n key: 'time',\n title: '日期',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 't10m',\n key: 't10m',\n title: '环境温度(℃)',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 'lwgab_swgdn',\n key: 'lwgab_swgdn',\n title: '太阳辐射强度(W/m2)',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 'tsoil3',\n key: 'tsoil3',\n title: '土壤平均温度(℃)',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 'u10m',\n key: 'u10m',\n title: '距地面10m处东向风速(m/s)',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 'u50m',\n key: 'u50m',\n title: '距地面50m处东向风速(m/s)',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 'v10m',\n key: 'v10m',\n title: '距地面10m处北向风速(m/s)',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 'v50m',\n key: 'v50m',\n title: '距地面50m处北向风速(m/s)',\n width: 150,\n align: 'center',\n },\n];\n\n/**\n * 新版天气数据\n */\nconst WEATHER_COLUMNS_New = [\n {\n dataIndex: 'time',\n key: 'time',\n title: '日期',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 't10m',\n key: 't10m',\n title: '环境温度(℃)',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 'tsoil3',\n key: 'tsoil3',\n title: '土壤平均温度(℃)',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 'u10m',\n key: 'u10m',\n title: '距地面10m处东向风速(m/s)',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 'u50m',\n key: 'u50m',\n title: '距地面50m处东向风速(m/s)',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 'v10m',\n key: 'v10m',\n title: '距地面10m处北向风速(m/s)',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 'v50m',\n key: 'v50m',\n title: '距地面50m处北向风速(m/s)',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 'adj_sfc_sw_direct_all_1h',\n key: 'adj_sfc_sw_direct_all_1h',\n title: '短波直射强度(W/m²)',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 'adj_sfc_sw_diff_all_1h',\n key: 'adj_sfc_sw_diff_all_1h',\n title: '短波散射强度(W/m²)',\n width: 150,\n align: 'center',\n },\n {\n dataIndex: 'solar_zen_angle_1h',\n key: 'solar_zen_angle_1h',\n title: '太阳天顶角°',\n width: 150,\n align: 'center',\n },\n];\n\n/**\n * 新版天气数据 handsontable\n */\nconst WEATHER_HT_COLUMNS_New = [\n {\n data: 'time',\n key: 'time',\n title: '日期',\n type: 'text',\n readOnly: true,\n },\n {\n data: 't10m',\n key: 't10m',\n title: '环境温度(℃)',\n type: 'numeric',\n },\n {\n data: 'tsoil3',\n key: 'tsoil3',\n title: '土壤平均温度(℃)',\n type: 'numeric',\n },\n {\n data: 'u10m',\n key: 'u10m',\n title: '距地面10m处东向风速(m/s)',\n type: 'numeric',\n },\n {\n data: 'u50m',\n key: 'u50m',\n title: '距地面50m处东向风速(m/s)',\n type: 'numeric',\n },\n {\n data: 'v10m',\n key: 'v10m',\n title: '距地面10m处北向风速(m/s)',\n type: 'numeric',\n },\n {\n data: 'v50m',\n key: 'v50m',\n title: '距地面50m处北向风速(m/s)',\n type: 'numeric',\n },\n {\n data: 'adj_sfc_sw_direct_all_1h',\n key: 'adj_sfc_sw_direct_all_1h',\n title: '短波直射强度(W/m²)',\n type: 'numeric',\n },\n {\n data: 'adj_sfc_sw_diff_all_1h',\n key: 'adj_sfc_sw_diff_all_1h',\n title: '短波散射强度(W/m²)',\n type: 'numeric',\n },\n {\n data: 'solar_zen_angle_1h',\n key: 'solar_zen_angle_1h',\n title: '太阳天顶角°',\n type: 'numeric',\n },\n];\nexport { WEATHER_HT_COLUMNS, WEATHER_COLUMNS, WEATHER_COLUMNS_New, WEATHER_HT_COLUMNS_New };\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Watch } from 'vue-property-decorator';\nimport EChart from '@/component/weather/Charts/echarts.vue';\nimport API from '@/Api/api_data';\nimport { HotTable } from '@handsontable/vue';\nimport 'handsontable/dist/handsontable.full.css';\nimport { Column, Worksheet } from 'exceljs';\nimport './weather.less';\nimport '../baidumap/css/Weather.less';\nimport MessageBus from '@/Utils/message/message-bus';\nimport NavigationInformation from '@/component/NavigationInformation/menu-item/navigation-information';\nimport { getQueryString } from '@/Api/api_data';\nimport Tools from '@/component/template/tools/tools';\nimport { WeatherData, WeatherData_Origin } from '@/interfaces/weather_interface';\nimport WeatherBase, { dataIESType, dataWeatherNewType } from './index';\nimport Handsontable from 'handsontable';\nimport { WEATHER_COLUMNS, WEATHER_HT_COLUMNS, WEATHER_COLUMNS_New, WEATHER_HT_COLUMNS_New } from '@/component/weather/weather/table-column';\nimport { profile } from '@/Utils/profile';\nconst ieslabDisableRules = profile.get('ieslabDisableRules') === 'true';\nconst iesDisableRules = profile.get('iesDisableRules') === 'true';\n\n/**\n * Component\n */\n@Component({\n components: {\n EChart,\n 'hot-table': HotTable,\n },\n})\nexport default class Weather extends WeatherBase {\n /** 天气表格 columns */\n columns: any[] = []; //eslint-disable-line\n /** 天气表格 handsontable */\n ht_columns: any = []; //eslint-disable-line\n\n /** 旧版气象类型 */\n chartSelectListIES = Object.keys(dataIESType)\n .splice(1)\n .map((x) => {\n return {\n value: x,\n name: dataIESType[x],\n };\n });\n\n /** 新版气象类型 */\n chartSelectListNew = Object.keys(dataWeatherNewType)\n .splice(1)\n .map((x) => {\n return {\n value: x,\n name: dataWeatherNewType[x],\n };\n });\n\n /** 算例id */\n simu_id!: number;\n /** 表格数据加载延迟 */\n tableSpinning = true;\n /** 图表导航配置 */\n chartList = new NavigationInformation(this.chartSelectListIES, '环境温度(℃)');\n /** 确定按钮loading */\n confirmLoading = false;\n /** 编辑状态 */\n editFlag = false;\n /** 导出按钮loading */\n exportLoading = false;\n /** 页面loading */\n pageSpinning = false;\n /** 编辑表格数据 */\n get htSettings(): Handsontable.GridSettings {\n return {\n stretchH: 'all',\n width: '100%',\n autoWrapRow: true,\n height: 350,\n maxRows: 24,\n rowHeights: 50,\n manualRowResize: true,\n manualColumnResize: true,\n rowHeaders: true,\n manualRowMove: true,\n className: 'htCenter',\n manualColumnMove: true,\n columns: this.ht_columns,\n data: this.weather_data,\n colHeaders: Object.values(dataIESType),\n afterChange: (changes: Handsontable.CellChange[] | null, source: string): void => {\n if (!changes) return;\n if (!this.htSettings.data) return;\n if (source === 'edit' && changes[0][2] !== changes[0][3]) {\n if (isNaN(Number(changes[0][3]))) {\n MessageBus.Notification('error', {\n description: '验证错误,请检查格式!',\n message: '提示',\n });\n this.htSettings.data[changes[0][0]][changes[0][1]] = changes[0][2];\n } else {\n this.weather_data_cache.push(this.htSettings.data[changes[0][0]] as WeatherData);\n }\n }\n },\n // 增加判断是否为批量复制后的值,传入weather_data_cache\n afterAutofill: (fillData, sourceRange, targetRange: Handsontable.wot.CellRange): void => {\n if (!this.htSettings.data) return;\n const end = targetRange.to.row;\n let start = targetRange.from.row;\n while (start <= end) {\n const item = this.htSettings.data[start];\n this.weather_data_cache.push(item as WeatherData);\n start++;\n }\n },\n };\n }\n\n /** */\n disabledFunction = false;\n\n /**\n * @author guan\n * @description 加载默认数据\n * @return void\n */\n async mounted(): Promise {\n const simu_id = this.$route.query.simu_id as string;\n this.getDateFunc(simu_id).catch(() => {\n this.tableSpinning = false;\n });\n await this.getWeatherData();\n if (!this.$route.name?.includes('ies')) {\n this.disabledFunction = ieslabDisableRules;\n } else {\n this.disabledFunction = iesDisableRules;\n }\n }\n\n /**\n * 获得当前主题\n */\n get cloudPssTheme(): string {\n return this.$store.getters.getTheme;\n }\n\n /**\n * 监听当前主题变化,改变页面部分样式\n */\n @Watch('cloudPssTheme')\n onThemeChange(): void {\n this.formatStatsData();\n }\n\n /**\n * 监听选择日期变化,重新加载页面数据\n */\n @Watch('timeData', { deep: true })\n async getWeatherDataBySelect(): Promise {\n try {\n await this.getWeatherData();\n // 强制刷新htSettings表格\n this.editFlag = !this.editFlag;\n this.$nextTick(() => {\n this.editFlag = !this.editFlag;\n });\n } catch (error) {\n MessageBus.Notification('error', { message: '数据加载错误', description: '数据加载错误,请重试' });\n }\n }\n /**\n * 监听当前激活的tab\n */\n @Watch('chartList.active', { immediate: true, deep: true })\n getEChartData(): void {\n this.formatStatsData();\n }\n\n /**\n * @param data 旧气象数据\n */\n private toFixedData(data: WeatherData_Origin[]): Promise {\n return new Promise((resolve) => {\n data.forEach((x) => {\n x.tsoil3 = (Number(x.tsoil3) - 273.15).toFixed(2);\n x.lwgab_swgdn = Number(x.lwgab_swgdn).toFixed(3);\n x.t10m = (Number(x.t10m) - 273.15).toFixed(3);\n x.u10m = Number(x.u10m).toFixed(3);\n x.u50m = Number(x.u50m).toFixed(3);\n x.v10m = Number(x.v10m).toFixed(3);\n x.v50m = Number(x.v50m).toFixed(3);\n x.qv10m = Number(x?.qv10m).toFixed(3);\n if (x.adj_sfc_sw_direct_all_1h) {\n x.adj_sfc_sw_direct_all_1h = Number(x?.adj_sfc_sw_direct_all_1h).toFixed(3);\n }\n if (x.adj_sfc_sw_diff_all_1h) {\n x.adj_sfc_sw_diff_all_1h = Number(x?.adj_sfc_sw_diff_all_1h).toFixed(3);\n }\n if (x.solar_zen_angle_1h) {\n x.solar_zen_angle_1h = Number(x?.solar_zen_angle_1h).toFixed(3);\n }\n });\n return resolve(data);\n });\n }\n\n /**\n * @author guan\n * @description 获取天气数据\n * @return void\n */\n private async getWeatherData(): Promise {\n this.tableSpinning = true;\n const simu_id = this.$route.query.simu_id as string;\n let year: string | number = this.timeData.year;\n let month: string | number = this.timeData.month;\n let day: string | number = this.timeData.day;\n if (this.timeData.month < 10) {\n month = `0${month}`;\n }\n if (this.timeData.day < 10) {\n day = `0${day}`;\n }\n const res = await API.getWeatherData({\n time_after: `${year}-${month}-${day}`,\n time_before: `${year}-${month}-${day}`,\n sid: simu_id,\n });\n const results = await this.toFixedData(res.results);\n if (results.length === 0) {\n this.tableSpinning = false;\n this.columns = WEATHER_COLUMNS_New;\n this.weather_data = [];\n this.htSettings.data = this.weather_data;\n this.ht_columns = WEATHER_HT_COLUMNS;\n } else {\n this.weather_coordinates = {\n lat: res.results[0].lat,\n lng: res.results[0].lng,\n };\n if (!res.results[0]['adj_sfc_sw_direct_all_1h'] && !res.results[0]['adj_sfc_sw_diff_all_1h'] && !res.results[0]['solar_zen_angle_1h']) {\n this.columns = WEATHER_COLUMNS;\n this.ht_columns = WEATHER_HT_COLUMNS;\n this.chartList = new NavigationInformation(this.chartSelectListIES, '环境温度(℃)');\n } else {\n this.columns = WEATHER_COLUMNS_New;\n this.ht_columns = WEATHER_HT_COLUMNS_New;\n this.chartList = new NavigationInformation(this.chartSelectListNew, '环境温度(℃)');\n }\n this.weather_data = results;\n this.tableSpinning = false;\n this.htSettings.data = this.weather_data;\n this.formatStatsData();\n }\n }\n\n /**\n * @author guan\n * @description 编辑更新天气数据方法\n * @return void\n */\n updateWeatherData(data: WeatherData[]): void {\n const allRequests = data.map((x) => {\n let xx = { ...x };\n xx.time = `${xx.time}`;\n xx.tsoil3 = (Number(x.tsoil3) + 273.15).toString();\n xx.t10m = (Number(x.t10m) + 273.15).toString();\n return API.updateWeatherData(xx);\n });\n Promise.all(allRequests)\n .then(() => {\n this.$notification.success({ message: '成功', description: '更新数据成功' });\n })\n .catch(() => {\n this.$notification.error({ message: '失败', description: '更新数据失败' });\n });\n }\n\n /**\n * 上传天气数据方法\n */\n async postWeatherData(item: WeatherData[]): Promise {\n try {\n await API.postWeatherData({ data: item, sid: Number(getQueryString()['simu_id']) }, {});\n await this.getWeatherData();\n this.$notification.success({ message: '成功', description: '上传数据成功' });\n } catch {\n this.$notification.error({ message: '失败', description: '上传数据失败' });\n } finally {\n this.pageSpinning = false;\n }\n }\n /**\n * @author guan\n * @description 格式化数据\n * @return void\n */\n formatStatsData(): void {\n this.weatherOption.yAxis = [];\n this.weatherOption.series = [];\n /** 生成对应配置 */\n const yData = {\n type: 'value' as 'value' | 'category' | 'time' | 'log',\n name: this.chartList.active,\n nameTextStyle: {\n color: this.cloudPssTheme === 'dark' ? '#ffffff' : '#000',\n },\n axisLabel: {\n formatter: '{value}',\n color: this.cloudPssTheme === 'dark' ? '#ffffff' : '#000',\n },\n splitLine: {\n show: false,\n },\n };\n let chartSelectList: any = []; //eslint-disable-line\n if (this.weather_data.length === 0) {\n chartSelectList = this.chartSelectListIES;\n } else {\n if (!this.weather_data[0]['adj_sfc_sw_direct_all_1h']) {\n chartSelectList = this.chartSelectListIES;\n } else {\n chartSelectList = this.chartSelectListNew;\n }\n }\n // const chartSelectList = this.chartSelectListIES;\n const info = chartSelectList.find((x) => {\n return x.name === this.chartList.active;\n });\n if (!info) {\n void this.$message.error({ content: `未找到 ${this.chartList.active} 的天气数据` });\n throw new Error(`no find ${this.chartList.active}`);\n }\n const getData = this.weather_data.map((x) => {\n return x[info.value];\n });\n\n const xAxis = this.weather_data.map((x) => {\n return x.time;\n });\n\n /** 加载数据 */\n this.weatherOption.yAxis = yData;\n this.weatherOption.xAxis.axisLabel = { color: this.cloudPssTheme === 'dark' ? '#ffffff' : '#000' };\n this.weatherOption.xAxis.data = xAxis;\n this.weatherOption.series.push({\n name: this.chartList.active,\n type: 'line',\n data: getData,\n });\n }\n /**\n * @author guan\n * @description 下载模板\n * @return void\n */\n async download(): Promise {\n await Tools.init('天气气象数据', undefined, undefined, (Worksheet: Worksheet) => {\n return this.initStyle(Worksheet);\n });\n }\n /**\n * @author guan\n * @description 初始化\n * @return void\n * @param Worksheet\n */\n async initStyle(Worksheet: Worksheet): Promise {\n this.exportLoading = true;\n let chartSelectList = this.chartSelectListIES;\n if (this.weather_data.length === 0) {\n chartSelectList = this.chartSelectListIES;\n } else {\n if (!this.weather_data[0]['adj_sfc_sw_direct_all_1h']) {\n chartSelectList = this.chartSelectListIES;\n } else {\n chartSelectList = this.chartSelectListNew;\n }\n }\n const columns: Array> = chartSelectList.map((x) => {\n return { header: x.name, key: x.value, width: 16 };\n });\n columns.unshift({ header: '日期', key: 'time', width: 32 });\n Worksheet.columns = columns;\n let data: WeatherData[];\n try {\n const res = await API.getWeatherData({\n sid: getQueryString()['simu_id'],\n size: 52608,\n });\n data = await this.toFixedData(res.results);\n Worksheet.addRows(data);\n this.exportLoading = false;\n this.$notification.success({ message: '成功', description: '导出数据成功' });\n return Worksheet;\n } catch {\n this.exportLoading = false;\n this.$notification.error({ message: '失败', description: '导出数据失败' });\n return Worksheet;\n }\n }\n\n /**\n * @author: guan\n * @description: 上传数据\n */\n async uploadExcel(): Promise {\n /** 目标文件,暂不支持多选 */\n const file = await Tools.userUpload();\n if (file == null) {\n return;\n }\n if (file.name.split('.').pop() !== 'xlsx' && file.name.split('.').pop() !== 'xls') {\n MessageBus.Notification('warning', { description: '请选择上传的文件类型为XLSX或XLS', message: '提示' });\n return;\n }\n this.pageSpinning = true;\n const columns = this.ht_columns.map((x) => {\n return x.title;\n });\n const data = await Tools.loadDataByExcel(file);\n const headers = data[0];\n for (const item of headers) {\n if (!columns.includes(item)) {\n MessageBus.Notification('error', { description: 'excel表格表头数据有误!', message: '提示' });\n this.pageSpinning = false;\n return;\n }\n }\n const dataList = data.slice(1);\n dataList.forEach((item, index) => {\n const isValidateDate = this.validateDate(item[0]);\n if (!isValidateDate) {\n MessageBus.Notification('error', {\n description: `第${index + 2}行,日期列数据格式有误或数据非法,正确格式为YYYY-MM-DD hh:mm:ss!`,\n message: `提示`,\n duration: 4,\n });\n this.pageSpinning = false;\n return;\n }\n\n const list = item.slice(1);\n list.forEach((v, i) => {\n if (isNaN(Number(v)) || v === '') {\n MessageBus.Notification('error', {\n description: `第${index + 2}行${i + 2}列,数据格式错误!`,\n message: '提示',\n duration: 4,\n });\n this.pageSpinning = false;\n return;\n }\n });\n });\n if (!columns.includes('短波直射强度(W/m²)')) {\n const arr = dataList.map((item) => {\n return {\n sid: getQueryString()['simu_id'],\n lat: this.weather_coordinates.lat,\n lng: this.weather_coordinates.lng,\n time: item[0],\n t10m: (Number(item[1]) + 273.15).toString(),\n lwgab_swgdn: item[2],\n tsoil3: (Number(item[3]) + 273.15).toString(),\n u10m: item[4],\n u50m: item[5],\n v10m: item[6],\n v50m: item[7],\n };\n });\n void this.postWeatherData(arr as unknown as WeatherData[]);\n } else {\n const arr = dataList.map((item) => {\n return {\n sid: getQueryString()['simu_id'],\n lat: this.weather_coordinates.lat,\n lng: this.weather_coordinates.lng,\n time: item[0],\n t10m: (Number(item[1]) + 273.15).toString(),\n lwgab_swgdn: item[2],\n u10m: item[3],\n u50m: item[4],\n v10m: item[5],\n v50m: item[6],\n adj_sfc_sw_direct_all_1h: item[7],\n adj_sfc_sw_diff_all_1h: item[8],\n solar_zen_angle_1h: item[9],\n };\n });\n void this.postWeatherData(arr as unknown as WeatherData[]);\n }\n }\n\n /**\n * 日期合法性校验\n * 合法格式为YYYY-MM-DD hh:mm:ss\n * new Date()构造函数会为不合理的日期参数做进位运算,如:new Date('2019-02-29 00:00:00').getDate() === 1\n */\n validateDate(str: string): boolean {\n const date = new Date(str);\n const day = date.getDate();\n const valid = /^[1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\\s+(20|21|22|23|[0-1]\\d):[0-5]\\d:[0-5]\\d$/;\n if (isNaN(Number(date))) {\n return false;\n }\n if (!valid.test(str)) {\n return false;\n }\n if (day !== Number(str.slice(8, 10))) {\n return false;\n } else {\n return true;\n }\n }\n\n /**\n * 编辑表格\n */\n editTable(checked: boolean): void {\n this.editFlag = checked;\n if (!checked) {\n if (this.weather_data_cache.length > 0) {\n this.updateWeatherData(this.weather_data_cache);\n this.formatStatsData();\n }\n } else {\n this.htSettings.data = this.weather_data;\n this.weather_data_cache = [];\n }\n }\n\n /**\n * 获得日期\n */\n async getDateFunc(simu_id: string): Promise {\n const params = {\n simu_id: Number(simu_id),\n };\n const res = await API.loadDateData(params);\n let startYear = Number(res.firstTime.substring(0, 4));\n const lastYear = Number(res.lastTime.substring(0, 4));\n this.yearSource = [];\n while (startYear <= lastYear) {\n this.yearSource.push({\n value: startYear,\n label: `${startYear++}年`,\n });\n }\n const lastTime = Number(res.lastTime.substring(5, 7));\n this.monthSource = [\n ...new Array(lastTime).fill('').map((_x, index) => {\n return { value: index + 1, label: `${index + 1}月` };\n }),\n ];\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./weather.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./weather.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./weather.vue?vue&type=template&id=17c555da&\"\nimport script from \"./weather.vue?vue&type=script&lang=ts&\"\nexport * from \"./weather.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a-spin',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"tip\":\"数据载入中。。。\",\"spinning\":this.spinning}},[_c('div',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"id\":\"components-form-demo-advanced-search\"}},[_c('baidu-map',{ref:\"map\",staticClass:\"map\",staticStyle:{\"height\":\"calc(100% - 20px)\",\"width\":\"100%\",\"position\":\"relative\"},attrs:{\"mapClick\":false,\"mapType\":\"BMAP_HYBRID_MAP\",\"center\":_vm.center,\"zoom\":10,\"ak\":\"ufGz2TbecaXr4hBqWYuLWr5CGCzXZuFT\"},on:{\"ready\":_vm.mapReady}},[_c('bm-scale',{attrs:{\"anchor\":\"BMAP_ANCHOR_BOTTOM_LEFT\"}}),_c('bm-navigation',{attrs:{\"anchor\":\"BMAP_ANCHOR_TOP_LEFT\"}}),_c('bm-control',{attrs:{\"anchor\":\"BMAP_ANCHOR_TOP_RIGHT\"}},[_c('a-card',{staticClass:\"baseColor\",style:(_vm.style),attrs:{\"bodyStyle\":{ padding: '10px', width: '200px' }}},[_c('span',[_vm._v(\"经度:\")]),_c('a-input',{staticStyle:{\"display\":\"inline-block\",\"width\":\"120px\",\"margin-top\":\"5px\"},attrs:{\"size\":\"small\"},on:{\"change\":_vm.moveMapMark},model:{value:(_vm.location.longitude),callback:function ($$v) {_vm.$set(_vm.location, \"longitude\", $$v)},expression:\"location.longitude\"}}),_c('br'),_c('span',[_vm._v(\"纬度:\")]),_c('a-input',{staticStyle:{\"display\":\"inline-block\",\"width\":\"120px\",\"margin-top\":\"5px\"},attrs:{\"size\":\"small\"},on:{\"change\":_vm.moveMapMark},model:{value:(_vm.location.latitude),callback:function ($$v) {_vm.$set(_vm.location, \"latitude\", $$v)},expression:\"location.latitude\"}}),_c('br'),_c('a-button',{staticStyle:{\"margin-left\":\"40px\",\"margin-top\":\"10px\"},attrs:{\"size\":\"small\",\"icon\":\"folder-add\",\"disabled\":_vm.disabledFunction,\"type\":_vm.disabledFunction ? '' : 'primary'},on:{\"click\":_vm.loadWeatherData}},[_vm._v(\"载入气象数据 \")])],1)],1),_c('bm-control',{attrs:{\"anchor\":\"BMAP_ANCHOR_TOP_RIGHT\"}},[_c('a-card',{staticClass:\"baseColor\",style:(_vm.styleLocal),attrs:{\"bodyStyle\":{ padding: '10px', width: '200px' }}},[_vm._v(\" 定位: \"),_c('a-switch',{style:({ marginLeft: '10px' }),attrs:{\"defaultChecked\":_vm.location.MARK_MODE,\"title\":\"定位\",\"size\":\"small\"},on:{\"change\":function (checked) {\n _vm.location.MARK_MODE = checked;\n }}}),_c('br'),_vm._v(\" 回到定位点: \"),_c('a-button',{style:({\n position: 'relative',\n }),attrs:{\"disabled\":!_vm.location.MARK_MODE,\"shape\":\"circle\",\"icon\":\"environment\",\"size\":\"small\",\"title\":\"回到定位点\"},on:{\"click\":_vm.getBackMarker}})],1)],1),(_vm.isMapRender)?_c('bm-control',{attrs:{\"anchor\":\"BMAP_ANCHOR_TOP_RIGHT\"}},[_c('a-empty',{staticStyle:{\"position\":\"absolute\",\"left\":\"40%\",\"top\":\"30%\"}},[_c('span',{attrs:{\"slot\":\"description\"},slot:\"description\"},[_vm._v(\" 地图未成功渲染 \")])])],1):_vm._e(),_c('bm-city-list',{attrs:{\"anchor\":\"BMAP_ANCHOR_TOP_RIGHT\"}}),(_vm.location.MARK_MODE)?_c('bm-marker',{attrs:{\"position\":_vm.location.marker_position,\"animation\":\"BMAP_ANIMATION_BOUNCE\"}}):_vm._e()],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport BaiduMap from 'vue-baidu-map/components/map/Map.vue';\nimport Marker from 'vue-baidu-map/components/overlays/Marker.vue';\nimport Scale from 'vue-baidu-map/components/controls/Scale.vue';\nimport Navigation from 'vue-baidu-map/components/controls/Navigation.vue';\nimport Control from 'vue-baidu-map/components/controls/Control.vue';\nimport CityList from 'vue-baidu-map/components/controls/CityList.vue';\nimport './css/Weather.less';\nimport API, { getQueryString } from '@/Api/api_data';\nimport MessageBus from '@/Utils/message/message-bus';\nimport { eventBus } from '@/main';\nimport Location from '@/component/weather/baidumap/location';\nimport { profile } from '@/Utils/profile';\nconst ieslabDisableRules = profile.get('ieslabDisableRules') === 'true';\nconst iesDisableRules = profile.get('iesDisableRules') === 'true';\n\n/**\n * @author guan\n * @description 百度地图类\n * @return void\n */\n@Component({\n components: {\n 'bm-control': Control,\n 'bm-navigation': Navigation,\n 'bm-marker': Marker,\n 'bm-scale': Scale,\n 'bm-city-list': CityList,\n 'baidu-map': BaiduMap,\n } as never,\n})\nexport default class BaiduMapLocation extends Vue {\n /** 创建一个位置实例 */\n public location = new Location();\n /** 潮流编号 */\n // simu_id = 0;\n /** map初始化 */\n private map;\n /** 备份map */\n private Bmap;\n /** 参数id */\n param_id = 0;\n /** 数据加载效果 */\n spinning = false;\n /** */\n isMapRender = true;\n /** 中心坐标 */\n center = {\n lng: 120.591586,\n lat: 33.20745,\n };\n\n /**\n *\n */\n get simu_id(): number {\n return Number(this.$route.query.simu_id);\n }\n /**\n * @author guan\n * @description 加载天气数据,保存参数\n * @return void\n */\n private loadWeatherData(): void {\n const params = { lat: this.location.latitude, lng: this.location.longitude, simu_id: this.simu_id };\n this.saveLocation(params);\n this.spinning = true;\n /** 加载天气数据 */\n API.loadWeaterData(params)\n .then(() => {\n this.$router\n .push({ path: 'weather_data', query: { simu_id: getQueryString()['simu_id'] } })\n .then(() => {\n eventBus.$emit('upMenuStates');\n })\n .catch((e) => e);\n this.spinning = false;\n })\n .catch(() => {\n this.spinning = false;\n MessageBus.Notification('error', { message: '提示', description: '未知错误' });\n });\n }\n\n /**\n * @author guan\n * @description 保存输入的参数\n * @return void\n * @param params lng: 经度 lat: 纬度 simu_id: 算例id\n */\n saveLocation(params: { lat: number; lng: number; simu_id: number; id?: number; simu?: number }): void {\n if (this.param_id === 0) {\n params.simu = Number(this.$route.query.simu_id || 0);\n API.postWeatherParam(params).catch((error: Error) => error);\n } else {\n params.id = this.param_id;\n params.simu = getQueryString()['simu_id'] as unknown as number;\n API.putWeatherParam(params);\n }\n }\n\n /** */\n style = { position: 'absolute', top: '60px !important', right: '10px !important' };\n /** */\n styleLocal: Record = { display: 'none', top: '190px !important', right: '10px !important' };\n\n /**\n * 地图初始化\n */\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n async mapReady({ BMap, map }): Promise {\n const data = await this.getData().catch((e) => e);\n this.center = data;\n this.Bmap = BMap;\n this.map = map;\n this.isMapRender = false;\n this.styleLocal = { top: '190px !important', right: '10px !important' };\n map.enableScrollWheelZoom(true);\n\n // 地图点击事件\n map.addEventListener('click', (e: { point: { lng: number; lat: number } }) => {\n if (this.location.MARK_MODE) {\n this.location.longitude = e.point.lng;\n this.location.latitude = e.point.lat;\n this.location.marker_position.lng = e.point.lng;\n this.location.marker_position.lat = e.point.lat;\n map.panTo(new BMap.Point(e.point.lng, e.point.lat));\n }\n });\n }\n /**\n * @author guan\n * @description 移动到新的经纬度\n * @return void\n */\n private moveMapMark(): void {\n this.map.panTo(new this.Bmap.Point(this.location.longitude, this.location.latitude), 7); //移动到修改后的经纬度\n }\n /**\n * @author guan\n * @description 返回\n * @return void\n */\n private getBackMarker(): void {\n this.map.panTo(new this.Bmap.Point(this.location.marker_position.lng, this.location.marker_position.lat), 7);\n }\n\n /**\n * 获取数据\n */\n async getData(): Promise<{ lng: number; lat: number }> {\n const param = { simu: this.simu_id };\n try {\n const res = await API.getWeatherParam(param);\n if (res.results.length > 0) {\n let result = res.results[0];\n this.location.longitude = Number(result.lng);\n this.location.latitude = Number(result.lat);\n this.location.marker_position.lng = Number(result.lng);\n this.location.marker_position.lat = Number(result.lat);\n this.param_id = result.id;\n this.spinning = false;\n return {\n lng: Number(result.lng),\n lat: Number(result.lat),\n };\n } else {\n MessageBus.Notification('warning', {\n message: '算例配置',\n description: '当前配置并未有经纬度,已创建默认经纬度!',\n duration: 4,\n key: '算例未配置',\n });\n return {\n lng: this.location.longitude,\n lat: this.location.latitude,\n };\n }\n } catch {\n MessageBus.Notification('error', { message: '提示', description: '接口错误' });\n return {\n lng: this.location.longitude,\n lat: this.location.latitude,\n };\n } finally {\n this.spinning = false;\n }\n }\n\n /** */\n disabledFunction = false;\n\n /**\n * 组件挂载\n */\n mounted(): void {\n if (!this.$route.name?.includes('ies')) {\n this.disabledFunction = ieslabDisableRules;\n } else {\n this.disabledFunction = iesDisableRules;\n }\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./baidu-map-location.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./baidu-map-location.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./baidu-map-location.vue?vue&type=template&id=43c150ab&\"\nimport script from \"./baidu-map-location.vue?vue&type=script&lang=ts&\"\nexport * from \"./baidu-map-location.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { profile } from '@/Utils/profile';\n\nconst iesResilienceEval = profile.get('iesResilienceEval') === 'true';\nconst ieslabWeatherData = profile.get('ieslabWeatherData') === 'true';\nconst ieslabPhotovoltaicSys = profile.get('ieslabPhotovoltaicSys') === 'true';\nconst ieslabWindPowerGenerator = profile.get('ieslabWindPowerGenerator') === 'true';\nconst ieslabGasTurbine = profile.get('ieslabGasTurbine') === 'true';\nconst ieslabHeatPump = profile.get('ieslabHeatPump') === 'true';\nconst ieslabGasBoiler = profile.get('ieslabGasBoiler') === 'true';\nconst ieslabHPSolarCollector = profile.get('ieslabHPSolarCollector') === 'true';\nconst ieslabCompRefrg = profile.get('ieslabCompRefrg') === 'true';\nconst ieslabAbsorptionChiller = profile.get('ieslabAbsorptionChiller') === 'true';\nconst ieslabBattery = profile.get('ieslabBattery') === 'true';\nconst ieslabWaterTank = profile.get('ieslabWaterTank') === 'true';\nconst ieslabIceStorageAC = profile.get('ieslabIceStorageAC') === 'true';\nconst ieslabTransformer = profile.get('ieslabTransformer') === 'true';\nconst ieslabTransferLine = profile.get('ieslabTransferLine') === 'true';\nconst ieslabMMC = profile.get('ieslabMMC') === 'true';\nconst ieslabCentrifugalPump = profile.get('ieslabCentrifugalPump') === 'true';\nconst ieslabPipe = profile.get('ieslabPipe') === 'true';\nconst ieslabThermalLoads = profile.get('ieslabThermalLoads') === 'true';\nconst ieslabPowerLoad = profile.get('ieslabPowerLoad') === 'true';\nconst ieslabFuel = profile.get('ieslabFuel') === 'true';\nconst ieslabHVACHeating = profile.get('ieslabHVACHeating') === 'true';\nconst ieslabHVACCooling = profile.get('ieslabHVACCooling') === 'true';\nconst ieslabConstPower = profile.get('ieslabConstPower') === 'true';\nconst ieslabTimeSharing = profile.get('ieslabTimeSharing') === 'true';\nconst ieslabLadderElectricity = profile.get('ieslabLadderElectricity') === 'true';\nconst ieslabLadderTime = profile.get('ieslabLadderTime') === 'true';\n\nexport {\n iesResilienceEval,\n ieslabWeatherData,\n ieslabPhotovoltaicSys,\n ieslabWindPowerGenerator,\n ieslabGasTurbine,\n ieslabHeatPump,\n ieslabGasBoiler,\n ieslabHPSolarCollector,\n ieslabCompRefrg,\n ieslabAbsorptionChiller,\n ieslabBattery,\n ieslabWaterTank,\n ieslabIceStorageAC,\n ieslabTransformer,\n ieslabTransferLine,\n ieslabMMC,\n ieslabCentrifugalPump,\n ieslabPipe,\n ieslabThermalLoads,\n ieslabPowerLoad,\n ieslabFuel,\n ieslabHVACHeating,\n ieslabHVACCooling,\n ieslabConstPower,\n ieslabTimeSharing,\n ieslabLadderElectricity,\n ieslabLadderTime,\n};\n","import { RouteConfig } from 'vue-router';\nimport DataView from '@/layout/data-manage/data-view.vue';\nimport middleware from '@/layout/middleware.vue';\nimport weather from '@/component/weather/weather/weather.vue';\nimport BaiduMapLocation from '@/component/weather/baidumap/baidu-map-location.vue';\nconst GeneralTemplate = (): Promise => import('@/component/template/general-template.vue');\n\nimport {\n iesResilienceEval,\n ieslabWeatherData,\n ieslabPhotovoltaicSys,\n ieslabWindPowerGenerator,\n ieslabGasTurbine,\n ieslabHeatPump,\n ieslabGasBoiler,\n ieslabHPSolarCollector,\n ieslabCompRefrg,\n ieslabAbsorptionChiller,\n ieslabBattery,\n ieslabWaterTank,\n ieslabIceStorageAC,\n ieslabTransformer,\n ieslabTransferLine,\n ieslabMMC,\n ieslabCentrifugalPump,\n ieslabPipe,\n ieslabThermalLoads,\n ieslabPowerLoad,\n ieslabFuel,\n ieslabHVACHeating,\n ieslabHVACCooling,\n ieslabConstPower,\n ieslabTimeSharing,\n ieslabLadderElectricity,\n ieslabLadderTime,\n} from './index';\n\n// 规划设计路由\nconst dataRouter: RouteConfig = {\n path: 'data',\n name: 'data',\n component: DataView,\n redirect: 'data/weather',\n meta: { requireAuth: true },\n children: [\n {\n path: 'weather',\n component: middleware,\n name: 'Weather',\n redirect: 'weather/map',\n meta: {\n title: '气象数据库',\n role: ['admin', 'editor'],\n icon: 'weather',\n disableInTypicalLib: true,\n visible: ieslabWeatherData,\n },\n children: [\n {\n path: 'map',\n component: BaiduMapLocation,\n name: 'map',\n meta: { title: '地点', role: ['admin', 'editor'], icon: 'energy', visible: ieslabWeatherData },\n },\n {\n path: 'weather_data',\n component: weather,\n name: 'weather_data',\n meta: {\n title: '气象数据',\n role: ['admin', 'editor'],\n icon: 'energy',\n visible: ieslabWeatherData,\n },\n },\n ],\n },\n {\n path: 'disaster',\n component: middleware,\n name: 'Disaster',\n meta: { title: '灾害信息库', role: ['admin', 'editor'], icon: 'disaster', visible: iesResilienceEval },\n children: [\n {\n path: 'typhoon',\n component: GeneralTemplate,\n name: 'Typhoon',\n meta: {\n title: '台风灾害',\n role: ['admin', 'editor'],\n icon: 'disaster',\n params: { type: 'typhoon', component: 'DisasterLoadParams' },\n visible: iesResilienceEval,\n },\n },\n {\n path: 'rainfall',\n component: GeneralTemplate,\n name: 'Rainfall',\n meta: {\n title: '降雨灾害',\n role: ['admin', 'editor'],\n icon: 'disaster',\n params: { type: 'rainfall', component: 'DisasterLoadParams' },\n visible: iesResilienceEval,\n },\n },\n {\n path: 'earthquake',\n component: GeneralTemplate,\n name: 'Earthquake',\n meta: {\n title: '地震灾害',\n role: ['admin', 'editor'],\n icon: 'disaster',\n params: { type: 'earthquake', component: 'DisasterLoadParams' },\n visible: iesResilienceEval,\n },\n },\n {\n path: 'extremeCold',\n component: GeneralTemplate,\n name: 'ExtremeCold',\n meta: {\n title: '极寒灾害',\n role: ['admin', 'editor'],\n icon: 'disaster',\n params: { type: 'extremeCold', component: 'DisasterLoadParams' },\n visible: iesResilienceEval,\n },\n },\n ],\n },\n\n {\n path: 'eq',\n component: middleware,\n name: 'Eq',\n meta: {\n title: '设备信息库',\n role: ['admin', 'editor'],\n icon: 'equip',\n visible:\n ieslabPhotovoltaicSys ||\n ieslabWindPowerGenerator ||\n ieslabGasTurbine ||\n ieslabHeatPump ||\n ieslabGasBoiler ||\n ieslabHPSolarCollector ||\n ieslabCompRefrg ||\n ieslabAbsorptionChiller ||\n ieslabBattery ||\n ieslabWaterTank ||\n ieslabIceStorageAC ||\n ieslabTransformer ||\n ieslabTransferLine ||\n ieslabMMC ||\n ieslabCentrifugalPump ||\n ieslabPipe,\n },\n children: [\n {\n path: 'dpc',\n component: middleware,\n name: 'dpc',\n meta: {\n title: '发电设备',\n role: ['admin', 'editor'],\n icon: 'energy',\n visible: ieslabPhotovoltaicSys || ieslabWindPowerGenerator || ieslabGasTurbine,\n },\n children: [\n {\n path: 'PhotovoltaicSys',\n component: GeneralTemplate,\n name: 'PhotovoltaicSys',\n meta: {\n title: '光伏',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dpcs', params: 'PhotovoltaicSys', component: 'PhotovoltaicSys' },\n visible: ieslabPhotovoltaicSys,\n isShowBatchImport: true,\n },\n },\n {\n path: 'WindPowerGenerator',\n component: GeneralTemplate,\n name: 'WindPowerGenerator',\n meta: {\n title: '风机',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dpcs', params: 'WindPowerGenerator', component: 'WindPowerGenerator' },\n visible: ieslabWindPowerGenerator,\n isShowBatchImport: false,\n },\n },\n {\n path: 'GasTurbine',\n component: GeneralTemplate,\n name: 'GasTurbine',\n meta: {\n title: '燃气轮机',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dpcs', params: 'GasTurbine', component: 'EquipmentInformationDetailsCard' },\n visible: ieslabGasTurbine,\n isShowBatchImport: false,\n },\n },\n ],\n },\n {\n path: 'dhsc',\n component: middleware,\n name: 'dhsc',\n meta: {\n title: '制冷制热设备',\n role: ['admin', 'editor'],\n icon: 'energy',\n visible: ieslabHeatPump || ieslabGasBoiler || ieslabHPSolarCollector || ieslabCompRefrg || ieslabAbsorptionChiller,\n },\n children: [\n {\n path: 'HeatPump',\n component: GeneralTemplate,\n name: 'HeatPump',\n meta: {\n title: '热泵',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dhscs', params: 'HeatPump', component: 'EquipmentInformationDetailsCard' },\n visible: ieslabHeatPump,\n isShowBatchImport: false,\n },\n },\n {\n path: 'GasBoiler',\n component: GeneralTemplate,\n name: 'GasBoiler',\n meta: {\n title: '燃气锅炉',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dhscs', params: 'GasBoiler', component: 'EquipmentInformationDetailsCard' },\n visible: ieslabGasBoiler,\n isShowBatchImport: false,\n },\n },\n {\n path: 'HPSolarCollector',\n component: GeneralTemplate,\n name: 'HPSolarCollector',\n meta: {\n title: '热管式太阳能集热器',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dhscs', params: 'HPSolarCollector', component: 'EquipmentInformationDetailsCard' },\n visible: ieslabHPSolarCollector,\n isShowBatchImport: true,\n },\n },\n {\n path: 'CompRefrg',\n component: GeneralTemplate,\n name: 'CompRefrg',\n meta: {\n title: '电压缩制冷机',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dhscs', params: 'CompRefrg', component: 'EquipmentInformationDetailsCard' },\n visible: ieslabCompRefrg,\n isShowBatchImport: false,\n },\n },\n {\n path: 'AbsorptionChiller',\n component: GeneralTemplate,\n name: 'AbsorptionChiller',\n meta: {\n title: '吸收式制冷机',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dhscs', params: 'AbsorptionChiller', component: 'EquipmentInformationDetailsCard' },\n visible: ieslabAbsorptionChiller,\n isShowBatchImport: false,\n },\n },\n ],\n },\n {\n path: 'esc',\n component: middleware,\n name: 'esc',\n meta: { title: '储能设备', role: ['admin', 'editor'], icon: 'energy', visible: ieslabBattery || ieslabWaterTank || ieslabIceStorageAC },\n children: [\n {\n path: 'Battery',\n component: GeneralTemplate,\n name: 'Battery',\n meta: {\n title: '蓄电池',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'escs', params: 'Battery', component: 'EquipmentInformationDetailsCard' },\n visible: ieslabBattery,\n isShowBatchImport: true,\n },\n },\n {\n path: 'WaterTank',\n component: GeneralTemplate,\n name: 'WaterTank',\n meta: {\n title: '储水罐',\n role: ['admin', 'editor'],\n\n icon: '',\n params: { type: 'escs', params: 'WaterTank', component: 'EquipmentInformationDetailsCard' },\n visible: ieslabWaterTank,\n isShowBatchImport: true,\n },\n },\n {\n path: 'IceStorageAC',\n component: GeneralTemplate,\n name: 'IceStorageAC',\n meta: {\n title: '蓄冰空调',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'escs', params: 'IceStorageAC', component: 'EquipmentInformationDetailsCard' },\n visible: ieslabIceStorageAC,\n isShowBatchImport: true,\n },\n },\n ],\n },\n {\n path: 'dstc',\n component: middleware,\n name: 'dstc',\n meta: {\n title: '配电系统传输设备',\n role: ['admin', 'editor'],\n icon: 'energy',\n visible: ieslabTransformer || ieslabTransferLine || ieslabMMC,\n },\n children: [\n {\n path: 'Transformer',\n component: GeneralTemplate,\n name: 'Transformer',\n meta: {\n title: '变压器',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dstcs', params: 'Transformer', component: 'EquipmentInformationDetailsCard' },\n visible: ieslabTransformer,\n isShowBatchImport: true,\n },\n },\n {\n path: 'TransferLine',\n component: GeneralTemplate,\n name: 'TransferLine',\n meta: {\n title: '传输线',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dstcs', params: 'TransferLine', component: 'EquipmentInformationDetailsCard' },\n visible: ieslabTransferLine,\n isShowBatchImport: true,\n },\n },\n {\n path: 'MMC',\n component: GeneralTemplate,\n name: 'MMC',\n meta: {\n title: '模块化多电平变流器',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dstcs', params: 'MMC', component: 'EquipmentInformationDetailsCard' },\n visible: ieslabMMC,\n isShowBatchImport: true,\n },\n },\n ],\n },\n {\n path: 'hstc',\n component: middleware,\n name: 'hstc',\n meta: {\n title: '供热系统传输设备',\n role: ['admin', 'editor'],\n icon: 'energy',\n visible: ieslabCentrifugalPump || ieslabPipe,\n },\n children: [\n {\n path: 'CentrifugalPump',\n component: GeneralTemplate,\n name: 'CentrifugalPump',\n meta: {\n title: '离心泵',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'hstcs', params: 'CentrifugalPump', component: 'EquipmentInformationDetailsCard' },\n visible: ieslabCentrifugalPump,\n isShowBatchImport: false,\n },\n },\n {\n path: 'Pipe',\n component: GeneralTemplate,\n name: 'Pipe',\n meta: {\n title: '管道',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'hstcs', params: 'Pipe', component: 'EquipmentInformationDetailsCard' },\n visible: ieslabPipe,\n isShowBatchImport: true,\n },\n },\n ],\n },\n ],\n },\n {\n path: 'load',\n component: middleware,\n name: 'Load',\n meta: { title: '负荷信息库', role: ['admin', 'editor'], icon: 'load', visible: ieslabThermalLoads || ieslabPowerLoad },\n children: [\n {\n path: 'thermalLoads',\n component: GeneralTemplate,\n name: 'HeatingLoad',\n meta: {\n title: '采暖制冷负荷',\n role: ['admin', 'editor'],\n icon: 'load',\n params: { type: 'thermalLoads', component: 'ThermalLoad' },\n visible: ieslabThermalLoads,\n },\n },\n {\n path: 'powerLoad',\n component: GeneralTemplate,\n name: 'ElectricLoad',\n meta: {\n title: '电负荷',\n role: ['admin', 'editor'],\n icon: 'load',\n params: { type: 'electricLoads', component: 'IesElectricalLoadParams' },\n visible: ieslabPowerLoad,\n },\n },\n ],\n },\n {\n path: 'energy',\n component: middleware,\n name: 'Energy',\n meta: {\n title: '能源信息库',\n role: ['admin', 'editor'],\n icon: 'energy',\n visible:\n ieslabFuel ||\n ieslabHVACHeating ||\n ieslabHVACCooling ||\n ieslabConstPower ||\n ieslabTimeSharing ||\n ieslabLadderElectricity ||\n ieslabLadderTime,\n },\n children: [\n {\n path: 'fuel',\n component: GeneralTemplate,\n name: 'Fuel',\n meta: {\n title: '燃料',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'fuels', component: 'FuelInformationDetailsCardByIes' },\n visible: ieslabFuel,\n },\n },\n {\n path: 'HVACHeating',\n component: GeneralTemplate,\n name: 'HVACHeating',\n meta: {\n title: '热',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'hots', params: 'HVACHeating', component: 'HotInformationDetailsCard' },\n visible: ieslabHVACHeating,\n },\n },\n {\n path: 'HVACCooling',\n component: GeneralTemplate,\n name: 'HVACCooling',\n meta: {\n title: '冷',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'colds', params: 'HVACCooling', component: 'ColdInformationDetailsCard' },\n visible: ieslabHVACCooling,\n },\n },\n {\n path: 'electricity',\n component: middleware,\n name: 'Electricity',\n meta: {\n title: '电',\n role: ['admin', 'editor'],\n icon: 'energy',\n type: 'elects',\n visible: ieslabConstPower || ieslabTimeSharing || ieslabLadderElectricity || ieslabLadderTime,\n },\n children: [\n {\n path: 'constPower',\n component: GeneralTemplate,\n name: '常数电价',\n meta: {\n title: '常数电价',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'elects', params: '常数电价', component: 'ConstantPowerParamsByIes' },\n visible: ieslabConstPower,\n },\n },\n {\n path: 'TimeSharing',\n component: GeneralTemplate,\n name: '分时电价',\n meta: {\n title: '分时电价',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'elects', params: '分时电价', component: 'TimeSharingElectricityParamsByIes' },\n visible: ieslabTimeSharing,\n },\n },\n {\n path: 'LadderElectricity',\n component: GeneralTemplate,\n name: '阶梯电价',\n meta: {\n title: '阶梯电价',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'elects', params: '阶梯电价', component: 'LadderElectricityPriceParamsByIes' },\n visible: ieslabLadderElectricity,\n },\n },\n {\n path: 'LadderTime',\n component: GeneralTemplate,\n name: '分时+阶梯',\n meta: {\n title: '分时阶梯电价',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'elects', params: '分时+阶梯', component: 'LadderTimeParamsByIes' },\n visible: ieslabLadderTime,\n },\n },\n ],\n },\n ],\n },\n ],\n};\n\n// 建模仿真路由\nconst iesDataRouter: RouteConfig = {\n path: 'data',\n name: 'ies-data',\n component: DataView,\n redirect: 'data/weather',\n meta: { requireAuth: true },\n children: [\n {\n path: 'weather',\n component: middleware,\n name: 'ies-Weather',\n redirect: 'weather/map',\n meta: {\n title: '气象数据库',\n role: ['admin', 'editor'],\n icon: 'weather',\n disableInTypicalLib: true,\n visible: ieslabWeatherData,\n },\n children: [\n {\n path: 'map',\n component: BaiduMapLocation,\n name: 'ies-map',\n meta: { title: '地点', role: ['admin', 'editor'], icon: 'energy', visible: ieslabWeatherData },\n },\n {\n path: 'weather_data',\n component: weather,\n name: 'ies-weather_data',\n meta: {\n title: '气象数据',\n role: ['admin', 'editor'],\n icon: 'energy',\n visible: ieslabWeatherData,\n },\n },\n ],\n },\n\n {\n path: 'disaster',\n component: middleware,\n name: 'ies-Disaster',\n meta: { title: '灾害信息库', role: ['admin', 'editor'], icon: 'disaster', visible: iesResilienceEval },\n children: [\n {\n path: 'typhoon',\n component: GeneralTemplate,\n name: 'ies-Typhoon',\n meta: {\n title: '台风灾害',\n role: ['admin', 'editor'],\n icon: 'disaster',\n params: { type: 'typhoon', component: 'DisasterLoadParams' },\n visible: iesResilienceEval,\n },\n },\n {\n path: 'rainfall',\n component: GeneralTemplate,\n name: 'ies-Rainfall',\n meta: {\n title: '降雨灾害',\n role: ['admin', 'editor'],\n icon: 'disaster',\n params: { type: 'rainfall', component: 'DisasterLoadParams' },\n visible: iesResilienceEval,\n },\n },\n {\n path: 'earthquake',\n component: GeneralTemplate,\n name: 'ies-Earthquake',\n meta: {\n title: '地震灾害',\n role: ['admin', 'editor'],\n icon: 'disaster',\n params: { type: 'earthquake', component: 'DisasterLoadParams' },\n visible: iesResilienceEval,\n },\n },\n {\n path: 'extremeCold',\n component: GeneralTemplate,\n name: 'ies-ExtremeCold',\n meta: {\n title: '极寒灾害',\n role: ['admin', 'editor'],\n icon: 'disaster',\n params: { type: 'extremeCold', component: 'DisasterLoadParams' },\n visible: iesResilienceEval,\n },\n },\n ],\n },\n\n {\n path: 'eq',\n component: middleware,\n name: 'ies-Eq',\n meta: {\n title: '设备信息库',\n role: ['admin', 'editor'],\n icon: 'equip',\n visible:\n ieslabPhotovoltaicSys ||\n ieslabWindPowerGenerator ||\n ieslabGasTurbine ||\n ieslabHeatPump ||\n ieslabGasBoiler ||\n ieslabHPSolarCollector ||\n ieslabCompRefrg ||\n ieslabAbsorptionChiller ||\n ieslabBattery ||\n ieslabWaterTank ||\n ieslabIceStorageAC ||\n ieslabTransformer ||\n ieslabTransferLine ||\n ieslabMMC ||\n ieslabCentrifugalPump ||\n ieslabPipe,\n },\n children: [\n {\n path: 'dpc',\n component: middleware,\n name: 'ies-dpc',\n meta: {\n title: '发电设备',\n role: ['admin', 'editor'],\n icon: 'energy',\n visible: ieslabPhotovoltaicSys || ieslabWindPowerGenerator || ieslabGasTurbine,\n },\n children: [\n {\n path: 'PhotovoltaicSys',\n component: GeneralTemplate,\n name: 'ies-PhotovoltaicSys',\n meta: {\n title: '光伏',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dpcs', params: 'PhotovoltaicSys', component: 'PhotovoltaicSys' },\n visible: ieslabPhotovoltaicSys,\n isShowBatchImport: true,\n },\n },\n {\n path: 'WindPowerGenerator',\n component: GeneralTemplate,\n name: 'ies-WindPowerGenerator',\n meta: {\n title: '风机',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dpcs', params: 'WindPowerGenerator', component: 'WindPowerGenerator' },\n visible: ieslabWindPowerGenerator,\n isShowBatchImport: false,\n },\n },\n {\n path: 'GasTurbine',\n component: GeneralTemplate,\n name: 'ies-GasTurbine',\n meta: {\n title: '燃气轮机',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dpcs', params: 'GasTurbine', component: 'EquipmentInformationDetailsCardWithTable' },\n visible: ieslabGasTurbine,\n isShowBatchImport: false,\n },\n },\n ],\n },\n {\n path: 'dhsc',\n component: middleware,\n name: 'ies-dhsc',\n meta: {\n title: '制冷制热设备',\n role: ['admin', 'editor'],\n icon: 'energy',\n visible: ieslabHeatPump || ieslabGasBoiler || ieslabHPSolarCollector || ieslabCompRefrg || ieslabAbsorptionChiller,\n },\n children: [\n {\n path: 'HeatPump',\n component: GeneralTemplate,\n name: 'ies-HeatPump',\n meta: {\n title: '热泵',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dhscs', params: 'HeatPump', component: 'EquipmentInformationDetailsCardWithTable' },\n visible: ieslabHeatPump,\n isShowBatchImport: false,\n },\n },\n {\n path: 'GasBoiler',\n component: GeneralTemplate,\n name: 'ies-GasBoiler',\n meta: {\n title: '燃气锅炉',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dhscs', params: 'GasBoiler', component: 'EquipmentInformationDetailsCardWithTable' },\n visible: ieslabGasBoiler,\n isShowBatchImport: false,\n },\n },\n {\n path: 'HPSolarCollector',\n component: GeneralTemplate,\n name: 'ies-HPSolarCollector',\n meta: {\n title: '热管式太阳能集热器',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dhscs', params: 'HPSolarCollector', component: 'EquipmentInformationDetailsCardWithTable' },\n visible: ieslabHPSolarCollector,\n isShowBatchImport: true,\n },\n },\n {\n path: 'CompRefrg',\n component: GeneralTemplate,\n name: 'ies-CompRefrg',\n meta: {\n title: '电压缩制冷机',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dhscs', params: 'CompRefrg', component: 'EquipmentInformationDetailsCardWithTable' },\n visible: ieslabCompRefrg,\n isShowBatchImport: false,\n },\n },\n {\n path: 'AbsorptionChiller',\n component: GeneralTemplate,\n name: 'ies-AbsorptionChiller',\n meta: {\n title: '吸收式制冷机',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dhscs', params: 'AbsorptionChiller', component: 'EquipmentInformationDetailsCardWithTable' },\n visible: ieslabAbsorptionChiller,\n isShowBatchImport: false,\n },\n },\n ],\n },\n {\n path: 'esc',\n component: middleware,\n name: 'ies-esc',\n meta: { title: '储能设备', role: ['admin', 'editor'], icon: 'energy', visible: ieslabBattery || ieslabWaterTank || ieslabIceStorageAC },\n children: [\n {\n path: 'Battery',\n component: GeneralTemplate,\n name: 'ies-Battery',\n meta: {\n title: '蓄电池',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'escs', params: 'Battery', component: 'EquipmentInformationDetailsCardWithTable' },\n visible: ieslabBattery,\n isShowBatchImport: true,\n },\n },\n {\n path: 'WaterTank',\n component: GeneralTemplate,\n name: 'ies-WaterTank',\n meta: {\n title: '储水罐',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'escs', params: 'WaterTank', component: 'EquipmentInformationDetailsCardWithTable' },\n visible: ieslabWaterTank,\n isShowBatchImport: true,\n },\n },\n {\n path: 'IceStorageAC',\n component: GeneralTemplate,\n name: 'ies-IceStorageAC',\n meta: {\n title: '蓄冰空调',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'escs', params: 'IceStorageAC', component: 'EquipmentInformationDetailsCardWithTable' },\n visible: ieslabIceStorageAC,\n isShowBatchImport: true,\n },\n },\n ],\n },\n {\n path: 'dstc',\n component: middleware,\n name: 'ies-dstc',\n meta: {\n title: '配电系统传输设备',\n role: ['admin', 'editor'],\n icon: 'energy',\n visible: ieslabTransformer || ieslabTransferLine || ieslabMMC,\n },\n children: [\n {\n path: 'Transformer',\n component: GeneralTemplate,\n name: 'ies-Transformer',\n meta: {\n title: '变压器',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dstcs', params: 'Transformer', component: 'EquipmentInformationDetailsCardWithTable' },\n visible: ieslabTransformer,\n isShowBatchImport: true,\n },\n },\n {\n path: 'TransferLine',\n component: GeneralTemplate,\n name: 'ies-TransferLine',\n meta: {\n title: '传输线',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dstcs', params: 'TransferLine', component: 'EquipmentInformationDetailsCardWithTable' },\n visible: ieslabTransferLine,\n isShowBatchImport: true,\n },\n },\n {\n path: 'MMC',\n component: GeneralTemplate,\n name: 'ies-MMC',\n meta: {\n title: '模块化多电平变流器',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'dstcs', params: 'MMC', component: 'EquipmentInformationDetailsCardWithTable' },\n visible: ieslabMMC,\n isShowBatchImport: true,\n },\n },\n ],\n },\n {\n path: 'hstc',\n component: middleware,\n name: 'ies-hstc',\n meta: {\n title: '供热系统传输设备',\n role: ['admin', 'editor'],\n icon: 'energy',\n visible: ieslabCentrifugalPump || ieslabPipe,\n },\n children: [\n {\n path: 'CentrifugalPump',\n component: GeneralTemplate,\n name: 'ies-CentrifugalPump',\n meta: {\n title: '离心泵',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'hstcs', params: 'CentrifugalPump', component: 'EquipmentInformationDetailsCardWithTable' },\n visible: ieslabCentrifugalPump,\n isShowBatchImport: false,\n },\n },\n {\n path: 'Pipe',\n component: GeneralTemplate,\n name: 'ies-Pipe',\n meta: {\n title: '管道',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'hstcs', params: 'Pipe', component: 'EquipmentInformationDetailsCardWithTable' },\n visible: ieslabPipe,\n isShowBatchImport: true,\n },\n },\n ],\n },\n ],\n },\n {\n path: 'load',\n component: middleware,\n name: 'ies-Load',\n meta: { title: '负荷信息库', role: ['admin', 'editor'], icon: 'load', visible: ieslabThermalLoads || ieslabPowerLoad },\n children: [\n {\n path: 'thermalLoads',\n component: GeneralTemplate,\n name: 'ies-HeatingLoad',\n meta: {\n title: '采暖制冷负荷',\n role: ['admin', 'editor'],\n icon: 'load',\n params: { type: 'thermalLoads', component: 'ThermalLoad' },\n visible: ieslabThermalLoads,\n },\n },\n {\n path: 'powerLoad',\n component: GeneralTemplate,\n name: 'ies-ElectricLoad',\n meta: {\n title: '电负荷',\n role: ['admin', 'editor'],\n icon: 'load',\n params: { type: 'electricLoads', component: 'IesElectricalLoadParams' },\n visible: ieslabPowerLoad,\n },\n },\n ],\n },\n {\n path: 'energy',\n component: middleware,\n name: 'ies-Energy',\n meta: {\n title: '能源信息库',\n role: ['admin', 'editor'],\n icon: 'energy',\n visible:\n ieslabFuel ||\n ieslabHVACHeating ||\n ieslabHVACCooling ||\n ieslabConstPower ||\n ieslabTimeSharing ||\n ieslabLadderElectricity ||\n ieslabLadderTime,\n },\n children: [\n {\n path: 'fuel',\n component: GeneralTemplate,\n name: 'ies-Fuel',\n meta: {\n title: '燃料',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'fuels', component: 'FuelInformationDetailsCardByIes' },\n visible: ieslabFuel,\n },\n },\n {\n path: 'HVACHeating',\n component: GeneralTemplate,\n name: 'ies-HVACHeating',\n meta: {\n title: '热',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'hots', params: 'HVACHeating', component: 'HotInformationDetailsCard' },\n visible: ieslabHVACHeating,\n },\n },\n {\n path: 'HVACCooling',\n component: GeneralTemplate,\n name: 'ies-HVACCooling',\n meta: {\n title: '冷',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'colds', params: 'HVACCooling', component: 'ColdInformationDetailsCard' },\n visible: ieslabHVACCooling,\n },\n },\n {\n path: 'electricity',\n component: middleware,\n name: 'ies-Electricity',\n meta: {\n title: '电',\n role: ['admin', 'editor'],\n icon: 'energy',\n type: 'elects',\n visible: ieslabConstPower || ieslabTimeSharing || ieslabLadderElectricity || ieslabLadderTime,\n },\n children: [\n {\n path: 'constPower',\n component: GeneralTemplate,\n name: 'ies-常数电价',\n meta: {\n title: '常数电价',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'elects', params: '常数电价', component: 'ConstantPowerParamsByIes' },\n visible: ieslabConstPower,\n },\n },\n {\n path: 'TimeSharing',\n component: GeneralTemplate,\n name: 'ies-分时电价',\n meta: {\n title: '分时电价',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'elects', params: '分时电价', component: 'TimeSharingElectricityParamsByIes' },\n visible: ieslabTimeSharing,\n },\n },\n {\n path: 'LadderElectricity',\n component: GeneralTemplate,\n name: 'ies-阶梯电价',\n meta: {\n title: '阶梯电价',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'elects', params: '阶梯电价', component: 'LadderElectricityPriceParamsByIes' },\n visible: ieslabLadderElectricity,\n },\n },\n {\n path: 'LadderTime',\n component: GeneralTemplate,\n name: 'ies-分时+阶梯',\n meta: {\n title: '分时阶梯电价',\n role: ['admin', 'editor'],\n icon: '',\n params: { type: 'elects', params: '分时+阶梯', component: 'LadderTimeParamsByIes' },\n visible: ieslabLadderTime,\n },\n },\n ],\n },\n ],\n },\n ],\n};\n\nexport default dataRouter;\nexport { iesDataRouter };\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a-layout',{staticClass:\"light_theme\"},[_c('a-layout-header',{class:{\n glHeader: true,\n short: [\n 'ies/diagram',\n 'diagram',\n 'gmm',\n 'ies/run-simulation',\n 'ies/run-optimization',\n 'scenario-generate',\n 'resilience-eval',\n 'resilience-plan',\n 'resilience-recovery' ].includes(_vm.$route.name),\n },staticStyle:{\"padding\":\"0\",\"position\":\"relative\",\"z-index\":\"2\"}},[_c('a',{attrs:{\"id\":\"content\",\"target\":\"_blank\",\"rel\":\"home noopener\",\"href\":\"/account\"}},[_c('img',{attrs:{\"alt\":\"logo\",\"src\":require('../assets/svg/ies.svg')}})]),(\n ![\n 'ies/diagram',\n 'diagram',\n 'gmm',\n 'ies/run-simulation',\n 'ies/run-optimization',\n 'scenario-generate',\n 'resilience-eval',\n 'resilience-plan',\n 'resilience-recovery' ].includes(_vm.$route.name)\n )?[_c('div',{staticClass:\"p\",staticStyle:{\"width\":\"260px\",\"height\":\"32px\"}}),_c('div',{staticClass:\"title\"},[_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.projectInfo ? _vm.projectInfo['name'] : '无'))]),_vm._v(\" - \"),_c('span',{staticClass:\"product\"},[_vm._v(\"CloudPSS IESLab\")])]),_c('div',{staticStyle:{\"width\":\"224px\",\"height\":\"32px\"}})]:_vm._e()],2),_c('navigation'),(\n ![\n 'ies/diagram',\n 'diagram',\n 'gmm',\n 'ies/run-simulation',\n 'ies/run-optimization',\n 'scenario-generate',\n 'resilience-eval',\n 'resilience-plan',\n 'resilience-recovery' ].includes(_vm.$route.name)\n )?_c('router-view'):_vm._e(),(\n ![\n 'ies/diagram',\n 'diagram',\n 'gmm',\n 'ies/run-simulation',\n 'ies/run-optimization',\n 'scenario-generate',\n 'resilience-eval',\n 'resilience-plan',\n 'resilience-recovery' ].includes(_vm.$route.name)\n )?[_c('div',{staticStyle:{\"position\":\"absolute\",\"background\":\"#0d66d0\",\"z-index\":\"3\",\"height\":\"24px\",\"width\":\"100%\",\"bottom\":\"0\"}})]:_vm._e(),[_c('a-layout-content',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\",\"position\":\"absolute\",\"z-index\":\"1\"}},[_c('diagram')],1)]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"nav\"},[_c('div',{staticClass:\"n-scrollbar\"},[_c('div',{staticClass:\"items\"},_vm._l((_vm.list),function(item,index){return _c('div',{key:index,class:{ container: true }},[(item.visable)?[(item.value === 'evaluate')?_c('div',{staticClass:\"item\",attrs:{\"title\":item.name}},[_c('a-popover',{attrs:{\"placement\":\"right\"}},[_c('template',{slot:\"content\"},[(_vm.planList.length > 0)?[_vm._l((_vm.planList),function(it,id){return _c('a-menu-item',{key:id,staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function () { return _vm.openPlan(item.value, it); }}},[(it.id === _vm.currentPlanId)?_c('div',[_c('a-icon',{attrs:{\"type\":\"environment\"}}),_c('span',[_vm._v(_vm._s(it.name))])],1):_c('div',[_c('span',[_vm._v(_vm._s(it.name))])])])})]:[_c('a-menu-item',{attrs:{\"disabled\":\"\"}},[_c('span',[_vm._v(\"暂无方案\")])])]],2),_c('template',{slot:\"title\"},[_c('span',[_vm._v(\"方案评估列表\")])]),_c('svg',{staticClass:\"icon\",class:{ active: _vm.isActive(item.path) },attrs:{\"aria-hidden\":\"true\"}},[_c('use',{attrs:{\"xlink:href\":'#' + item.icon}})])],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isActive(item.path)),expression:\"isActive(item.path)\"}],staticClass:\"active\"},[_c('div',{staticClass:\"bar\",style:({ backgroundColor: '#2680eb' })})])],1):_c('div',{staticClass:\"item\",attrs:{\"title\":item.name},on:{\"click\":function($event){return _vm.openPage(item.value)}}},[_c('svg',{staticClass:\"icon\",class:{ active: _vm.isActive(item.path) },attrs:{\"aria-hidden\":\"true\"}},[_c('use',{attrs:{\"xlink:href\":'#' + item.icon}})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isActive(item.path)),expression:\"isActive(item.path)\"}],staticClass:\"active\"},[_c('div',{staticClass:\"bar\",style:({ backgroundColor: '#2680eb' })})])])]:_vm._e()],2)}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\nimport { useRouter, useRoute } from 'vue2-helpers/vue-router';\nimport { createVuexHelpers } from 'vue2-helpers';\n// import { PlanList } from '@/prioritization/interface/interface';\nimport { VueInstance } from '@/main';\nconst { useState, useGetters } = createVuexHelpers();\nimport { profile } from '@/Utils/profile';\nimport { PlanList } from '@/prioritization/interface/interface';\nconst isRunOptimizationVisible = profile.get('isRunOptimizationVisible') === 'true';\n\nconst iesResilienceEval = profile.get('iesResilienceEval') === 'true';\n\nconst ieslabGmm = profile.get('ieslabGmm') === 'true';\nconst ieslabScheme = profile.get('ieslabScheme') === 'true';\nconst ieslabEvaluate = profile.get('ieslabEvaluate') === 'true';\nconst ieslabDigitalTwins = profile.get('ieslabDigitalTwins') === 'true';\nconst ieslabResilienceEval = profile.get('ieslabResilienceEval') === 'true';\nconst ieslabResiliencePlan = profile.get('ieslabResiliencePlan') === 'true';\nconst ieslabResilienceRecovery = profile.get('ieslabResilienceRecovery') === 'true';\nconst ieslabResilienceGenerate = profile.get('ieslabResilienceGenerate') === 'true';\n\nexport default defineComponent({\n setup(_props) {\n const router = useRouter();\n const route = useRoute();\n const commonList = computed(() => {\n const d = [\n { name: '数据管理', icon: 'iconshujuguanli', value: 'data', path: '/header/data', visable: true },\n { name: '拓扑编辑', icon: 'icontuoputu', value: 'diagram', path: '/diagram', visable: true },\n { name: '规划典型日生成', icon: 'iconfangan', value: 'gmm', path: '/gmm', visable: ieslabGmm },\n { name: '方案优选', icon: 'iconfangan1', value: 'scheme', path: '/header/scheme', visable: ieslabScheme },\n { name: '方案评估', icon: 'iconpinggu1', value: 'evaluate', path: '/header/evaluate', visable: ieslabEvaluate },\n { name: '数字孪生体交付', icon: 'iconshuzi', value: 'digitalTwins', path: '/header/digitalTwins', visable: ieslabDigitalTwins },\n ];\n\n if (iesResilienceEval) {\n d.push(\n ...[\n { name: '危机场景生成', icon: 'iconfangan', value: 'scenario-generate', path: '/scenario-generate', visable: ieslabResilienceGenerate },\n { name: '韧性评估', icon: 'iconfangan', value: 'resilience-eval', path: '/resilience-eval', visable: ieslabResilienceEval },\n { name: '韧性规划', icon: 'iconfangan', value: 'resilience-plan', path: '/resilience-plan', visable: ieslabResiliencePlan },\n { name: '灾后恢复', icon: 'iconfangan', value: 'resilience-recovery', path: '/resilience-recovery', visable: ieslabResilienceRecovery },\n ],\n );\n }\n return d;\n });\n\n const iesList = computed(() => {\n if (isRunOptimizationVisible) {\n return [\n { name: '数据管理', icon: 'iconshujuguanli', value: 'ies-data', path: '/ies/header/data', visable: true },\n { name: '拓扑编辑', icon: 'icontuoputu', value: 'ies/diagram', path: '/ies/diagram', visable: true },\n { name: '仿真模拟', icon: 'iconfangan', value: 'ies/run-simulation', path: '/ies/run-simulation', visable: true },\n { name: '运行优化', icon: 'iconshuzi', value: 'ies/run-optimization', path: '/ies/run-optimization', visable: true },\n ];\n } else {\n return [\n { name: '数据管理', icon: 'iconshujuguanli', value: 'ies-data', path: '/ies/header/data', visable: true },\n { name: '拓扑编辑', icon: 'icontuoputu', value: 'ies/diagram', path: '/ies/diagram', visable: true },\n { name: '仿真模拟', icon: 'iconfangan', value: 'ies/run-simulation', path: '/ies/run-simulation', visable: true },\n ];\n }\n });\n const { iesMode, navigationRecords } = useState(['iesMode', 'navigationRecords']);\n // const iesMode = VueInstance.$store.state.iesMode;\n // const navigationRecords = VueInstance.$store.state.navigationRecords;\n const { getPlanList: planList, getCurrentPlanId: currentPlanId } = useGetters(['getPlanList', 'getCurrentPlanId']) as unknown as {\n getPlanList: PlanList[];\n getCurrentPlanId: number;\n };\n // const pList = VueInstance.$store.getters.getPlanList;\n // console.log(pList);\n // const currentPlanId = computed(() => VueInstance.$store.getters.getCurrentPlanId);\n\n // const { setCurrentPlanId } = useMutations(['setCurrentPlanId']) as Record void>;\n const setCurrentPlanId = (i: number): void => {\n VueInstance.$store.commit('setCurrentPlanId', i);\n };\n // const getters = mapGetters(['getPlanList']);\n // console.log(getters);\n // console.log(getters.getPlanList);\n // console.log(computed(getters.getPlanList));\n\n const list = computed(() => (iesMode.value ? iesList.value : commonList.value));\n\n const isActive = (value: string): boolean => route.path.startsWith(value);\n\n const openPage = (value: string): void => {\n const query = route.query;\n\n const navigationRecord = navigationRecords.value[value];\n let name = value;\n //如果记录存在则替换name\n if (navigationRecord != null && navigationRecord !== '') {\n name = navigationRecord;\n }\n const r = {\n name: name,\n query: query,\n };\n\n void router.push(r).catch((e: Error) => {\n console.log(e);\n });\n };\n const openPlan = (navigation: string, it: PlanList): void => {\n setCurrentPlanId(it.id);\n openPage(navigation);\n };\n return {\n list,\n isActive,\n openPage,\n planList,\n currentPlanId,\n openPlan,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./navigation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./navigation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./navigation.vue?vue&type=template&id=bd5324cc&scoped=true&\"\nimport script from \"./navigation.vue?vue&type=script&lang=ts&\"\nexport * from \"./navigation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./navigation.vue?vue&type=style&index=0&id=bd5324cc&scoped=true&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bd5324cc\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\n// import Header from './Header.vue';\nimport Navigation from '@/layout/slider/navigation.vue';\nimport './css/Layout.less';\nimport { getQueryString } from '@/Api/api_data';\nimport Api from '@/Api/api_simulaion';\nimport { logout } from '@/Api/auth';\nimport { AuthInformation } from '@/store/modules/auth';\nimport Diagram from '@/views/Diagram/index';\nimport { PlanList, ProjectInfo } from '@/prioritization/interface/interface';\nimport api from '@/Api/api_data';\n\n/**\n * 框架入口文件\n */\n@Component({\n components: {\n // Header,\n Diagram,\n Navigation,\n },\n})\nexport default class Layout extends Vue {\n /**主题色 */\n colorList = ['dark', 'light'];\n\n /** */\n flag = false;\n /**\n * path\n */\n @Watch('$route.name', { immediate: true, deep: true })\n onOption(_nVal: string, _oVal: string): void {\n this.currentNavigation = _nVal;\n }\n\n /** */\n currentNavigation = 'data';\n\n /** */\n get userInfo(): AuthInformation {\n return this.$store.getters.getUserInfo || {};\n }\n\n /**\n *获取计划列表\n */\n get planList(): PlanList[] {\n return this.$store.getters.getPlanList;\n }\n\n set planList(value: PlanList[]) {\n this.$store.commit('setPlanList', value);\n }\n /**\n * projectInfo\n */\n get projectInfo(): ProjectInfo {\n return this.$store.state.projects;\n }\n\n /**\n *\n */\n get simuId(): string | Array {\n return this.$route.query['simu_id'];\n }\n\n /**\n * @author guan\n * @description\n */\n set isLightTheme(value: boolean) {\n if (value) {\n this.$store.commit('setTheme', 'light');\n } else {\n this.$store.commit('setTheme', 'dark');\n }\n }\n /**\n *\n */\n get isLightTheme(): boolean {\n return this.$store.getters.getTheme === 'light';\n }\n /**\n * 获得方案数据\n */\n /**\n *\n */\n async loadPlanList(): Promise {\n this.planList = [];\n if (this.taskId !== '') {\n const data = await Api.getOptimizationResult({ resultType: 0, taskid: this.taskId });\n if (data.data.length !== 0) {\n this.planList = data.data;\n }\n } else {\n this.planList = [];\n }\n }\n\n /**\n * 获得taskId\n */\n get taskId(): string {\n return this.$store.getters.getTaskId;\n }\n\n /**\n * 获得currentPlanId\n */\n get currentPlanId(): number {\n return this.$store.getters.getCurrentPlanId;\n }\n\n /**\n *设置任务id\n */\n async setTaskId(): Promise {\n const simuId = this.$route.query['simu_id'];\n if (typeof simuId === 'string' && simuId !== '') {\n await Api.getLastSimulationTask({ simuid: getQueryString()['simu_id'] }).then((res) => {\n if (res.data != null) {\n this.$store.commit('setTaskId', res.data.task_id);\n } else {\n this.$store.commit('setTaskId', -1);\n }\n });\n }\n }\n\n /**\n *\n */\n @Watch('simuId')\n async simuIdChange(): Promise {\n await this.setTaskId();\n await this.loadPlanList();\n const r = await api.getSimuData({ id: getQueryString()['simu_id'] });\n if (r.publicLevel >= 10) {\n this.$store.commit('setIsTypicalLibraryEditMode', true);\n } else {\n this.$store.commit('setIsTypicalLibraryEditMode', false);\n }\n }\n\n /**\n * @author: guan\n * @description: 设置默认的active\n */\n async mounted(): Promise {\n void this.$store.dispatch('getProjectListSyc', this.$route.query.simu_id);\n await this.setTaskId();\n await this.loadPlanList();\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n this.currentNavigation = this.$router.currentRoute.matched[1].name || 'data';\n const r = await api.getSimuData({ id: getQueryString()['simu_id'] });\n if (r.publicLevel >= 10) {\n this.$store.commit('setIsTypicalLibraryEditMode', true);\n } else {\n this.$store.commit('setIsTypicalLibraryEditMode', false);\n }\n }\n\n /**\n * 打开方案\n * 跳转页面\n */\n openPlan(navigation: string, it: PlanList): void {\n this.$store.commit('setCurrentPlanId', it.id);\n this.currentNavigation = 'evaluate';\n this.openPage(navigation);\n }\n\n /**\n * @author: guan\n * @description: 打开地址\n * @param params 跳转的参数名\n * @return void\n */\n openPage(params: string): void {\n this.currentNavigation = params;\n const query = this.$route.query;\n const navigationRecord = this.$store.getters.getNavigationRecords[this.currentNavigation];\n let name = this.currentNavigation;\n //如果记录存在则替换name\n if (navigationRecord != null && navigationRecord !== '') {\n name = navigationRecord;\n }\n console.log('openPage name', name);\n const route = {\n name: name,\n query: query,\n };\n\n this.$router.push(route).catch((e) => {\n if (!String(e).includes('Avoided redundant navigation to current location')) {\n throw e;\n }\n });\n }\n\n /**\n *回到首页\n */\n backToHomePage(): void {\n const url = this.$store.state.iesMode ? '/account/ies' : '/account/ies-opt';\n window.open(url, '_self');\n }\n\n /**\n * @author guan\n * @description\n * @returns void\n * @param params\n */\n menuClick(params: { item: unknown; key: string; keyPath: string[] }): void {\n switch (params.key) {\n case '1':\n {\n const url = this.$store.state.iesMode ? '/account/ies' : '/account/ies-opt';\n window.open(url, '_self');\n }\n break;\n case '3':\n {\n logout()\n .then(() => {\n window.open('/account/login', '_self');\n })\n .catch(() => {\n void this.$message.error('退出失败!');\n });\n }\n break;\n default:\n break;\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./layout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./layout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./layout.vue?vue&type=template&id=068acc09&scoped=true&\"\nimport script from \"./layout.vue?vue&type=script&lang=ts&\"\nexport * from \"./layout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./layout.vue?vue&type=style&index=0&id=068acc09&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"068acc09\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"prioritization\"}},[(_vm.active === '方案列表')?_c('div',[_c('a-row',{staticStyle:{\"margin-bottom\":\"15px\"},attrs:{\"gutter\":16}},[_vm._l((_vm.packageList),function(item,index){return _c('a-col',{key:index,attrs:{\"span\":9}},[_c('div',{staticClass:\"contentCard baseColor\"},[_c('div',{staticStyle:{\"text-align\":\"center\",\"height\":\"20%\",\"width\":\"100%\",\"font-size\":\"16px\",\"font-family\":\"SimSun, sans-serif\",\"font-weight\":\"800\"}},[_vm._v(\" \"+_vm._s(item.title)+\" \")]),_c('div',{staticStyle:{\"height\":\"60%\",\"font-size\":\"15px\"}},[_c('p',[_vm._v(_vm._s(item.desc))])]),_c('div',{staticStyle:{\"height\":\"20%\",\"text-align\":\"center\"}},[_c('a-checkbox',{attrs:{\"checked\":_vm.modeCode === item.type},on:{\"change\":function($event){return _vm.onChange(item)}}},[_vm._v(\" 选择为优化目标 \")])],1)])])}),_c('a-col',{attrs:{\"span\":6}},[(!_vm.simulation.isRunning)?[_c('div',{staticClass:\"contentCard\",class:_vm.disabledFunction ? 'disbaledClass' : 'defaultClass',staticStyle:{\"background-image\":\"linear-gradient(to right, #67b1f1, #2f64ee)\",\"text-align\":\"center\",\"opacity\":\"0.9\"},on:{\"click\":_vm.startCalculate}},[_c('span',{staticStyle:{\"color\":\"#ffffff\",\"font-size\":\"24px\",\"line-height\":\"240px\",\"user-select\":\"none\"}},[_vm._v(\"开始运算\")])])]:[_c('div',{staticClass:\"miniContentCard\",class:_vm.disabledFunction ? 'disbaledClass' : 'defaultClass',staticStyle:{\"background-image\":\"linear-gradient(to right, #67b1f1, #2f64ee)\",\"text-align\":\"center\",\"margin-bottom\":\"10px\"},on:{\"click\":_vm.stopCalculate}},[_c('span',{staticStyle:{\"color\":\"#ffffff\",\"font-size\":\"24px\",\"line-height\":\"100px\",\"user-select\":\"none\"}},[_vm._v(\"停止当前运算\")])]),_c('div',{staticClass:\"miniContentCard\",class:_vm.disabledFunction ? 'disbaledClass' : 'defaultClass',staticStyle:{\"background-image\":\"linear-gradient(to right, #67b1f1, #2f64ee)\",\"text-align\":\"center\"},on:{\"click\":_vm.deleteTask}},[_c('span',{staticStyle:{\"color\":\"#ffffff\",\"font-size\":\"24px\",\"line-height\":\"100px\",\"user-select\":\"none\"}},[_vm._v(\"停止并删除当前运算\")])])]],2)],2),_c('a-row',{attrs:{\"gutter\":36}},[_c('a-card',{staticStyle:{\"margin-left\":\"18px\",\"margin-right\":\"18px\",\"border\":\"1px solid rgba(128, 129, 128, 0.1)\",\"-webkit-box-shadow\":\"#666 0 0 2px\",\"-moz-box-shadow\":\"#666 0 0 2px\",\"box-shadow\":\"#666 0 0 2px\",\"margin-bottom\":\"15px\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[(_vm.simulation.isRunning)?_c('a-icon',{staticStyle:{\"margin-right\":\"10px\",\"font-size\":\"20px\",\"color\":\"#0f7aec\"},attrs:{\"type\":\"loading\"}}):_vm._e(),_c('a-progress',{attrs:{\"percent\":_vm.simulation.progress,\"stroke-color\":{\n '0%': '#108ee9',\n '100%': '#87d068',\n },\"status\":_vm.simulation.isRunning ? 'active' : 'normal'}})],1)])],1),_c('a-row',{attrs:{\"gutter\":36}},[_c('a-col',{attrs:{\"span\":\"24\"}},[_c('a-card',{staticClass:\"table_card\",staticStyle:{\"border\":\"1px solid rgba(128, 129, 128, 0.1)\",\"-webkit-box-shadow\":\"#666 0 0 2px\",\"-moz-box-shadow\":\"#666 0 0 2px\",\"box-shadow\":\"#666 0 0 2px\",\"height\":\"450px\"},attrs:{\"bordered\":false}},[_c('div',{staticStyle:{\"height\":\"20px\",\"display\":\"flex\",\"justify-content\":\"space-between\",\"align-items\":\"center\",\"margin-top\":\"5px\",\"margin-bottom\":\"5px\"},attrs:{\"slot\":\"title\"},slot:\"title\"},[_c('div',{staticStyle:{\"height\":\"100%\",\"line-height\":\"20px\"}},[_c('a-select',{staticStyle:{\"width\":\"100px\"},model:{value:(_vm.showLog),callback:function ($$v) {_vm.showLog=$$v},expression:\"showLog\"}},[_c('a-select-option',{attrs:{\"value\":0}},[_vm._v(\" 优化方案 \")]),_c('a-select-option',{attrs:{\"value\":1}},[_vm._v(\" 显示日志 \")])],1)],1),(!_vm.showLog)?_c('div',{staticStyle:{\"height\":\"100%\",\"width\":\"auto\"}},[_c('a-button',{staticStyle:{\"margin-right\":\"10px\"},attrs:{\"type\":\"primary\"},on:{\"click\":_vm.exportProject}},[_vm._v(\"导出方案配置和设备信息\")]),(_vm.tableType === 'plan')?_c('a-button',{attrs:{\"type\":\"primary\",\"loading\":_vm.loadingDeviceParameterList},on:{\"click\":_vm.getDeviceParameterList}},[_vm._v(_vm._s(_vm.loadingDeviceParameterList ? '数据加载中' : \"查看方案配置\"))]):_c('a-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function () {\n _vm.tableType = 'plan';\n }}},[_vm._v(\" 返回方案列表 \")])],1):_vm._e()]),(!_vm.showLog)?_c('div',[(_vm.tableData.length > 0 && _vm.tableType === 'plan')?_c('a-table',{attrs:{\"scroll\":{ x: 1000, y: 240 },\"columns\":_vm.tableColumns,\"rowClassName\":function (record, index) { return (index % 2 === 0 ? 'oColor' : 'aColor'); },\"data-source\":_vm.tableData,\"pagination\":false,\"size\":\"middle\",\"bordered\":\"\"},scopedSlots:_vm._u([{key:\"action\",fn:function(text, record){return _c('span',{},[_c('span',{staticStyle:{\"color\":\"#45cea8\",\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.initDetail(record.id, record.key === -1 ? _vm.relatedTaskId : _vm.taskId)}}},[_vm._v(\"详细信息\")])])}}],null,false,3084507744)}):_c('a-table',{attrs:{\"size\":\"middle\",\"columns\":_vm.deviceParameterList.detailColumn,\"data-source\":_vm.deviceParameterList.data,\"scroll\":{ x: 1000, y: 240 },\"pagination\":false,\"rowClassName\":function (record, index) { return (index % 2 === 0 ? 'oColor' : 'aColor'); },\"bordered\":\"\"}})],1):_c('div',[_c('div',{staticClass:\"log\"},_vm._l((_vm.logInfo),function(item){return _c('div',{key:item.id,staticClass:\"log-item\"},[_c('span',[_vm._v(\"[\"+_vm._s(item.createdate)+\"]\")]),_c('span',{style:({ marginLeft: '10px', color: item.cmd === 'error' ? 'red' : item.cmd === 'warning' ? '#c3963d' : '#000' })},[_vm._v(_vm._s(item.cmd)+\":\"+_vm._s(item.data))])])}),0)])])],1)],1)],1):_c('detailed-information',{ref:\"aim\",attrs:{\"taskId\":_vm.informationTaskId,\"initialPlanId\":_vm.plan,\"planList\":_vm.planList},on:{\"returnScheme\":function($event){_vm.active = '方案列表'}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"detailedInformation\"},[_c('div',{staticClass:\"prioritizationTitle_button baseColor\"},[_vm._m(0),_c('div',[_c('span',[_vm._v(\"方案选择:\")]),_c('a-select',{staticStyle:{\"width\":\"120px\",\"margin-right\":\"10px\"},on:{\"select\":_vm.selectComparisonPlan},model:{value:(_vm.planId),callback:function ($$v) {_vm.planId=$$v},expression:\"planId\"}},_vm._l((_vm.planList),function(item){return _c('a-select-option',{key:item.id,attrs:{\"value\":item.id}},[_vm._v(\" \"+_vm._s(item.name)+\" \")])}),1),_c('a-button',{staticStyle:{\"margin-right\":\"15px\"},attrs:{\"type\":\"primary\"},on:{\"click\":_vm.returnScheme}},[_vm._v(\"返回方案列表\")])],1)]),_c('a-table',{attrs:{\"columns\":_vm.planData.detailColumn,\"data-source\":_vm.planData.data,\"bordered\":\"\",\"size\":\"middle\",\"rowClassName\":function (record, index) {\n if (record.key === _vm.defaultName) {\n return index % 2 === 0 ? 'oColor defaultSelect' : 'aColor defaultSelect';\n } else { return index % 2 === 0 ? 'oColor' : 'aColor'; }\n },\"scroll\":{ x: 800, y: 280 },\"pagination\":false,\"rowKey\":function (record, index) {\n return index;\n }},scopedSlots:_vm._u([{key:\"operation\",fn:function(text, record){return [_c('a-button',{staticStyle:{\"color\":\"#45cea8\"},attrs:{\"type\":\"link\",\"icon\":\"eye\"},on:{\"click\":function($event){return _vm.upDataDefaultName(record)}}},[_vm._v(\"查看\")])]}}])}),_c('div',{staticClass:\"baseColor\",staticStyle:{\"height\":\"380px\",\"padding\":\"5px 10px\",\"margin-top\":\"20px\"}},[_c('span',[_vm._v(\"选择月份:\")]),_c('a-select',{staticStyle:{\"width\":\"150px\",\"margin\":\"10px 0 0 10px\"},model:{value:(_vm.month),callback:function ($$v) {_vm.month=$$v},expression:\"month\"}},_vm._l((_vm.typicalDay),function(item,index){return _c('a-select-option',{key:index,attrs:{\"value\":item}},[_vm._v(\" \"+_vm._s((\"\" + item))+\" \")])}),1),(_vm.groupList[0] !== 'headerDesc')?_c('span',{staticStyle:{\"margin-left\":\"10px\"}},[_vm._v(\"选择参数:\")]):_vm._e(),(_vm.groupList[0] !== 'headerDesc')?_c('a-select',{staticStyle:{\"width\":\"250px\",\"margin\":\"10px 0 0 10px\"},model:{value:(_vm.group),callback:function ($$v) {_vm.group=$$v},expression:\"group\"}},_vm._l((_vm.groupList),function(item,index){return _c('a-select-option',{key:index,attrs:{\"value\":item}},[_vm._v(\" \"+_vm._s((\"\" + item))+\" \")])}),1):_vm._e(),_c('a-button',{staticStyle:{\"margin-left\":\"10px\"},attrs:{\"loading\":_vm.loading,\"type\":\"primary\",\"icon\":\"download\"},on:{\"click\":_vm.download}},[_vm._v(\" 下载总计数据\")]),_c('a-table',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.mode === 'table'),expression:\"mode === 'table'\"}],staticStyle:{\"margin-top\":\"10px\",\"margin-bottom\":\"10px\"},attrs:{\"columns\":_vm.systemDataColumns,\"data-source\":_vm.systemBodyData,\"scroll\":{ x: 800, y: 240 },\"pagination\":false,\"rowKey\":function (record, index) {\n return index;\n }}}),(_vm.mode === 'draw')?_c('div',{ref:\"chart_component\",staticStyle:{\"margin-top\":\"10px\"},style:({ width: '100%', height: '300px' })}):_vm._e()],1)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"50%\",\"margin-left\":\"15px\"}},[_c('div',{staticStyle:{\"background-color\":\"#1aa3f1\",\"height\":\"70%\",\"width\":\"5px\",\"display\":\"inline-block\"}}),_c('span',{staticStyle:{\"margin-left\":\"15px\",\"font-size\":\"16px\",\"font-family\":\"SimSun, sans-serif\",\"font-weight\":\"800\"}},[_vm._v(\"方案描述\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Emit, Prop, Vue, Watch } from 'vue-property-decorator';\nimport InformationChart from '@/prioritization/chart/information-chart.vue';\nimport { getQueryString } from '@/Api/api_data';\nimport Api from '@/Api/api_simulaion';\nimport { EChartsOption, ECharts, init } from 'echarts';\nimport MessageBus from '@/Utils/message/message-bus';\nimport { PlanData, PlanList, SchemeInformation, ProjectInfo } from '@/prioritization/interface/interface';\nimport Tools from '@/component/template/tools/tools';\nimport { arrayTransposition } from '@/Utils/average';\nimport { flatten, concat } from 'lodash';\n\n/**\n * 框架入口文件\n */\n@Component({\n components: {\n InformationChart,\n },\n})\nexport default class DetailedInformation extends Vue {\n /**当前图表选择典型月 */\n month = 'January Wednesday';\n /** */\n groupList: string[] = [];\n /** 图表数据 */\n resultDataDict = {};\n /** 典型日 */\n typicalDay: string[] = [];\n /** */\n @Prop({ default: () => 1 })\n initialPlanId!: number;\n\n /** planId */\n planId = this.initialPlanId;\n\n /**\n * 监听方案选择变化\n */\n @Watch('initialPlanId', { immediate: true })\n watchPlanId(): void {\n this.planId = this.initialPlanId;\n }\n\n /** 方案列表 */\n @Prop({ default: () => [] })\n planList!: PlanList;\n\n /**\n * loading\n */\n loading = false;\n\n /**\n * usrDefinedName\n */\n usrDefinedName = '';\n\n /**\n * cloudPssTheme\n */\n get cloudPssTheme(): string {\n return this.$store.getters.getTheme;\n }\n\n /**\n * projectInfo\n */\n get projectInfo(): ProjectInfo {\n return this.$store.state.projects;\n }\n\n /**\n * @author guan\n * @description 加载典型日表\n * @return void\n */\n private getTypicalDay(): void {\n Api.getOptimizationResult({\n resultType: 2,\n simuid: getQueryString()['simu_id'] as unknown as number,\n taskid: this.taskId,\n u_name: this.defaultName,\n planId: this.planId,\n })\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then((data: any) => {\n this.typicalDay = data.data.map((x) => x.typicalDay);\n this.month = this.typicalDay[0];\n })\n .catch((e) => console.log(e));\n }\n\n /**\n * @author guan\n * @description upDataDefaultName 更新默认选中的默认曲线\n * @param item SchemeInformation\n * @return void\n */\n upDataDefaultName(item: SchemeInformation): void {\n if (this.defaultName === item.key) {\n MessageBus.Notification('info', { description: '', message: '当前选择未做更改' });\n return;\n } else {\n this.resultDataDict = {};\n this.group = '';\n this.groupList = [];\n this.mode = 'draw';\n this.defaultName = item.key;\n this.usrDefinedName = item.usrDefinedName;\n }\n }\n\n /** */\n get option(): EChartsOption {\n return {\n title: {\n text: '',\n left: '45%',\n },\n grid: {\n containLabel: true,\n left: 10,\n },\n legend: {\n align: 'left',\n left: 10,\n top: 25,\n type: 'scroll',\n textStyle: {\n color: this.cloudPssTheme === 'dark' ? '#ffffff' : '#000',\n },\n },\n brush: {\n toolbox: ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'],\n xAxisIndex: 0,\n },\n toolbox: {\n feature: {\n iconStyle: {\n color: this.cloudPssTheme === 'dark' ? '#d5d4d4' : '#666363',\n },\n magicType: {\n type: ['line', 'bar'],\n },\n },\n },\n tooltip: {\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#999',\n },\n },\n },\n xAxis: {\n data: [],\n name: 'X Axis',\n silent: false,\n axisLine: {\n onZero: true,\n lineStyle: {\n color: this.cloudPssTheme === 'dark' ? '#ffffff' : '#000',\n },\n },\n splitLine: { show: false },\n splitArea: { show: false },\n axisLabel: {\n color: this.cloudPssTheme === 'dark' ? '#ffffff' : '#000',\n },\n },\n dataZoom: [\n {\n type: 'slider',\n yAxisIndex: 0,\n filterMode: 'none',\n },\n\n {\n type: 'inside',\n yAxisIndex: 0,\n filterMode: 'none',\n },\n ],\n yAxis: {\n inverse: false,\n splitArea: { show: false },\n nameTextStyle: {\n color: this.cloudPssTheme === 'dark' ? '#ffffff' : '#000',\n },\n axisLabel: {\n formatter: '{value}',\n color: this.cloudPssTheme === 'dark' ? '#ffffff' : '#000',\n },\n axisLine: {\n onZero: true,\n lineStyle: {\n color: '#0e61ef',\n },\n },\n splitLine: {\n show: false,\n },\n },\n\n series: [],\n };\n }\n\n /** 当前图表的数据名 */\n defaultName = '';\n /** */\n @Prop({ default: () => '' })\n taskId!: string;\n /** */\n private group = '';\n /** */\n mode = 'bar';\n /** 图表实例 */\n private chart?: ECharts;\n\n /**\n * @author guan\n * @description\n * @return void\n */\n @Watch('month')\n onMonthChange(): void {\n this.loadDetailData();\n }\n\n /**\n * @author guan\n * @description echarts图初始化\n * @return void\n */\n initEcharts(): void {\n if (!this.$refs['chart_component']) return;\n if (this.chart) return;\n this.chart = init(this.$refs['chart_component'] as HTMLDivElement);\n window.onresize = () => {\n this.chart?.resize();\n };\n this.chart.setOption(this.option, true);\n }\n\n /** */\n planData: PlanData = {} as PlanData;\n\n /**\n * @author guan\n * @description 设置默认的选中曲线\n * @return void\n */\n mounted(): void {\n /** 初始化 */\n this.initEcharts();\n /** 设置默认的额defaultName */\n this.defaultName = 'systemData';\n /** 初始化表格 */\n void this.initTable();\n /** 获取典型日 */\n this.getTypicalDay();\n }\n\n /**\n * initTable\n */\n async initTable(): Promise {\n const data = await this.getPlanData(this.planId, this.taskId);\n for (const item of data.data) {\n for (const key in item) {\n if (!isNaN(Number(item[key]))) {\n item[key] = Number(item[key]).toFixed(2);\n }\n }\n }\n this.planData = data;\n }\n\n /** 样式 */\n readonly itemStyle = {\n normal: {},\n emphasis: {\n barBorderWidth: 1,\n shadowBlur: 10,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n shadowColor: 'rgba(0,0,0,0.5)',\n },\n };\n\n /**\n * 根据事件变化,刷新当前图表,展示不同的数据\n */\n private refreshChart(): void {\n if (this.mode === 'table') {\n this.chart = undefined;\n this.systemDataColumns = this.resultDataDict[this.month].headerDesc;\n this.resultDataDict[this.month].bodyData.map((item) => {\n return this.handleTableData(item);\n });\n this.systemBodyData = this.resultDataDict[this.month].bodyData;\n } else if (this.mode === 'draw') {\n let month = this.resultDataDict[this.month] || {};\n this.initEcharts();\n if (Object.keys(month).length > 0) {\n let group2 = month[this.group];\n let option = JSON.parse(JSON.stringify(this.option));\n if (group2) {\n option.legend.data = group2.legend.data;\n option.xAxis = { ...option.xAxis, ...group2.xAxis };\n option.series = group2.series;\n }\n this.chart?.setOption(option, true);\n }\n }\n }\n\n /**\n * 表格数据保留两位小数\n */\n handleTableData(item: Record): Record {\n for (const key in item) {\n if (typeof item[key] === 'number') {\n item[key] = (item[key] as number).toFixed(2);\n }\n }\n return item;\n }\n\n /**\n * @author guan\n * @description\n * 加载设备详细数据\n * 使用vue 监听group的变化来更新图表\n * 如果group相同则主动刷新图表\n * 一种设备的一次取一个月的数据,并存储到全局变量中(用于减少请求)\n * 防止数据量过大只存一个设备的数据,切换设备后数据需要重新请求\n * @return void\n */\n @Watch('defaultName', { deep: true })\n getChartData(newVal: string): void {\n if (this.taskId.length === 0 || newVal.length === 0) {\n return;\n }\n this.loadDetailData();\n }\n\n /**\n * @author guan\n * @description 加载数据\n * @return void\n */\n loadDetailData(): void {\n if (!this.resultDataDict[this.month]) {\n const id = getQueryString()['simu_id'];\n\n Api.getOptimizationResult({\n resultType: 3,\n simuid: id,\n taskid: this.taskId,\n u_name: this.defaultName,\n typicalDay: this.month,\n planId: this.planId,\n })\n .then(\n async (\n //eslint-disable-next-line\n data: any,\n ) => {\n await this.dealDetailData(data.data);\n this.groupList = Object.keys(this.resultDataDict[this.month]);\n if (this.group.length > 0) {\n this.refreshChart();\n } else {\n this.group = this.groupList[0];\n }\n },\n )\n .catch((e) => e);\n } else {\n this.refreshChart();\n }\n }\n\n /** systemDataColumns */\n systemDataColumns = [];\n\n /** systemBodyData */\n systemBodyData = [];\n\n /**\n * 解析获取到的设备数据,按月存储到 resultDataDict 中\n * 两种数据格式,一种为柱状图,一种为曲线\n *\n * @param {*} data 请求到的数据\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/explicit-module-boundary-types\n dealDetailData(data: any): Promise {\n return new Promise((resolve) => {\n let ret = data[0].data;\n let month = {};\n if (ret.type === 'table') {\n this.mode = 'table';\n const data = ret.data.columns;\n const headerDesc = data.map((val, i) => ({\n dataIndex: `row-${i}`,\n key: `row-${i}`,\n title: val.name,\n align: 'center',\n }));\n const bodyData = data.reduce((a, val, j) => {\n const item = val.data;\n item.forEach((val, i) => {\n a[i] = a[i] ?? {};\n a[i][`row-${j}`] = val;\n });\n return a;\n }, []);\n month = {\n headerDesc,\n bodyData,\n };\n } else {\n let drawData = ret;\n let drawGroup = ret.groupDesc;\n if (!drawGroup) {\n MessageBus.Notification('warning', { message: '暂无数据', description: '' });\n return;\n }\n for (let val of drawGroup) {\n let group = month[val.desc] || {\n legend: { data: [] },\n xAxis: {\n data: [],\n name: '小时',\n },\n series: [],\n };\n let series = group.series;\n let showGoup = 0;\n for (let index = 0; index < val.keyset.length; index++) {\n const element = val.keyset[index];\n series[index] = series[index] || {\n name: element,\n type: 'line',\n itemStyle: this.itemStyle,\n data: [],\n };\n let lineData = drawData[element];\n if (lineData) {\n showGoup = 1;\n if (group.legend.data.indexOf(element) === -1) {\n group.legend.data.push(element);\n }\n for (const val of lineData) {\n if (!group.xAxis.data.includes(val[0])) {\n group.xAxis.data.push(val[0]);\n }\n series[index].data.push(val[1]);\n }\n }\n }\n if (showGoup) {\n month[val.desc] = group;\n }\n }\n }\n this.resultDataDict[this.month] = month;\n resolve();\n });\n }\n\n /**\n * @author guan\n * @description\n * @return void\n */\n @Watch('group')\n onGroupChange(): void {\n this.refreshChart();\n }\n\n /**\n * onThemeChange\n */\n @Watch('cloudPssTheme')\n onThemeChange(): void {\n this.refreshChart();\n }\n\n /**\n * selectComparisonPlan\n */\n async selectComparisonPlan(id: number): Promise {\n this.planData = await this.getPlanData(id, this.taskId);\n this.resultDataDict = {};\n this.loadDetailData();\n }\n\n /** 获取数据 */\n getPlanData(planId: number, taskId: string): Promise {\n if (planId === undefined) {\n MessageBus.Notification('warning', { message: '提示', description: '当前未配置方案id!' });\n return new Promise((resolve) => {\n resolve({} as PlanData);\n });\n }\n return (\n Api.getOptimizationResult({ resultType: 1, simuid: getQueryString()['simu_id'], taskid: taskId, planId: planId })\n /* eslint-disable-next-line */\n .then((res: any) => {\n const source = res.data;\n const headerDesc = res.data[0]?.data.headerDesc;\n const detailColumn: Array> = headerDesc.map((column) => ({\n dataIndex: column.key,\n key: column.key,\n title: column.hearderName,\n align: 'center',\n }));\n\n const data: Array> = [];\n\n source.forEach((item) => {\n const dataItem = item.data.data;\n\n const rowData: Record = {};\n for (const key in dataItem) {\n if (typeof item[key] === 'number') {\n rowData[key] = dataItem[key].toFixed(2);\n continue;\n }\n rowData[key] = dataItem[key];\n }\n rowData['key'] = dataItem.compName;\n data.push(rowData);\n });\n\n detailColumn.push({\n title: '查看曲线',\n align: 'center',\n width: 120,\n fixed: 'right',\n scopedSlots: { customRender: 'operation' },\n });\n return { data: data, detailColumn: detailColumn };\n })\n .catch((e) => e)\n );\n }\n\n /**\n * 下载总计方案数据,分为下载全部元件标识符的数据和单一标识符的数据,后台接口一致,返回的数据结果不同\n * 按照日期重新生成excel数据\n *\n * @author guan\n * @description 下载全部数据报表\n */\n async download(): Promise {\n try {\n const projectName = this.projectInfo ? this.projectInfo.name : '无';\n this.loading = true;\n const { typicalDay, planId, taskId } = this;\n const request = typicalDay.map((x) => {\n const id = getQueryString()['simu_id'];\n return Api.getOptimizationResult({\n resultType: 3,\n simuid: id,\n taskid: taskId,\n u_name: this.defaultName,\n typicalDay: x,\n planId: planId,\n });\n });\n /** 获取当前全部的表格数据 */\n const data = await Promise.all(request);\n if (this.defaultName === 'systemData') {\n /** 去除掉无限嵌套的data,生成全部数据组成的数组 */\n let source = data\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map((v: any) => {\n if (v.data && Array.isArray(v.data) && v.data[0].data && v.data[0].data.data) {\n return v.data[0].data.data;\n } else {\n return {};\n }\n })\n .flat(5);\n if (!source) {\n throw new Error('数据解析错误');\n }\n const arr = source.map((x) => {\n return x.columns;\n });\n const res = arr.map((data) => {\n const list = data.map((val) => {\n return val.name;\n });\n const bodyData = data.reduce((a, val, j) => {\n const item = val.data;\n item.forEach((val, i) => {\n a[i] = a[i] ?? {};\n a[i][list[j]] = val;\n });\n return a;\n }, []);\n return bodyData;\n });\n const newArr = arrayTransposition(res);\n const r = newArr.map((item) => {\n return item.map((x, i) => {\n x['日期'] = this.typicalDay[i];\n return x;\n });\n });\n const title = projectName + '-' + '方案总数据';\n /** 开始调用下载接口 */\n void (await Tools.initNewSheets(title, r));\n this.loading = false;\n } else {\n const arr: string[][][] = [];\n const header = data.map((v) => {\n return Object.keys(v.data[0].data).slice(1);\n });\n data.forEach((v) => {\n const nameList = Object.keys(v.data[0].data).slice(1);\n const dataObj = v.data[0].data;\n const tmp: string[][] = [];\n for (let i of nameList) {\n const list = dataObj[i].map((x) => x[1]);\n tmp.push(list);\n }\n const t = arrayTransposition(tmp);\n arr.push(t);\n });\n const newArr = flatten(arr);\n const title = projectName + '-' + this.usrDefinedName;\n const time = new Array(24).fill('').map((_x, index) => {\n return `${index}:00:00`;\n });\n const r = newArr.map((x, i) => {\n const n = Math.floor(i / 24);\n const t = time[i % 24];\n x.unshift(t);\n const d = this.typicalDay[n];\n x.unshift(d);\n return x;\n });\n const column = concat(['日期', '时间'], header[0]);\n /** 开始调用下载接口 */\n void (await Tools.initNewSheets(title, r, column));\n this.loading = false;\n }\n } catch (e) {\n throw new Error('后台接口错误,请联系管理员');\n }\n }\n\n /**\n * returnScheme\n */\n @Emit('returnScheme')\n returnScheme(): void {\n return;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./detailed-information.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./detailed-information.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./detailed-information.vue?vue&type=template&id=2b8faf28&\"\nimport script from \"./detailed-information.vue?vue&type=script&lang=ts&\"\nexport * from \"./detailed-information.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./detailed-information.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import api_data, { getQueryString } from '@/Api/api_data';\nimport Api from '@/Api/api_simulaion';\nimport templateData from '@/component/template/tools/template';\nimport Tools from '@/component/template/tools/tools';\nimport { CardData } from '@/component/LibraryOfEquipmentInformation/EquipmentInformationContent/interface';\nimport { cloneDeep, concat } from 'lodash';\n\nexport default class ProjectExportTool {\n constructor() {\n this.simuId = getQueryString()['simu_id'];\n }\n simuId: string;\n\n taskId = '';\n\n /**\n * 设备列表\n * 带挡位的设备\n */\n equipmentListWithTable = ['燃气轮机', '热泵', '燃气锅炉', '电压缩制冷机', '吸收式制冷机', '离心泵'];\n\n /**\n * 设备列表\n */\n equipmentList = [\n {\n name: '光伏',\n type: 'dpcs',\n kind: 'PhotovoltaicSys',\n },\n {\n name: '风机',\n type: 'dpcs',\n kind: 'WindPowerGenerator',\n },\n {\n name: '燃气轮机',\n type: 'dpcs',\n kind: 'GasTurbine',\n },\n {\n name: '热泵',\n type: 'dhscs',\n kind: 'HeatPump',\n },\n {\n name: '燃气锅炉',\n type: 'dhscs',\n kind: 'GasBoiler',\n },\n {\n name: '热管式太阳能集热器',\n type: 'dhscs',\n kind: 'HPSolarCollector',\n },\n {\n name: '电压缩制冷机',\n type: 'dhscs',\n kind: 'CompRefrg',\n },\n {\n name: '吸收式制冷机',\n type: 'dhscs',\n kind: 'AbsorptionChiller',\n },\n {\n name: '蓄电池',\n type: 'escs',\n kind: 'Battery',\n },\n {\n name: '储水罐',\n type: 'escs',\n kind: 'WaterTank',\n },\n {\n name: '变压器',\n type: 'dstcs',\n kind: 'Transformer',\n },\n {\n name: '传输线',\n type: 'dstcs',\n kind: 'TransferLine',\n },\n {\n name: '模块化多电平变流器',\n type: 'dstcs',\n kind: 'MMC',\n },\n {\n name: '离心泵',\n type: 'hstcs',\n kind: 'CentrifugalPump',\n },\n {\n name: '管道',\n type: 'hstcs',\n kind: 'Pipe',\n },\n ];\n\n /**\n * 获得方案列表数据\n * 数据处理\n * 2022-8-29 更新,原因:数据结构变化\n */\n async loadPlanListData(): Promise>> {\n const result = new Array>();\n const responseOfLastSimulationTask = await Api.getLastSimulationTask({ simuid: this.simuId });\n if (responseOfLastSimulationTask.error !== 0 || responseOfLastSimulationTask.data == null) {\n throw new Error('暂不存在完整的方案数据');\n }\n this.taskId = responseOfLastSimulationTask.data.task_id;\n\n const responseOfOptimizationResult = await Api.getOptimizationResult({ resultType: 0, simuid: this.simuId, taskid: this.taskId });\n if (responseOfOptimizationResult.data.length === 0) {\n throw new Error('暂不存在完整的方案数据');\n }\n const header = responseOfOptimizationResult.data[0].data.headerDesc;\n const column = header.map((x) => {\n return x.hearderName;\n });\n responseOfOptimizationResult.data.forEach((item) => {\n const obj = item.data.data[0];\n const arr = Object.keys(obj).map((x) => {\n const name = header.find((item) => item.key === x)?.hearderName;\n return {\n name: name,\n value: obj[x],\n };\n });\n const data = [] as (number | string)[];\n for (let i of column) {\n const d = arr.find((x) => x.name === i);\n if (!d) {\n return;\n }\n data.push(d.value);\n }\n result.push(data);\n });\n result.unshift(column);\n return result;\n }\n\n // 获取方案配置\n async loadPlanDetailInfo(planId: number): Promise>> {\n const result = new Array>();\n const responseOfPlanDetailInfo = await Api.getPlanDetailInfo(this.simuId, this.taskId, planId);\n //获取表头描述列表\n const headerDescList = responseOfPlanDetailInfo.data[0].data.headerDesc;\n result[0] = headerDescList.map((item) => item.hearderName);\n responseOfPlanDetailInfo.data.forEach((item) => {\n const row = new Array();\n headerDescList.forEach((headerDesc) => {\n row.push(item.data.data[headerDesc.key]);\n });\n result.push(row);\n });\n return result;\n }\n\n // 获取设备信息列表\n async loadEquipmentInformationDetailsData() {\n const promiseListOfEquipmentInformationData = this.equipmentList.map(async (list) => {\n let result = new Array>();\n if (this.equipmentListWithTable.includes(list.name)) {\n const ls = await api_data.getDataByParams({ type: list.type, params: list.kind });\n const tHeader = templateData[list.kind].map((x: { name: string }) => {\n return x.name;\n });\n const keys = templateData[list.kind].map((x: { key: string }) => {\n return x.key;\n });\n result.push(tHeader);\n ls.results.forEach((item) => {\n const data = this.handleData(item as CardData, keys);\n result = concat(result, data);\n });\n return { name: list.name, data: result };\n } else {\n const equipmentInformationData = await api_data.getDataByParams({ type: list.type, params: list.kind });\n equipmentInformationData.results.forEach((item, index) => {\n const data = Tools.initXlsxData(list.name, list.name, item);\n if (index < 1) {\n result.push(data.tHeader);\n }\n result.push(data.data[0]);\n });\n }\n return { name: list.name, data: result };\n });\n return await Promise.all(promiseListOfEquipmentInformationData);\n }\n\n /**\n * 数据处理\n */\n handleData(item: CardData, keys: string[]): string[][] {\n const r = Object.keys(item.ratedParam);\n const t = (item.kind === 'CentrifugalPump' ? item.ratedParam.PerformanceCurve : item.ratedParam.OperateParam) as Record[];\n const o = Object.keys(item.operationalConstraints);\n const e = Object.keys(item.economicParam);\n const d = [item.manufacturer, item.equipType];\n const str = '';\n let result = new Array>();\n t.forEach((_x, i) => {\n if (i === 0) {\n result[0] = concat([], d);\n } else {\n result[i] = concat([], ['', '']);\n }\n });\n keys.forEach((x) => {\n t.forEach((v, i) => {\n if (i === 0) {\n if (r.length > 0) {\n r.forEach((y) => {\n if (x === y) {\n result[0].push(item.ratedParam[x] as string);\n }\n });\n }\n if (Object.keys(v).length > 0) {\n Object.keys(v).forEach((y) => {\n if (x === y) {\n result[0].push(v[x]);\n }\n });\n }\n if (o.length > 0) {\n o.forEach((y) => {\n if (x === y) {\n result[0].push(item.operationalConstraints[x] as string);\n }\n });\n }\n if (e.length > 0) {\n e.forEach((y) => {\n if (x === y) {\n result[0].push(item.economicParam[x] as string);\n }\n });\n }\n } else {\n if (r.length > 0) {\n r.forEach((y) => {\n if (x === y) {\n result[i].push(str);\n }\n });\n }\n if (Object.keys(v).length > 0) {\n Object.keys(v).forEach((y) => {\n if (x === y) {\n result[i].push(v[x]);\n }\n });\n }\n if (o.length > 0) {\n o.forEach((y) => {\n if (x === y) {\n result[i].push(str);\n }\n });\n }\n if (e.length > 0) {\n e.forEach((y) => {\n if (x === y) {\n result[i].push(str);\n }\n });\n }\n }\n });\n });\n return result;\n }\n\n // 导出配置方案和设备信息excel\n async exportToFiles() {\n const planList = await this.loadPlanListData();\n const promiseOfPlanDetailInfoList = new Array(planList.length - 1).fill('').map(async (item, index) => {\n return { name: `方案${index + 1}`, data: await this.loadPlanDetailInfo(index) };\n });\n const planDetailInfoList = await Promise.all(promiseOfPlanDetailInfoList);\n await Tools.exportXlsxFile('项目文件', [{ name: '方案列表', data: planList }, ...planDetailInfoList]);\n const equipmentInformationDataList = await this.loadEquipmentInformationDetailsData();\n await Tools.exportXlsxFile('设备信息库', equipmentInformationDataList);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport '../css/prioritiztion.less';\nimport DetailedInformation from '@/prioritization/detailedInformation/detailed-information.vue';\nimport Api from '@/Api/api_simulaion';\nimport { getQueryString } from '@/Api/api_data';\nimport MessageBus from '@/Utils/message/message-bus';\nimport { DeviceParameterColumns, PlanData, PlanList, Log } from '../interface/interface';\nimport run_time from '@/Utils/run_time';\nimport ProjectExportTool from '@/Utils/project-export-tool';\nimport { dateParse } from '@/Utils/date-format';\n\nimport { profile } from '@/Utils/profile';\nconst ieslabDisableRules = profile.get('ieslabDisableRules') === 'true';\n\n/**\n * @author guan\n * @description 方案优选\n */\n@Component({\n components: { DetailedInformation },\n})\nexport default class PrioritizationScheme extends Vue {\n /** disabledFunction */\n disabledFunction = false;\n /** 任务id */\n taskId = '';\n /** */\n relatedTaskId = '';\n /** */\n informationTaskId = '';\n /** 对比方案列表 */\n relatedPlanList: PlanList[] = [];\n /** 当前算例运行状态 */\n simulation = {\n /** 正在运行 */\n isRunning: false,\n /** 进程说明 */\n progress: 0,\n };\n /** 加载列表效果 */\n loadingDeviceParameterList = false;\n /** tableType */\n tableType: 'plan' | 'device' = 'plan';\n /** */\n contrastivePlanIndex = 0;\n /** 设备参数列表 */\n deviceParameterList = {} as PlanData;\n /** 方案列表 */\n packageList = [\n {\n title: '经济性最优',\n desc: '以系统经济性为优化目标,将系统综合成本最小作为目标函数(综合成本是指系统建设成本平摊至每年并与年运行成本和设备维护成本的加和),算法将根据该指标计算获得多种系统配置和运行方案,并按照从劣至优进行排序。',\n /** 0为经济性 */\n type: 0,\n },\n {\n title: '环保性最优',\n desc: '以系统环保性为优化目标,将系统运行过程中所排放的二氧化碳、二氧化硫等污染物的总量最小作为目标函数,算法将根据该指标计算获得多种系统配置和运行方案,并按照从劣至优进行排序。',\n /** 1为环保性 */\n type: 1,\n },\n // {\n // title: '可靠性最优',\n // desc: '考虑新能源等设备的不确定性对系统供能的影响,分析计算供能可靠性指标,通过调整新能源设备的配置规模,实现系统配置和运行方案的生成,并根据综合成本按照从劣至优进行排序。',\n // /**2为可靠性 */\n // type: 2,\n // },\n ];\n\n /** */\n tableColumns: Array> = [\n { dataIndex: 'name', key: 'name', title: '方案名称', scopedSlots: { customRender: 'solutionName' }, align: 'center' },\n {\n width: 100,\n dataIndex: '综合成本(万元)',\n key: '综合成本(万元)',\n title: '综合成本(万元)',\n align: 'center',\n },\n { dataIndex: '设备投资费用(万元)', width: 100, key: '设备投资费用(万元)', title: '设备投资费用(万元)', align: 'center' },\n { dataIndex: '设备年维护费用(万元)', width: 100, key: '设备年维护费用(万元)', title: '设备年维护费用(万元)', align: 'center' },\n { dataIndex: '年销售收入(万元)', width: 100, key: '年销售收入(万元)', title: '年销售收入(万元)', align: 'center' },\n { dataIndex: '年运营支出(万元)', width: 100, key: '年运营支出(万元)', title: '年运营支出(万元)', align: 'center' },\n { dataIndex: '年CO2排放(吨)', width: 100, key: '年CO2排放(吨)', title: '年CO2排放(吨)', align: 'center' },\n { dataIndex: '年NOX排放(吨)', width: 100, key: '年NOX排放(吨)', title: '年NOX排放(吨)', align: 'center' },\n { dataIndex: '年SO2排放(吨)', width: 100, key: '年SO2排放(吨)', title: '年SO2排放(吨)', align: 'center' },\n { dataIndex: '年烟尘排放(吨)', width: 100, key: '年烟尘排放(吨)', title: '年烟尘排放(吨)', align: 'center' },\n { dataIndex: '年电负荷(kWh)', width: 100, key: '年电负荷(kWh)', title: '年电负荷(kWh)', align: 'center' },\n { dataIndex: '年热负荷(kWh)', width: 100, key: '年热负荷(kWh)', title: '年热负荷(kWh)', align: 'center' },\n { dataIndex: '年冷负荷(kWh)', width: 100, key: '年冷负荷(kWh)', title: '年冷负荷(kWh)', align: 'center' },\n { dataIndex: '年蒸汽负荷(kWh)', width: 100, key: '年蒸汽负荷(kWh)', title: '年蒸汽负荷(kWh)', align: 'center' },\n { dataIndex: '', title: '操作', width: 120, key: 'action', scopedSlots: { customRender: 'action' }, align: 'center', fixed: 'right' },\n ];\n\n /** showLog */\n showLog = 0;\n\n /**\n * logInfo\n */\n logInfo: Log[] = [];\n\n /**\n *获取计划列表\n */\n get planList(): PlanList[] {\n return this.$store.getters.getPlanList;\n }\n\n set planList(value: PlanList[]) {\n this.$store.commit('setPlanList', value);\n }\n\n /**\n * @author guan\n * @description 获取当前方案下的数据\n * @return void\n */\n get dataByPlan(): Array> {\n const data = this.planList.find((x) => x.id === this.plan);\n if (data) {\n return data.data.data as unknown as Array>;\n } else return [];\n }\n\n /**\n *获取关联表格数据\n */\n get relatedPlanTableData(): Array> {\n const result = new Array>();\n\n this.relatedPlanList.forEach((item, index) => {\n const rowData: Record = {};\n rowData['name'] = item.name;\n rowData['key'] = index;\n rowData['id'] = item.id;\n item.data.data.forEach((dataItem) => {\n if (typeof dataItem.optimizedSystem === 'number') {\n rowData[dataItem.term] = dataItem.optimizedSystem.toFixed(2);\n } else {\n rowData[dataItem.term] = dataItem.optimizedSystem;\n }\n });\n result.push(rowData);\n });\n return result;\n }\n\n /**\n *获取表格数据\n */\n get tableData(): Array> {\n const result = new Array>();\n const headerDesc = this.planList[0]?.data.headerDesc;\n if (headerDesc) {\n const tableColumns: Array> = headerDesc.map((column) => ({\n dataIndex: column.key,\n key: column.key,\n title: column.hearderName,\n align: 'center',\n }));\n tableColumns.push({\n dataIndex: '',\n title: '操作',\n width: 120,\n key: 'action',\n scopedSlots: { customRender: 'action' },\n align: 'center',\n fixed: 'right',\n });\n this.tableColumns = tableColumns;\n }\n this.planList.forEach((item, index) => {\n item.data.data.forEach((dataItem) => {\n const rowData: Record = {};\n rowData['name'] = item.name;\n rowData['key'] = index;\n rowData['id'] = item.id;\n for (const key in dataItem) {\n if (!isNaN(dataItem[key])) {\n rowData[key] = dataItem[key].toFixed(2);\n continue;\n }\n rowData[key] = dataItem[key];\n }\n result.push(rowData);\n });\n });\n if (this.relatedPlanList && this.relatedPlanList.length > 0) {\n const contrastivePlan = { ...this.relatedPlanTableData[this.contrastivePlanIndex] };\n contrastivePlan.key = -1;\n result.unshift(contrastivePlan);\n }\n return result;\n }\n /**\n *停止计算\n */\n async stopCalculate(): Promise {\n if (this.disabledFunction) {\n return;\n }\n await Api.removeOptimizationTask({ taskid: this.taskId, stopFlag: 1 });\n await this.loadLastSimulationTask();\n }\n\n /**\n *删除任务\n */\n async deleteTask(): Promise {\n if (this.disabledFunction) {\n return;\n }\n this.$store.commit('setCurrentPlanId', 1);\n await Api.removeOptimizationTask({ taskid: this.taskId, stopFlag: 2 });\n await this.loadLastSimulationTask();\n }\n\n /**\n * @author guan\n * @description 开始计算获取数据\n * @return void\n */\n startCalculate(): void {\n if (this.disabledFunction) {\n return;\n }\n let params: Record = {};\n params['OptimizationMode'] = this.modeCode;\n params['ProjectPeriod'] = '20';\n const param: {\n [key: string]: string | number;\n } = {\n simuid: getQueryString()['simu_id'],\n optPara: JSON.stringify(params),\n };\n Api.runOptimization(param)\n .then(() => {\n // if (!(data as Record).error) {\n // MessageBus.Notification('success', { description: (data as Record).message as string, message: '提示' });\n // } else {\n // MessageBus.Notification('error', { description: (data as Record).message as string, message: '提示', duration: 10 });\n // }\n })\n .then(() => {\n this.loadLastSimulationTask().catch((e) => e);\n })\n .catch((e) => e);\n }\n /** 当前选择浏览的方案,default 为1 */\n plan = 1;\n /**\n * @author guan\n * @description 加载算例数据\n * @return New Promise\n */\n async loadLastSimulationTask(): Promise {\n const simuid = getQueryString()['simu_id'];\n /** 获取最后一次算例的id,以及更新状态量 */\n await Api.getLastSimulationTask({ simuid: simuid })\n .then((res) => {\n switch (res.error) {\n case 0: {\n if (res.data != null) {\n this.taskId = res.data.task_id;\n this.modeCode = res.data.optimizationpara['OptimizationMode'] || 0;\n this.simulation.isRunning = res.data.status !== 'stop';\n }\n return res;\n }\n case -1: {\n // MessageBus.Notification('error', { description: '未开始运行', message: '提示' });\n this.simulation.isRunning = false;\n return res;\n }\n default: {\n // MessageBus.Notification('error', { description: '未知错误,请联系管理员', message: '' });\n this.simulation.isRunning = false;\n return res;\n }\n }\n })\n .catch((e) => e);\n await Api.getSimuLog({ simuid: simuid, taskid: this.taskId })\n .then((data) => {\n this.simulation.progress = Number((data.progress.data || 0).toFixed(2));\n const log = data.msg.map((x) => {\n return {\n id: x.id,\n cmd: x.cmd,\n addtime: x.addtime,\n createdate: dateParse('yyyy-mm-dd hh:MM:ss', x.createdate),\n data: x.data,\n };\n });\n this.logInfo = log;\n const runEnd = log.find((value) => value.data === 'run ends');\n if (runEnd) {\n this.simulation.isRunning = false;\n }\n if (this.simulation.progress === 100) {\n this.simulation.isRunning = false;\n }\n\n data.msg.forEach((item) => {\n if (item['cmd'] === 'error') {\n // MessageBus.Notification('error', { description: item['data'], message: '运算时发生错误', duration: 10000 });\n this.simulation.isRunning = false;\n }\n });\n /** 判断当前处于停止状态 */\n this.getSimulationResult();\n if (this.simulation.isRunning) {\n const runTime = new run_time();\n /** 循环获取数据 */\n runTime._setTimeout(() => {\n if (this.simulation.isRunning) {\n this.loadLastSimulationTask().catch((e) => e);\n }\n }, 10000);\n }\n })\n .catch((e) => e);\n }\n\n /**\n * @author guan\n * @description 获取算例列表\n * @return void\n */\n getSimulationResult(): void {\n const id = getQueryString()['simu_id'] as unknown as number;\n const taskId = this.taskId;\n Api.getOptimizationResult({ resultType: 0, simuid: id, taskid: taskId })\n .then((res) => {\n this.planList = res.data;\n if (this.planList.length === 0) {\n this.$store.commit('setCurrentPlanId', 1);\n }\n })\n .catch((e) => e);\n }\n /**\n *\n */\n async getRelatedPlanList(): Promise {\n const id = getQueryString()['simu_id'] as unknown as number;\n const responseData = await Api.getRelatedOptimizationResult({ resultType: 0, simuid: id });\n this.relatedPlanList = responseData.data;\n if (responseData.data && responseData.data.length > 0) {\n const taskData = await Api.getLastSimulationTask({ simuid: responseData.simu });\n if (taskData.data) {\n this.relatedTaskId = taskData.data.task_id;\n }\n }\n }\n\n /** 选择方案的类型 */\n modeCode = 0;\n /**\n * @author guan\n * @description 加载最后的算例\n * @return void\n */\n mounted(): void {\n if (window.innerWidth < 1400) {\n this.tableColumns[0].width = 150;\n }\n this.loadLastSimulationTask().catch((e) => e);\n this.disabledFunction = ieslabDisableRules;\n }\n /**\n * @author guan\n * @description 选择对应的计算方案\n * @return void\n * @param e 当前选择的modeCode\n */\n onChange(e: { title: string; type: number; desc: string }): void {\n if (this.modeCode === e.type) {\n MessageBus.Message('warning', '至少要选择一个优化目标!');\n } else this.modeCode = e.type;\n }\n /** 预设颜色 */\n readonly colorList = ['#0497f8', '#49269a', '#20a84e', '#c1a621', '#000', '#0497f8', '#49269a', '#20a84e', '#0497f8', '#49269a'];\n /** 切换当前页面的变量 */\n active = '方案列表';\n\n /**\n * @author guan\n * @description 初始化详细信息页面,添加从后台获取优化结果数据的方法,并将数据加载到前端页面中\n * @return void\n */\n initDetail(planId: number, taskId: string): void {\n this.informationTaskId = taskId;\n this.plan = planId;\n this.active = '详细信息';\n }\n /**\n * 获取参数列表\n */\n async getDeviceParameterList(): Promise {\n /** 映射表 */\n this.loadingDeviceParameterList = true;\n\n const planDataList = this.planList.map((x) => {\n return Api.getOptimizationResult({ resultType: 1, simuid: getQueryString()['simu_id'], taskid: this.taskId, planId: x.id });\n });\n const data = await Promise.all(planDataList);\n if (!data) {\n void this.$message.error('获取数据错误');\n return;\n }\n let columns = [] as DeviceParameterColumns[];\n let DeviceParameterList = [] as Array>;\n data.forEach((dataItem, index) => {\n const planData = dataItem.data;\n columns.push({\n title: `方案${index + 1}`,\n children: [\n {\n title: '生产厂商',\n dataIndex: `compManufacturer_${index}`,\n key: `compManufacturer_${index}`,\n width: 100,\n align: 'center',\n },\n {\n title: '设备型号',\n dataIndex: `compModel_${index}`,\n key: `compModel_${index}`,\n width: 100,\n align: 'center',\n },\n {\n title: '设备台数',\n dataIndex: `deviceNum_${index}`,\n key: `deviceNum_${index}`,\n width: 100,\n align: 'center',\n },\n {\n title: '设备投资费用(万元)',\n dataIndex: `devicePurchaseCost_${index}`,\n key: `devicePurchaseCost_${index}`,\n width: 100,\n align: 'center',\n },\n ],\n });\n const DeviceData = planData.map((x) => {\n return {\n compName: x.data.data['compName'],\n [`compManufacturer_${index}`]: x.data.data['compManufacturer'],\n [`compModel_${index}`]: x.data.data['compModel'],\n [`deviceNum_${index}`]: x.data.data['deviceNum'],\n [`devicePurchaseCost_${index}`]: x.data.data['devicePurchaseCost'],\n };\n });\n if (DeviceParameterList.length === 0) {\n DeviceParameterList = DeviceData;\n } else\n DeviceParameterList = DeviceParameterList.map((x, key) => {\n return { ...x, ...DeviceData[key], key: key };\n });\n });\n columns.unshift({\n title: 'Unique Name',\n dataIndex: 'compName',\n key: `compName`,\n width: 150,\n align: 'center',\n });\n this.deviceParameterList.detailColumn = columns;\n\n DeviceParameterList.splice(\n DeviceParameterList.findIndex((x) => x['compName'] === 'systemData'),\n 1,\n );\n this.deviceParameterList.data = DeviceParameterList;\n this.tableType = 'device';\n this.loadingDeviceParameterList = false;\n }\n\n /**\n *导出项目\n */\n async exportProject(): Promise {\n const exportProjectTool = new ProjectExportTool();\n await exportProjectTool.exportToFiles();\n }\n\n /**\n * 空函数\n */\n emptyFunction(): void {\n console.log(1111);\n return;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./prioritization-scheme.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./prioritization-scheme.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./prioritization-scheme.vue?vue&type=template&id=ee2f34cc&scoped=true&\"\nimport script from \"./prioritization-scheme.vue?vue&type=script&lang=ts&\"\nexport * from \"./prioritization-scheme.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./prioritization-scheme.vue?vue&type=style&index=0&id=ee2f34cc&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ee2f34cc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"digitalTwins\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"dataTitle baseColor\",staticStyle:{\"margin-bottom\":\"20px\"}},[_c('div',{staticStyle:{\"height\":\"100%\",\"width\":\"400px\",\"line-height\":\"56px\"}},[_c('a-divider',{staticStyle:{\"width\":\"5px\",\"height\":\"17px\",\"background\":\"#245be5 !important\"},attrs:{\"type\":\"vertical\"}}),_c('span',{staticStyle:{\"margin-left\":\"5px\",\"font-size\":\"16px\"}},[_vm._v(_vm._s(_vm.$route.meta.title))])],1),_c('div',{staticStyle:{\"height\":\"100%\",\"width\":\"420px\",\"line-height\":\"56px\"}},[_c('span',[_vm._v(\"服务器地址:\")]),_c('a-input',{staticStyle:{\"width\":\"180px\",\"margin-left\":\"10px\"},attrs:{\"disabled\":\"\"}}),_c('a-button',{staticStyle:{\"margin-left\":\"15px\"},attrs:{\"disabled\":\"\",\"icon\":\"upload\"}},[_vm._v(\"敬请期待\")])],1)]),_c('div',{staticClass:\"cloud_pss_markdown_theme_blubook\",staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\",\"width\":\"100%\",\"overflow-y\":\"auto\"}},[_c('img',{staticStyle:{\"width\":\"90%\",\"height\":\"calc(100vh - 260px)\"},attrs:{\"src\":_vm.$store.getters.getTheme === 'light' ? require('../../assets/svg/数字孪生.png') : require('../../assets/svg/数字孪生dark.png')}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport '@/component/evaluate/css/card.less';\n/**\n *\n */\n@Component({\n components: {},\n})\nexport default class DigitalTwins extends Vue {}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=fb473f38&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('finance-bar',{attrs:{\"flag\":_vm.flag,\"related-plan-list\":_vm.relatedPlanList},on:{\"compare\":function () {\n _vm.flag = !_vm.flag;\n },\"start-calculate\":_vm.startCalculate,\"export-to-file\":_vm.exportToFile,\"change\":_vm.getRelatedCalculateData}}),_c('finance-container',{attrs:{\"data\":_vm.financialAppraisalData,\"related-data\":_vm.relatedData,\"flag\":_vm.flag}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"EvaluationTitle baseColor\"},[_c('div',{staticStyle:{\"height\":\"56px\",\"line-height\":\"56px\"}},[_c('a-divider',{staticStyle:{\"width\":\"5px\",\"height\":\"17px\",\"background\":\"#245be5 !important\"},attrs:{\"type\":\"vertical\"}}),_c('strong',{staticStyle:{\"margin-left\":\"5px\",\"font-size\":\"16px\"}},[_vm._v(_vm._s(_vm.$route.meta.title))])],1),_c('div',[_c('a-button',{staticStyle:{\"margin-right\":\"15px\"},attrs:{\"type\":\"primary\"},on:{\"click\":_vm.exportToFile}},[_vm._v(\"保存到文件\")]),_c('a-button',{staticStyle:{\"margin-right\":\"15px\"},attrs:{\"disabled\":_vm.disabledFunction,\"type\":_vm.disabledFunction ? '' : 'primary'},on:{\"click\":_vm.startCalculate}},[_vm._v(\"开始计算\")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Emit, Prop, Vue } from 'vue-property-decorator';\nimport { PlanList } from '@/prioritization/interface/interface';\n\nimport { profile } from '@/Utils/profile';\nconst ieslabDisableRules = profile.get('ieslabDisableRules') === 'true';\n\n/**\n * @author guan\n * @description\n */\n@Component({\n components: {},\n})\nexport default class FinanceBar extends Vue {\n /** disabledFunction */\n disabledFunction = ieslabDisableRules;\n /** */\n @Prop(Boolean)\n flag!: boolean;\n\n /** 相对计划列表 */\n @Prop({ default: () => [] })\n relatedPlanList!: PlanList[];\n\n /**\n *\n */\n @Emit('export-to-file')\n exportToFile(): void {\n return;\n }\n\n /**\n *\n */\n @Emit('start-calculate')\n startCalculate(): void {\n return;\n }\n\n /**\n * @author guan\n * @description 点击对比方案\n * @return void\n */\n compare(): void {\n this.$emit('compare');\n }\n\n /**\n * 初始化\n */\n mounted(): void {\n this.disabledFunction = ieslabDisableRules;\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance-bar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance-bar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./finance-bar.vue?vue&type=template&id=49c8410e&scoped=true&\"\nimport script from \"./finance-bar.vue?vue&type=script&lang=ts&\"\nexport * from \"./finance-bar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./finance-bar.vue?vue&type=style&index=0&id=49c8410e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"49c8410e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a-row',[_c('a-col',{attrs:{\"xs\":24,\"sm\":24,\"md\":24,\"lg\":_vm.flag ? 12 : 24,\"xl\":_vm.flag ? 12 : 24}},[_c('a-row',[_c('a-col',{attrs:{\"span\":\"24\"}},[_c('a-row',_vm._l((_vm.banners(_vm.data)),function(banner,index){return _c('a-col',{key:index,attrs:{\"xs\":24,\"sm\":24,\"md\":24,\"lg\":8,\"xl\":8}},[_c('finance-banner',{attrs:{\"bannerPrice\":banner.bannerPrice,\"bannerTitle\":banner.bannerTitle,\"bannerColor\":banner.bannerColor,\"contextTitle\":banner.contextTitle,\"unit\":banner.unit,\"contextPrice\":banner.contextPrice}})],1)}),1)],1),_c('a-col',{attrs:{\"span\":\"24\"}},[_c('a-row',_vm._l((_vm.vsCards(_vm.data)),function(card,index){return _c('a-col',{key:index,staticStyle:{\"padding\":\"8px\"},attrs:{\"xs\":24,\"sm\":24,\"md\":24,\"lg\":_vm.flag ? 24 : 8,\"xl\":_vm.flag ? 24 : 8}},[_c('finance-vs-card',{attrs:{\"title\":card.title,\"preValue\":card.preValue,\"preDesc\":card.preDesc,\"postValue\":card.postValue,\"postDesc\":card.postDesc,\"flag\":_vm.flag}})],1)}),1)],1)],1)],1),_c('a-col',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.flag),expression:\"flag\"}],attrs:{\"xs\":24,\"sm\":24,\"md\":24,\"lg\":_vm.flag ? 12 : 24,\"xl\":_vm.flag ? 12 : 24}},[_c('a-row',[_c('a-col',{attrs:{\"span\":\"24\"}},[_c('a-row',_vm._l((_vm.banners(_vm.relatedData)),function(banner,index){return _c('a-col',{key:index,attrs:{\"xs\":24,\"sm\":24,\"md\":24,\"lg\":8,\"xl\":8}},[_c('finance-banner',{attrs:{\"bannerPrice\":banner.bannerPrice,\"bannerTitle\":banner.bannerTitle,\"bannerColor\":banner.bannerColor,\"contextTitle\":banner.contextTitle,\"unit\":banner.unit,\"contextPrice\":banner.contextPrice}})],1)}),1)],1),_c('a-col',{attrs:{\"span\":\"24\"}},[_c('a-row',_vm._l((_vm.vsCards(_vm.relatedData)),function(card,index){return _c('a-col',{key:index,staticStyle:{\"padding\":\"8px\"},attrs:{\"xs\":24,\"sm\":24,\"md\":24,\"lg\":_vm.flag ? 24 : 8,\"xl\":_vm.flag ? 24 : 8}},[_c('finance-vs-card',{attrs:{\"title\":card.title,\"preValue\":card.preValue,\"preDesc\":card.preDesc,\"postValue\":card.postValue,\"postDesc\":card.postDesc,\"flag\":_vm.flag}})],1)}),1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"padding\":\"8px\"}},[_c('a-card',{style:({ padding: '5%', color: '#fff', 'text-align': 'center', 'background-color': '', 'background-image': _vm.bannerColor })},[_c('div',{staticStyle:{\"height\":\"50px\",\"overflow\":\"hidden\"}},[_c('span',{staticStyle:{\"font-size\":\"18px\"}},[_vm._v(_vm._s(_vm.bannerTitle))])]),_c('div',[_c('span',{staticStyle:{\"font-size\":\"24px\"}},[_vm._v(_vm._s(_vm.bannerPrice))])])]),_c('a-card',{staticStyle:{\"padding\":\"0\",\"margin-top\":\"8px\",\"height\":\"145px\"}},[_c('a-row',[_c('a-col',{staticStyle:{\"text-align\":\"center\"},attrs:{\"span\":\"16\"}},[_c('p',[_vm._v(_vm._s(_vm.contextTitle))]),_c('p',[_vm._v(_vm._s(_vm.unit))]),_c('p',[_vm._v(_vm._s(_vm.contextPrice))])]),_c('a-col',{staticStyle:{\"font-size\":\"48px\"},attrs:{\"span\":\"8\"}},[_c('a-icon',{attrs:{\"type\":\"transaction\"}})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nexport default Vue.extend({\n name: 'FinanceBanner',\n props: {\n bannerColor: {\n default: '#fff',\n required: false,\n type: String,\n },\n bannerTitle: {\n default: '未命名',\n required: false,\n type: String,\n },\n bannerPrice: {\n default: '0',\n required: false,\n },\n contextTitle: {\n default: '',\n required: false,\n type: String,\n },\n unit: {\n default: '',\n required: false,\n type: String,\n },\n contextPrice: {\n default: '',\n required: false,\n },\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance-banner.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance-banner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./finance-banner.vue?vue&type=template&id=4e261220&\"\nimport script from \"./finance-banner.vue?vue&type=script&lang=ts&\"\nexport * from \"./finance-banner.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a-card',{staticClass:\"finance_vs_card\"},[_c('a-row',[_c('a-col',{staticStyle:{\"font-weight\":\"bold\",\"font-size\":\"16px\",\"text-align\":\"center\"}},[_vm._v(\" \"+_vm._s(_vm.title))])],1),_c('a-row',{staticStyle:{\"text-align\":\"center\"},style:({ display: _vm.flag ? 'flex' : '', alignItems: _vm.flag ? 'center' : '' })},[_c('a-col',{staticStyle:{\"margin\":\"0\"},attrs:{\"xs\":8,\"sm\":8,\"md\":8,\"lg\":_vm.flag ? 8 : 24,\"xl\":_vm.flag ? 8 : 24}},[_c('a-row',{staticStyle:{\"align-items\":\"center\",\"display\":\"flex\"}},[_c('a-col',{attrs:{\"span\":\"12\"}},[_c('img',{staticStyle:{\"width\":\"40px\"},attrs:{\"src\":require(\"@/assets/sample/所得税前.svg\"),\"alt\":\"\"}}),_c('div',{staticStyle:{\"margin-top\":\"15px\",\"font-size\":\"15px\"}},[_c('span',[_vm._v(_vm._s(_vm.preDesc))])])]),_c('a-col',{staticStyle:{\"color\":\"rgb(94, 122, 255)\"},attrs:{\"span\":\"12\"}},[_c('div',{staticClass:\"iconfont icon-caozuojiemiantubiao---_yuan\",staticStyle:{\"font-size\":\"100px\",\"position\":\"relative\"}},[_c('span',{staticStyle:{\"position\":\"absolute\",\"left\":\"0\",\"right\":\"0\",\"top\":\"0\",\"bottom\":\"0\",\"margin\":\"auto\",\"height\":\"26px\",\"line-height\":\"26px\",\"font-size\":\"20px\"}},[_vm._v(_vm._s(_vm.preValue))])])])],1)],1),_c('a-col',{staticStyle:{\"margin\":\"0\"},attrs:{\"xs\":8,\"sm\":8,\"md\":8,\"lg\":_vm.flag ? 8 : 24,\"xl\":_vm.flag ? 8 : 24}},[_c('img',{staticStyle:{\"width\":\"40px\"},style:({ transform: _vm.flag ? '' : 'rotate(90deg)' }),attrs:{\"src\":require(\"@/assets/sample/箭头.svg\"),\"alt\":\"\"}})]),_c('a-col',{staticStyle:{\"margin\":\"0\"},attrs:{\"xs\":8,\"sm\":8,\"md\":8,\"lg\":_vm.flag ? 8 : 24,\"xl\":_vm.flag ? 8 : 24}},[_c('a-row',{staticStyle:{\"align-items\":\"center\",\"display\":\"flex\"}},[_c('a-col',{attrs:{\"span\":\"12\"}},[_c('img',{staticStyle:{\"width\":\"40px\"},attrs:{\"src\":require(\"@/assets/sample/所得税后.svg\"),\"alt\":\"\"}}),_c('div',{staticStyle:{\"margin-top\":\"15px\",\"font-size\":\"15px\"}},[_c('span',[_vm._v(_vm._s(_vm.postDesc))])])]),_c('a-col',{staticStyle:{\"color\":\"rgb(94, 122, 255)\"},attrs:{\"span\":\"12\"}},[_c('div',{staticClass:\"iconfont icon-caozuojiemiantubiao---_yuan\",staticStyle:{\"font-size\":\"100px\",\"position\":\"relative\"}},[_c('span',{staticStyle:{\"position\":\"absolute\",\"left\":\"0\",\"right\":\"0\",\"top\":\"0\",\"bottom\":\"0\",\"margin\":\"auto\",\"height\":\"26px\",\"line-height\":\"26px\",\"font-size\":\"20px\"}},[_vm._v(_vm._s(_vm.postValue))])])])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nexport default Vue.extend({\n name: 'FinanceVsCard',\n props: {\n flag: {\n default: false,\n required: false,\n type: Boolean,\n },\n title: {\n default: '未命名卡片',\n required: false,\n type: String,\n },\n preValue: {\n default: '0',\n required: false,\n },\n preDesc: {\n default: '没有描述',\n required: false,\n type: String,\n },\n postValue: {\n default: '0',\n required: false,\n },\n postDesc: {\n default: '没有描述',\n required: false,\n type: String,\n },\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance-vs-card.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance-vs-card.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./finance-vs-card.vue?vue&type=template&id=42c68165&scoped=true&\"\nimport script from \"./finance-vs-card.vue?vue&type=script&lang=ts&\"\nexport * from \"./finance-vs-card.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./finance-vs-card.vue?vue&type=style&index=0&id=42c68165&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"42c68165\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport FinanceBanner from './finance-banner.vue';\nimport FinanceVsCard from './finance-vs-card.vue';\nimport { Component, Vue, Prop } from 'vue-property-decorator';\n\n/**\n *\n */\ninterface DataStructure {\n /**\n *\n */\n 项目动态总投资: number;\n /**\n *\n */\n 年销售收入: number;\n /**\n *\n */\n 平均年总成本费用: number;\n /**\n *\n */\n 总投资收益率: number;\n /**\n *\n */\n 资本金利润率: number;\n /**\n *\n */\n 资本金内部收益率: number;\n /**\n *\n */\n 所得税前投资内部收益率: number;\n /**\n *\n */\n 所得税前投资财务净现值: number;\n /**\n *\n */\n 所得税前投资回报期: number;\n /**\n *\n */\n 所得税后投资内部收益率: number;\n /**\n *\n */\n 所得税后投资财务净现值: number;\n /**\n *\n */\n 所得税后投资回报期: number;\n}\n\n/**\n *\n */\n@Component({ components: { 'finance-banner': FinanceBanner, 'finance-vs-card': FinanceVsCard } })\nexport default class FinanceContainer extends Vue {\n /** */\n @Prop({ type: Boolean, default: false, required: false })\n flag!: boolean;\n\n /** */\n @Prop({ default: {} })\n data!: DataStructure;\n\n /** */\n @Prop({ default: {} })\n relatedData!: DataStructure;\n\n /** */\n banners(data: DataStructure): Array<{\n bannerColor: string;\n bannerTitle: string;\n bannerPrice: string | number;\n contextTitle: string;\n unit: string;\n contextPrice: string | number;\n }> {\n return [\n {\n bannerColor: 'linear-gradient(135deg, #68c9f6, #566df3)',\n bannerTitle: '工程动态投资(万元)',\n bannerPrice: data.项目动态总投资.toFixed(2),\n contextTitle: '年销售收入',\n unit: '(万元)',\n contextPrice: data.年销售收入.toFixed(2),\n },\n {\n bannerColor: 'linear-gradient(135deg, #78edd7, #338cc0)',\n bannerTitle: '总投资收益率(%)',\n bannerPrice: data.总投资收益率.toFixed(2),\n contextTitle: '平均年总成本费用',\n unit: '(万元)',\n contextPrice: data.平均年总成本费用.toFixed(2),\n },\n {\n bannerColor: 'linear-gradient(135deg, #eed472, #e7ae48)',\n bannerTitle: '资本金利润率(%)',\n bannerPrice: data.资本金利润率.toFixed(2),\n contextTitle: '资本金内部收益率',\n unit: '(%)',\n contextPrice: data.资本金内部收益率.toFixed(2),\n },\n ];\n }\n\n /** */\n vsCards(data: DataStructure): Array<{\n title: string;\n preValue: string | number;\n preDesc: string;\n postValue: string | number;\n postDesc: string;\n }> {\n return [\n {\n title: '项目投资内部收益率(%)',\n preValue: data.所得税前投资内部收益率.toFixed(2),\n preDesc: '所得税前',\n postValue: data.所得税后投资内部收益率.toFixed(2),\n postDesc: '所得税后',\n },\n {\n title: '净现值(万元)',\n preValue: data.所得税前投资财务净现值.toFixed(2),\n preDesc: '所得税前',\n postValue: data.所得税后投资财务净现值.toFixed(2),\n postDesc: '所得税后',\n },\n {\n title: '投资回报期(年)',\n preValue: data.所得税前投资回报期.toFixed(2),\n preDesc: '所得税前',\n postValue: data.所得税后投资回报期.toFixed(2),\n postDesc: '所得税后',\n },\n ];\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance-container.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance-container.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./finance-container.vue?vue&type=template&id=1da55612&scoped=true&\"\nimport script from \"./finance-container.vue?vue&type=script&lang=ts&\"\nexport * from \"./finance-container.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./finance-container.vue?vue&type=style&index=0&id=1da55612&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1da55612\",\n null\n \n)\n\nexport default component.exports","/**\n * 延时\n * @param time\n */\nexport function delayedPromise(time: number): Promise {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve();\n }, time);\n });\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport FinanceBar from '../../components/finance-bar.vue';\nimport FinanceContainer from '../../components/finance-container.vue';\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport api_simulaion from '@/Api/api_simulaion';\nimport { getQueryString } from '@/Api/api_data';\nimport Api from '@/Api/api_simulaion';\nimport { PlanList } from '@/prioritization/interface/interface';\nimport MessageBus from '@/Utils/message/message-bus';\nimport { delayedPromise } from '@/Utils/promise-utils';\nimport { DataLoad } from '@/Utils/decorator/data-load';\nimport Tools from '@/component/template/tools/tools';\n\n/**\n *\n */\ninterface DataStructure {\n /**\n *\n */\n 项目动态总投资: number;\n /**\n *\n */\n 年销售收入: number;\n /**\n *\n */\n 平均年总成本费用: number;\n /**\n *\n */\n 总投资收益率: number;\n /**\n *\n */\n 资本金利润率: number;\n /**\n *\n */\n 资本金内部收益率: number;\n /**\n *\n */\n 所得税前投资内部收益率: number;\n /**\n *\n */\n 所得税前投资财务净现值: number;\n /**\n *\n */\n 所得税前投资回报期: number;\n /**\n *\n */\n 所得税后投资内部收益率: number;\n /**\n *\n */\n 所得税后投资财务净现值: number;\n /**\n *\n */\n 所得税后投资回报期: number;\n}\n\nconst defaultFinancialAppraisalData = {\n 项目动态总投资: 0,\n 年销售收入: 0,\n 平均年总成本费用: 0,\n 总投资收益率: 0,\n 资本金利润率: 0,\n 资本金内部收益率: 0,\n 所得税前投资内部收益率: 0,\n 所得税前投资财务净现值: 0,\n 所得税前投资回报期: 0,\n 所得税后投资内部收益率: 0,\n 所得税后投资财务净现值: 0,\n 所得税后投资回报期: 0,\n};\n\n/**\n * 财务评价结果\n */\n@Component({ components: { 'finance-bar': FinanceBar, 'finance-container': FinanceContainer } })\nexport default class Finance extends Vue {\n /** */\n flag = false;\n\n /** */\n relatedPlanList: PlanList[] = [];\n\n /** 关联项目simuId */\n relatedSimuId = -1;\n\n /** */\n financialAppraisalData: DataStructure = JSON.parse(JSON.stringify(defaultFinancialAppraisalData));\n\n /** */\n relatedData: DataStructure = JSON.parse(JSON.stringify(defaultFinancialAppraisalData));\n\n /** */\n signTime = 0;\n\n /**\n *获取相对计划列表\n */\n async getRelatedPlanList(): Promise {\n const id = getQueryString()['simu_id'] as unknown as number;\n return Api.getRelatedOptimizationResult({ resultType: 0, simuid: id }).then((data) => {\n this.relatedPlanList = (<{ data: PlanList[]; simu: number }>data).data;\n this.relatedSimuId = (<{ data: PlanList[]; simu: number }>data).simu;\n });\n }\n\n /**\n *获取关联项目计算结果数据\n */\n async getRelatedCalculateData(planId?: number): Promise {\n if (planId == null) {\n planId = 1;\n }\n if (this.relatedSimuId == null || this.relatedSimuId === -1) {\n return;\n }\n if (this.relatedSimuId !== -1) {\n const results = (await api_simulaion.getOverviewResult({ simu_id: this.relatedSimuId, planId: planId })).results;\n if (results[0] != null) {\n this.relatedData = results[results.length - 1].data;\n } else {\n this.relatedData = JSON.parse(JSON.stringify(defaultFinancialAppraisalData));\n MessageBus.Notification('warning', {\n description: '当前对比方案没有数据,可能未进行过计算,请返回该方案进行计算!',\n message: '提示',\n key: '财务评价结果概览弹框',\n });\n }\n }\n }\n\n /**\n *\n */\n mounted(): void {\n // 取消router层的margin样式\n const el = this.$el as any; // eslint-disable-line\n el.style.margin = '0px 12px';\n\n this.getCalculateResult().catch((e) => {\n throw new Error(e);\n });\n this.getRelatedPlanList()\n .then(() => this.getRelatedCalculateData())\n .catch((e) => {\n throw new Error(e);\n });\n }\n\n /**\n *\n */\n async exportToFile(): Promise {\n const excelData = new Array();\n excelData.push(new Array());\n excelData.push(new Array());\n Object.keys(this.financialAppraisalData).forEach((key, index) => {\n excelData[0][index] = key;\n excelData[1][index] = this.financialAppraisalData[key];\n });\n await Tools.exportXlsxFile(String(this.$route.meta?.title), [{ data: excelData }]);\n }\n\n /**\n *开始计算\n */\n async startCalculate(): Promise {\n try {\n this.$notification.success({\n message: '正在计算',\n key: this.$options.name,\n duration: 0,\n description: '',\n //$createElement返回一个vNode,需要在vue.config.js里开启runtimeCompiler才可以使用,应用将会增加10kb\n icon: this.$createElement({ template: '' }),\n });\n await api_simulaion.saveDataToclickhouse({ simuid: this.$route.query.simu_id, planId: this.$store.getters.getCurrentPlanId });\n await this.periodicGetCalculateResult();\n this.$notification.success({ message: '计算完成', key: this.$options.name, duration: 1, description: '' });\n } catch (e) {\n await this.$message.error({ content: '计算失败,错误为:' + String(e), key: '财务评价', duration: 2.5 });\n throw e;\n }\n }\n\n /**\n *\n */\n async getOverviewResult(): Promise {\n const results = (\n await api_simulaion.getOverviewResult({\n simu_id: this.$route.query.simu_id,\n planId: this.$store.getters.getCurrentPlanId ?? 0,\n time: this.signTime,\n })\n ).results;\n if (results[0] != null) {\n this.signTime = results[0].time;\n this.financialAppraisalData = results[0].data;\n return true;\n } else {\n this.financialAppraisalData = JSON.parse(JSON.stringify(defaultFinancialAppraisalData));\n return false;\n }\n }\n\n /**\n *循环获取结果\n */\n async periodicGetCalculateResult(): Promise {\n const isGotData = await this.getOverviewResult();\n if (!isGotData) {\n await delayedPromise(3000);\n await this.periodicGetCalculateResult();\n }\n }\n\n /**\n *获取当前planId\n */\n get currentPlanId(): number {\n return this.$store.getters.getCurrentPlanId;\n }\n /**\n *单次获取结果\n */\n @Watch('currentPlanId')\n @DataLoad()\n async getCalculateResult(): Promise {\n this.signTime = 0;\n await this.getOverviewResult();\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./finance.vue?vue&type=template&id=45e5388d&\"\nimport script from \"./finance.vue?vue&type=script&lang=ts&\"\nexport * from \"./finance.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"schemeEvaluation\"}},[_c('div',{staticClass:\"EvaluationTitle baseColor\"},[_c('div',{staticStyle:{\"height\":\"56px\",\"line-height\":\"56px\"}},[_c('a-divider',{staticStyle:{\"width\":\"5px\",\"height\":\"17px\",\"background\":\"#245be5 !important\"},attrs:{\"type\":\"vertical\"}}),_c('strong',{staticStyle:{\"margin-left\":\"5px\",\"font-size\":\"16px\"}},[_vm._v(_vm._s(_vm.title))])],1)]),_c('a-row',{staticStyle:{\"padding\":\"0 3px\"},attrs:{\"gutter\":14}},_vm._l((Object.keys(_vm.paramsMapList)),function(param,index){return _c('a-col',{key:index,staticStyle:{\"margin\":\"7px 0\"},attrs:{\"xs\":24,\"sm\":24,\"md\":24,\"lg\":12,\"xl\":12,\"xxl\":8}},[_c('ParamCard',{attrs:{\"cardMessage\":{\n value: _vm.cardMessage[_vm.paramsMapList[param].prop],\n icon: 'iconpinggu1',\n content: param,\n color: _vm.colorList[index % 12],\n options: _vm.paramsMapList[param].options,\n rate: _vm.paramsMapList[param].rate,\n }},on:{\"updateData\":_vm.updateData}})],1)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","const ParamCardList = {\n projectperiod: {\n initialTerm: '2019',\n operate: '20',\n build: '2',\n },\n capitalsource: {\n capitalRatio: '50',\n borrowingRate: '4.9',\n loanTerm: '15',\n periodGrace: '2',\n predeterminedNumber: '4',\n repayment: '等额本金',\n },\n assetformation: {\n fixedAssetsRatio: '95',\n residualRrate: '5',\n depreciationPeriod: '15',\n reimbursementPeriod: '5',\n },\n productioncost: {\n capacity: '4',\n annualSalary: '8',\n welfareFactor: '0',\n insuranceRate: '0.25',\n materialsExpenses: '5.0',\n otherExpenses: '1.0',\n },\n workingcapitalandfinancialexpenses: {\n workingCapitalLoanRatio: '70',\n interestRateAndWorkingCapital: '4',\n annualAPCirculationTimes: '12',\n annualStockCirculationTimes: '12',\n annualCashCirculationTimes: '12',\n annualARCirculationTimes: '12',\n },\n projectcalculation: {\n electricityVATRate: '18',\n steamSaleVATRate: '12',\n hotColdVATRate: '12',\n fuelBoughtVATRate: '10',\n materialBoughtVATRate: '17',\n legalAccumulationFundRate: '10',\n aleatoricAccumulationFundRate: '0',\n cityMaintenanceConstructionTaxTate: '5',\n educationFeePlus: '5',\n localEducationPlus: '2',\n corporateIncomeTaxRate: '25',\n basicDiscountRate: '8',\n },\n};\n\nexport default ParamCardList;\n","const paramsMapList = {\n projectcalculation: {\n '售电增值税税率%': { prop: 'electricityVATRate', rate: true },\n '售汽增值税率%': { prop: 'steamSaleVATRate', rate: true },\n '售冷热增值税税率%': { prop: 'hotColdVATRate', rate: true },\n '燃料增值税税率%': { prop: 'fuelBoughtVATRate', rate: true },\n '材料费进项增值税率%': { prop: 'materialBoughtVATRate', rate: true },\n '法定公积金率%': { prop: 'legalAccumulationFundRate', rate: true },\n '任意公积金率%': { prop: 'aleatoricAccumulationFundRate', rate: true },\n '城市维护建设税税率%': { prop: 'cityMaintenanceConstructionTaxTate', rate: true },\n '教育费附加%': { prop: 'educationFeePlus', rate: true },\n '地方教育附加%': { prop: 'localEducationPlus', rate: true },\n '企业所得税税率%': { prop: 'corporateIncomeTaxRate', rate: true },\n '基准折现率%': { prop: 'basicDiscountRate', rate: true },\n },\n projectperiod: { 项目起始年限: { prop: 'initialTerm' }, '项目建设期(年)': { prop: 'build' }, '项目运营期(年)': { prop: 'operate' } },\n assetformation: {\n '固定资产比例(%)': { prop: 'fixedAssetsRatio', rate: true },\n '残值(%)': { prop: 'residualRrate', rate: true },\n 折旧年限: { prop: 'depreciationPeriod' },\n 摊销年限: { prop: 'reimbursementPeriod' },\n },\n capitalsource: {\n '资本金比例(%)': { prop: 'capitalRatio', rate: true },\n '借款年利率(%)': { prop: 'borrowingRate', rate: true },\n 贷款年限: { prop: 'loanTerm' },\n '宽限期(年)': { prop: 'periodGrace' },\n 计息次数: { prop: 'predeterminedNumber' },\n 还款方式: {\n prop: 'repayment',\n options: [\n { name: '等额本金', value: '等额本金' },\n { name: '等额本息', value: '等额本息' },\n ],\n },\n },\n productioncost: {\n '定员(人)': { prop: 'capacity' },\n '工资(万元/(人·年))': { prop: 'annualSalary' },\n '福利系数(%)': { prop: 'welfareFactor', rate: true },\n '保险费率(%)': { prop: 'insuranceRate', rate: true },\n '材料费(万元/年)': { prop: 'materialsExpenses' },\n '其他费用(万元/年)': { prop: 'otherExpenses' },\n },\n workingcapitalandfinancialexpenses: {\n '流动资金贷款比例(%)': { prop: 'workingCapitalLoanRatio', rate: true },\n '短期贷款及流动资金利率(%)': { prop: 'interestRateAndWorkingCapital', rate: true },\n 应收账款年周转次数: { prop: 'annualAPCirculationTimes' },\n 存货年周转次数: { prop: 'annualStockCirculationTimes' },\n 现金年周转次数: { prop: 'annualCashCirculationTimes' },\n 应付账款年周转次数: { prop: 'annualARCirculationTimes' },\n },\n};\nexport default paramsMapList;\n","import { Component, Vue, Watch } from 'vue-property-decorator';\n\nimport { DataLoad } from '@/Utils/decorator/data-load';\nimport MessageBus from '@/Utils/message/message-bus';\nimport { NavigationInformationItem } from '@/component/NavigationInformation/menu-item/navigation-information';\nimport ParamCardList from './param-card-list';\nimport api_data from '@/Api/api_data';\nimport paramsMapList from './params-map-list';\n\n/**\n *\n */\ninterface Type {\n /**\n *\n */\n type: string;\n /**\n *\n */\n params: string;\n}\n/**\n * @author guan\n * @description 基础加载数据父类\n */\n@Component({\n components: {},\n})\nexport default class BaseLoad extends Vue {\n /** 有导航的情况下由子类复写 */\n Message: NavigationInformationItem[] = [];\n /** 加载状态 */\n spinningStatus = true;\n /** 顶部标题 */\n title = '测试';\n /** 当前数据类型,暂时添加type,特殊需求请自行添加 */\n dataType = {} as Type;\n /** 颜色列表 */\n readonly colorList = ['#46edcf', '#9a81ff', '#5983fb', '#ffa14a', '#3ad8db', '#fba38d', '#00bdf4', '#fc8819', '#2860fd', '#9556ff', '#2abbfe', '#ffc849'];\n /**\n * @author guan\n * @description 获取路径信息\n * @return void\n */\n async LoadType(): Promise {\n this.dataType = await this.$route.meta?.params;\n }\n /** 获取到的数据 */\n cardMessage = {} as T;\n /** paramsMapList */\n paramsMapList = {};\n /**\n * @author guan\n * @description 加载对应的映射信息\n * @param type 当前页面获取数据type\n * @return void\n */\n loadParamsMapMessage(type: string): void {\n this.paramsMapList = paramsMapList[type];\n this.title = this.dataType.params;\n }\n\n /**\n * 获得getTaskId\n */\n get taskId(): number {\n return this.$store.getters.getCurrentPlanId || 0;\n }\n\n /**\n *获取当前planId\n */\n get currentPlanId(): number {\n return this.$store.getters.getCurrentPlanId;\n }\n /**\n *单次获取结果\n */\n @Watch('currentPlanId')\n @DataLoad()\n async loadData(): Promise {\n /** 加载效果,自行使用 */\n this.spinningStatus = true;\n try {\n const data = (await api_data.getEvaluationDataByParams({ ...this.dataType, id: this.taskId })).results[0] as T;\n this.spinningStatus = false;\n this.$nextTick(() => {\n if (data) {\n this.cardMessage = data;\n } else {\n this.cardMessage = ParamCardList[this.dataType.type];\n }\n });\n } catch (e) {\n this.cardMessage = {} as T;\n this.spinningStatus = false;\n MessageBus.Notification('error', { description: `${e}`, message: '提示' });\n throw new Error(`未知错误,${e}`);\n }\n }\n /**\n * @author guan\n * @description 值处理请在此处\n * @return void\n * @param item 消息内容\n */\n paramsDeal(): string {\n return '';\n }\n /**\n * @author guan\n * @description 开局加载数据\n * @return void\n */\n mounted(): void {\n this.LoadType.apply(this, [])\n .then(() => {\n this.loadParamsMapMessage(this.dataType.type);\n this.loadData().catch((e) => e);\n })\n .catch((e) => e);\n }\n /**\n * @author guan\n * @description 保存参数,请重写此方法\n * @return void\n */\n async saveData(): Promise {\n try {\n const data = this.cardMessage as T & { id: string | number | undefined };\n if (data.id == null) {\n await api_data.postEvaluationDataByParams({\n ...this.cardMessage,\n type: this.dataType.type,\n simu: this.$route.query.simu_id as string,\n planId: this.$store.getters.getCurrentPlanId,\n });\n await this.loadData();\n } else {\n await api_data.patchEvaluationDataByParams({ ...this.cardMessage, type: this.dataType.type });\n }\n } catch (e) {\n MessageBus.Notification('error', { description: '保存失败', message: '提示' });\n throw new Error(`保存失败,未知错误,${e}`);\n }\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ParamContainer baseColor\"},[_c('div',{staticClass:\"Icon\"},[_c('i',{class:(\"iconfont \" + (_vm.cardMessage.icon || '')),staticStyle:{\"font-size\":\"24px\",\"margin\":\"8px 0\"},style:({ color: _vm.cardMessage.color })})]),_c('div',{staticClass:\"Content\"},[_c('a-row',{staticStyle:{\"font-size\":\"16px\",\"overflow\":\"hidden\",\"font-weight\":\"500\",\"height\":\"24px\",\"line-height\":\"24px\"}},[_vm._v(\" \"+_vm._s(_vm.cardMessage.content || 'xxx')+\" \")]),(!_vm.inputVisible)?_c('a-row',{staticStyle:{\"font-size\":\"22px\",\"font-weight\":\"bold\"},style:({ color: _vm.cardMessage.color })},[_vm._v(\" \"+_vm._s(_vm.cardMessage.value || 0)+\" \")]):_c('a-row',{staticStyle:{\"font-size\":\"14px\"}},[_c('a-form',{staticStyle:{\"width\":\"100%\"},attrs:{\"form\":_vm.form,\"wrapper-col\":{ span: 10 }}},[_c('a-form-item',[(_vm.cardMessage.options != null)?_c('a-select',{directives:[{name:\"decorator\",rawName:\"v-decorator\",value:([\n (\"\" + (_vm.cardMessage.content)),\n {\n rules: [{ required: true, message: '该字段不能为空', trigger: 'blur' }],\n initialValue: _vm.cardMessage.value,\n } ]),expression:\"[\\n `${cardMessage.content}`,\\n {\\n rules: [{ required: true, message: '该字段不能为空', trigger: 'blur' }],\\n initialValue: cardMessage.value,\\n },\\n ]\"}],attrs:{\"placeholder\":\"请选择\"}},_vm._l((_vm.cardMessage.options),function(item,index){return _c('a-select-option',{key:index,attrs:{\"value\":item.value}},[_vm._v(_vm._s(item.name))])}),1):_c('a-input',{directives:[{name:\"decorator\",rawName:\"v-decorator\",value:([\n (\"\" + (_vm.cardMessage.content)),\n {\n rules: [\n {\n validator: _vm.checkInput,\n } ],\n initialValue: _vm.cardMessage.value,\n } ]),expression:\"[\\n `${cardMessage.content}`,\\n {\\n rules: [\\n {\\n validator: checkInput,\\n },\\n ],\\n initialValue: cardMessage.value,\\n },\\n ]\"}],attrs:{\"placeholder\":\"请输入\",\"allow-clear\":\"\"}})],1)],1)],1)],1),_c('div',{staticClass:\"Edit\"},[(!_vm.inputVisible)?_c('div',{staticClass:\"Center\"},[_c('a-button',{staticStyle:{\"color\":\"#fff\"},style:({ backgroundColor: _vm.cardMessage.color }),attrs:{\"disabled\":_vm.disabledFunction,\"icon\":\"edit\"},on:{\"click\":_vm.onClickEditButton}},[_vm._v(\"编辑\")])],1):_c('div',{staticClass:\"Center\"},[_c('a-button',{staticStyle:{\"color\":\"#fff\"},style:({ backgroundColor: _vm.cardMessage.color }),attrs:{\"icon\":\"check\"},on:{\"click\":_vm.confirm}}),_c('a-button',{staticStyle:{\"color\":\"#fff\",\"margin-left\":\"5px\"},style:({ backgroundColor: _vm.cardMessage.color }),attrs:{\"icon\":\"close\"},on:{\"click\":_vm.cancel}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Vue, Prop, Component } from 'vue-property-decorator';\nimport { cardMessage } from '../interface';\nimport { WrappedFormUtils } from 'ant-design-vue/types/form/form';\nimport { profile } from '@/Utils/profile';\nconst ieslabDisableRules = profile.get('ieslabDisableRules') === 'true';\n\n/**\n * @author guan\n * @description 卡片重写\n */\n@Component({\n components: {},\n data() {\n return {\n form: this.$form.createForm(this, { name: 'ParamCard' }),\n };\n },\n})\nexport default class ParamCard extends Vue {\n /** disabledFunction */\n disabledFunction = ieslabDisableRules;\n /** 切换输入显示 */\n inputVisible = false;\n /** */\n form!: WrappedFormUtils;\n\n /** 渲染参数 */\n @Prop({\n default: () => {\n return { color: '#fff', content: '', value: 0, icon: '' };\n },\n })\n cardMessage!: cardMessage;\n\n /**\n * 编辑\n */\n onClickEditButton(): void {\n this.inputVisible = !this.inputVisible;\n }\n /**\n * 确定修改\n */\n confirm(): void {\n this.form.validateFields((errors) => {\n if (errors == null) {\n const value = this.form.getFieldValue(`${this.cardMessage.content}`);\n this.$emit('updateData', { content: this.cardMessage.content, data: value });\n this.inputVisible = !this.inputVisible;\n }\n });\n }\n\n /**\n * 取消编辑\n */\n cancel(): void {\n this.inputVisible = !this.inputVisible;\n }\n\n /**\n * checkInput\n */\n checkInput(_rule: any, value: string, callback: Function): void {\n //eslint-disable-line\n if (!this.cardMessage.rate) {\n if (value.length > 0) {\n if (isNaN(Number(value))) {\n callback(new Error('该字段只能为数字'));\n }\n if (Number(value) < 0) {\n callback(new Error('该字段不能为负数'));\n } else {\n callback();\n return;\n }\n } else {\n callback(new Error('该字段不能为空'));\n }\n } else {\n if (value.length > 0) {\n if (isNaN(Number(value))) {\n callback(new Error('该字段只能为数字'));\n }\n if (Number(value) < 0) {\n callback(new Error('该字段不能为负数'));\n }\n if (Number(value) > 100) {\n callback(new Error('该字段不能大于100'));\n } else {\n callback();\n return;\n }\n } else {\n callback(new Error('该字段不能为空'));\n }\n }\n }\n\n /**\n * mounted\n */\n mounted(): void {\n this.disabledFunction = ieslabDisableRules;\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./param-card.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./param-card.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./param-card.vue?vue&type=template&id=761e3e68&scoped=true&\"\nimport script from \"./param-card.vue?vue&type=script&lang=ts&\"\nexport * from \"./param-card.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"761e3e68\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component } from 'vue-property-decorator';\nimport BaseLoad from '@/component/evaluate/base/base-load';\nimport '../css/card.less';\nimport ParamCard from '@/component/evaluate/card-params/param-card.vue';\nimport MessageBus from '@/Utils/message/message-bus';\n@Component({\n components: {\n ParamCard,\n },\n})\n/**\n * @author guan\n * @description 通用模板,特殊界面以及特殊需求,请继承RenderTemplate\n */\n//eslint-disable-next-line\nexport default class BaseComponent extends BaseLoad {\n /**\n * 更新数据\n */\n updateData(data: { content: string; data: string }): void {\n this.cardMessage[this.paramsMapList[data.content].prop] = data.data;\n this.saveResults();\n }\n\n /**\n * 保存数据\n */\n saveResults(): void {\n this.saveData()\n .then(() => {\n MessageBus.Message('success', '保存成功');\n })\n .catch((e) => {\n throw e;\n });\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./base-component.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./base-component.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./base-component.vue?vue&type=template&id=079a4fbf&\"\nimport script from \"./base-component.vue?vue&type=script&lang=ts&\"\nexport * from \"./base-component.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"schemeEvaluation\"}},[_c('div',{staticClass:\"EvaluationTitle baseColor\"},[_c('div',{staticStyle:{\"height\":\"56px\",\"line-height\":\"56px\"}},[_c('a-divider',{staticStyle:{\"width\":\"5px\",\"height\":\"17px\",\"background\":\"#245be5 !important\"},attrs:{\"type\":\"vertical\"}}),_c('strong',{staticStyle:{\"margin-left\":\"5px\",\"font-size\":\"16px\"}},[_vm._v(_vm._s(_vm.$route.meta.title))])],1),_c('div',[_c('a-button',{staticStyle:{\"margin-right\":\"15px\"},attrs:{\"type\":\"primary\"},on:{\"click\":_vm.exportToFile}},[_vm._v(\"导出到文件\")]),_c('a-button',{staticStyle:{\"margin-right\":\"15px\"},attrs:{\"disabled\":_vm.disabledFunction,\"type\":_vm.disabledFunction ? '' : 'primary'},on:{\"click\":_vm.startCal}},[_vm._v(\"开始计算\")])],1)]),_c('a-row',{attrs:{\"type\":\"flex\",\"justify\":\"space-around\",\"gutter\":10}},_vm._l((_vm.cardStruct),function(item,index){return _c('a-col',{key:index,attrs:{\"xs\":24,\"sm\":16,\"md\":8,\"lg\":8,\"xl\":6,\"xxl\":4}},[(item.type === 0)?_c('div',{staticClass:\"efficiency_card baseColor\",staticStyle:{\"text-align\":\"center\"}},[_c('a-row',[_c('i',{class:(\"iconfont \" + (item.icon)),staticStyle:{\"font-size\":\"20px\"}})]),_c('a-row',[_c('span',{staticStyle:{\"font-size\":\"18px\",\"font-weight\":\"bold\"}},[_vm._v(_vm._s(item.title))])]),_vm._l((Object.keys(item.map)),function(a){return _c('p',{key:a,staticStyle:{\"text-align\":\"center\",\"margin\":\"5px 0\"}},[_c('span',{staticStyle:{\"text-align\":\"right\"}},[_vm._v(_vm._s(a)+\":\")]),_c('span',{staticStyle:{\"text-align\":\"left\"}},[_c('span',{staticClass:\"efficiency-span__content\"},[_vm._v(\" \"+_vm._s(_vm.getEnergyAnalysisData(item.map[a])))]),_vm._v(\" MWh \")])])})],2):_c('div',{staticClass:\"efficiency_card\",staticStyle:{\"text-align\":\"center\"},style:({ color: item.color, backgroundColor: item.background })},[_c('a-row',{staticStyle:{\"height\":\"55px\",\"padding\":\"5px 0\"}},[_c('i',{class:(\"iconfont \" + (item.icon)),staticStyle:{\"font-size\":\"40px\"}})]),_c('a-row',{staticStyle:{\"height\":\"50px\",\"line-height\":\"50px\"}},[_c('span',{staticStyle:{\"font-size\":\"16px\",\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.energyAnalysisData['data'][item.map[item.title]].toFixed(2))+\"%\")])]),_c('a-row',[_c('span',{staticStyle:{\"font-size\":\"14px\",\"font-weight\":\"bold\"}},[_vm._v(_vm._s(item.title))])])],1)])}),1),_c('a-tabs',{staticStyle:{\"margin-top\":\"15px\"},attrs:{\"type\":\"card\"}},[_vm._l((_vm.yearList),function(year,yearIndex){return [_c('a-tab-pane',{key:year,attrs:{\"tab\":(year + \"年\")}},[_c('div',[_c('a-radio-group',{model:{value:(_vm.monthIndex),callback:function ($$v) {_vm.monthIndex=$$v},expression:\"monthIndex\"}},_vm._l(([null, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]),function(month){return _c('a-radio',{key:month,attrs:{\"value\":month}},[_vm._v(\" \"+_vm._s(month == null ? '整年数据' : month + 1 + '月')+\" \")])}),1),(_vm.equipmentsList.length > 0)?_c('div',{staticClass:\"energyDataCard\"},[_vm._l((_vm.equipmentsList),function(item){return [_c('Card',{key:item,attrs:{\"year-index\":yearIndex,\"title\":item,\"data\":_vm.getTableData(item, yearIndex, _vm.monthIndex)}})]})],2):_vm._e()],1)])]})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card baseColor\"},[_c('a-row',{staticStyle:{\"height\":\"100%\",\"text-align\":\"center\"},attrs:{\"type\":\"flex\",\"align\":\"middle\"}},[_c('a-col',{attrs:{\"span\":7}},[_c('span',{staticStyle:{\"color\":\"#0f7aec\",\"font-weight\":\"bold\",\"font-size\":\"16px\"}},[_vm._v(\"设备种类\")]),_c('br'),_c('span',[_vm._v(_vm._s(_vm.title))])]),_c('a-col',{attrs:{\"span\":4}},[_c('span',{staticStyle:{\"color\":\"#0f7aec\",\"font-weight\":\"bold\",\"font-size\":\"16px\"}},[_vm._v(\"电\")]),_c('br'),_c('span',{staticStyle:{\"font-size\":\"16px\",\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.data[0].toFixed(2)))]),_vm._v(\"KWh \")]),_c('a-col',{attrs:{\"span\":4}},[_c('span',{staticStyle:{\"color\":\"#0f7aec\",\"font-weight\":\"bold\",\"font-size\":\"16px\"}},[_vm._v(\"热\")]),_c('br'),_c('span',{staticStyle:{\"font-size\":\"16px\",\"font-weight\":\"bold\"}},[_vm._v(\" \"+_vm._s(_vm.data[1].toFixed(2)))]),_vm._v(\"KWh \")]),_c('a-col',{attrs:{\"span\":4}},[_c('span',{staticStyle:{\"color\":\"#0f7aec\",\"font-weight\":\"bold\",\"font-size\":\"16px\"}},[_vm._v(\"冷\")]),_c('br'),_c('span',{staticStyle:{\"font-size\":\"16px\",\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.data[2].toFixed(2)))]),_vm._v(\"KWh \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n/**\n * @author guan\n * @description 能效分析结果\n */\n@Component({\n components: {},\n})\nexport default class Card extends Vue {\n /**传入的data */\n @Prop({\n default: () => {\n return [0, 0, 0, 0];\n },\n })\n data!: number[];\n /**初始标题 */\n @Prop({ default: () => 2018 })\n title!: string;\n /** 年份指针 */\n @Prop({ default: 0 })\n yearIndex!: number;\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./card.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./card.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./card.vue?vue&type=template&id=24dbe8f2&\"\nimport script from \"./card.vue?vue&type=script&lang=ts&\"\nexport * from \"./card.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./card.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport '../css/card.less';\nimport api_data from '@/Api/api_data';\nimport MessageBus from '@/Utils/message/message-bus';\nimport Card from './card.vue';\nimport API from '@/Api/api_simulaion';\nimport { delayedPromise } from '@/Utils/promise-utils';\nimport { DataLoad } from '@/Utils/decorator/data-load';\nimport Tools from '@/component/template/tools/tools';\nimport { profile } from '@/Utils/profile';\nconst ieslabDisableRules = profile.get('ieslabDisableRules') === 'true';\n\nconst DefaultEnergyAnalysisData = {\n data: {\n totalPowerSypply: 0,\n totalPowerLoad: 0,\n totalPowerLoss: 0,\n totalHeatSupply: 0,\n totalHeatLoad: 0,\n totalHeatLoss: 0,\n totalCoolSupply: 0,\n totalCoolLoad: 0,\n totalCoolLoss: 0,\n totalSteamSupply: 0,\n totalSteamLoad: 0,\n totalSteamLoss: 0,\n energyEfficiency: 0,\n renewableEnergyRatio: 0,\n tableData: {\n year: {} as Record,\n month: {} as Record,\n },\n startYear: '',\n },\n};\n\n/**\n * @author guan\n * @description 能效分析结果\n */\n@Component({\n components: {\n Card,\n },\n})\nexport default class EnergyEfficiency extends Vue {\n /** disabledFunction */\n disabledFunction = ieslabDisableRules;\n /** 加载状态 */\n spinningStatus = true;\n /** */\n energyAnalysisData: typeof DefaultEnergyAnalysisData = JSON.parse(JSON.stringify(DefaultEnergyAnalysisData));\n /** */\n signTime = 0;\n /**卡片构造体*/\n /** */\n cardStruct = [\n {\n icon: 'iconfangan',\n title: '电',\n map: {\n 总供电: 'totalPowerSypply',\n 总用电: 'totalPowerLoad',\n 网耗: 'totalPowerLoss',\n },\n type: 0,\n },\n {\n icon: 'iconfangan',\n title: '热',\n map: {\n 总供热: 'totalHeatSupply',\n 总用热: 'totalHeatLoad',\n 网耗: 'totalHeatLoss',\n },\n type: 0,\n },\n {\n icon: 'iconfangan',\n title: '冷',\n map: {\n 总供冷: 'totalCoolSupply',\n 总用冷: 'totalCoolLoad',\n 网耗: 'totalCoolLoss',\n },\n type: 0,\n },\n // {\n // icon: 'iconfangan',\n // title: '汽',\n // map: {\n // 总供汽: 'totalSteamSupply',\n // 总用汽: 'totalSteamLoad',\n // 网耗: 'totalSteamLoss',\n // },\n // type: 0,\n // },\n {\n icon: 'iconfangan',\n title: '能效水平',\n map: {\n 能效水平: 'energyEfficiency',\n },\n type: 1,\n background: '#5982fb',\n color: '#fff',\n },\n {\n icon: 'iconfangan',\n title: '可再生能源利用比例',\n map: {\n 可再生能源利用比例: 'renewableEnergyRatio',\n },\n\n color: '#fff',\n background: '#9a81ff',\n type: 1,\n },\n ];\n\n /** */\n monthIndex: null | number = null;\n\n /**\n *getEnergyAnalysisData\n */\n getEnergyAnalysisData(key: string): string {\n return this.energyAnalysisData['data'][key].toFixed(2);\n }\n /**\n *\n */\n getTableData(equipmentName: string, yearIndex: number, monthIndex?: number): number[] {\n const energyTypeList = ['power', 'heat', 'cool'];\n if (monthIndex == null) {\n return energyTypeList.map((energyKey) => this.energyAnalysisData['data']['tableData'].year[equipmentName][energyKey][yearIndex]);\n } else {\n return energyTypeList.map((energyKey) => this.energyAnalysisData['data']['tableData'].month[equipmentName][energyKey][yearIndex][monthIndex]);\n }\n }\n\n /**\n *获取设备列表\n */\n get equipmentsList(): string[] {\n return Object.keys(this.energyAnalysisData['data']['tableData'].year);\n }\n\n /**\n *\n */\n get yearList(): number[] {\n if (Object.values(this.energyAnalysisData.data.tableData.year).length === 0) {\n return [];\n }\n const startYear = Number(this.energyAnalysisData.data.startYear);\n const yearSpan = Object.values(this.energyAnalysisData.data.tableData.year)[0].cool.length;\n return new Array(yearSpan).fill(0).map((item, index) => index + startYear);\n }\n\n /**\n *\n */\n async exportToFile(): Promise {\n //总数据\n const totalSheetData: Array> = [[''], [''], [''], [''], ['']];\n totalSheetData[0] = ['能源类型', '总供量', '总用量', '网耗'];\n this.cardStruct.forEach((item, index) => {\n if (index > 3) {\n return;\n }\n totalSheetData[index + 1][0] = item.title;\n totalSheetData[index + 1] = totalSheetData[index + 1].concat(Object.values(item.map).map((item) => this.energyAnalysisData.data[item as string]));\n });\n const sheetsData = [{ name: '总数据', data: totalSheetData }];\n\n //年份数据\n const startYear = Number(this.energyAnalysisData.data.startYear);\n const yearSpan = Object.values(this.energyAnalysisData.data.tableData.year)[0].cool.length;\n for (let i = 0; i < yearSpan; i++) {\n const yearSheetData = new Array>();\n yearSheetData.push(['设备种类', '电', '热', '冷', '汽']);\n Object.keys(this.energyAnalysisData.data.tableData.year).forEach((key) => {\n yearSheetData.push([\n key,\n this.energyAnalysisData.data.tableData.year[key].power[i],\n this.energyAnalysisData.data.tableData.year[key].heat[i],\n this.energyAnalysisData.data.tableData.year[key].cool[i],\n this.energyAnalysisData.data.tableData.year[key].steam[i],\n ]);\n });\n sheetsData.push({ name: `${startYear + i}年`, data: yearSheetData });\n }\n\n await Tools.exportXlsxFile(this.$route.meta?.title, sheetsData);\n }\n\n /**\n *开始计算\n */\n async startCal(): Promise {\n try {\n this.$notification.success({\n message: '正在计算',\n key: this.$options.name,\n duration: 0,\n description: '',\n icon: this.$createElement({ template: '' }),\n });\n await API.saveDataToclickhouse({\n simuid: this.$route.query.simu_id || 0,\n planId: this.$store.getters.getCurrentPlanId,\n CMD_TYPE: 'energyEvaluation',\n });\n await this.loadData(true);\n this.$notification.success({ message: '计算完成', key: this.$options.name, duration: 1, description: '' });\n } catch (e) {\n await this.$message.error({ content: '计算失败,错误为:' + String(e), key: '能效分析', duration: 2.5 });\n throw e;\n }\n }\n /**\n *获取当前planId\n */\n get currentPlanId(): number {\n return this.$store.getters.getCurrentPlanId;\n }\n /**\n *单次获取结果\n */\n @Watch('currentPlanId')\n async planChange(): Promise {\n this.signTime = 0;\n await this.loadData();\n }\n\n /**\n *\n */\n @DataLoad()\n async loadData(isPolling?: boolean): Promise {\n /** 加载效果,自行使用 */\n this.spinningStatus = true;\n try {\n const data = (await api_data.getTaskManagerData({ type: 'getEnergyEvaluation', id: this.$store.getters.getCurrentPlanId, time: this.signTime }))\n .results[0] as Record | undefined;\n if (data == null) {\n if (isPolling) {\n await delayedPromise(3000);\n await this.loadData(true);\n } else {\n this.energyAnalysisData = DefaultEnergyAnalysisData;\n }\n } else {\n this.spinningStatus = false;\n this.signTime = data.time as number;\n this.$nextTick(() => {\n this.energyAnalysisData = data as typeof DefaultEnergyAnalysisData;\n });\n }\n } catch (e) {\n this.energyAnalysisData = DefaultEnergyAnalysisData;\n this.spinningStatus = false;\n MessageBus.Notification('error', { description: `${e}`, message: '提示' });\n throw new Error(`未知错误,${e}`);\n }\n }\n /**\n * @author guan\n * @description 开局加载数据\n * @return void\n */\n mounted(): void {\n this.loadData().catch((e) => e);\n this.disabledFunction = ieslabDisableRules;\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./energyEfficiency.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./energyEfficiency.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./energyEfficiency.vue?vue&type=template&id=82e0bc14&\"\nimport script from \"./energyEfficiency.vue?vue&type=script&lang=ts&\"\nexport * from \"./energyEfficiency.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"profit\"},[_c('div',{staticClass:\"EvaluationTitle baseColor\"},[_c('div',{staticStyle:{\"height\":\"56px\",\"line-height\":\"56px\"}},[_c('a-divider',{staticStyle:{\"width\":\"5px\",\"height\":\"17px\",\"background\":\"#245be5 !important\"},attrs:{\"type\":\"vertical\"}}),_c('strong',{staticStyle:{\"margin-left\":\"5px\",\"font-size\":\"16px\"}},[_vm._v(_vm._s(_vm.$route.meta.title))])],1),_c('div',[_c('a-button',{staticStyle:{\"margin-right\":\"15px\"},attrs:{\"type\":\"primary\"},on:{\"click\":_vm.exportToFile}},[_vm._v(\"导出到文件\")])],1)]),_c('div',{staticClass:\"baseColor\"},[_c('a-spin',{attrs:{\"tip\":\"数据加载中\",\"spinning\":_vm.spinningStatus}},[_c('profit-table',{ref:\"profitTable\",attrs:{\"columns\":_vm.columns,\"dataSource\":_vm.dataSource}})],1)],1),_c('a-row',{staticStyle:{\"margin-top\":\"20px\"},attrs:{\"gutter\":20}},[_c('a-col',{attrs:{\"span\":12}},[_c('div',{staticClass:\"baseColor\",staticStyle:{\"height\":\"360px\",\"max-width\":\"820px\"}},[_c('a-spin',{attrs:{\"tip\":\"数据加载中\",\"spinning\":_vm.spinningStatus}},[_c('charts',{ref:\"charts\",attrs:{\"option\":_vm.treeMap}})],1)],1)]),_c('a-col',{attrs:{\"span\":12}},[_c('div',{staticClass:\"baseColor\",staticStyle:{\"height\":\"360px\",\"max-width\":\"820px\"}},[_c('a-spin',{attrs:{\"tip\":\"数据加载中\",\"spinning\":_vm.spinningStatus}},[_c('charts',{ref:\"charts\",attrs:{\"option\":_vm.barOption}})],1)],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a-table',{staticStyle:{\"height\":\"375px\"},attrs:{\"rowClassName\":function (record, index) { return (index % 2 === 0 ? 'oColor' : 'aColor'); },\"bordered\":\"\",\"columns\":_vm.columns,\"data-source\":_vm.dataSource,\"pagination\":false,\"scroll\":{ y: 315 },\"rowKey\":\"serialNumber\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n *\n */\n@Component({\n components: {},\n})\nexport default class Profittable extends Vue {\n /** */\n @Prop({ default: [] })\n columns!: Array>;\n\n /** */\n @Prop({ default: [] })\n dataSource!: Array>;\n /**\n * 获得theme\n */\n get theme(): boolean {\n return this.$store.getters.getTheme;\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./profitTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./profitTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./profitTable.vue?vue&type=template&id=c97375de&\"\nimport script from \"./profitTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./profitTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{style:({ width: '95%', height: this.defaultHeight }),attrs:{\"id\":\"chart_component\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\nimport { ECharts, EChartsOption, init } from 'echarts';\n\n/**\n * @author guan\n * @description 共用图表组件 new Echarts 构建图表\n */\n@Component({})\nexport default class ChartTemplate extends Vue {\n /** 传入的容器高度 */\n @Prop({ default: () => '350px' })\n private defaultHeight!: string;\n\n /** */\n @Prop({\n default: () => {\n return {};\n },\n })\n private option!: EChartsOption;\n\n /** 图表实例 */\n private chart!: ECharts;\n\n /**\n * 监听option变化\n */\n @Watch('option', { deep: true })\n optionChange(val?: EChartsOption): void {\n if (val) {\n this.chart.setOption(val);\n } else {\n this.chart.clear();\n }\n }\n\n /**\n *\n */\n mounted(): void {\n /** 初始化 */\n this.chart = init(this.$el as HTMLDivElement, 'macarons');\n window.onresize = () => {\n this.chart.resize();\n };\n this.chart.setOption(this.option);\n this.chart.resize();\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./echarts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./echarts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./echarts.vue?vue&type=template&id=34ba0f20&\"\nimport script from \"./echarts.vue?vue&type=script&lang=ts&\"\nexport * from \"./echarts.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","//eslint-disable\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { DataSource, TableMessage, Type } from '../../interface';\nimport { EChartsOption, format } from 'echarts';\n\nimport { DataLoad } from '@/Utils/decorator/data-load';\nimport MessageBus from '@/Utils/message/message-bus';\nimport { NavigationInformationItem } from '@/component/NavigationInformation/menu-item/navigation-information';\nimport Tools from '@/component/template/tools/tools';\nimport api_data from '@/Api/api_data';\nimport { eventBus } from '@/main';\n\nrequire('echarts/theme/macarons');\n\n/**\n * @author guan\n * @description 基础加载数据父类\n */\n@Component({\n components: {},\n})\nexport default class FinanceLoad extends Vue {\n /** 有导航的情况下由子类复写 */\n Message: NavigationInformationItem[] = [];\n /** 加载状态 */\n spinningStatus = false;\n\n /** 当前数据类型,暂时添加type,特殊需求请自行添加 */\n dataType = {} as Type;\n /** 颜色列表 */\n readonly colorList = ['#46edcf', '#9a81ff', '#5983fb', '#ffa14a', '#3ad8db', '#fba38d', '#00bdf4', '#fc8819', '#2860fd', '#9556ff', '#2abbfe', '#ffc849'];\n\n /** 获取到的数据 */\n tableMessage = {} as TableMessage;\n /**\n * 表格数据\n */\n dataSource = [] as DataSource[];\n /**\n * 矩形树图数据\n */\n treeMapData = [] as DataSource[];\n\n /** 矩形树图 */\n treeMap = {};\n\n /** bar图 */\n barOption = {};\n\n /**\n * 表头字段数据\n */\n columns = [] as Array>;\n\n /**\n *\n */\n get cloudPssTheme(): string {\n return this.$store.getters.getTheme;\n }\n\n /**\n * @author guan\n * @description 获取路径信息\n * @return void\n */\n async LoadType(): Promise {\n this.dataType = await this.$route.meta?.params;\n }\n /**\n *\n */\n getLevelOption(): object {\n return [\n {\n itemStyle: {\n normal: {\n borderColor: '#777',\n borderWidth: 0,\n gapWidth: 1,\n },\n },\n upperLabel: {\n normal: {\n show: false,\n },\n },\n },\n {\n itemStyle: {\n normal: {\n borderColor: '#555',\n borderWidth: 5,\n gapWidth: 1,\n },\n emphasis: {\n borderColor: '#ddd',\n },\n },\n },\n {\n colorSaturation: [0.35, 0.5],\n itemStyle: {\n normal: {\n borderWidth: 5,\n gapWidth: 1,\n borderColorSaturation: 0.6,\n },\n },\n },\n ];\n }\n\n /**\n * 获得getTaskId\n */\n get taskId(): number {\n return this.$store.getters.getCurrentPlanId || 0;\n }\n\n /**\n *清除数据\n */\n cleanData(): void {\n this.dataSource = [] as DataSource[];\n this.treeMapData = [] as DataSource[];\n this.treeMap = {};\n this.barOption = {};\n this.columns = [] as Array>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.$refs['charts'] as any).optionChange();\n }\n /**\n *获取当前planId\n */\n get currentPlanId(): number {\n return this.$store.getters.getCurrentPlanId;\n }\n /**\n *单次获取结果\n */\n @Watch('currentPlanId')\n @DataLoad()\n async loadData(): Promise {\n /** 加载效果,自行使用 */\n try {\n const data = (await api_data.getTaskManagerData({ ...this.dataType, id: this.taskId })).results[0] as TableMessage;\n this.$nextTick(() => {\n this.tableMessage = data;\n if (data) {\n this.handleDataColumn(this.tableMessage);\n this.handleDataSource(this.tableMessage);\n } else {\n this.cleanData();\n }\n });\n } catch (e) {\n this.tableMessage = {} as TableMessage;\n MessageBus.Notification('error', { description: '数据加载错误', message: '提示' });\n throw new Error(`未知错误,${e}`);\n }\n }\n\n /**\n * 处理原始数据\n * 生成表头\n */\n handleDataColumn(data: TableMessage): void {\n const targetColumn = [] as Array>;\n data.data.headerDesc.forEach((x) => {\n targetColumn.push({\n title: x.headerName,\n dataIndex: x.key,\n key: x.key,\n });\n });\n this.columns = targetColumn;\n }\n\n /**\n * 调用数据处理方法\n */\n handleDataSource(data: TableMessage): void {\n this.dataSource = this.genTreeData(data.data.data);\n this.treeMapData = this.genTreeMapData(this.dataSource);\n this.handleEchartsData(data, this.dataSource);\n this.treeMap = {\n tooltip: {\n formatter: (info: { value: string; treePathInfo: Array> }) => {\n const value = info.value;\n const treePathInfo = info.treePathInfo;\n const treePath = [] as string[];\n\n for (let i = 1; i < treePathInfo.length; i++) {\n treePath.push(treePathInfo[i].name);\n }\n\n return ['
' + format.encodeHTML(treePath.join('/')) + '
', '费用: ' + format.addCommas(value) + '万元'].join(\n '',\n );\n },\n },\n series: [\n {\n name: '利润与利润分配表',\n type: 'treemap',\n data: this.treeMapData,\n visibleMin: 300,\n label: {\n show: true,\n formatter: '{b}',\n },\n upperLabel: {\n normal: {\n show: true,\n height: 30,\n },\n },\n itemStyle: {\n normal: {\n borderColor: '#fff',\n },\n },\n levels: this.getLevelOption(),\n },\n ],\n };\n }\n\n /**\n * 处理echarts数据\n */\n handleEchartsData(data: TableMessage, treeData: DataSource[]): void {\n const ParamKeys = [] as string[];\n for (const key in data.data.data[0]) {\n const val = Number(key);\n if (!isNaN(val)) {\n ParamKeys.push(key);\n }\n }\n this.barOption = this.genEchartsBarData(treeData, ParamKeys);\n }\n /**\n *\n */\n @Watch('cloudPssTheme')\n reload(): void {\n this.loadData().catch((e) => e);\n }\n /**\n * @param tabledata\n */\n genTreeData(tabledata: Array>): DataSource[] {\n //eslint-disable-next-line\n const tableTreeList: any[] = [];\n tabledata = tabledata.sort((a: Record, b: Record) => {\n //eslint-disable-next-line\n return ((a['serialNumber'] || a['序号']) as any).replace(/-/g, '') - ((b['serialNumber'] || b['序号']) as any).replace(/-/g, '');\n });\n for (const x of tabledata) {\n const serialNumber = (x['serialNumber'] || x['序号']).replace(/-/g, '.');\n const treePath = serialNumber.split('.');\n for (const ikea in x) {\n const val = Number(ikea);\n if (!isNaN(val)) {\n x[ikea] = Number(Number(x[ikea]).toFixed(2)).toString();\n }\n }\n //eslint-disable-next-line\n const tp = this.getTreeParent(serialNumber, tableTreeList) as any;\n if (tp) {\n if (tp.children) {\n tp.children.push({\n ...x,\n });\n } else {\n tp.children = [{ ...x }];\n }\n } else {\n if (treePath.length === 1) {\n tableTreeList.push({ ...x });\n }\n }\n }\n return tableTreeList;\n }\n\n /**\n * 获得tree parent\n *\n * @param key\n * @param datasource\n */\n getTreeParent(key: string, datasource: Array>): Array> | undefined {\n //eslint-disable-line\n const key_path = key.split('.');\n let temp_key = key_path[0];\n let temp_data = datasource;\n let flag = false;\n //eslint-disable-next-line\n for (const x in key_path) {\n //eslint-disable-next-line\n for (const y in temp_data) {\n const serialNumber = temp_data[y]['序号'] || temp_data[y]['serialNumber'];\n if (serialNumber === temp_key) {\n if (parseInt(x) === key_path.length - 2) {\n flag = true;\n temp_data = temp_data[y] as unknown as Array>;\n break;\n } else {\n temp_data = temp_data[y].children as unknown as Array>;\n temp_key = temp_key + '.' + key_path[parseInt(x) + 1];\n break;\n }\n }\n }\n }\n if (flag) {\n return temp_data;\n }\n return;\n }\n\n /**\n * 解析为Bar图\n *\n * @param datasource\n * @param paramkeys\n */\n genEchartsBarData(datasource: DataSource[], paramkeys: string[]): EChartsOption {\n return {\n legend: {\n data: datasource.map((item: DataSource) => {\n return item['项目'];\n }),\n textStyle: {\n color: this.cloudPssTheme === 'dark' ? '#ffffff' : '#000',\n },\n },\n xAxis: {\n type: 'category',\n axisTick: { show: false },\n data: paramkeys,\n axisLabel: {\n show: true,\n textStyle: {\n color: this.cloudPssTheme === 'dark' ? '#ffffff' : '#000',\n },\n },\n axisLine: {\n lineStyle: {\n type: 'solid',\n color: '#4877fb',\n width: '1',\n },\n },\n },\n yAxis: {\n type: 'value',\n splitLine: {\n show: false,\n },\n axisLabel: {\n show: true,\n textStyle: {\n color: this.cloudPssTheme === 'dark' ? '#ffffff' : '#000',\n },\n },\n axisLine: {\n lineStyle: {\n type: 'solid',\n color: '#4877fb',\n width: '1',\n },\n },\n },\n dataZoom: [\n {\n type: 'slider',\n show: true,\n xAxisIndex: [0],\n start: 0,\n end: 100,\n },\n ],\n series: datasource.map((item: DataSource) => {\n return {\n name: item['项目'],\n type: 'bar',\n barGap: '0%',\n data: paramkeys.map((item1: string) => {\n return item[item1];\n }),\n };\n }),\n } as unknown as EChartsOption;\n }\n\n /**\n * 递归\n * 解析为treeMap图\n *\n * @param dataSource\n * @param key\n * @param path\n */\n genTreeMapData(dataSource: DataSource[], key?: string, path?: string): DataSource[] {\n if (!key) {\n key = '合计/平均';\n }\n const retList = dataSource.map((item: DataSource) => {\n let countParma = 0;\n for (const ikey in item) {\n const val = Number(ikey);\n const value = item[ikey];\n if (!isNaN(val)) {\n countParma += Number(value);\n }\n }\n if (item.children) {\n return {\n name: item['项目'],\n path: path ? path + '/' + item['项目'] : item['项目'],\n value: Math.abs(countParma).toFixed(2),\n children: this.genTreeMapData(item.children, key, path ? path + '/' + item['项目'] : item['项目']),\n };\n } else {\n return {\n name: item['项目'],\n value: Math.abs(countParma).toFixed(2),\n path: path ? path + '/' + item['项目'] : item['项目'],\n };\n }\n });\n return retList;\n }\n\n /**\n * @author guan\n * @description 开局加载数据\n * @return void\n */\n mounted(): void {\n eventBus.$on(`reloadData`, () => {\n this.loadData().catch((e) => e);\n });\n this.LoadType.apply(this, [])\n .then(() => {\n this.loadData().catch((e) => e);\n })\n .catch((e) => e);\n }\n\n /**\n *\n */\n async exportToFile(): Promise {\n const sheetData = new Array>();\n sheetData.push(this.columns.map((item) => item.title));\n const dataIndexList = this.columns.map((item) => item.dataIndex);\n this.dataSource.forEach((row) => {\n sheetData.push(dataIndexList.map((dataIndex) => row[dataIndex]));\n if (row.children != null && row.children.length > 0) {\n row.children.forEach((childRow) => {\n sheetData.push(dataIndexList.map((dataIndex) => childRow[dataIndex]));\n });\n }\n });\n await Tools.exportXlsxFile(this.$route.meta?.title, [{ name: this.$route.meta?.name, data: sheetData }]);\n }\n\n /**\n * @author guan\n * @description 保存参数,请重写此方法\n * @return void\n */\n async saveData(): Promise {\n // try {\n // const data = await api_data.patchEvaluationDataByParams({ ...this.tableMessage, type: this.dataType.type }, {}).catch((e) => e);\n // MessageBus.Notification('success', { description: '保存成功', message: '提示' });\n // } catch (e) {\n // MessageBus.Notification('error', { description: '保存失败', message: '提示' });\n // throw new Error(`保存失败,未知错误,${e}`);\n // }\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component } from 'vue-property-decorator';\nimport profitTable from '../../components/profitTable.vue';\nimport charts from '../../components/echarts.vue';\nimport '@/component/evaluate/css/card.less';\nimport FinanceLoad from './finance-load';\n/**\n *\n */\n@Component({\n components: {\n profitTable,\n charts,\n },\n})\nexport default class FinanceComponent extends FinanceLoad {}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance-component.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./finance-component.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./finance-component.vue?vue&type=template&id=26ba33f6&\"\nimport script from \"./finance-component.vue?vue&type=script&lang=ts&\"\nexport * from \"./finance-component.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"profit\"},[_c('div',{staticClass:\"EvaluationTitle baseColor\"},[_c('div',{staticStyle:{\"height\":\"56px\",\"line-height\":\"56px\"}},[_c('a-divider',{staticStyle:{\"width\":\"5px\",\"height\":\"17px\",\"background\":\"#245be5 !important\"},attrs:{\"type\":\"vertical\"}}),_c('strong',{staticStyle:{\"margin-left\":\"5px\",\"font-size\":\"16px\"}},[_vm._v(_vm._s(_vm.$route.meta.title))])],1),_c('div',[_c('a-button',{staticStyle:{\"margin-right\":\"15px\"},attrs:{\"type\":\"primary\"},on:{\"click\":_vm.exportToFile}},[_vm._v(\"导出到文件\")])],1)]),_c('div',{staticClass:\"baseColor\"},[_c('a-spin',{attrs:{\"tip\":\"数据加载中\",\"spinning\":_vm.spinningStatus}},[_c('profit-table',{ref:\"profitTable\",attrs:{\"columns\":_vm.columns,\"dataSource\":_vm.dataSource}})],1)],1),_c('div',{staticClass:\"baseColor\",staticStyle:{\"height\":\"350px\",\"margin-top\":\"20px\"}},[_c('a-spin',{attrs:{\"tip\":\"数据加载中\",\"spinning\":_vm.spinningStatus}},[_c('charts',{ref:\"charts\",attrs:{\"option\":_vm.barOption}})],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component } from 'vue-property-decorator';\nimport profitTable from '../../components/profitTable.vue';\nimport charts from '../../components/echarts.vue';\nimport '@/component/evaluate/css/card.less';\nimport FinanceLoad from './finance-load';\n\n/**\n *\n */\n@Component({\n components: {\n profitTable,\n charts,\n },\n})\nexport default class ProfitComponent extends FinanceLoad {}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./profit-component.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./profit-component.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./profit-component.vue?vue&type=template&id=1d30a31c&\"\nimport script from \"./profit-component.vue?vue&type=script&lang=ts&\"\nexport * from \"./profit-component.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"EvaluationTitle baseColor\"},[_c('div',{staticStyle:{\"height\":\"56px\",\"line-height\":\"56px\"}},[_c('a-divider',{staticStyle:{\"width\":\"5px\",\"height\":\"17px\",\"background\":\"#245be5 !important\"},attrs:{\"type\":\"vertical\"}}),_c('strong',{staticStyle:{\"margin-left\":\"5px\",\"font-size\":\"16px\"}},[_vm._v(_vm._s(_vm.$route.meta.title))])],1),_c('div',[_c('a-button',{staticStyle:{\"margin-right\":\"15px\"},attrs:{\"type\":\"primary\"},on:{\"click\":_vm.exportToFile}},[_vm._v(\"导出到文件\")]),_c('a-button',{staticStyle:{\"margin-right\":\"15px\"},attrs:{\"disabled\":_vm.disabledFunction,\"type\":_vm.disabledFunction ? '' : 'primary'},on:{\"click\":_vm.startCalculate}},[_vm._v(\"开始计算\")])],1)]),_c('div',{staticStyle:{\"display\":\"flex\",\"margin-bottom\":\"20px\"}},_vm._l((_vm.cardList),function(item,index){return _c('div',{key:index,staticClass:\"efficiency_card\",staticStyle:{\"background-repeat\":\"no-repeat\"},style:({\n textAlign: 'center',\n margin: (\"0 \" + (index !== _vm.cardList.length - 1 ? '10px' : 0) + \" 0 \" + (index !== 0 ? '10px' : 0)),\n color: '#ffffff',\n backgroundColor: item.backgroundColor,\n backgroundImage: (\"url(\" + (item.backgroundImage) + \")\"),\n })},[_c('a-row',{staticStyle:{\"height\":\"55px\",\"padding\":\"5px 0\"}},[_c('a-icon',{staticStyle:{\"font-size\":\"40px\"},attrs:{\"type\":item.icon}})],1),_c('a-row',{staticStyle:{\"height\":\"50px\",\"line-height\":\"50px\"}},[_c('span',{staticStyle:{\"font-size\":\"16px\",\"font-weight\":\"bold\"}},[_vm._v(_vm._s(item.title))])]),_c('a-row',[_c('span',{staticStyle:{\"font-size\":\"14px\",\"font-weight\":\"bold\"}},[_vm._v(_vm._s(item.subtitle))])])],1)}),0),_c('a-card',{staticClass:\"table_card\",staticStyle:{\"height\":\"520px\"},attrs:{\"bordered\":false}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"margin-bottom\":\"10px\"}},[_c('a-switch',{staticClass:\"switch_unit_of_time\",attrs:{\"checked-children\":\"年\",\"un-checked-children\":\"月\"},model:{value:(_vm.isShowYear),callback:function ($$v) {_vm.isShowYear=$$v},expression:\"isShowYear\"}}),_c('div',{staticStyle:{\"width\":\"5px\",\"height\":\"32px\"}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isShowYear),expression:\"!isShowYear\"}],staticStyle:{\"margin\":\"0 10px 0 30px\"}},[_vm._v(\"选择年份:\")]),_c('a-select',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isShowYear),expression:\"!isShowYear\"}],staticStyle:{\"width\":\"100px\"},attrs:{\"defaut-value\":1},model:{value:(_vm.currentYearIndex),callback:function ($$v) {_vm.currentYearIndex=$$v},expression:\"currentYearIndex\"}},[_vm._l((_vm.yearList),function(item,index){return [_c('a-select-option',{key:index,attrs:{\"value\":index}},[_vm._v(_vm._s(item)+\"年\")])]})],2)],1),_c('a-table',{attrs:{\"columns\":_vm.tableColumns,\"rowClassName\":function (record, index) { return (index % 2 === 0 ? 'oColor' : 'aColor'); },\"scroll\":{ x: 1500 },\"data-source\":_vm.tableData,\"pagination\":false,\"bordered\":\"\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"},attrs:{\"slot\":\"startYearTitle\"},slot:\"startYearTitle\"},[_c('div',{staticStyle:{\"width\":\"20px\"}}),_c('div',{staticStyle:{\"width\":\"100px\"}},[_c('span',[_vm._v(_vm._s(_vm.startYear)+\"年\")])]),_c('div',{staticClass:\"icon_hover\",staticStyle:{\"width\":\"20px\"},on:{\"click\":function($event){_vm.isExpanded = !_vm.isExpanded}}},[_c('a-icon',{attrs:{\"type\":_vm.isExpanded ? 'caret-right' : 'caret-left'}})],1)]),_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"},attrs:{\"slot\":\"endYearTitle\"},slot:\"endYearTitle\"},[_c('div',{staticClass:\"icon_hover\",staticStyle:{\"width\":\"20px\"},on:{\"click\":function($event){_vm.isExpanded = !_vm.isExpanded}}},[_c('a-icon',{attrs:{\"type\":_vm.isExpanded ? 'caret-left' : 'caret-right'}})],1),_c('div',{staticStyle:{\"width\":\"100px\"}},[_c('span',[_vm._v(_vm._s(_vm.endYear)+\"年\")])]),_c('div',{staticStyle:{\"width\":\"20px\"}})])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Vue, Component, Watch } from 'vue-property-decorator';\nimport { getQueryString } from '@/Api/api_data';\nimport api_simulaion from '@/Api/api_simulaion';\nimport { delayedPromise } from '@/Utils/promise-utils';\nimport { DataLoad } from '@/Utils/decorator/data-load';\nimport Tools from '@/component/template/tools/tools';\nimport { profile } from '@/Utils/profile';\nconst ieslabDisableRules = profile.get('ieslabDisableRules') === 'true';\n\nconst DefaultEnvironmentalData = {\n tableData: {\n year: {\n CO2: [0.0, 0.0],\n 氮化物: [0.0, 0.0],\n SO2: [0.0, 0.0],\n 烟尘: [0.0, 0.0],\n },\n month: {\n CO2: [\n [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ],\n 氮化物: [\n [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ],\n SO2: [\n [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ],\n 烟尘: [\n [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ],\n },\n },\n totalCO2: 0,\n totalNOX: 0,\n totalSO2: 0,\n totalDist: 0,\n startYear: '1970',\n};\n/**\n * TableColumn\n */\ninterface TableColumn {\n /**\n * dataIndex\n */\n dataIndex: number | string;\n /**\n * key\n */\n key: string | number;\n /**\n * title\n */\n title?: string;\n /**\n * align\n */\n align?: string;\n /**\n * width\n */\n width?: number;\n /**\n * fixed\n */\n fixed?: string;\n}\n/**\n *\n */\n@Component({})\nexport default class EnvironmentalProtection extends Vue {\n /** disabledFunction */\n disabledFunction = ieslabDisableRules;\n /** 是否显示年 */\n isShowYear = true;\n\n /** 是否展开 */\n isExpanded = false;\n /** */\n startYear = 0;\n /** */\n endYear = 0;\n\n /** */\n yearList = new Array();\n\n /** */\n currentYearIndex = 0;\n\n /** */\n environmentalData: typeof DefaultEnvironmentalData = JSON.parse(JSON.stringify(DefaultEnvironmentalData));\n\n /** */\n signTime = 0;\n\n /**\n *获取表格列配置\n */\n get tableColumns(): TableColumn[] {\n const result = new Array();\n result.push({\n dataIndex: 'pollutionType',\n key: 'pollutionType',\n title: '污染类型',\n align: 'center',\n width: 100,\n fixed: 'left',\n });\n this.yearList = [];\n this.startYear = Number(this.environmentalData.startYear);\n const startYear = this.startYear;\n const timeSpan = this.environmentalData.tableData.year.CO2.length;\n for (let i = 0; i < timeSpan; i++) {\n this.yearList.push(i + startYear);\n }\n if (this.isShowYear) {\n for (let i = 0; i < timeSpan; i++) {\n const width = timeSpan > 7 ? 200 : undefined;\n const column: TableColumn = {\n dataIndex: startYear + i,\n key: i,\n title: `${startYear + i}年`,\n align: 'center',\n width: this.isExpanded ? width : undefined,\n };\n if (i === 0) {\n column['scopedSlots'] = { title: 'startYearTitle' };\n delete column.title;\n } else if (i === timeSpan - 1) {\n column['scopedSlots'] = { title: 'endYearTitle' };\n delete column.title;\n this.endYear = startYear + i;\n } else if (!this.isExpanded) {\n continue;\n }\n result.push(column);\n }\n } else {\n const monthList = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];\n for (let i = 0; i < 12; i++) {\n result.push({ dataIndex: i, key: monthList[i], title: monthList[i], align: 'center' });\n }\n }\n return result;\n }\n\n /**\n *\n */\n get yearTableData(): Array> {\n if (this.environmentalData.startYear === '1970') {\n return [];\n }\n const result = new Array>(4);\n const startYear = Number(this.environmentalData.startYear);\n const timeSpan = this.environmentalData.tableData.year.CO2.length;\n result[0] = { pollutionType: 'CO2', key: 'CO2' };\n result[1] = { pollutionType: 'SO2', key: 'SO2' };\n result[2] = { pollutionType: '氮化物', key: '氮化物' };\n result[3] = { pollutionType: '烟尘', key: '烟尘' };\n for (let i = 0; i < timeSpan; i++) {\n result[0][startYear + i] = this.environmentalData.tableData.year.CO2[i].toFixed(2);\n result[1][startYear + i] = this.environmentalData.tableData.year.SO2[i].toFixed(2);\n result[2][startYear + i] = this.environmentalData.tableData.year.氮化物[i].toFixed(2);\n result[3][startYear + i] = this.environmentalData.tableData.year.烟尘[i].toFixed(2);\n }\n return result;\n }\n\n /**\n *\n */\n monthTableData(yearIndex: number): Array> {\n if (this.environmentalData.startYear === '1970') {\n return [];\n }\n const result = new Array>(4);\n result[0] = { pollutionType: 'CO2', key: 'CO2' };\n result[1] = { pollutionType: 'SO2', key: 'SO2' };\n result[2] = { pollutionType: '氮化物', key: '氮化物' };\n result[3] = { pollutionType: '烟尘', key: '烟尘' };\n for (let i = 0; i < 12; i++) {\n result[0][i] = this.environmentalData.tableData.month.CO2[yearIndex][i].toFixed(2);\n result[1][i] = this.environmentalData.tableData.month.SO2[yearIndex][i].toFixed(2);\n result[2][i] = this.environmentalData.tableData.month.氮化物[yearIndex][i].toFixed(2);\n result[3][i] = this.environmentalData.tableData.month.烟尘[yearIndex][i].toFixed(2);\n }\n return result;\n }\n\n /**\n *获取 表格数据\n */\n get tableData(): Array> {\n if (this.isShowYear) {\n return this.yearTableData;\n } else {\n return this.monthTableData(this.currentYearIndex);\n }\n }\n\n /**\n *\n */\n get cardList(): Array<{ backgroundColor: string; icon: string; title: string; subtitle: string; backgroundImage: string }> {\n return [\n {\n backgroundColor: '#2058a5',\n icon: 'fire',\n title: this.environmentalData.totalCO2.toFixed(2),\n subtitle: '二氧化碳排放量',\n // eslint-disable-next-line no-undef\n backgroundImage: require('@/assets/sample/r01.png'),\n },\n {\n backgroundColor: '#4c92f2',\n icon: 'fire',\n title: this.environmentalData.totalSO2.toFixed(2),\n subtitle: '二氧化硫排放量',\n // eslint-disable-next-line no-undef\n backgroundImage: require('@/assets/sample/r02.png'),\n },\n {\n backgroundColor: '#20a0a5',\n icon: 'fire',\n title: this.environmentalData.totalNOX.toFixed(2),\n subtitle: '氮化物排放量',\n // eslint-disable-next-line no-undef\n backgroundImage: require('@/assets/sample/r03.png'),\n },\n {\n backgroundColor: '#f25c4c',\n icon: 'fire',\n title: this.environmentalData.totalDist.toFixed(2),\n subtitle: '烟尘排放量',\n // eslint-disable-next-line no-undef\n backgroundImage: require('@/assets/sample/r04.png'),\n },\n ];\n }\n\n /**\n *保存数据到暂存区以便计算\n */\n async saveDataToWorkingArea(): Promise {\n return await api_simulaion.saveDataToclickhouse({\n simuid: this.$route.query.simu_id,\n planId: this.$store.getters.getCurrentPlanId,\n CMD_TYPE: 'environmentalEvaluation',\n });\n }\n\n /**\n *\n */\n get currentPlanId(): number {\n return this.$store.getters.getCurrentPlanId;\n }\n\n /**\n *单次获取计算结果\n */\n @Watch('currentPlanId')\n @DataLoad()\n async getEnvironmentalEvaluation(): Promise {\n this.signTime = 0;\n const data = (await api_simulaion.getEnvironmentalEvaluation({\n simu_id: getQueryString()['simu_id'],\n planId: this.$store.getters.getCurrentPlanId,\n time: this.signTime,\n })) as { results: [{ data: typeof DefaultEnvironmentalData; time: number }?] };\n if (data.results[0] != null) {\n this.signTime = data.results[0].time;\n this.environmentalData = data.results[0].data;\n } else {\n this.environmentalData = DefaultEnvironmentalData;\n }\n }\n\n /**\n * 循环获取计算结果\n */\n async getEnvironmentalEvaluationCyclic(): Promise {\n const data = (await api_simulaion.getEnvironmentalEvaluation({\n simu_id: getQueryString()['simu_id'],\n planId: this.$store.getters.getCurrentPlanId,\n time: this.signTime,\n })) as { results: [{ data: typeof DefaultEnvironmentalData; time: number }?] };\n if (data.results[0] == null) {\n await delayedPromise(3000);\n await this.getEnvironmentalEvaluationCyclic();\n } else {\n this.signTime = data.results[0].time;\n this.environmentalData = data.results[0].data;\n }\n }\n\n /**\n *\n */\n async exportToFile(): Promise {\n //构建年份数据\n const yearSheetData: Array> = [[''], [''], [''], [''], ['']];\n const startYear = this.startYear;\n const timeSpan = this.environmentalData.tableData.year.CO2.length;\n yearSheetData[0][0] = '污染类型';\n yearSheetData[1][0] = 'CO2';\n yearSheetData[2][0] = 'SO2';\n yearSheetData[3][0] = '氮化物';\n yearSheetData[4][0] = '烟尘';\n yearSheetData[0] = yearSheetData[0].concat(new Array(timeSpan).fill('').map((item, index) => index + startYear)).concat('总计');\n yearSheetData[1] = yearSheetData[1].concat(this.environmentalData.tableData.year.CO2).concat(this.environmentalData.totalCO2);\n yearSheetData[2] = yearSheetData[2].concat(this.environmentalData.tableData.year.SO2).concat(this.environmentalData.totalSO2);\n yearSheetData[3] = yearSheetData[3].concat(this.environmentalData.tableData.year.氮化物).concat(this.environmentalData.totalNOX);\n yearSheetData[4] = yearSheetData[4].concat(this.environmentalData.tableData.year.烟尘.concat(this.environmentalData.totalDist));\n const sheetsData = [{ name: '总数据', data: yearSheetData }];\n //构建月份数据\n for (let i = 0; i < timeSpan; i++) {\n const monthSheetData: Array> = [[''], [''], [''], [''], ['']];\n monthSheetData[0][0] = '污染类型';\n monthSheetData[1][0] = 'CO2';\n monthSheetData[2][0] = 'SO2';\n monthSheetData[3][0] = '氮化物';\n monthSheetData[4][0] = '烟尘';\n monthSheetData[0] = monthSheetData[0].concat(['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']);\n monthSheetData[1] = monthSheetData[1].concat(this.environmentalData.tableData.month.CO2[i]);\n monthSheetData[2] = monthSheetData[2].concat(this.environmentalData.tableData.month.SO2[i]);\n monthSheetData[3] = monthSheetData[3].concat(this.environmentalData.tableData.month.氮化物[i]);\n monthSheetData[4] = monthSheetData[4].concat(this.environmentalData.tableData.month.烟尘[i]);\n sheetsData.push({ name: startYear + i + '年数据', data: monthSheetData });\n }\n await Tools.exportXlsxFile(this.$route.meta?.title, sheetsData);\n }\n\n /**\n *开始计算\n */\n async startCalculate(): Promise {\n try {\n this.$notification.success({\n message: '正在计算',\n key: this.$options.name,\n duration: 0,\n description: '',\n //$createElement返回一个vNode,需要在vue.config.js里开启runtimeCompiler才可以使用,应用将会增加10kb\n icon: this.$createElement({ template: '' }),\n });\n await this.saveDataToWorkingArea();\n await this.getEnvironmentalEvaluationCyclic();\n this.$notification.success({ message: '计算完成', key: this.$options.name, duration: 2.5, description: '' });\n } catch (e) {\n await this.$message.error({ content: '计算失败,错误信息:' + String(e), key: '环保评价', duration: 2.5 });\n throw new Error('计算失败,错误信息:' + String(e));\n }\n }\n\n /**\n *\n */\n async mounted(): Promise {\n await this.getEnvironmentalEvaluation();\n this.disabledFunction = ieslabDisableRules;\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/vue-jsx-hot-loader/src/index.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./environmental-protection.vue?vue&type=script&lang=tsx&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/vue-jsx-hot-loader/src/index.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./environmental-protection.vue?vue&type=script&lang=tsx&\"","import { render, staticRenderFns } from \"./environmental-protection.vue?vue&type=template&id=59f70a60&scoped=true&\"\nimport script from \"./environmental-protection.vue?vue&type=script&lang=tsx&\"\nexport * from \"./environmental-protection.vue?vue&type=script&lang=tsx&\"\nimport style0 from \"./environmental-protection.vue?vue&type=style&index=0&id=59f70a60&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59f70a60\",\n null\n \n)\n\nexport default component.exports","import { VueConstructor } from 'vue';\nimport middleware from '@/layout/middleware.vue';\nimport DataView from '@/layout/data-manage/data-view.vue';\nimport finance from './views/finance/finance.vue';\n// import benefits from './views/benefits.vue';\n\nimport { RouteConfig } from 'vue-router';\nimport BaseComponent from '@/component/evaluate/base/base-component.vue';\nimport EnergyEfficiency from '@/component/evaluate/comprehensive-benefit-analysis/energyEfficiency.vue';\n// import Composition from '@/component/evaluate/composition/composition.vue';\nimport FinanceComponent from '@/component/evaluate/views/finance/finance-component.vue';\nimport ProfitComponent from '@/component/evaluate/views/finance/profit-component.vue';\nimport EnvironmentalProtection from './comprehensive-benefit-analysis/environmental-protection.vue';\n\nconst Composition = (): Promise => import('@/component/evaluate/composition/composition.vue');\n\nconst evaluateRouter: RouteConfig = {\n path: 'evaluate',\n name: 'evaluate',\n component: DataView,\n meta: { requireAuth: true },\n redirect: '/header/evaluate/financial_evaluation/basic_parameters/composition',\n children: [\n {\n path: 'financial_evaluation',\n component: middleware,\n name: 'financial_evaluation',\n meta: { title: '财务评价', role: ['admin', 'editor'], icon: 'listline', visible: true },\n children: [\n {\n path: 'basic_parameters',\n component: middleware,\n name: 'basic_parameters',\n meta: { title: '基础参数', role: ['admin', 'editor'], icon: 'listline', visible: true },\n children: [\n {\n name: 'composition',\n path: 'composition',\n component: Composition,\n meta: {\n title: '投资组成',\n role: ['admin', 'editor'],\n params: {\n type: 'investmentbanchandproportion',\n params: '投资组成',\n },\n icon: 'energy',\n visible: true,\n },\n },\n {\n name: 'source',\n path: 'source',\n component: BaseComponent,\n meta: {\n title: '资金来源',\n role: ['admin', 'editor'],\n params: {\n type: 'capitalsource',\n params: '资金来源',\n },\n icon: 'energy',\n visible: true,\n },\n },\n {\n name: 'assets',\n path: 'assets',\n component: BaseComponent,\n meta: {\n title: '资产形式',\n role: ['admin', 'editor'],\n icon: 'energy',\n params: {\n type: 'assetformation',\n params: '资产形式',\n },\n visible: true,\n },\n },\n {\n name: 'productionCost',\n path: 'productionCost',\n component: BaseComponent,\n meta: {\n title: '生产成本',\n role: ['admin', 'editor'],\n icon: 'energy',\n params: { type: 'productioncost', params: '生产成本' },\n visible: true,\n },\n },\n {\n name: 'charge',\n path: 'charge',\n component: BaseComponent,\n meta: {\n title: '流动资金及财务费用',\n role: ['admin', 'editor'],\n icon: 'energy',\n params: { type: 'workingcapitalandfinancialexpenses', params: '流动资金及财务费用' },\n visible: true,\n },\n },\n {\n path: 'tax_rate',\n component: BaseComponent,\n name: 'tax_rate',\n meta: {\n title: '税率及附加',\n role: ['admin', 'editor'],\n params: { type: 'projectcalculation', params: '损益参数' },\n icon: 'energy',\n visible: true,\n },\n },\n ],\n },\n {\n path: 'financial_evaluation_result',\n component: middleware,\n name: 'financial_evaluation_result',\n meta: { title: '财务评价结果', role: ['admin', 'editor'], icon: 'listline', visible: true },\n children: [\n {\n path: 'index',\n component: finance as unknown as VueConstructor,\n name: 'index',\n meta: { title: '概览', role: ['admin', 'editor'], icon: 'listline', visible: true },\n },\n {\n path: 'basicForm',\n name: 'basicForm',\n component: middleware,\n meta: { title: '基本报表', role: ['admin', 'editor'], icon: 'listline', visible: true },\n children: [\n {\n path: 'profit',\n component: FinanceComponent,\n name: 'profit',\n meta: {\n title: '利润与利润分配',\n role: ['admin', 'editor'],\n icon: 'listline',\n params: { type: 'getEconomyResult', params: '利润与利润分配' },\n visible: true,\n },\n },\n {\n path: 'cash_flow',\n component: ProfitComponent,\n name: 'cash_flow',\n meta: {\n title: '财务计划现金流量',\n role: ['admin', 'editor'],\n icon: 'listline',\n params: { type: 'getFinancialPlanCashFlowResult', params: '财务计划现金流量' },\n visible: true,\n },\n },\n {\n path: 'assets_liabilities',\n component: ProfitComponent,\n name: 'assets_liabilities',\n meta: {\n title: '资产负债',\n role: ['admin', 'editor'],\n icon: 'listline',\n params: { type: 'getLiabilityAssetsResult', params: '资产负债' },\n visible: true,\n },\n },\n ],\n },\n {\n path: 'assistForm',\n name: 'assistForm',\n component: middleware,\n meta: { title: '辅助报表', role: ['admin', 'editor'], icon: 'listline', visible: true },\n children: [\n {\n path: 'investment_use_plan',\n component: ProfitComponent,\n name: 'investment_use_plan',\n meta: {\n title: '投资使用计划与资金筹措',\n role: ['admin', 'editor'],\n icon: 'listline',\n params: { type: 'getInvestPlanDataResult', params: '投资使用计划与资金筹措' },\n visible: true,\n },\n },\n {\n path: 'loan_repayment_plan',\n component: ProfitComponent,\n name: 'loan_repayment_plan',\n meta: {\n title: '借款还本付息计划',\n role: ['admin', 'editor'],\n icon: 'listline',\n params: { type: 'getLoanRepaymentPlanResult', params: '借款还本付息计划' },\n visible: true,\n },\n },\n {\n path: 'liquidity_estimation',\n component: FinanceComponent,\n name: 'liquidity_estimation',\n meta: {\n title: '流动资金估算',\n role: ['admin', 'editor'],\n icon: 'listline',\n params: { type: 'getFlowCashEvaluteResult', params: '流动资金估算' },\n visible: true,\n },\n },\n {\n path: 'asset_depreciation',\n component: ProfitComponent,\n name: 'asset_depreciation',\n meta: {\n title: '资产折旧与摊销估算',\n role: ['admin', 'editor'],\n icon: 'listline',\n params: { type: 'getAssetsDepreciationResult', params: '资产折旧与摊销估算' },\n visible: true,\n },\n },\n {\n path: 'total_cost_estimation',\n component: FinanceComponent,\n name: 'total_cost_estimation',\n meta: {\n title: '总成本费用估算表',\n role: ['admin', 'editor'],\n icon: 'listline',\n params: { type: 'getSumCostResult', params: '总成本费用估算表' },\n visible: true,\n },\n },\n {\n path: 'total_investment_cashFlow',\n component: ProfitComponent,\n name: 'total_investment_cashFlow',\n meta: {\n title: '项目总投资现金流量',\n role: ['admin', 'editor'],\n icon: 'listline',\n params: { type: 'getSumInvestFlowCashResult', params: '项目总投资现金流量' },\n visible: true,\n },\n },\n {\n path: 'capital_cashFlow',\n component: ProfitComponent,\n name: 'capital_cashFlow',\n meta: {\n title: '项目资本金现金流量',\n role: ['admin', 'editor'],\n icon: 'listline',\n params: { type: 'getProjectCashFlowResult', params: '项目资本金现金流量' },\n visible: true,\n },\n },\n {\n path: 'additional_VAT_estimates',\n component: FinanceComponent,\n name: 'additional_VAT_estimates',\n meta: {\n title: '营业收入、税金、附加和增值税估算',\n role: ['admin', 'editor'],\n icon: 'listline',\n params: { type: 'getIncomeTaxResult', params: '营业收入、税金、附加和增值税估算' },\n visible: true,\n },\n },\n ],\n },\n ],\n },\n ],\n },\n {\n path: 'environmentalProtection',\n component: EnvironmentalProtection,\n name: 'environmentalProtection',\n meta: { title: '环保评价', role: ['admin', 'editor'], icon: 'listline', visible: true },\n },\n // {\n // path: 'benefits',\n // component: (benefits as unknown) as VueConstructor,\n // name: 'benefits',\n // meta: { title: '可靠性评价', role: ['admin', 'editor'], icon: 'listline' },\n // },\n {\n path: 'energyEfficiency',\n component: EnergyEfficiency,\n name: 'energyEfficiency',\n meta: { title: '能效评价', role: ['admin', 'editor'], icon: 'listline', visible: true },\n },\n // {\n // path: 'evaluateTotal',\n // component: (evaluate as unknown) as VueConstructor,\n // name: 'evaluateTotal',\n // meta: { title: '整体分析', role: ['admin', 'editor'], icon: 'listline' },\n // },\n ],\n};\n\nexport default evaluateRouter;\n","import Router, { RouteConfig } from 'vue-router';\nimport dataRouter, { iesDataRouter } from './data-management';\n\nimport DataView from '@/layout/data-manage/data-view.vue';\nimport Diagram from '@/views/Diagram';\nimport Layout from '@/layout/layout.vue';\nimport PrioritizationScheme from '@/prioritization/prioritization-scheme/prioritization-scheme.vue';\nimport Vue, { VueConstructor } from 'vue';\nimport digitalTwins from '@/component/DigitalTwins/index.vue';\nimport evaluateRouter from '@/component/evaluate/router';\nimport { message } from 'ant-design-vue';\nimport store from '../store/store';\nconst ProjectOverView = (): unknown => import('@/component/project/project-overview.vue');\nVue.use(Router);\nconst routes: RouteConfig[] = [\n {\n path: '/',\n name: 'indexpage',\n component: Layout,\n meta: { requireAuth: true },\n children: [\n {\n path: 'diagram',\n name: 'diagram',\n component: Diagram,\n meta: { requireAuth: true },\n },\n {\n path: 'gmm',\n name: 'gmm',\n component: Diagram,\n meta: { requireAuth: true },\n },\n {\n path: 'scenario-generate',\n name: 'scenario-generate',\n component: Diagram,\n meta: { requireAuth: true },\n },\n {\n path: 'resilience-eval',\n name: 'resilience-eval',\n component: Diagram,\n meta: { requireAuth: true },\n },\n {\n path: 'resilience-plan',\n name: 'resilience-plan',\n component: Diagram,\n meta: { requireAuth: true },\n },\n {\n path: 'resilience-recovery',\n name: 'resilience-recovery',\n component: Diagram,\n meta: { requireAuth: true },\n },\n ],\n },\n {\n path: '/request_auth',\n name: 'request_auth',\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n component: () => import('@/component/request/request-auth.vue'),\n meta: { title: 'request', permission: ['admin', 'user'] },\n },\n {\n path: '/header',\n name: '/header',\n redirect: '/header/data/weather',\n component: Layout,\n children: [\n dataRouter,\n {\n path: 'scheme',\n name: 'scheme',\n component: DataView,\n meta: { requireAuth: true },\n redirect: 'scheme/prioritization',\n children: [\n {\n path: 'prioritization',\n component: PrioritizationScheme,\n name: 'prioritization',\n meta: {\n title: '优化方案',\n role: ['admin', 'editor'],\n icon: 'weather',\n },\n },\n ],\n },\n evaluateRouter,\n {\n path: 'digitalTwins',\n name: 'digitalTwins',\n component: DataView,\n meta: { requireAuth: true },\n redirect: 'digitalTwins/index',\n children: [\n {\n path: 'index',\n component: digitalTwins,\n name: 'digitalTwins-index',\n meta: {\n title: '数字孪生体交付',\n role: ['admin', 'editor'],\n // icon: 'weather',\n },\n },\n ],\n },\n ],\n },\n {\n path: '/ies',\n name: '/ies',\n component: Layout,\n meta: { requireAuth: true },\n redirect: '/ies/simu/open/',\n children: [\n {\n path: 'diagram',\n name: 'ies/diagram',\n component: Diagram,\n meta: { title: '综合能源建模仿真平台', requireAuth: true },\n },\n {\n path: 'run-simulation',\n name: 'ies/run-simulation',\n component: Diagram,\n meta: { title: '综合能源建模仿真平台', requireAuth: true },\n },\n {\n path: 'run-optimization',\n name: 'ies/run-optimization',\n component: Diagram,\n meta: { title: '综合能源建模仿真平台', requireAuth: true },\n },\n ],\n },\n {\n path: '/ies/header',\n name: '/ies/header',\n component: Layout,\n meta: { requireAuth: true },\n redirect: '/ies/header/data/weather',\n children: [iesDataRouter],\n },\n {\n path: '/project',\n name: '/project',\n component: Layout,\n redirect: '/project/overview',\n meta: { requireAuth: true },\n children: [\n {\n path: 'overview',\n name: 'overview',\n component: ProjectOverView as unknown as VueConstructor,\n meta: { requireAuth: true, title: '项目概览', role: ['admin', 'editor'] },\n },\n ],\n },\n];\n\nexport const newrouter = new Router({\n mode: 'history',\n base: 'ieslab',\n routes: routes,\n});\n\n//路由免疫名单\n\nconst whiteList = ['/request_auth'];\n\nnewrouter.beforeEach((to, from, next) => {\n if ((to.meta as Record).title) {\n document.title = (to.meta as Record).title as string;\n } else {\n document.title = '综合能源规划设计平台';\n }\n\n const redirect = decodeURIComponent((from.query.redirect as string) || to.path);\n //白名单判断\n if (whiteList.indexOf(to.path) >= 0) {\n next();\n } else {\n const token = (JSON.parse(localStorage.getItem('ACCESS-TOKEN') as string) as { value: string })?.value;\n if (store.getters.getToken.length === 0) {\n store.commit('setToken', token);\n }\n /** 在每次跳转后都进行用户验证 */\n store\n .dispatch('putUserInfo')\n .then(() => {\n if (to.path === redirect) {\n next();\n } else next(redirect);\n })\n .catch((e) => {\n console.log(e);\n void message.warn('权限验证不通过,已返回登陆页!');\n /** 发生错误时无脑跳到登录页 */\n const url = new URL(`${location.origin}/account`);\n window.open(url.href, '_self');\n });\n }\n});\nexport default newrouter;\nexport { routes };\n","import dayjs from 'dayjs';\n/**printVersion */\nexport function printVersion(): void {\n const IS_PROD = ['production'].includes(process.env.NODE_ENV as string);\n const color = IS_PROD ? 'green' : '#40a9ff';\n const style = `color:#fff;background-color:${color};border-radius:2px;`;\n print('当前版本', process.env.VUE_APP_VERSION, style);\n print(IS_PROD ? '构筑日期' : '启动时间', dayjs(Number(process.env.VUE_APP_COMPILE_TIME) ?? null).format('YYYY-MM-DD HH:mm:ss'), style);\n}\n/**print */\nfunction print(title: string, info: string | undefined, style: string): void {\n console.log(`%c ${title}: %c ${info ?? ''} `, style, '');\n}\n","import Vue from 'vue';\nimport App from '@/App.vue';\nimport router from './router/router';\nimport store from './store/store';\nimport Antd from 'ant-design-vue';\nimport { printVersion } from './Utils/version';\nimport VueCompositionAPI from '@vue/composition-api';\nprintVersion();\n// import 'ant-design-vue/dist/antd.less';\n\nVue.use(Antd);\nVue.use(VueCompositionAPI);\nVue.config.productionTip = false;\nrequire('@/assets/font/iconfont.js');\nimport '@/assets/font/iconfont.css';\nrequire('@/assets/font_2033331_hfi48kq1kxv/iconfont.js');\nimport '@/assets/font_2033331_hfi48kq1kxv/iconfont.css';\nconst eventBus = new Vue({ store });\nconst VueInstance = new Vue({\n router,\n store,\n render: (h) => h(App),\n}).$mount('#app');\n\nexport { VueInstance, eventBus };\n","module.exports = __webpack_public_path__ + \"img/所得税后.aa9632f7.svg\";","import ExcelJS, { Worksheet, Workbook } from 'exceljs';\nimport { set, zip, concat } from 'lodash';\nimport MessageBus from '@/Utils/message/message-bus';\nimport { dateFormat } from '@/Utils/date-format';\nimport excelMap from './source';\nimport { removeDuplicates } from '@/Utils/average';\n\n/**\n *读取配置\n */\ninterface LoadOption {\n /**\n * 验证数组\n */\n verification: Array;\n /**\n * 映射信息\n */\n mapInfo: Array<{\n condition?: Array<{ position: { row: number; column: number }; value: string | number }>;\n filedMap: Array<{ path: Array; position: { row: number; column: number }; type?: 'date' }>;\n }>;\n}\n\n/**\n * 工具类,加载数据、上传数据请写在此处\n *\n */\nexport default class Tools {\n /**\n * map\n */\n static map = excelMap;\n /**\n * @author guan\n * @description 初始化模板\n * @return void\n * @param type\n */\n static initTemplate(type: string): Record {\n return Tools.map[type];\n }\n\n /**\n * 特殊字符\n */\n static specialCharacters = ['*', '?', ':', '/', '\\\\', '[', ']'];\n /**\n * @author guan\n * @description 初始化excel 文件\n * @return void\n * @param fileName 文件名\n * @param type 类型\n * @param transposition 是否转置\n * @param initData 初始化处理数据\n */\n static initXlsxFile(\n fileName: string,\n type: string,\n //eslint-disable-next-line\n initData?: any,\n transposition?: (Worksheet: Worksheet) => Promise,\n ): void {\n const dictList = Tools.initTemplate(type);\n if (dictList == null) {\n throw new Error('导出文件模板不存在');\n }\n const tHeader = Object.keys(dictList);\n const filterVal = tHeader.map((x) => dictList[x]);\n if (transposition) {\n /** 需要转置的时候,调用另外的处理方法 */\n Tools.init(fileName, tHeader, undefined, transposition).catch((e) => e);\n } else {\n if (initData) {\n const data = Tools.formatJson(filterVal, initData);\n Tools.init(fileName, tHeader, data).catch((e) => e);\n }\n }\n }\n\n /**\n * @author guan\n * @description 初始化excel 数据\n * @return void\n * @param fileName 文件名\n * @param type 类型\n * @param initData 初始化处理数据\n */\n static initXlsxData(\n fileName: string,\n type: string,\n //eslint-disable-next-line\n initData?: any,\n ): { tHeader: string[]; data: string[][] } {\n const dictList = Tools.initTemplate(type);\n const tHeader = Object.keys(dictList);\n if (Object.keys(initData).length > 0) {\n const filterVal = tHeader.map((x) => dictList[x]);\n const data = Tools.formatJson(filterVal, initData);\n return { tHeader: tHeader, data: data };\n } else {\n return { tHeader: tHeader, data: [] };\n }\n }\n\n /**\n * 简单excel导出\n */\n static async exportXlsxFile(fileName: string, sheets: Array<{ name?: string; data: unknown[][] }>): Promise {\n const workbook = new ExcelJS.Workbook();\n /** 添加工作簿创建者 */\n workbook.creator = 'idpdp';\n /** 创建时间 */\n workbook.created = new Date();\n workbook.properties.date1904 = true;\n workbook.views = [\n {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n firstSheet: 0,\n activeTab: 1,\n visibility: 'visible',\n },\n ];\n\n sheets.forEach((sheet) => {\n if (sheet.data.length > 1) {\n const worksheet = workbook.addWorksheet();\n if (sheet.name != null) {\n worksheet.name = sheet.name;\n }\n sheet.data.forEach((rowData) => worksheet.addRow(rowData));\n worksheet.columns.forEach((column) => (column.width = 25));\n }\n });\n\n const buffer = await workbook.xlsx.writeBuffer();\n Tools.download(buffer, fileName);\n }\n\n /**\n * @author guan\n * @description 初始化工簿\n * @param sheetName 工作簿名称\n * @param Header 表头\n * @param data 数据data,缺失時必须传入回调函数\n * @param initStyle 回调,需要生成特殊格式,在具体的组件中添加回调\n * @return Promise 异步加载\n */\n static async init(sheetName: string, Header?: string[], data?: string[][], initStyle?: (Worksheet: Worksheet) => Promise): Promise {\n const workbook = new ExcelJS.Workbook();\n /** 添加工作簿创建者 */\n workbook.creator = 'idpdp';\n /** 创建时间 */\n workbook.created = new Date();\n /** 将工作簿日期设置为 1904 年日期系统 */\n workbook.properties.date1904 = true;\n workbook.views = [\n {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n firstSheet: 0,\n activeTab: 1,\n visibility: 'visible',\n },\n ];\n if (this.specialCharacters.find((x) => sheetName.includes(x))) {\n const name = sheetName.split('-')[0];\n sheetName = name + '-' + '生产厂商';\n }\n const sheet = workbook.addWorksheet(sheetName);\n /** 自定义,不从简单模板走 */\n if (initStyle) {\n initStyle(sheet)\n .then(async () => {\n const buffer = await workbook.xlsx.writeBuffer();\n Tools.download(buffer, sheetName);\n })\n .catch((e) => e);\n } else {\n if (Header) {\n sheet.columns = Header.map((x) => {\n return {\n header: x,\n key: x,\n width: 18,\n style: { alignment: { horizontal: 'center', vertical: 'middle' } },\n };\n });\n } else\n sheet.columns = [\n { header: 'Id', key: 'id', width: 16 },\n { header: 'Name', key: 'name', width: 16 },\n { header: 'D.O.B.', key: 'DOB', width: 16, outlineLevel: 1 },\n ];\n if (data) {\n data.forEach((x, index) => {\n const row = sheet.getRow(index + 2);\n row.values = x;\n });\n }\n const buffer = await workbook.xlsx.writeBuffer();\n Tools.download(buffer, sheetName);\n }\n }\n\n /**\n * MultipleSheet\n *\n * @author dev_guan\n * @description 初始化工簿\n * @param sheetName 工作簿名称\n * @return Promise 异步加载\n */\n static async initMultipleSheet(fileName: string, sheets: string[], initStyle?: (Workbook: Workbook) => Promise): Promise {\n const workbook = new ExcelJS.Workbook();\n /** 添加工作簿创建者 */\n workbook.creator = 'idpdp';\n /** 创建时间 */\n workbook.created = new Date();\n /** 将工作簿日期设置为 1904 年日期系统 */\n workbook.properties.date1904 = true;\n workbook.views = [\n {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n firstSheet: 0,\n activeTab: 1,\n visibility: 'visible',\n },\n ];\n sheets.forEach((x) => {\n workbook.addWorksheet(x);\n });\n\n if (initStyle) {\n initStyle(workbook)\n .then(async () => {\n const buffer = await workbook.xlsx.writeBuffer();\n Tools.download(buffer, fileName);\n })\n .catch((e) => e);\n } else {\n const buffer = await workbook.xlsx.writeBuffer();\n Tools.download(buffer, fileName);\n }\n }\n\n /**\n * @author guan\n * @description 初始化工簿\n * @param sheetName 工作簿名称\n * @param Header 表头\n * @param data 数据data,缺失時必须传入回调函数\n * @param initStyle 回调,需要生成特殊格式,在具体的组件中添加回调\n * @return Promise 异步加载\n */\n static async initSheets(sheetName: string, data: string[][][], typicalDay: string[], header?: string[]): Promise {\n const workbook = new ExcelJS.Workbook();\n /** 添加工作簿创建者 */\n workbook.creator = 'idpdp';\n /** 创建时间 */\n workbook.created = new Date();\n /** 将工作簿日期设置为 1904 年日期系统 */\n workbook.properties.date1904 = true;\n workbook.views = [\n {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n firstSheet: 0,\n activeTab: 1,\n visibility: 'visible',\n },\n ];\n\n if (header && header.length > 0) {\n /** 新增工作表 */\n data.forEach((value, key) => {\n const sheet = workbook.addWorksheet(typicalDay[key]);\n if (value.length === 0) {\n return;\n }\n sheet.columns = header.map((x) => {\n return {\n header: x,\n key: x,\n width: 18,\n style: { alignment: { horizontal: 'center', vertical: 'middle' } },\n };\n });\n sheet.addRows(value);\n });\n } else {\n const list = data[0].map((x) => {\n return Object.keys(x);\n });\n /** 新增工作表 */\n data.forEach((value, key) => {\n const sheet = workbook.addWorksheet(typicalDay[key]);\n if (value.length === 0) {\n return;\n }\n sheet.columns = list[0].map((x) => {\n return {\n header: x,\n key: x,\n width: 18,\n style: { alignment: { horizontal: 'center', vertical: 'middle' } },\n };\n });\n sheet.addRows(value);\n });\n }\n\n const buffer = await workbook.xlsx.writeBuffer();\n Tools.download(buffer, sheetName);\n }\n\n /**\n * @author guan\n * @description 下载接口\n * @return void\n * @param buffer 接受一个buffer源\n * @param title 下载标题\n */\n static download(buffer: BufferSource, title: string): void {\n const file = new File([buffer], `${title}.xlsx`);\n const blobURL = window.URL.createObjectURL(file);\n // 创建a标签,用于跳转至下载链接\n const tempLink = document.createElement('a');\n tempLink.style.display = 'none';\n tempLink.href = blobURL;\n tempLink.setAttribute('download', decodeURI(file.name));\n // 兼容:某些浏览器不支持HTML5的download属性\n if (typeof tempLink.download === 'undefined') {\n tempLink.setAttribute('target', '_blank');\n }\n // 挂载a标签\n document.body.appendChild(tempLink);\n tempLink.click();\n document.body.removeChild(tempLink);\n // 释放blob URL地址\n window.URL.revokeObjectURL(blobURL);\n }\n\n /**\n * userUpload\n */\n static async userUpload(): Promise {\n return new Promise((resolve) => {\n const input = document.createElement('input');\n input.type = 'file';\n input.oninput = () => {\n if (input.files != null) {\n resolve(input.files[0]);\n } else {\n resolve(null);\n }\n input.remove();\n };\n input.click();\n });\n }\n /**\n * @author guan\n * @description 在路径为对象,拥有特殊处理方式\n * @return void\n */\n static handleData(j: { route: string; deal: (data) => string }, jsonData: Record): string {\n const router = j.route.split('.');\n let value;\n router.forEach((x, y) => {\n if (y === 0) {\n value = jsonData[x];\n } else {\n value = value[x];\n }\n });\n return j.deal(value);\n }\n /**\n * @author guan\n * @description 路径解析\n * @return void\n */\n //eslint-disable-next-line\n static formatJson(filterVal: string[], jsonData: any): string[][] {\n const data = filterVal.map((j) => {\n if (typeof j === 'object') {\n return Tools.handleData(j, jsonData);\n } else {\n const router = j.split('.');\n let value;\n router.forEach((x, y) => {\n if (y === 0) {\n value = jsonData[x];\n } else {\n value = value[x];\n }\n });\n return [value];\n }\n });\n return zip(...data);\n }\n\n /**\n * 从Excel文件读取数据, 单sheet\n */\n static async loadDataByExcel(file: File, verification?: Array): Promise {\n /**\n * 格式化数据\n */\n function formatTimeString(testField: unknown): unknown {\n if ((testField as object) instanceof Date) {\n const newDate = testField as Date;\n newDate.setHours(newDate.getHours() - 8);\n return dateFormat('hh:MM', newDate);\n }\n return testField;\n }\n const result = new Array();\n const workbook = new ExcelJS.Workbook();\n /**\n * arrayBuffer 不适合处理大数据量文件,会一次性占满整个浏览器内存导致浏览器崩溃\n * 建议后台处理该部分上传,下载excel逻辑\n */\n await workbook.xlsx.load(await file.arrayBuffer());\n\n //库的问题, 不遍历一遍列,下面遍历行的时候就会忽略掉空单元格,我也不知道为什么\n workbook.worksheets[0].columns.forEach((item) => {\n item.values;\n });\n workbook.worksheets[0].eachRow((row) => {\n if (row.model) {\n if (row.model.cells) {\n result.push(\n row.model.cells.map((cell) => {\n if (cell.result != null) {\n return formatTimeString(cell.result) as string;\n } else if (cell.value != null) {\n return formatTimeString(cell.value) as string;\n } else {\n return '';\n }\n }),\n );\n }\n }\n });\n if (verification != null) {\n let isPassesValidation = true;\n verification.forEach((item, index) => {\n if (item === null) {\n return;\n }\n if (!String(result[0][index]).includes(item)) {\n isPassesValidation = false;\n }\n });\n if (!isPassesValidation) {\n // MessageBus.Notification('error', { description: 'excel格式不正确', message: '提示' });\n }\n }\n return result;\n }\n\n /**\n * 从Excel文件读取数据, 单sheet,自定义负荷模块数据处理\n */\n static async loadDataByExcelByDate(file: File, verification?: Array): Promise {\n /**\n *\n */\n function formatTimeString(testField: unknown): unknown {\n if ((testField as object) instanceof Date) {\n const newDate = testField as Date;\n newDate.setHours(newDate.getHours() - 8);\n return dateFormat('yy-mm-dd hh:MM:ss', newDate);\n }\n return testField;\n }\n const result = new Array();\n const workbook = new ExcelJS.Workbook();\n /**\n * arrayBuffer 不适合处理大数据量文件,会一次性占满整个浏览器内存导致浏览器崩溃\n *\n * 建议后台处理该部分上传,下载excel逻辑\n */\n await workbook.xlsx.load(await file.arrayBuffer());\n\n //库的问题, 不遍历一遍列,下面遍历行的时候就会忽略掉空单元格,我也不知道为什么\n workbook.worksheets[0].columns.forEach((item) => {\n item.values;\n });\n workbook.worksheets[0].eachRow((row) => {\n if (row.model) {\n if (row.model.cells) {\n result.push(\n row.model.cells.map((cell) => {\n if (cell.result != null) {\n return formatTimeString(cell.result) as string;\n } else if (cell.value != null) {\n return formatTimeString(cell.value) as string;\n } else {\n return '';\n }\n }),\n );\n }\n }\n });\n if (verification != null) {\n let isPassesValidation = true;\n verification.forEach((item, index) => {\n if (item === null) {\n return;\n }\n if (!String(result[0][index]).includes(item)) {\n isPassesValidation = false;\n }\n });\n if (!isPassesValidation) {\n throw new Error('excel格式不正确');\n }\n }\n return result;\n }\n\n /**\n * 从Excel文件读取数据, 多sheets\n */\n static async loadDataByExcelMultipleSheets(file: File): Promise {\n /**\n *\n */\n function formatTimeString(testField: unknown): unknown {\n if ((testField as object) instanceof Date) {\n const newDate = testField as Date;\n newDate.setHours(newDate.getHours() - 8);\n return dateFormat('hh:MM', newDate);\n }\n return testField;\n }\n const result = new Array();\n const workbook = new ExcelJS.Workbook();\n /**\n * arrayBuffer 不适合处理大数据量文件,会一次性占满整个浏览器内存导致浏览器崩溃\n * 建议后台处理该部分上传,下载excel逻辑\n */\n await workbook.xlsx.load(await file.arrayBuffer());\n workbook.eachSheet((worksheet) => {\n //库的问题, 不遍历一遍列,下面遍历行的时候就会忽略掉空单元格,我也不知道为什么\n worksheet.columns.forEach((item) => {\n item.values;\n });\n worksheet.eachRow((row) => {\n if (row.model) {\n if (row.model.cells) {\n result.push(\n row.model.cells.map((cell) => {\n if (cell.result != null) {\n return formatTimeString(cell.result) as string;\n } else if (cell.value != null) {\n return formatTimeString(cell.value) as string;\n } else {\n return '';\n }\n }),\n );\n }\n }\n });\n return result;\n });\n return result;\n }\n\n /**\n *根据配置从excel读取数据并转换成需要的字典\n */\n static async loadDataFromExcelByOption(file: File, option: LoadOption): Promise {\n const data = await this.loadDataByExcel(file);\n const verifyFields = data.shift() as string[];\n return data.map((rowData) => this.loadRowDataFromExcelByOption(rowData, verifyFields, option));\n }\n\n /**\n *\n */\n static loadRowDataFromExcelByOption(data: string[], verifyFields: string[], option: LoadOption): object {\n const result = {};\n let isPassesValidation = true;\n option.verification.forEach((item, index) => {\n if (item === null) {\n return;\n }\n if (item !== verifyFields[index]) {\n isPassesValidation = false;\n }\n });\n if (!isPassesValidation) {\n MessageBus.Notification('warning', { description: 'excel格式不正确', message: '提示' });\n throw new Error('excel格式不正确');\n }\n const mapInfo = option.mapInfo.find((item) => {\n if (item.condition == null) {\n return true;\n } else {\n return item.condition\n .map((item) => {\n return data[item.position.column] === item.value;\n })\n .reduce((item, isSatisfyTheCondition) => {\n return item && isSatisfyTheCondition;\n });\n }\n });\n if (mapInfo == null) {\n MessageBus.Notification('warning', { description: '格式不正确', message: '提示' });\n throw new Error('excel格式不正确');\n }\n mapInfo.filedMap.forEach((item) => {\n let cellData: unknown;\n if (item.type === 'date') {\n cellData = new Date(data[item.position.column]);\n } else {\n cellData = data[item.position.column];\n }\n set(result, item.path, cellData);\n });\n MessageBus.Notification('success', { message: '成功上传数据!', description: '' });\n return result;\n }\n\n /**\n *让浏览器下载文件\n */\n static downloadFile(file: File): void {\n const blobURL = window.URL.createObjectURL(file);\n const tempLink = document.createElement('a');\n tempLink.style.display = 'none';\n tempLink.href = blobURL;\n tempLink.setAttribute('download', decodeURI(file.name));\n document.body.appendChild(tempLink);\n tempLink.click();\n document.body.removeChild(tempLink);\n }\n\n /**\n * 生成优化方案数据\n */\n static async initNewSheets(title: string, data: string[][], header?: string[]): Promise {\n const workbook = new ExcelJS.Workbook();\n /** 添加工作簿创建者 */\n workbook.creator = 'idpdp';\n /** 创建时间 */\n workbook.created = new Date();\n /** 将工作簿日期设置为 1904 年日期系统 */\n workbook.properties.date1904 = true;\n workbook.views = [\n {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n firstSheet: 0,\n activeTab: 1,\n visibility: 'visible',\n },\n ];\n if (!header) {\n const sheetsName = removeDuplicates(\n data.map((item) => {\n return item[0]['元件自定义名称'];\n }),\n );\n const list = data[0].map((x) => {\n return Object.keys(x);\n });\n /** 新增工作表 */\n data.forEach((value, key) => {\n const sheetName = sheetsName[key];\n const sheet = workbook.addWorksheet(sheetName);\n const header = concat(['日期'], list[0].slice(0, -1));\n sheet.columns = header.map((x) => {\n return {\n header: x,\n key: x,\n width: 18,\n style: { alignment: { horizontal: 'center', vertical: 'middle' } },\n };\n });\n sheet.addRows(value);\n });\n } else {\n const sheet = workbook.addWorksheet();\n sheet.columns = header.map((x) => {\n return {\n header: x,\n key: x,\n width: 18,\n style: { alignment: { horizontal: 'center', vertical: 'middle' } },\n };\n });\n sheet.addRows(data);\n }\n\n const buffer = await workbook.xlsx.writeBuffer();\n Tools.download(buffer, title);\n }\n}\n","import { message, notification } from 'ant-design-vue';\nimport { NotificationOptions } from 'ant-design-vue/types/notification';\ntype type = 'success' | 'info' | 'warning' | 'warn' | 'error' | 'loading';\n/**\n * @author guan\n * @description 消息总线\n */\nexport default class MessageBus {\n /** 消息内容 */\n readonly content = '默认值';\n /** 延时关闭时间 */\n readonly type: type = 'info';\n /**\n * @author guan\n * @description 全局提示\n * @return void\n * @param level 级别\n * @param content\n * @param duration\n */\n static Message(level: type, content: string, duration?: number) {\n message[level](content, duration);\n }\n /**\n * @author guan\n * @description 全局提醒框\n * @return void\n * @param level 级别\n * @param Config 通知框Options\n */\n static Notification(level: type, Config: NotificationOptions) {\n if (Object.prototype.hasOwnProperty.call(Config, 'duration')) {\n notification[level as keyof typeof notification](Config as never);\n } else notification[level as keyof typeof notification]({ ...Config, duration: 2 } as never);\n }\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./navigation.vue?vue&type=style&index=0&id=bd5324cc&scoped=true&lang=less&\"","var map = {\n\t\"./af\": \"c00a\",\n\t\"./af.js\": \"c00a\",\n\t\"./ar\": \"c97e\",\n\t\"./ar-dz\": \"0162\",\n\t\"./ar-dz.js\": \"0162\",\n\t\"./ar-kw\": \"fae4\",\n\t\"./ar-kw.js\": \"fae4\",\n\t\"./ar-ly\": \"aa71\",\n\t\"./ar-ly.js\": \"aa71\",\n\t\"./ar-ma\": \"5d88\",\n\t\"./ar-ma.js\": \"5d88\",\n\t\"./ar-sa\": \"a10a\",\n\t\"./ar-sa.js\": \"a10a\",\n\t\"./ar-tn\": \"152f\",\n\t\"./ar-tn.js\": \"152f\",\n\t\"./ar.js\": \"c97e\",\n\t\"./az\": \"54cd\",\n\t\"./az.js\": \"54cd\",\n\t\"./be\": \"3dd4\",\n\t\"./be.js\": \"3dd4\",\n\t\"./bg\": \"a802\",\n\t\"./bg.js\": \"a802\",\n\t\"./bm\": \"7cd9\",\n\t\"./bm.js\": \"7cd9\",\n\t\"./bn\": \"7151\",\n\t\"./bn.js\": \"7151\",\n\t\"./bo\": \"323a\",\n\t\"./bo.js\": \"323a\",\n\t\"./br\": \"3138\",\n\t\"./br.js\": \"3138\",\n\t\"./bs\": \"acbc\",\n\t\"./bs.js\": \"acbc\",\n\t\"./ca\": \"0876\",\n\t\"./ca.js\": \"0876\",\n\t\"./cs\": \"0aef\",\n\t\"./cs.js\": \"0aef\",\n\t\"./cv\": \"8be7\",\n\t\"./cv.js\": \"8be7\",\n\t\"./cy\": \"6764\",\n\t\"./cy.js\": \"6764\",\n\t\"./da\": \"7612\",\n\t\"./da.js\": \"7612\",\n\t\"./de\": \"4da8\",\n\t\"./de-at\": \"976e\",\n\t\"./de-at.js\": \"976e\",\n\t\"./de-ch\": \"686e\",\n\t\"./de-ch.js\": \"686e\",\n\t\"./de.js\": \"4da8\",\n\t\"./dv\": \"39df\",\n\t\"./dv.js\": \"39df\",\n\t\"./el\": \"4c94\",\n\t\"./el.js\": \"4c94\",\n\t\"./en-SG\": \"f58c\",\n\t\"./en-SG.js\": \"f58c\",\n\t\"./en-au\": \"4415\",\n\t\"./en-au.js\": \"4415\",\n\t\"./en-ca\": \"499b\",\n\t\"./en-ca.js\": \"499b\",\n\t\"./en-gb\": \"4e86\",\n\t\"./en-gb.js\": \"4e86\",\n\t\"./en-ie\": \"7c7e\",\n\t\"./en-ie.js\": \"7c7e\",\n\t\"./en-il\": \"f923\",\n\t\"./en-il.js\": \"f923\",\n\t\"./en-nz\": \"f766\",\n\t\"./en-nz.js\": \"f766\",\n\t\"./eo\": \"8135\",\n\t\"./eo.js\": \"8135\",\n\t\"./es\": \"6ebc\",\n\t\"./es-do\": \"e481\",\n\t\"./es-do.js\": \"e481\",\n\t\"./es-us\": \"d75c\",\n\t\"./es-us.js\": \"d75c\",\n\t\"./es.js\": \"6ebc\",\n\t\"./et\": \"e662\",\n\t\"./et.js\": \"e662\",\n\t\"./eu\": \"65b7\",\n\t\"./eu.js\": \"65b7\",\n\t\"./fa\": \"0028\",\n\t\"./fa.js\": \"0028\",\n\t\"./fi\": \"5fd1\",\n\t\"./fi.js\": \"5fd1\",\n\t\"./fo\": \"72f4\",\n\t\"./fo.js\": \"72f4\",\n\t\"./fr\": \"6e81\",\n\t\"./fr-ca\": \"c471\",\n\t\"./fr-ca.js\": \"c471\",\n\t\"./fr-ch\": \"f797\",\n\t\"./fr-ch.js\": \"f797\",\n\t\"./fr.js\": \"6e81\",\n\t\"./fy\": \"d8b9\",\n\t\"./fy.js\": \"d8b9\",\n\t\"./ga\": \"064e\",\n\t\"./ga.js\": \"064e\",\n\t\"./gd\": \"94ef\",\n\t\"./gd.js\": \"94ef\",\n\t\"./gl\": \"c74b\",\n\t\"./gl.js\": \"c74b\",\n\t\"./gom-latn\": \"5601\",\n\t\"./gom-latn.js\": \"5601\",\n\t\"./gu\": \"2a3d\",\n\t\"./gu.js\": \"2a3d\",\n\t\"./he\": \"9669\",\n\t\"./he.js\": \"9669\",\n\t\"./hi\": \"e85f\",\n\t\"./hi.js\": \"e85f\",\n\t\"./hr\": \"bf5e\",\n\t\"./hr.js\": \"bf5e\",\n\t\"./hu\": \"9901\",\n\t\"./hu.js\": \"9901\",\n\t\"./hy-am\": \"012e\",\n\t\"./hy-am.js\": \"012e\",\n\t\"./id\": \"ba8c\",\n\t\"./id.js\": \"ba8c\",\n\t\"./is\": \"c6c1\",\n\t\"./is.js\": \"c6c1\",\n\t\"./it\": \"6101\",\n\t\"./it-ch\": \"b2d4\",\n\t\"./it-ch.js\": \"b2d4\",\n\t\"./it.js\": \"6101\",\n\t\"./ja\": \"f2b8\",\n\t\"./ja.js\": \"f2b8\",\n\t\"./jv\": \"d9e8\",\n\t\"./jv.js\": \"d9e8\",\n\t\"./ka\": \"4d4c\",\n\t\"./ka.js\": \"4d4c\",\n\t\"./kk\": \"b770\",\n\t\"./kk.js\": \"b770\",\n\t\"./km\": \"b388\",\n\t\"./km.js\": \"b388\",\n\t\"./kn\": \"a056\",\n\t\"./kn.js\": \"a056\",\n\t\"./ko\": \"44157\",\n\t\"./ko.js\": \"44157\",\n\t\"./ku\": \"27e5\",\n\t\"./ku.js\": \"27e5\",\n\t\"./ky\": \"d2f5\",\n\t\"./ky.js\": \"d2f5\",\n\t\"./lb\": \"01fe\",\n\t\"./lb.js\": \"01fe\",\n\t\"./lo\": \"d759\",\n\t\"./lo.js\": \"d759\",\n\t\"./lt\": \"d47b\",\n\t\"./lt.js\": \"d47b\",\n\t\"./lv\": \"3793\",\n\t\"./lv.js\": \"3793\",\n\t\"./me\": \"b26f\",\n\t\"./me.js\": \"b26f\",\n\t\"./mi\": \"d0b2\",\n\t\"./mi.js\": \"d0b2\",\n\t\"./mk\": \"8357\",\n\t\"./mk.js\": \"8357\",\n\t\"./ml\": \"b4f4\",\n\t\"./ml.js\": \"b4f4\",\n\t\"./mn\": \"c7bf\",\n\t\"./mn.js\": \"c7bf\",\n\t\"./mr\": \"96b4\",\n\t\"./mr.js\": \"96b4\",\n\t\"./ms\": \"9bf3\",\n\t\"./ms-my\": \"64f3\",\n\t\"./ms-my.js\": \"64f3\",\n\t\"./ms.js\": \"9bf3\",\n\t\"./mt\": \"44b6\",\n\t\"./mt.js\": \"44b6\",\n\t\"./my\": \"35e8\",\n\t\"./my.js\": \"35e8\",\n\t\"./nb\": \"cd6b\",\n\t\"./nb.js\": \"cd6b\",\n\t\"./ne\": \"ee29\",\n\t\"./ne.js\": \"ee29\",\n\t\"./nl\": \"fd25\",\n\t\"./nl-be\": \"11d4\",\n\t\"./nl-be.js\": \"11d4\",\n\t\"./nl.js\": \"fd25\",\n\t\"./nn\": \"a90d\",\n\t\"./nn.js\": \"a90d\",\n\t\"./pa-in\": \"048e\",\n\t\"./pa-in.js\": \"048e\",\n\t\"./pl\": \"b099\",\n\t\"./pl.js\": \"b099\",\n\t\"./pt\": \"8cc1\",\n\t\"./pt-br\": \"cd1a\",\n\t\"./pt-br.js\": \"cd1a\",\n\t\"./pt.js\": \"8cc1\",\n\t\"./ro\": \"4f7b\",\n\t\"./ro.js\": \"4f7b\",\n\t\"./ru\": \"4a7a\",\n\t\"./ru.js\": \"4a7a\",\n\t\"./sd\": \"441d\",\n\t\"./sd.js\": \"441d\",\n\t\"./se\": \"1e99\",\n\t\"./se.js\": \"1e99\",\n\t\"./si\": \"6c0c\",\n\t\"./si.js\": \"6c0c\",\n\t\"./sk\": \"5234\",\n\t\"./sk.js\": \"5234\",\n\t\"./sl\": \"f896\",\n\t\"./sl.js\": \"f896\",\n\t\"./sq\": \"34ed\",\n\t\"./sq.js\": \"34ed\",\n\t\"./sr\": \"849e\",\n\t\"./sr-cyrl\": \"85d6\",\n\t\"./sr-cyrl.js\": \"85d6\",\n\t\"./sr.js\": \"849e\",\n\t\"./ss\": \"4061\",\n\t\"./ss.js\": \"4061\",\n\t\"./sv\": \"d88f\",\n\t\"./sv.js\": \"d88f\",\n\t\"./sw\": \"e7a7\",\n\t\"./sw.js\": \"e7a7\",\n\t\"./ta\": \"d3b3\",\n\t\"./ta.js\": \"d3b3\",\n\t\"./te\": \"eed5\",\n\t\"./te.js\": \"eed5\",\n\t\"./tet\": \"b816\",\n\t\"./tet.js\": \"b816\",\n\t\"./tg\": \"8a7b\",\n\t\"./tg.js\": \"8a7b\",\n\t\"./th\": \"19cc\",\n\t\"./th.js\": \"19cc\",\n\t\"./tl-ph\": \"672a\",\n\t\"./tl-ph.js\": \"672a\",\n\t\"./tlh\": \"3f0d\",\n\t\"./tlh.js\": \"3f0d\",\n\t\"./tr\": \"b6ff\",\n\t\"./tr.js\": \"b6ff\",\n\t\"./tzl\": \"3455\",\n\t\"./tzl.js\": \"3455\",\n\t\"./tzm\": \"4707\",\n\t\"./tzm-latn\": \"022c\",\n\t\"./tzm-latn.js\": \"022c\",\n\t\"./tzm.js\": \"4707\",\n\t\"./ug-cn\": \"39ef\",\n\t\"./ug-cn.js\": \"39ef\",\n\t\"./uk\": \"6901\",\n\t\"./uk.js\": \"6901\",\n\t\"./ur\": \"bc69\",\n\t\"./ur.js\": \"bc69\",\n\t\"./uz\": \"1d5c\",\n\t\"./uz-latn\": \"1f6a\",\n\t\"./uz-latn.js\": \"1f6a\",\n\t\"./uz.js\": \"1d5c\",\n\t\"./vi\": \"9128\",\n\t\"./vi.js\": \"9128\",\n\t\"./x-pseudo\": \"a886\",\n\t\"./x-pseudo.js\": \"a886\",\n\t\"./yo\": \"1db8\",\n\t\"./yo.js\": \"1db8\",\n\t\"./zh-cn\": \"ed0f\",\n\t\"./zh-cn.js\": \"ed0f\",\n\t\"./zh-hk\": \"b487\",\n\t\"./zh-hk.js\": \"b487\",\n\t\"./zh-tw\": \"1940\",\n\t\"./zh-tw.js\": \"1940\"\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 = \"e945\";","module.exports = __webpack_public_path__ + \"img/r01.2ad49759.png\";","module.exports = __webpack_public_path__ + \"img/箭头.d8366b29.svg\";"],"sourceRoot":""}