From a09f89b935e9a0085c5bcdb470e053ddad1f7187 Mon Sep 17 00:00:00 2001 From: tanghaolin <1723298894@qq.com> Date: 星期四, 06 三月 2025 13:39:51 +0800 Subject: [PATCH] 添加泵选型模块 --- src/components/AppHeader.vue | 32 src/views/SPump/Select/ByPara2/components/SelParasDefault.vue | 2754 +++++++++++++++++++ src/views/SPump/Select/PumpList/General.vue | 1741 ++++++++++++ src/utils/request.ts | 36 src/api/login.ts | 8 src/stores/db.ts | 29 src/views/SPump/Select/ByPara2/Index.vue | 44 src/I18n/config/cn.ts | 917 ++++++ src/I18n/index.ts | 36 src/views/Login.vue | 49 src/main.ts | 2 src/views/SPump/Select/ByPara2/components/selPumpCatalog.vue | 709 +++++ src/views/SPump/Select/PumpList/Index.vue | 47 src/stores/useLogin.ts | 105 src/views/SPump/Select/PumpList/FmUL.vue | 743 +++++ src/stores/select.ts | 31 index.html | 1 package.json | 1 public/static/Config/globalConfig.js | 3 src/views/Home.vue | 6 src/router/index.ts | 5 src/views/SPump/Select/ByPara2/components/selPumpSeries.vue | 934 ++++++ 22 files changed, 8,206 insertions(+), 27 deletions(-) diff --git a/index.html b/index.html index 11e454e..82be522 100644 --- a/index.html +++ b/index.html @@ -8,6 +8,7 @@ </head> <body> <div id="app"></div> + <script type="module" src="/static/Config/globalConfig.js?v=250306"></script> <script type="module" src="/src/main.ts"></script> </body> </html> diff --git a/package.json b/package.json index d7fa3cb..28c1255 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "pinia": "^2.0.26", "swiper": "^11.2.4", "vue": "^3.2.45", + "vue-i18n": "^11.1.1", "vue-router": "^4.1.6" }, "devDependencies": { diff --git a/public/static/Config/globalConfig.js b/public/static/Config/globalConfig.js new file mode 100644 index 0000000..f12a4c9 --- /dev/null +++ b/public/static/Config/globalConfig.js @@ -0,0 +1,3 @@ +window.globalConfig = { + WebApi:"http://desmi.xpump.net/api/", +} \ No newline at end of file diff --git a/src/I18n/config/cn.ts b/src/I18n/config/cn.ts new file mode 100644 index 0000000..2629814 --- /dev/null +++ b/src/I18n/config/cn.ts @@ -0,0 +1,917 @@ +export default { + ebookPage: { + all: { ID: 772, TR: "鍏ㄩ儴" }, + driveType: { ID: 1066, TR: "椹卞姩绫诲瀷" }, + motor: { ID: 830, TR: "鐢垫満" }, + diesel: { ID: 1069, TR: "鏌存补鏈�" }, + noProfile: { ID: 2367, TR: "鏆傛棤绠�浠�" }, + serieslist: { ID: 1, TR: "鐢靛瓙鏍锋湰" }, + motorFrequency: { ID: 72, TR: "鐢垫満棰戠巼" }, + motorStandard: { ID: "", TR: "Unit Standard" }, + displayMode: { ID: 664, TR: "鏄剧ず鏂瑰紡" }, + list: { ID: 665, TR: "鍒楄〃" }, + grid: { ID: 666, TR: "缃戞牸" }, + keyWord: { ID: 661, TR: "鍏抽敭璇�" }, + keyWordRule: { ID: 1003, TR: "璇疯緭鍏ュ叧閿瓧" }, + view: { ID: 251, TR: "鏌ヨ" }, + queryResults: { ID: 2368, TR: "鏌ヨ缁撴灉" }, + operation: { ID: 1012, TR: "鎿嶄綔" }, + download: { ID: 448, TR: "涓嬭浇" }, + type: { ID: 246, TR: "绫诲瀷" }, + name: { ID: 446, TR: "鍚嶇О" }, + updateTime: { ID: 758, TR: "鏇存柊鏃堕棿" }, + version: { ID: 759, TR: "鏂囦欢鐗堟湰" }, + lang: { ID: 449, TR: "璇█" }, + size: { ID: 1489, TR: "鏂囦欢灏哄" }, + desc: { ID: 447, TR: "鎻忚堪" }, + emptyFlowAndHead: { ID: 2426, TR: "娴侀噺鍜屾壃绋嬩笉鑳戒负绌�" }, + details: { ID: 983, TR: "璇︽儏" }, + noData: { ID: "", TR: "鏆傛棤鏁版嵁" }, + pumpList: { ID: 123, TR: "姘存车鍒楄〃" }, + spectrumList: { ID: 6, TR: "绯诲垪鍨嬭氨" }, + modelDrawing: { ID: 183, TR: "瀹炵墿鍥�" }, + seriesDescription: { ID: 145, TR: "绯诲垪璇存槑" }, + seriesDocuments: { ID: 687, TR: "绯诲垪鏂囨。" }, + video: { ID: 688, TR: "瑙嗛" }, + model_3D: { ID: 132, TR: "涓夌淮妯″瀷" }, + export: { ID: 277, TR: "瀵煎嚭" }, + no: { ID: 689, TR: "搴忓彿" }, + flow: { ID: 47, TR: "娴侀噺" }, + head: { ID: 48, TR: "鎵▼" }, + catalog: { ID: 2337, TR: "鎸夌被鍨�" }, + selectIndustry: { ID: 2369, TR: "閫夋嫨琛屼笟" }, + choosePump: { ID: "", TR: "閫夋嫨娉靛瀷" }, //yy鍔犱竴涓�夋嫨娉典笟 + allSeries: { ID: 1963, TR: "鎵�鏈夌郴鍒�" }, + productStructure: { ID: "", TR: "浜у搧缁撴瀯" }, + screen: { ID: "", TR: "绛涢��" }, + search: { ID: 177, TR: "鎼滅储" }, + deviceList: { ID: "", TR: "璁惧鍒楄〃" }, + }, + selectPage: { + basicParameters: { ID: 1846, TR: "鍩烘湰鍙傛暟" }, + drive: { ID: "", TR: "椹卞姩" }, + acceptanceTolerance: { ID: "", TR: "楠屾敹瀹瑰樊" }, + toleranceStandard: { ID: "", TR: "瀹瑰樊鏍囧噯" }, + toleranceLevel: { ID: "", TR: "瀹瑰樊绛夌骇" }, + flowRange: { ID: "", TR: "娴侀噺鑼冨洿" }, + headRange: { ID: "", TR: "鎵▼鑼冨洿" }, + otherSelectionCriteria: { ID: "", TR: "鍏朵粬閫夊瀷鏉′欢" }, + applicationArea: { ID: 2339, TR: "搴旂敤棰嗗煙" }, + municipalWaterManagement: { ID: "", TR: "甯傛斂姘村姟" }, + industrialAndMining: { ID: "", TR: "宸ョ熆搴旂敤" }, + constructionApplications: { ID: "", TR: "寤虹瓚搴旂敤" }, + filterCriteria: { ID: "", TR: "绛涢�夌粨鏋�" }, + + selparas: { ID: 5, TR: "鍙傛暟閫夊瀷" }, + selResult: { ID: 2316, TR: "閫夊瀷缁撴灉" }, + index: { ID: 1451, TR: "棣栭〉" }, + selRow: { ID: 724, TR: "鍒楅�夋嫨" }, + export: { ID: 277, TR: "瀵煎嚭" }, + print: { ID: 193, TR: "鎵撳嵃" }, + previous: { ID: 367, TR: "涓婁竴姝�" }, + physical: { ID: 183, TR: "瀹炵墿鍥�" }, + series: { ID: 254, TR: "绯诲垪" }, + model: { ID: 100, TR: "鍨嬪彿" }, + diagram: { ID: 766, TR: "鏇茬嚎鍥�" }, + flow: { ID: 47, TR: "娴侀噺" }, + head: { ID: 48, TR: "鎵▼" }, + shaftPower: { ID: 109, TR: "杞村姛鐜�" }, + efficiency: { ID: 108, TR: "鏁堢巼" }, + inputPower: { ID: "", TR: "杈撳叆鍔熺巼" }, + unitEfficiency: { ID: "", TR: "鏈虹粍鏁堢巼" }, + npsh: { ID: 110, TR: "NPSHr" }, + speed: { ID: 115, TR: "杞��" }, + impellerDiameter: { ID: 224, TR: "鍙惰疆鐩村緞" }, + details: { ID: 983, TR: "璇︽儏" }, + certifiedTraffic: { ID: "", TR: "璁よ瘉娴侀噺" }, + certifiedHead: { ID: "", TR: "璁よ瘉鎵▼" }, + certifiedSpeed: { ID: "", TR: "璁よ瘉杞��" }, + pointFlow_150: { ID: "", TR: "150%鐐规祦閲�" }, + pointLift_150: { ID: "", TR: "150%鐐规壃绋�" }, + pointPower_150: { ID: "", TR: "150%鐐瑰姛鐜�" }, + maxShaftPower: { ID: "", TR: "鏈�澶ц酱鍔熺巼" }, + deadCenterLift: { ID: "", TR: "鍏虫鐐规壃绋�" }, + pumpStages: { ID: "", TR: "娉电骇鏁�" }, + note: { ID: 118, TR: "澶囨敞" }, + gotoIndexPage: { ID: 2370, TR: "杩斿洖棣栭〉" }, + quickSelection: { ID: 2317, TR: "蹇�熼�夊瀷" }, + advancedSelection: { ID: 2318, TR: "楂樼骇閫夊瀷" }, + workingConditions: { ID: 2319, TR: "宸ュ喌鏉′欢" }, + productSeries: { ID: 2320, TR: "浜у搧绯诲垪" }, + driveType: { ID: 2321, TR: "椹卞姩绫诲瀷" }, + setFrequency: { ID: 2322, TR: "璁剧疆棰戠巼" }, + moreDesignPoints: { ID: 1443, TR: "鏇村璁捐鐐�" }, + hide: { ID: 2323, TR: "闅愯棌" }, + secondDpFlow: { ID: 2324, TR: "绗簩璁捐鐐规祦閲�" }, + secondDpHead: { ID: 2325, TR: "绗簩璁捐鐐规壃绋�" }, + thirdDpFlow: { ID: 2326, TR: "绗笁璁捐鐐规祦閲�" }, + thirdDpHead: { ID: 2327, TR: "绗笁璁捐鐐规壃绋�" }, + firePump: { ID: 2289, TR: "娑堥槻娉�" }, + motorPoleNum: { ID: 2328, TR: "鐢垫満绾ф暟" }, + moreSet: { ID: 2329, TR: "鏇村璁剧疆" }, + put: { ID: 2330, TR: "鏀惰捣" }, + expand: { ID: "", TR: "灞曞紑" }, + motorPowerStd: { ID: 2331, TR: "鐢垫皵鏍囧噯" }, + mediaName: { ID: 2332, TR: "浠嬭川鍚嶇О" }, + mediumTemperature: { ID: "", TR: "浠嬭川娓╁害" }, + cleanWater: { ID: 464, TR: "娓呮按" }, + maxTemperature: { ID: 2333, TR: "鏈�楂樻俯搴�" }, + customMediaProp: { ID: 2334, TR: "鑷畾涔変粙璐ㄥ睘鎬�" }, + maxDensity: { ID: 2335, TR: "鏈�澶у瘑搴�" }, + mediumViscosity: { ID: 2336, TR: "浠嬭川绮樺害" }, + nextStep: { ID: 368, TR: "涓嬩竴姝�" }, + selectAll: { ID: 97, TR: "鍏ㄩ��" }, + reselect: { ID: 366, TR: "閲嶉��" }, + invert: { ID: "", TR: "鍙嶉��" }, + modelList: { ID: 442, TR: "鍨嬪彿鍒楄〃" }, + byType: { ID: 2337, TR: "鎸夌被鍨�" }, + byIndustry: { ID: 2338, TR: "鎸夎涓�" }, + byMedia: { ID: 2371, TR: "鎸変粙璐�" }, + type: { ID: 246, TR: "绫诲瀷" }, + applicationArea: { ID: 2339, TR: "搴旂敤棰嗗煙" }, + flowRule: { ID: 2553, TR: "璇疯緭鍏ユ祦閲�" }, + headRule: { ID: 1149, TR: "璇疯緭鍏ユ壃绋�" }, + leastOneType: { ID: "", TR: "鑷冲皯閫夋嫨涓�绉嶇被鍨�" }, + seriesRule: { ID: 2342, TR: "鑷冲皯閫夋嫨涓�涓郴鍒�" }, + hangyeRule: { ID: 2372, TR: "鑷冲皯閫夋嫨涓�涓涓�" }, + jiezhiRule: { ID: 2373, TR: "鑷冲皯閫夋嫨涓�绉嶄粙璐�" }, + dieselEngineSpeedRule: { ID: 2341, TR: "璇疯緭鍏ユ煷娌规満杞��" }, + dieselEngineSpeed: { ID: 2340, TR: "鏌存补鏈鸿浆閫�" }, + pleaseSelect: { ID: 2022, TR: "璇烽�夋嫨" }, + custom: { ID: 2180, TR: "鑷畾涔�" }, + unlimited: { ID: "", TR: "涓嶉檺" }, + toleranceStand: { ID: "", TR: "楠屾敹瀹瑰樊鏍囧噯" }, + toleranceGrade: { ID: "", TR: "楠屾敹瀹瑰樊绛夌骇" }, + MinFlowPercentage: { ID: 677, TR: "鏈�灏忔祦閲忕櫨鍒嗘瘮" }, + MaxFlowPercentage: { ID: 678, TR: "鏈�澶ф祦閲忕櫨鍒嗘瘮" }, + MinHeadPercentage: { ID: 679, TR: "鏈�灏忔壃绋嬬櫨鍒嗘瘮" }, + MaxHeadPercentage: { ID: 680, TR: "鏈�澶ф壃绋嬬櫨鍒嗘瘮" }, + findErr1: { ID: "", TR: "鏈煡鎵惧埌鐩稿叧鍨嬪彿,璇蜂慨鏀圭浉鍏抽�夊瀷鍙傛暟" }, + findErr2: { ID: "", TR: "鏈煡鎵惧埌鐩稿叧鍨嬪彿,灏嗗湪涓夌鍚庤繑鍥炰笂涓�椤�" }, + QPerQBep: { ID: "", TR: "棰濆畾鐐�" }, + PerRated: { ID: "", TR: "閾墝鍙傛暟缁煎悎鍋忓樊" }, + PerRatedQ: { ID: "", TR: "閾墝鍙傛暟娴侀噺鍋忓樊" }, + sortMethod: { ID: "", TR: "鎺掑簭鏂瑰紡" }, + efficiencySort: { ID: "", TR: "鏁堢巼鎺掑簭" }, + qPerQBepSort: { ID: "", TR: "缁煎悎鎺掑簭" }, + enum: { ID: 331, TR: "鏁伴噺" }, //yy add-- + modelSelection: { ID: 26, TR: "閫夊瀷" }, + mediaLibrary: { ID: "", TR: "浠嬭川搴�" }, + volumeConcentration: { ID: "", TR: "浣撶Н娴撳害" }, + mediaDescription: { ID: "", TR: "浠嬭川璇存槑" }, + isMediumParticles: { ID: "", TR: "鍚湁浠嬭川棰楃矑" }, + vbr: { ID: "", TR: "鍙橀�熺巼" }, + cuttingRate: { ID: "", TR: "鍒囧壊鐜�" }, + salesPrice: { ID: "", TR: "閿�鍞环" }, + originalImpellerDiameter: { ID: "", TR: "鍘熷鍙惰疆鐩村緞" }, + ratedSpeed: { ID: "", TR: "棰濆畾杞��" }, + guidePrice: { ID: "", TR: "鎸囧浠�" }, + secondDirectory: { ID: "", TR: "浜岀骇鐩綍" }, + allowCutting: { ID: "", TR: "鍏佽鍒囧壊" }, + allowFrequencyConversion: { ID: "", TR: "鍏佽鍙橀" }, + + efficiencyAndNPSH: { ID: "", TR: "鏁堢巼鍜屾苯铓�" }, + minimumEfficiency: { ID: "", TR: "鏈�浣庢晥鐜�" }, + attributeFiltering: { ID: "", TR: "灞炴�ц繃婊�" }, + importedCaliber: { ID: "", TR: "杩涘彛鍙e緞" }, + exportCaliber: { ID: "", TR: "鍑哄彛鍙e緞" }, + motorParameters: { ID: "", TR: "鐢垫満鍙傛暟" }, + helpChoose: { ID: "", TR: "甯垜閫�" }, + + similarConversion: { ID: "", TR: "鐩镐技鎹㈢畻" }, + parameterDesign: { ID: "", TR: "鍙傛暟璁捐" }, + selectionCondition: { ID: "", TR: "閫夊瀷鏉′欢" }, + designRequirement: { ID: "", TR: "璁捐瑕佹眰" }, + calculationParameters: { ID: "", TR: "璁$畻鍙傛暟" }, + mediumDensity: { ID: "", TR: "浠嬭川瀵嗗害" }, + selectionMethod: { ID: "", TR: "閫夊瀷鏂规硶" }, + pumpType: { ID: "", TR: "娉靛瀷" }, + impellerType: { ID: "", TR: "鍙惰疆绫诲瀷" }, + modelLibrary: { ID: "", TR: "妯″瀷搴�" }, + fixedSpeed: { ID: "", TR: "瀹氳浆閫�" }, + specificSpeed: { ID: "", TR: "姣旇浆閫�" }, + convertRangeBySpecificSpeed: { ID: "", TR: "姣旇浆閫熸崲绠楄寖鍥�" }, + efficiencyCorrection: { ID: "", TR: "鏁堢巼淇" }, + recommendModel: { ID: "", TR: "鎺ㄨ崘妯″瀷" }, + DifferenceInSpecificSpeed: { ID: "", TR: "姣旇浆閫熷樊鍊�" }, + originalModelInformation: { ID: "", TR: "鍘熸ā鍨嬩俊鎭�" }, + afterConversion: { ID: "", TR: "鎹㈢畻鍚�" }, + scaleRatio: { ID: "", TR: "缂╂斁绯绘暟" }, + yelunTips: { ID: "", TR: "璇疯緭鍏ュ彾杞洿寰�"}, + e_requirements:{ID:"",TR:"鏁堢巼瑕佹眰"}, + currentMotorPower:{ID:"",TR:"褰撳墠鐢垫満鍔熺巼"}, + requiredMotorPower:{ID:"",TR:"瑕佹眰鐨勭數鏈哄姛鐜�"}, + }, + //璇︽儏椤甸潰 + detailPage: { + userUnit: { ID: 2117, TR: "鐢ㄦ埛鍗曚綅" }, + standardUnit: { ID: 2118, TR: "鏍囧噯鍗曚綅" }, + report: { ID: 692, TR: "鎶ュ憡" }, + share: { ID: 693, TR: "鍒嗕韩" }, + costAnalysis: { ID: 570, TR: "鎴愭湰鍒嗘瀽" }, + medium: { ID: 1448, TR: "浠嬭川" }, + model_3D: { ID: 132, TR: "涓夌淮妯″瀷" }, + scanQRShare: { ID: 2354, TR: "鎵弿浜岀淮鐮佸垎浜�" }, + view: { ID: 251, TR: "鏌ヨ" }, + close: { ID: 459, TR: "鍏抽棴" }, + setUp: { ID: 469, TR: "璁惧畾" }, + flowUnits: { ID: 2102, TR: "娴侀噺鍗曚綅" }, + headUnit: { ID: 2103, TR: "鎵▼鍗曚綅" }, + powerUnit: { ID: 2355, TR: "鍔熺巼鍗曚綅" }, + npshUnit: { ID: "", TR: "姹借殌鍗曚綅" }, + d2Unit: { ID: "", TR: "鍙惰疆澶栧緞鍗曚綅" }, + followSystem: { ID: "", TR: "璺熼殢绯荤粺" }, + exitFull: { ID: 2356, TR: "閫�鍑哄叏灞�" }, + partNo: { ID: 159, TR: "浜у搧缂栧彿" }, + materialGroup: { ID: 1715, TR: "鏉愭枡缁�" }, + material: { ID: 1199, TR: "鏉愭枡" }, + selectionReport: { ID: 237, TR: "閫夊瀷鎶ュ憡" }, + lang: { ID: 449, TR: "璇█" }, + fileFormat: { ID: 1547, TR: "鏂囦欢鏍煎紡" }, + buildFile: { ID: 2343, TR: "鐢熸垚鏂囦欢" }, + customerInfo: { ID: 780, TR: "瀹㈡埛淇℃伅" }, + orderInformation: { ID: 866, TR: "璁㈠崟淇℃伅" }, + setReportContent: { ID: 871, TR: "璁剧疆鎶ュ憡鍐呭" }, + reportInformation: { ID: "", TR: "鎶ュ憡淇℃伅" }, + projectInformation: { ID: 89, TR: "椤圭洰淇℃伅" }, + productName: { ID: 863, TR: "浜у搧鍚嶇О" }, + projectCode: { ID: 1011, TR: "椤圭洰缂栧彿" }, + projectName: { ID: 785, TR: "椤圭洰鍚嶇О" }, + itemNO: { ID: 786, TR: "宸ヤ綅缂栧彿" }, + customerName: { ID: 865, TR: "瀹㈡埛鍚嶇О" }, + customerAddress: { ID: 952, TR: "瀹㈡埛鍦板潃" }, + contactPerson: { ID: 753, TR: "鑱旂郴浜�" }, + contactInformation: { ID: 35, TR: "鑱旂郴鏂瑰紡" }, + email: { ID: 1803, TR: "閭" }, + website: { ID: 1804, TR: "缃戝潃" }, + country: { ID: 1805, TR: "鍥藉" }, + price: { ID: 868, TR: "浜у搧鍗曚环" }, + productModel: { ID: "", TR: "璁㈠崟涓骇鍝佸瀷鍙�" }, + pumpPeformance: { ID: 1798, TR: "璁㈠崟鍙�" }, + purchaseQuantity: { ID: 870, TR: "璐拱鏁伴噺" }, + orderNote: { ID: 867, TR: "璁㈠崟澶囨敞" }, + pageReportSet: { ID: 2352, TR: "椤甸潰璁剧疆" }, + isBWDispplay: { ID: 804, TR: "榛戠櫧鏄剧ず鏇茬嚎" }, + dataAndCurve: { ID: 801, TR: "鏁版嵁琛ㄥ拰鏇茬嚎" }, + curveGraph: { ID: 766, TR: "鏇茬嚎鍥�" }, + sizePicture: { ID: 694, TR: "灏哄鍥�" }, + assemblyDrawing: { ID: 134, TR: "瀹夎鍥�" }, + modelDrawing: { ID: 183, TR: "瀹炵墿鍥�" }, + explosionDiagram: { ID: "", TR: "鐖嗙偢鍥�" }, + modelDrawinUnit: { ID: 2353, TR: "瀹炵墿鍥�(鏈虹粍)" }, + structureDrawing: { ID: 185, TR: "缁撴瀯鍥�" }, + offerText: { ID: 798, TR: "鎶ヤ环鏂囨湰" }, + companyName: { ID: 995, TR: "鍏徃鎶ご" }, + companyWebsite: { ID: 1801, TR: "鍏徃缃戝潃" }, + performanceCurve: { ID: 218, TR: "鎬ц兘鏇茬嚎" }, + assemblyDrawingPart: { ID: 2344, TR: "瀹夎鍥�(鍗曟车)" }, + assemblyDrawingSys: { ID: 2345, TR: "瀹夎鍥�(鏈虹粍)" }, + outlineDrawing: { ID: "", TR: "瀹夎灏哄鍥�" }, + pumpDimensions: { ID: "", TR: "娉靛ご灏哄鍥�" }, + physical: { ID: 183, TR: "瀹炵墿鍥�" }, + parameter: { ID: 111, TR: "鍙傛暟" }, + productFileName: { ID: 694, TR: "灏哄鍥�" }, + data: { ID: 2026, TR: "鏁版嵁" }, + unit: { ID: 526, TR: "鍗曚綅" }, + operatingParameters: { ID: 2126, TR: "杩愯鍙傛暟" }, + parameterQuery: { ID: 2346, TR: "鍙傛暟鏌ヨ" }, + installation: { ID: 2169, TR: "瀹夎淇℃伅" }, + motor: { ID: 2170, TR: "鐢垫満淇℃伅" }, + documents: { ID: 687, TR: "绯诲垪鏂囨。" }, + properties: { ID: 230, TR: "灞炴��" }, + flow: { ID: 47, TR: "娴侀噺" }, + head: { ID: 48, TR: "鎵▼" }, + frequency: { ID: "", TR: "棰戠巼" }, + shaftPower: { ID: 109, TR: "杞村姛鐜�" }, + efficiency: { ID: 108, TR: "鏁堢巼" }, + inputPower: { ID: "", TR: "杈撳叆鍔熺巼" }, + unitEfficiency: { ID: "", TR: "鏈虹粍鏁堢巼" }, + press: { ID: 1105, TR: "鍘嬪姏" }, + power: { ID: 422, TR: "鍔熺巼" }, + + seriesConnect: { ID: "", TR: "涓茶仈" }, + parallelConnect: { ID: "", TR: "骞惰仈" }, + method: { ID: "", TR: "鏂瑰紡" }, + update: { ID: "", TR: "鏇存柊" }, + number: { ID: "", TR: "鍙版暟" }, + queryParams: { ID: "", TR: "鏌ヨ鍙傛暟" }, + + impellerDia: { ID: 112, TR: "鍙惰疆澶栧緞" }, + motorPower: { ID: 682, TR: "鐢垫満鍔熺巼" }, + npsh: { ID: 110, TR: "NPSHr" }, + speed: { ID: 115, TR: "杞��" }, + coefficient: { ID: "", TR: "绯绘暟" }, + parameterSelection: { ID: 5, TR: "鍙傛暟閫夊瀷" }, + allowableRegionMax: { ID: 2347, TR: "鍏佽鍖哄煙(澶�)" }, + allowableRegionMin: { ID: 2348, TR: "鍏佽鍖哄煙(灏�)" }, + optimalAreaMax: { ID: 2349, TR: "鏈�浼樺尯鍩�(澶�)" }, + optimalAreaMin: { ID: 2350, TR: "鏈�浼樺尯鍩�(灏�)" }, + closeDeadCenter: { ID: 2351, TR: "鍏虫鐐�" }, + bestAdvantage: { ID: 2357, TR: "鏈�浼樼偣" }, + workingPoint: { ID: 203, TR: "宸ヤ綔鐐�" }, + flowPoint150: { ID: 2358, TR: "娴侀噺150%鐐�" }, + powerPointMax: { ID: 2359, TR: "鏈�澶у姛鐜囩偣" }, + video: { ID: 688, TR: "瑙嗛" }, + picture: { ID: "", TR: "鍥剧墖" }, + variableSpeedCurve: { ID: 2374, TR: "鍙橀�熸洸绾�" }, + seriesParallelConnection: { ID: "", TR: "涓插苟鑱旀洸绾�" }, + displaySettings: { ID: 1625, TR: "鏄剧ず璁剧疆" }, + curveExport: { ID: 2375, TR: "鏇茬嚎瀵煎嚭" }, + chartColor: { ID: 2376, TR: "鍥捐〃棰滆壊" }, + monochrome: { ID: 139, TR: "鍗曡壊" }, + multicolour: { ID: "", TR: "褰╄壊" }, + spectrumDisplay: { ID: 2377, TR: "鍨嬭氨鏄剧ず" }, + display: { ID: 217, TR: "鏄剧ず" }, + noDisplay: { ID: 158, TR: "涓嶆樉绀�" }, + display_curve: { ID: "", TR: "鏄剧ず鍦ㄦ洸绾挎湯绔�" }, + displayPanel: { ID: "", TR: "鏄剧ず鍦ㄩ潰鏉�" }, + onlyShowworkCurve: { ID: 1969, TR: "浠呮樉绀哄伐浣滄洸绾�" }, + speedList: { ID: 2378, TR: "杞�熷垪琛�" }, + addSpeed: { ID: 2379, TR: "娣诲姞杞��" }, + addPinLv: { ID: "", TR: "娣诲姞棰戠巼" }, + pleaseEnterSpeed: { ID: 1154, TR: "璇疯緭鍏ヨ浆閫�" }, + pleaseEnterHz: { ID: "", TR: "璇疯緭鍏ラ鐜�" }, + tip: { ID: 286, TR: "鎻愮ず" }, + define: { ID: 125, TR: "纭畾" }, + cancel: { ID: 126, TR: "鍙栨秷" }, + download: { ID: 448, TR: "涓嬭浇" }, + downloadTips: { ID: "", TR: "璇蜂笅杞芥闈㈢▼搴�,瀵煎嚭鎬ц兘鏇茬嚎" }, + curve: { ID: 766, TR: "鏇茬嚎鍥�" }, + document: { ID: 984, TR: "鏂囨。" }, + DocumentNone: { ID: "", TR: "鏂囨。(鏃�)" }, + Model: { ID: "", TR: "妯″瀷" }, + queryPoint: { ID: "", TR: "鏌ヨ鐐�" }, + productNoSelect: { ID: "", TR: "浜у搧缂栧彿閫夋嫨" }, + watermark: { ID: "", TR: "姘村嵃" }, + IsPrintModel3d: { ID: "", TR: "浜х敓涓夌淮椤甸潰" }, + IsCreateMultiSpeedChart: { ID: "", TR: "浜х敓鍙橀鏇茬嚎" }, + queryCurve: { ID: "", TR: "鏌ヨ鏇茬嚎" }, //yy add--- + parameterQuery: { ID: "", TR: "鍙傛暟鏌ヨ" }, + parameter_s: { ID: "", TR: "鍙傛暟" }, + parameterCancel: { ID: "", TR: "鍙栨秷" }, + parameterDetermine: { ID: "", TR: "纭畾" }, + showDesignPoints: { ID: "", TR: "鏄剧ず璁捐鐐�" }, + designPointStyle: { ID: "", TR: "璁捐鐐规牱寮�" }, + crosshair: { ID: "", TR: "鍗佸瓧绾�" }, + invertedTriangle: { ID: "", TR: "鍊掍笁瑙�" }, + roundDot: { ID: "", TR: "鍦嗙偣" }, + boldRightAngle: { ID: "", TR: "鍔犵矖鐩磋" }, + deviceCurve: { ID: "", TR: "瑁呯疆鏇茬嚎" }, + displayIndex: { ID: "", TR: "鏄剧ず" }, + netHeadValue: { ID: "", TR: "鍑�鎵▼鍊�" }, + displayCurve: { ID: "", TR: "鏄剧ず鏇茬嚎" }, + onlyDisplayCurve: { ID: "", TR: "浠呮樉绀哄伐浣滄洸绾�" }, + showAllCurves: { ID: "", TR: "鏄剧ず鎵�鏈夋洸绾�" }, + outputChartToCAD: { ID: "", TR: "璇蜂笅杞藉鎴风,瀹㈡埛绔墠鑳藉鍑篊AD鏍煎紡鏂囦欢" }, + inquiry: { ID: "", TR: "璇环" }, + productInquiry: { ID: "", TR: "浜у搧璇环" }, + address: { ID: "", TR: "鍦板潃" }, + contactName: { ID: "", TR: "鑱旂郴浜哄悕绉�" }, + pumpModel: { ID: "", TR: "娉靛瀷鍙�" }, + pumpNumber: { ID: "", TR: "娉垫暟閲�" }, + submit: { ID: "", TR: "鎻愪氦" }, + inquirtFormatte1: { ID: "", TR: "璇疯緭鍏ヨ仈绯绘柟寮�" }, + inquirtFormatte2: { ID: "", TR: "璇疯緭鍏ヨ仈绯讳汉鍚嶇О" }, + selectMedia: { ID: "", TR: "閫夋嫨浠嬭川" }, //yy add + cleanWater: { ID: 459, TR: "娓呮按" }, + viewDetail: { ID: 661, TR: "鏌ョ湅璇︽儏" }, + sewage: { ID: 21, TR: "姹℃按" }, + viscousSlurry: { ID: "", TR: "姹℃按銆佹福娴嗙矘绋犳祮娑�" }, + chemicalLiquid: { ID: "", TR: "鍖栧娑蹭綋" }, + hydrocarbons: { ID: "", TR: "鍖栧娑蹭綋銆佺儍绫荤瓑" }, + Gas: { ID: "", TR: "姘斾綋" }, + gasList: { ID: "", TR: "绌烘皵銆佹补姘斻�佺摝鏂�" }, + nameplateParameter: { ID: 2194, TR: "閾墝鍙傛暟" }, + angle: { ID: 1500, TR: "瑙掑害" }, + printCompanyInfo: { ID: "", TR: "鎵撳嵃鍏徃淇℃伅" }, + + auto: { ID: "", TR: "鑷姩鍒ゆ柇" }, + original: { ID: "", TR: "鍘熷鏂瑰悜" }, + clockwise: { ID: "", TR: "椤烘椂閽堟柟鍚�" }, + counterclockwise: { ID: "", TR: "閫嗘椂閽堟柟鍚�" }, + + resize: { ID: "", TR: "鑷�傚簲" }, + zoomIn: { ID: "", TR: "鏀惧ぇ" }, + zoomOut: { ID: "", TR: "缂╁皬" }, + highlightModifyArea: { ID: "", TR: "楂樹寒淇敼鍖哄煙" }, + move: { ID: "", TR: "绉诲姩鏂囨湰" }, + + productConfig: { ID: "", TR: "浜у搧閰嶇疆" }, + exportSettings: { ID: "", TR: "瀵煎嚭璁剧疆" }, + path: { ID: "", TR: "璺緞" }, + monochromeDisplay: { ID: "", TR: "鍗曡壊鏄剧ず" }, + chartSettings: { ID: "", TR: "鍥捐〃璁剧疆" }, + selectionPoint: { ID: "", TR: "閫夊瀷鐐�" }, + nameplateParameterPoints: { ID: "", TR: "閾墝鍙傛暟鐐�" }, + operatingArea: { ID: "", TR: "杩愯鍖哄煙" }, + optimalArea: { ID: "", TR: "鏈�浼樺尯鍩�" }, + deviceArea: { ID: "", TR: "瑁呯疆鏇茬嚎" }, + flowHeadLine: { ID: "", TR: "娴侀噺鎵▼绾�" }, + allHeadCurves: { ID: "", TR: "鎵�鏈夋壃绋嬫洸绾�" }, + flowEfficiencyLine: { ID: "", TR: "娴侀噺鏁堢巼绾�" }, + onlyWorkingCurve: { ID: "", TR: "浠呭伐浣滄洸绾�" }, + flowPowerLine: { ID: "", TR: "娴侀噺鍔熺巼绾�" }, + AllPowerCurves: { ID: "", TR: "鎵�鏈夊姛鐜囨洸绾�" }, + textContent: { ID: "", TR: "鏂囨湰鍐呭" }, + rotationAngle: { ID: "", TR: "鏃嬭浆瑙掑害" }, + fontSize: { ID: "", TR: "鏂囧瓧澶у皬" }, + alignmentMethod: { ID: "", TR: "瀵归綈鏂瑰紡" }, + fontColor: { ID: "", TR: "鏂囧瓧棰滆壊" }, + blod: { ID: "", TR: "鍔犵矖" }, + italic: { ID: "", TR: "鍊炬枩" }, + leftRotation: { ID: "", TR: "宸︽棆杞�" }, + rightRotation: { ID: "", TR: "鍙虫棆杞�" }, + equivalentLine: { ID: "", TR: "绛夋晥绾�" }, + minFlowCurve: { ID: "", TR: "鏈�灏忚繛缁祦閲忕嚎" }, + maximumEfficiencyPoint: { ID: "", TR: "楂樻晥鐐�" }, + allCurves: { ID: "", TR: "鎵�鏈夋洸绾�" }, + flowNPSHrCurve: { ID: "", TR: "娴侀噺姹借殌绾�" }, + colorStyle: { ID: "", TR: "棰滆壊鏍峰紡" }, + maxMinWorkingCurve: { ID: "", TR: "鏈�澶ф渶灏忓伐浣滄洸绾�" }, + errorTip: { ID: "", TR: "涓嶈兘灏忎簬鏈�灏忚酱鍔熺巼" }, + }, + //鎶ヨ〃鍒嗘瀽 + LCC: { + Analysis: { ID: 568, TR: "鍒嗘瀽" }, + accumulationCurve: { ID: 927, TR: "骞村害绱鏇茬嚎" }, + statisticalChart: { ID: 928, TR: "鍗曞勾缁熻鍥�" }, + workingPointFlow: { ID: 554, TR: "宸ヤ綔鐐规祦閲�" }, + default: { ID: 921, TR: "榛樿" }, + heating: { ID: 922, TR: "渚涙殩" }, + pressurize: { ID: 923, TR: "澧炲帇" }, + custom: { ID: 924, TR: "鑷畾涔�" }, + status: { ID: 851, TR: "鐘舵��" }, + flowRatio: { ID: 932, TR: "娴侀噺姣斾緥" }, + timeScale: { ID: 933, TR: "鏃堕棿姣斾緥" }, + fullLoad: { ID: 934, TR: "鍏ㄨ礋鑽�" }, + partialLoad: { ID: 936, TR: "閮ㄥ垎璐熻嵎" }, + nightCoolingOperation: { ID: 938, TR: "澶滈棿闄嶆俯杩愯" }, + lowLoad: { ID: 937, TR: "浣庤礋鑽�" }, + load: { ID: 2381, TR: "璐熻嵎" }, + energyCosts: { ID: 560, TR: "鑳借�楁垚鏈�" }, + workingDays: { ID: 555, TR: "姣忓勾澶ц嚧宸ヤ綔澶╂暟" }, + workingHours: { ID: 556, TR: "姣忓勾澶ц嚧宸ヤ綔灏忔椂" }, + powerFees: { ID: 566, TR: "鐢佃垂" }, + per: { ID: 564, TR: "姣忓害" }, + risiPowerPrice: { ID: 2382, TR: "鐢佃垂涓婃定" }, + eachYear: { ID: 565, TR: "姣忓勾" }, + CalcCycle: { ID: 557, TR: "璁$畻鍛ㄦ湡" }, + year: { ID: 558, TR: "骞�" }, + interestRate: { ID: 559, TR: "鍒╃巼" }, + droop: { ID: 567, TR: "鏁堢巼涓嬮檷" }, + co2Ratio: { ID: 920, TR: "CO2绯绘暟" }, + conversionFactor: { ID: 2427, TR: "鐓ょ偔鎶樼畻绯绘暟" }, + maintenanceCost: { ID: 535, TR: "缁存姢缁翠慨鎴愭湰" }, + thousand: { ID: 2383, TR: "鍗冨厓" }, + maintenance: { ID: 2384, TR: "缁存姢鍜岀淮淇�" }, + runningCost: { ID: 541, TR: "杩愯璐圭敤" }, + downtimeAndLoss: { ID: 539, TR: "鐢熶骇鍋滃伐鍜屾崯鑰�" }, + environmentalFee: { ID: 540, TR: "鐜淇濇姢璐�" }, + othersFee: { ID: 777, TR: "鍏朵粬骞磋垂鐢�" }, + initialCost: { ID: 548, TR: "涓�娆℃�у垵濮嬫垚鏈�" }, + orderCost: { ID: 2385, TR: "璁惧閲囪喘璐圭敤" }, + installDebugCharge: { ID: 550, TR: "瀹夎鍜岃皟璇�" }, + tonAndkW: { ID: 2386, TR: "鍚�/涓囧崈鐡�" }, + mapOfCosts: { ID: 925, TR: "璐圭敤鍥�" }, + costItem: { ID: 929, TR: "璐圭敤椤�" }, + cost: { ID: 930, TR: "璐圭敤" }, + percentage: { ID: 931, TR: "鐧惧垎姣�" }, + maintenanceAndRepair: { ID: 542, TR: "缁翠慨鍜屾姢鐞�" }, + co2: { ID: "", TR: "CO2" }, + coalConsumption: { ID: 2388, TR: "鐓よ�楅噺" }, + totalAnnualCost: { ID: 942, TR: "骞存�昏垂鐢�" }, + co2TotalEmissions: { ID: 2389, TR: "co2鎬绘帓鏀鹃噺" }, + tenThousand: { ID: 940, TR: "涓�" }, + tenThousandTon: { ID: 2390, TR: "涓囧惃" }, + calculationPeriod: { + ID: "", + TR: "璇疯緭鍏ヨ绠楀懆鏈�!", + }, //yy ---add + scaleTime: { + ID: "", + TR: "璇疯緭鍏ユ椂闂存瘮渚�!", + }, + sumProportions: { + ID: "", + TR: "璇疯緭鍏ユ椂闂存瘮渚嬩箣鍜屼负100%!", + }, + electricCharge: { + ID: "", + TR: "璇疯緭鍏ョ數璐�(姣忓害)!", + }, + coefficient_c: { + ID: "", + TR: "璇疯緭CO2绯绘暟!", + }, + conversionCoefficient: { + ID: "", + TR: "璇疯緭鍏ョ叅鐐姌绠楃郴鏁�!", + }, + }, + //棣栭〉 + indexPage: { + corpIntroduction: { ID: 30, TR: "鍏徃浠嬬粛" }, + basicInformation: { ID: "", TR: "鍩虹淇℃伅" }, + enterpriseHonors: { ID: 32, TR: "浼佷笟鑽h獕" }, + enterpriseStyle: { ID: 2286, TR: "浼佷笟椋庤矊" }, + organizationStructure: { ID: "", TR: "缁勭粐缁撴瀯" }, + corporateCulture: { ID: "", TR: "浼佷笟鏂囧寲" }, + introductionToPumpAnimation: { ID: "", TR: "娉靛瀷鍔ㄧ敾浠嬬粛" }, + companyPortfolio: { ID: "", TR: "鍏紡缁勫悎" }, + salesNetwork: { ID: 31, TR: "閿�鍞綉缁�" }, + performanceSelection: { ID: 2287, TR: "姘村姏鎬ц兘閫夊瀷" }, + productSearch: { ID: 771, TR: "浜у搧鎼滅储" }, + contactinformation: { ID: 35, TR: "鑱旂郴鏂瑰紡" }, + myProject: { ID: 1716, TR: "鎴戠殑椤圭洰" }, + ebook: { ID: 1, TR: "鐢靛瓙鏍锋湰" }, + pdfFile: { ID: 1717, TR: "绾歌川鏍锋湰" }, + application: { ID: 2391, TR: "琛屼笟搴旂敤" }, + intelligentSelection: { ID: 68, TR: "鏅鸿兘閫夊瀷" }, + firePump: { ID: 2289, TR: "娑堥槻娉�" }, + flow: { ID: 47, TR: "娴侀噺" }, + head: { ID: 48, TR: "鎵▼" }, + type: { ID: 246, TR: "绫诲瀷" }, + more: { ID: 734, TR: "鏇村" }, + nextStep: { ID: 368, TR: "涓嬩竴姝�" }, + zmSearch: { ID: 2392, TR: "鎸夊瓧姣�" }, + alphaList: { ID: "", TR: "瀛楁瘝鍒楄〃" }, + byType: { ID: 2337, TR: "鎸夌被鍨�" }, + byIndustry: { ID: 2338, TR: "鎸夎涓�" }, + product: { ID: 721, TR: "浜у搧" }, + material: { ID: 722, TR: "璧勬枡" }, + byProductLine: { ID: "", TR: "鎸変骇鍝佺嚎" }, + model_3D: { ID: 132, TR: "涓夌淮妯″瀷" }, + about_us: { ID: 2393, TR: "鍏充簬鎴戜滑" }, + product_catalog: { ID: 2394, TR: "浜у搧鐩綍" }, + product_selection: { ID: 2395, TR: "浜у搧閫夊瀷" }, + letter_search: { ID: 2396, TR: "瀛楁瘝鎼滅储" }, + application_HY: { ID: 2391, TR: "琛屼笟搴旂敤" }, + application_area: { ID: 2339, TR: "搴旂敤棰嗗煙" }, + sample_Model: { ID: 2397, TR: "鏍锋湰妯″瀷" }, + searchByPumpImg: { ID: "", TR: "鎸変骇鍝佸浘鎼滅储" }, + pleaseSelect: { ID: 2022, TR: "璇烽�夋嫨" }, + corpInfo: { ID: 1802, TR: "鍏徃淇℃伅" }, + add: { ID: 710, TR: "鍏徃鍦板潃" }, + tel: { ID: 2398, TR: "鑱旂郴鐢佃瘽" }, + email: { ID: 2399, TR: "浼佷笟閭" }, + hotline: { ID: 2400, TR: "鍏ㄥ浗鍚屼竴鏈嶅姟鐑嚎" }, + helpManual: { ID: "", TR: "甯姪鎵嬪唽" }, + changePassword: { ID: 23, TR: "淇敼瀵嗙爜" }, + viewNow: { ID: 170, TR: "绔嬪嵆鏌ョ湅" }, + quick: { ID: "", TR: "蹇��" }, + sampleBook: { ID: "", TR: "浜у搧鏍锋湰" }, + simpleAndDirect: { ID: "", TR: "娓呮櫚绠�鎹�" }, + clearClassification: { ID: "", TR: "鍒嗙被鏄庣‘" }, + quickProductSelection: { ID: "", TR: "浜у搧蹇�熼�夊彇" }, + productSamplePreview: { ID: "", TR: "浜у搧鏍锋湰棰勮" }, + productNameAtoZ: { ID: "", TR: "浜у搧鍚嶇ОA-Z" }, + findApplications: { ID: "", TR: "鍙戠幇閫傚悎鎮ㄩ渶姹傜殑搴旂敤" }, + feedBack: { ID: "", TR: "闂鍙嶉" }, + feedbackContent: { ID: "", TR: "鍙嶉鍐呭" }, + feedbackRule: { ID: "", TR: "鑱旂郴浜烘垨鑱旂郴鏂瑰紡涓嶈兘涓虹┖" }, + problemType: { ID: "", TR: "闂绫诲瀷" }, + rorExample: { ID: "", TR: "渚嬪锛氳蒋浠堕棶棰樸�佹洸绾块敊璇�" }, + classAndSelection: { ID: "", TR: "鍒嗙被閫夊瀷" }, + industrySelection: { ID: "", TR: "琛屼笟閫夊瀷" }, + projectList: { ID: "", TR: "椤圭洰鍒楄〃" }, + customerList: { ID: "", TR: "瀹㈡埛鍒楄〃" }, + + intelligentSelectionSub: { ID: "", TR: "鏍规嵁鍙傛暟绛涢�夛紝绮惧噯閫夊嚭鎵�闇�鐨勫瀷鍙�" }, + marketSector: { ID: "", TR: "甯傚満棰嗗煙" }, + marketSectorSub: { ID: "", TR: "鏍规嵁璁惧搴旂敤棰嗗煙锛屽憟鐜版墍闇�鐨勫瀷鍙�" }, + alphabeticSort: { ID: "", TR: "瀛楁瘝鎺掑簭" }, + alphabeticSortSub: { ID: "", TR: "鏍规嵁瀛楁瘝鎺掑簭锛岀綏鍒楁墍鏈夌殑璁惧绯诲垪" }, + enterSelect: { ID: "", TR: "杩涘叆閫夊瀷" }, + }, + simpleLoginPage: { + login: { ID: 673, TR: "鐧诲綍" }, + register: { ID: 380, TR: "娉ㄥ唽" }, + enterVerificCode: { ID: 2401, TR: "璇疯緭鍏ラ獙璇佺爜" }, + verificCodeError: { ID: 2402, TR: "楠岃瘉鐮侀敊璇�" }, + loginPrompt: { ID: 2403, TR: "鐧诲綍鎻愮ず" }, + passwordError: { ID: 400, TR: "瀵嗙爜閿欒" }, + loginSuccessful: { ID: 2404, TR: "鐧诲綍鎴愬姛,姝e湪璺宠浆~" }, + AccountLogin: { ID: 2405, TR: "璐︽埛鐧诲綍" }, + CodeScanningLogin: { ID: 2290, TR: "鎵爜鐧诲綍" }, + registerInfo: { + ID: 2291, + TR: "濡傛灉鎮ㄨ繕娌℃湁鍔犲叆鎴戜滑锛屽彲浠ョ偣鍑讳笅鏂圭殑娉ㄥ唽鎴愪负鎴戜滑鐨勪竴鍛�", + }, + registerInfoTitle: { ID: 2292, TR: "鏂扮敤鎴�" }, + loginInfo: { + ID: 2293, + TR: "濡傛灉鎮ㄥ凡缁忔槸鎴戜滑涓殑涓�鍛樺彲浠ョ偣鍑讳笅鏂圭殑鐧诲綍锛岃繘鍏ュ埌鎴戜滑鐨勫钩鍙�", + }, + loginInfoTitle: { ID: 2294, TR: "鎴戜滑涓殑涓�鍛�" }, + userType: { ID: 2295, TR: "鐢ㄦ埛绫诲瀷" }, + loginName: { ID: 2296, TR: "璐︽埛鍚�" }, + password: { ID: 378, TR: "瀵嗙爜" }, + userType0: { ID: 703, TR: "鍐呴儴浜哄憳" }, + userType1: { ID: 2297, TR: "澶栭儴浜哄憳" }, + userType2: { ID: "", TR: "浠g悊鍟�" }, + phoneNumber: { ID: 379, TR: "鎵嬫満鍙�" }, + email: { ID: 1803, TR: "閭" }, + forgetPassword: { ID: "", TR: "蹇樿瀵嗙爜" }, + sendSuccess: { ID: "", TR: "鍙戦�佹垚鍔�" }, + verifyAccount: { ID: "", TR: "璐﹀彿楠岃瘉" }, + fillInInformation: { ID: "", TR: "濉啓淇℃伅" }, + registerSuccess: { ID: 890, TR: "娉ㄥ唽鎴愬姛" }, + registerTips: { ID: "", TR: "璇峰~鍐欐偍娉ㄥ唽鏃剁殑鎵嬫満鍙�" }, + forgetEmailTips: { ID: "", TR: "璇峰~鍐欐偍娉ㄥ唽鏃剁殑閭" }, + + verifyCode: { ID: 700, TR: "楠岃瘉鐮�" }, + send: { ID: "", TR: "鍙戦��" }, + userAccount: { ID: "", TR: "鐢ㄦ埛璐﹀彿" }, + oldPassword: { ID: "", TR: "鏃у瘑鐮�" }, + oldPsdTips: { ID: "", TR: "璇疯緭鍏ユ棫瀵嗙爜" }, + newPassword: { ID: 397, TR: "鏂板瘑鐮�" }, + newPsdTips: { ID: "", TR: "璇疯緭鍏ユ柊瀵嗙爜" }, + oldPwdRule: { ID: "", TR: "鏃у瘑鐮佷笉鑳戒负绌�" }, + newPwdRule: { ID: "", TR: "鏂板瘑鐮佷笉鑳戒负绌�" }, + oldAndNewPwdRule: { ID: "", TR: "鏂版棫瀵嗙爜涓嶈兘涓�鑷�" }, + enterPwdAgain: { ID: 2303, TR: "璇峰啀娆¤緭鍏ュ瘑鐮�" }, + enterTwoPwdDisaccord: { ID: "", TR: "涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�" }, + changeSuccess: { ID: 636, TR: "淇敼鎴愬姛" }, + pwdRule: { ID: 399, TR: "瀵嗙爜涓嶄竴鑷�" }, + accountSettings: { ID: "", TR: "璐﹀彿璁剧疆" }, + confirmPassword: { ID: "", TR: "纭畾瀵嗙爜" }, + realName: { ID: "", TR: "鐢ㄦ埛鍚�" }, + corpName: { ID: 102, TR: "鍏徃鍚嶇О" }, + corpAddress: { ID: 710, TR: "鍏徃鍦板潃" }, + + formValidate: { + email0: { ID: 773, TR: "璇疯緭鍏ラ偖绠�" }, + email1: { ID: 2298, TR: "璇疯緭鍏ユ纭殑閭鏍煎紡" }, + TelPhone0: { ID: 2299, TR: "璇疯緭鍏ユ墜鏈哄彿鐮�" }, + TelPhone1: { ID: 2300, TR: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜鏍煎紡" }, + pass0: { ID: 2301, TR: "璇疯緭鍏ュ瘑鐮�" }, + pass1: { ID: 2302, TR: "璇疯緭鍏ュ瘑鐮侀暱搴︿负8~18浣�" }, + pass2: { ID: 2303, TR: "璇峰啀娆¤緭鍏ュ瘑鐮�" }, + pass3: { ID: 2304, TR: "涓ゆ瀵嗙爜杈撳叆涓嶄竴鏍�" }, + pass4: { ID: "", TR: "瀵嗙爜蹇呴』鍖呭惈澶у啓鎴栧皬鍐欏瓧姣嶃�佹暟瀛椼�佺壒娈婂瓧绗�" }, + loginName0: { ID: 2305, TR: "璇疯緭鍏ョ櫥褰曞悕" }, + loginName1: { ID: 2306, TR: "璇疯緭鍏ョ櫥褰曞悕闀垮害涓�6~18浣�" }, + userName0: { ID: 2307, TR: "璇疯緭鍏ョ敤鎴峰鍚�" }, + corpName0: { ID: 2308, TR: "璇疯緭鍏ュ叕鍙稿悕绉�" }, + corpAddress0: { ID: "", TR: "璇疯緭鍏ュ叕鍙稿湴鍧�" }, + tips1: { ID: "", TR: "涓嶈兘鍖呭惈鐗规畩绗﹀彿'鎴栵紙锛夋垨*" }, + }, + }, + // 澶撮儴header鏍� + header: { + serieslist: { ID: 1, TR: "鐢靛瓙鏍锋湰" }, + selparas: { ID: 5, TR: "鍙傛暟閫夊瀷" }, + lang: { ID: 449, TR: "璇█" }, + cn: { ID: 714, TR: "涓枃" }, + en: { ID: 296, TR: "鑻辨枃" }, + ko: { ID: 299, TR: "闊╂枃" }, + es: { ID: 2360, TR: "瑗跨彮鐗欐枃" }, + russian: { ID: 302, TR: "淇勬枃" }, + Applications: { ID: 2309, TR: "鍏朵粬搴旂敤" }, + danji: { ID: 2310, TR: "鍗曟満鐗�" }, + android: { ID: 2311, TR: "瀹夊崜" }, + ios: { ID: 2312, TR: "鑻规灉" }, + wechat: { ID: 2313, TR: "寰俊" }, + userInfo: { ID: 2423, TR: "璐︽埛淇℃伅" }, + logout: { ID: 707, TR: "閫�鍑虹櫥褰�" }, + collectList: { ID: 2406, TR: "鏀惰棌鍒楄〃" }, + compareList: { ID: 840, TR: "姣旇緝鍒楄〃" }, + collect: { ID: 1705, TR: "鏀惰棌" }, + addCollect: { ID: 2407, TR: "鍔犲叆鏀惰棌" }, + deleteCollect: { ID: 842, TR: "娓呴櫎鏀惰棌" }, + compare: { ID: 691, TR: "姣旇緝" }, + addCompare: { ID: 839, TR: "鍔犲叆姣旇緝" }, + deleteCompare: { ID: 841, TR: "娓呴櫎姣旇緝" }, + comparisonAdded: { ID: 2408, TR: "宸茬粡鍔犲叆姣旇緝鍒楄〃" }, + addComparSueecss: { ID: 2409, TR: "鍔犲叆姣旇緝鍒楄〃鎴愬姛" }, + clearComparList: { ID: 2410, TR: "纭娓呴櫎姣旇緝鍒楄〃" }, + + clearComparSuccess: { ID: 2411, TR: "娓呴櫎姣旇緝鍒楄〃鎴愬姛" }, + confirmDelCompar: { ID: 2412, TR: "纭鍒犻櫎姝ゅ瀷鍙风殑姣旇緝" }, + deleteSuccess: { ID: 2413, TR: "鍒犻櫎鎴愬姛" }, + confirmDelCollect: { ID: 2414, TR: "纭鍒犻櫎姝ゆ敹钘�" }, + confirmClearCollect: { ID: 2415, TR: "纭娓呴櫎鏀惰棌" }, + clearCollectSueecss: { ID: 2416, TR: "娓呴櫎鎴愬姛" }, + collecExists: { ID: 2417, TR: "鏀惰棌宸插瓨鍦�" }, + collectSuccess: { ID: 2418, TR: "鏀惰棌鎴愬姛" }, + login: { ID: 673, TR: "鐧诲綍" }, + information: { ID: 2419, TR: "涓汉淇℃伅" }, + tipInfo: { ID: 2420, TR: "鎮ㄧ‘瀹氳閫�鍑虹郴缁熷悧" }, + tip: { ID: 289, TR: "鎻愮ず" }, + define: { ID: 125, TR: "纭畾" }, + cancel: { ID: 126, TR: "鍙栨秷" }, + collectTip: { ID: 2421, TR: "鏀惰棌鍒楄〃涓虹┖" }, + compareTip: { ID: 2422, TR: "姣旇緝鍒楄〃鑷冲皯闇�瑕佷袱椤�" }, + accountModification: { ID: "", TR: "璐︽埛淇敼" }, + accountInfo: { ID: 2423, TR: "璐︽埛淇℃伅" }, + baseInfo: { ID: 424, TR: "鍩烘湰淇℃伅" }, + realName: { ID: 631, TR: "鐪熷疄濮撳悕" }, + account: { ID: 2424, TR: "璐﹀彿" }, + telPhoneNumber: { ID: 379, TR: "鎵嬫満鍙�" }, + email: { ID: 1803, TR: "閭" }, + corpName: { ID: 102, TR: "鍏徃鍚嶇О" }, + code: { ID: "", TR: "缂栫爜" }, + corpAddress: { ID: 710, TR: "鍏徃鍦板潃" }, + userSetting: { ID: "", TR: "鐢ㄦ埛璁剧疆" }, + + entryName: { ID: "", TR: "椤圭洰鍚嶇О" }, //yy add--- + companyYName: { ID: "", TR: "鎮ㄧ殑鍏徃鍚�" }, + companyType: { ID: "", TR: "绫诲瀷" }, + constructionParty: { ID: "", TR: "閲囪喘鏂�/寤鸿鏂�" }, + projectLocation: { ID: "", TR: "椤圭洰鎵�鍦ㄥ湴" }, + projectCity: { ID: "", TR: "鍩庡競" }, + projectArea: { ID: "", TR: "鍘�/鍖�" }, + projectDetailAddress: { ID: "", TR: "璇︾粏鍦板潃" }, + projectNotes: { ID: "", TR: "澶囨敞璇存槑" }, + + itemName: { ID: "", TR: "椤圭洰鍚�" }, + itemNo: { ID: "", TR: "椤圭洰缂栧彿" }, + item_start_EndTime: { ID: "", TR: "寮�濮�/缁撴潫鏃堕棿" }, + ConsumerName: { ID: "", TR: "涓氫富鏂�" }, + PrjCreateTime: { ID: "", TR: "椤圭洰娣诲姞鏃堕棿" }, + CustomerDistrict: { ID: "", TR: "鎵�灞炲尯鍩�" }, + C_Address: { ID: "", TR: "鍦板潃" }, + itemQuery: { ID: "", TR: "鏌ヨ" }, + itemDelete: { ID: "", TR: "鍒犻櫎" }, + }, + // 搴曢儴footer 鏍� + footer: { + version: { ID: 29, TR: "鐗堟湰" }, + technical: { ID: 697, TR: "鎶�鏈敮鎸侊細涓婃捣涔夌淮娴佷綋绉戞妧鏈夐檺鍏徃" }, + technicalAddres: { ID: "", TR: "澶囨鍙蜂负锛氭勃ICP澶�14049296鍙�-2" }, + copyright: { ID: "", TR: "鐗堟潈鎵�鏈夛細涓婃捣涔夌淮娴佷綋绉戞妧鏈夐檺鍏徃" }, + copyrightAddres: { ID: "", TR: "鍦板潃锛氫笂娴峰競闂佃鍖烘睙鏈堣矾999鍙�1骞�615" }, + tips: { ID: 2425, TR: "鏁版嵁浠呬緵鍙傝�冿細濡傛湁淇敼鎭曚笉閫氱煡 鐗堟潈鎵�鏈夛紝鐩楃増蹇呯┒" }, + }, + // 渚涙按椤圭洰 + swproject: { + projectName: { ID: "", TR: "椤圭洰鍚嶇О" }, + dateTime: { ID: "", TR: "鏃ユ湡鏃堕棿" }, + projectNo: { ID: "", TR: "椤圭洰缂栧彿" }, + customerName: { ID: "", TR: "瀹㈡埛鍚嶇О" }, + consumerName: { ID: "", TR: "缁堢鐢ㄦ埛" }, + quoteTotalMoney: { ID: "", TR: "鎶ヤ环鍗曟�婚噾棰�" }, + createTime: { ID: "", TR: "鍒涘缓鏃堕棿" }, + saveTime: { ID: "", TR: "淇濆瓨鏃堕棿" }, + inquiryDueDate: { ID: "", TR: "璇环鎴鏃ユ湡" }, + anticipatedOrderDate: { ID: "", TR: "棰勮璁㈠崟鏃ユ湡" }, + operation: { ID: "", TR: "鎿嶄綔" }, + editProject: { ID: "", TR: "缂栬緫" }, + addAuth: { ID: "", TR: "娣诲姞鏉冮檺" }, + addItem: { ID: "", TR: "娣诲姞宸ヤ綅" }, + query: { ID: "", TR: "鏌ヨ" }, + add: { ID: "", TR: "娣诲姞" }, + marketType: { ID: "", TR: "甯傚満绫诲瀷" }, + clearSelect: { ID: "", TR: "娓呯┖鎵�閫夋敹钘忓垪琛�" }, + + basicQuoteInformation: { ID: "", TR: "鍩烘湰淇℃伅" }, + quoteNumber: { ID: "", TR: "鎶ヤ环鍗曠紪鍙�" }, + quoteStatus: { ID: "", TR: "鎶ヤ环鐘舵��" }, + projectStage: { ID: "", TR: "椤圭洰闃舵" }, + classSale: { ID: "", TR: "鎶ヤ环鐘舵��" }, + quoteDisposition: { ID: "", TR: "鎶ヤ环澶勭悊" }, + actualCloseDate: { ID: "", TR: "瀹為檯鍏抽棴鏃ユ湡" }, + quoteDispositionStatus: { ID: "", TR: "鎶ヤ环澶勭悊鐘舵��" }, + quoteDispositionReason: { ID: "", TR: "鎶ヤ环澶勭悊鍘熷洜" }, + quoteDispositionComments: { ID: "", TR: "鎶ヤ环澶勭悊寤鸿" }, + customerAndEndUser: { ID: "", TR: "瀹㈡埛涓庣粓绔敤鎴�" }, + customerName: { ID: "", TR: "瀹㈡埛鍚嶇О" }, + endUser: { ID: "", TR: "缁堢鐢ㄦ埛" }, + countryOfInstallation: { ID: "", TR: "鍥藉唴/澶�" }, + country: { ID: "", TR: "鍥藉" }, + province: { ID: "", TR: "鐪�" }, + city: { ID: "", TR: "甯�" }, + area: { ID: "", TR: "鍖�" }, + addressDetail: { ID: "", TR: "璇︾粏鍦板潃" }, + customerContact: { ID: "", TR: "鑱旂郴鏂瑰紡" }, + quotationTimeLine: { ID: "", TR: "鎶ヤ环鏃堕棿绾�" }, + inquiryReceivedDate: { ID: "", TR: "璇环鎺ユ敹鏃ユ湡" }, + inquiryDueDate: { ID: "", TR: "璇环鎴鏃ユ湡" }, + anticipatedOrderDate: { ID: "", TR: "棰勮璁㈠崟鏃ユ湡" }, + actualQuoteSubmittedDate: { ID: "", TR: "瀹為檯鎶ヤ环鎻愪氦鏃ユ湡" }, + salesInformationSecurity: { ID: "", TR: "閿�鍞俊鎭�&瀹夊叏" }, + quoteCurrency: { ID: "", TR: "鎶ヤ环璐у竵" }, + deliveryPort: { ID: "", TR: "浜よ揣娓彛" }, + transaction: { ID: "", TR: "浜ゆ槗鏂瑰紡" }, + exchangeRate: { ID: "", TR: "姹囩巼" }, + otherEditors: { ID: "", TR: "鍏朵粬缂栬緫鑰�" }, + available: { ID: "", TR: "鍙�夌殑" }, + selected: { ID: "", TR: "閫変腑鐨�" }, + other: { ID: "", TR: "鍏朵粬" }, + save: { ID: "", TR: "淇濆瓨" }, + headSculpture: { ID: "", TR: "澶村儚" }, + no: { ID: "", TR: "缂栧彿" }, + name: { ID: "", TR: "鍚嶇О" }, + usageState: { ID: "", TR: "浣跨敤鐘舵��" }, + location: { ID: "", TR: "浣嶇疆" }, + address: { ID: "", TR: "璇︾粏鍦板潃" }, + back: { ID: "", TR: "杩斿洖" }, + automatically: { ID: "", TR: "鑷姩鐢熸垚" }, + }, + // 绠�鏄撻」鐩� + simpleProject: { + tips1: { ID: "", TR: "璇疯嚦灏戦�変腑涓�涓瀷鍙�" }, + tips2: { ID: "", TR: "纭杩斿洖锛�" }, + tips3: { ID: "", TR: "纭鍒犻櫎姝ゅ瀷鍙峰悧锛�" }, + tips4: { ID: "", TR: "娣诲姞澶辫触" }, + tips5: { ID: "", TR: "娣诲姞鎴愬姛" }, + tips6: { ID: "", TR: "娓呴櫎鏀惰棌鍒楄〃" }, + auto: { ID: "", TR: "鑷姩鐢熸垚" }, + someAsCustomer: { ID: "", TR: "鍜屽鎴蜂竴鏍�" }, + itemInfo: { ID: "", TR: "宸ヤ綅淇℃伅" }, + creator: { ID: "", TR: "鍒涘缓浜�" }, + + upload: { ID: "", TR: "涓婁紶" }, + notUpload: { ID: "", TR: "鏈笂浼�" }, + lastEditor: { ID: "", TR: "鏈�鍚庣紪杈戜汉" }, + tips7: { ID: "", TR: "椤圭洰鍚嶇О涓嶈兘涓虹┖" }, + tips8: { ID: "", TR: "姝ゆ搷浣滃皢鍒犻櫎璇ラ」鐩�, 鏄惁缁х画?" }, + tips9: { ID: "", TR: "鏃犳硶璇诲彇鍒伴」鐩俊鎭�" }, + tips10: { ID: "", TR: "鍒犻櫎澶辫触" }, + tips11: { ID: "", TR: "鍒犻櫎鎴愬姛" }, + tips12: { ID: "", TR: "宸插彇娑堝垹闄ゆ搷浣�" }, + tips13: { ID: "", TR: "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖" }, + tips14: { ID: "", TR: "璇峰~閫夊鎴�" }, + + tips15: { ID: "", TR: "淇敼鎴愬姛" }, + tips16: { ID: "", TR: "淇敼澶辫触" }, + tips17: { ID: "", TR: "姝ゆ搷浣滃皢娓呯┖宸插~淇℃伅, 鏄惁缁х画?" }, + tips18: { ID: "", TR: "宸插彇娑堟搷浣�" }, + }, + //蹇�熼�夊瀷-澶у厓 + quickSelection: { + pressurize: { ID: 923, TR: "澧炲帇" }, + groundWater: { ID: "", TR: "鍦颁笅姘�" }, + wasteWater: { ID: "", TR: "搴熸按" }, + liftingStation: { ID: "", TR: "鎻愬崌绔�" }, + quickSelection: { ID: "", TR: "蹇�熼�夊瀷" }, + inletPressureType: { ID: "", TR: "鍏ュ彛鍘嬪姏绫诲瀷" }, + pressurizeType1: { ID: "", TR: "灞嬮《姘寸渚涙按澧炲帇" }, + pressurizeType2: { ID: "", TR: "姘寸渚涙按澧炲帇" }, + pressurizeType3: { ID: "", TR: "甯傛斂渚涙按" }, + pressurizeType4: { ID: "", TR: "璐熷帇灏忎簬8绫�" }, + selectionParams: { ID: "", TR: "閫夊瀷鍙傛暟" }, + stopcocks: { ID: "", TR: "姘撮緳澶存暟" }, + floors: { ID: "", TR: "妤煎眰鏁�" }, + tappingPoint: { ID: "", TR: "鍒嗘帴鐐�" }, + houseType: { ID: "", TR: "鎴垮眿绫诲瀷" }, + tapPressure: { ID: "", TR: "姘撮緳澶村帇鍔�" }, + singleStoryHouses: { ID: "", TR: "鍗曞眰鎴垮眿" }, + doubleDeckerHouse: { ID: "", TR: "鍙屽眰鎴垮眿" }, + outdoorPipelineMaterials: { ID: "", TR: "瀹ゅ绠¢亾鏉愭枡" }, + outdoorPipelineDiameter: { ID: "", TR: "瀹ゅ绠¢亾鍙e緞" }, + outdoorPipelineLength: { ID: "", TR: "瀹ゅ绠¢亾闀垮害" }, + indoorPipelineLength: { ID: "", TR: "瀹ゅ唴绠¢亾闀垮害" }, + pressureHeadSize: { ID: "", TR: "鍘嬪ご澶у皬纭畾" }, + crossSectionalArea: { ID: "", TR: "妯埅闈㈢Н纭畾" }, + plasticPipe: { ID: "", TR: "濉戞枡绠�" }, + maxTappingHeight: { ID: "", TR: "鏈�楂樺垎鎺ョ偣楂樺害" }, + buildingHeight: { ID: "", TR: "鎴垮眿楂樺害" }, + wellheadHeight: { ID: "", TR: "浜曞彛楂樺害" }, + dynamicWaterLevel: { ID: "", TR: "鍔ㄦ�佹按浣嶉珮搴�" }, + powerSupply: { ID: "", TR: "鐢垫簮" }, + houseCableEntry: { ID: "", TR: "鎴垮眿鐢电紗鍏ュ彛" }, + cableCrossSectionalArea: { ID: "", TR: "鎴垮眿鐢电紗鍏ュ彛" }, + tips1ByGroundWater: { ID: "", TR: "璇风‘瀹氬帇澶村ぇ灏�" }, + tips2ByGroundWater: { ID: "", TR: "璇烽�夋嫨鎴垮眿绫诲瀷" }, + tips3ByGroundWater: { ID: "", TR: "璇风‘璁ょ數缂嗘�婚暱搴�" }, + tips4ByGroundWater: { ID: "", TR: "鏈煡璇㈠埌婊¤冻鏉′欢鐨勬车" }, + drainage: { ID: "", TR: "鎺掓按" }, + drainageType: { ID: "", TR: "鎺掓按绫诲瀷" }, + sewage: { ID: "", TR: "姹℃按" }, + sewageOrWastewater: { ID: "", TR: "姹℃按/搴熸按" }, + maxConveyingDistance: { ID: "", TR: "鏈�澶ц緭閫佽窛绂�" }, + pressureTip: { + tip1: { ID: "", TR: "鍏ュ彛鍘嬪姏绫诲瀷" }, + tip2: { ID: "", TR: "閫夋嫨鎵�闇�鐨勫帇鍔涚被鍨嬫儏鍐�" }, + tip3: { ID: "", TR: "杈撳叆姘撮緳澶存暟鍜屾ゼ灞傛暟" }, + tip4: { ID: "", TR: "閫夊瀷缁撴灉" }, + tip5: { ID: "", TR: "姝ゅ潡鍖哄煙鍙煡鐪嬬鍚堟潯浠剁殑閫夊瀷缁撴灉" }, + tip6: { ID: "", TR: "璇疯緭鍏ユゼ灞傛暟" }, + tip7: { ID: "", TR: "璇疯緭鍏ユ按榫欏ご鏁�" }, + }, + groundWaterTip: { + tip1: { ID: "", TR: "鏍规嵁鎯呭喌杈撳叆鍙傛暟" }, + tip2: { ID: "", TR: "鍘嬪ご纭畾" }, + tip3: { ID: "", TR: "鍘嬪ごA" }, + tip4: { ID: "", TR: "鍘嬪ごB" }, + tip5: { ID: "", TR: "鍘嬪ごC" }, + tip6: { ID: "", TR: "纭畾妯埅闈㈢Н" }, + tip7: { ID: "", TR: "鏍规嵁鎯呭喌杈撳叆鍚勬鐨勭數缂嗛暱搴�" }, + tip8: { ID: "", TR: "鐢电紗E" }, + tip9: { ID: "", TR: "鐢电紗D" }, + tip10: { ID: "", TR: "鐢电紗F" }, + tip11: { ID: "", TR: "鑾峰彇閫夊瀷缁撴灉" }, + tip12: { ID: "", TR: "鐐瑰嚮閫夊瀷鎸夐挳鑾峰彇閫夊瀷缁撴灉" }, + tip13: { ID: "", TR: "鏍规嵁鎯呭喌杈撳叆闇�瑕佺殑鍚勬鍘嬪ご鍊笺��" }, + }, + wasteWaterTips: { + tip1: { ID: "", TR: "鎺掓按绫诲瀷绫诲瀷" }, + tip2: { ID: "", TR: "鏍规嵁鎯呭喌閫夋嫨鎺掓按绫诲瀷" }, + tip3: { ID: "", TR: "杈撳叆鍘嬪ご鍜屾渶澶ц緭閫佽窛绂�" }, + tip4: { ID: "", TR: "閫夊瀷缁撴灉" }, + tip5: { ID: "", TR: "姝ゅ潡鍖哄煙鍙煡鐪嬬鍚堟潯浠剁殑閫夊瀷缁撴灉" }, + }, + }, + }; + \ No newline at end of file diff --git a/src/I18n/index.ts b/src/I18n/index.ts new file mode 100644 index 0000000..a364931 --- /dev/null +++ b/src/I18n/index.ts @@ -0,0 +1,36 @@ +import { createI18n } from 'vue-i18n'; +import cn from './config/cn'; + +import zhLocale from 'element-plus/dist/locale/zh-cn.mjs'; + +const messages = {}; +const element = { 'zh-cn': zhLocale }; +const itemize = { + 'zh-cn': cn, +}; + +// 鍚堝苟鏁扮粍瀵硅薄锛堥潪鏍囧噯鏁扮粍瀵硅薄锛屾暟缁勪腑瀵硅薄鐨勬瘡椤� key銆乿alue 閮戒笉鍚岋級 +function mergeArrObj(list, key) { + let obj = {}; + obj = Object.assign({}, obj, list[key]); + return obj; +} +// 澶勭悊鏈�缁堟牸寮� +for (const key in itemize) { + messages[key] = { + name: key, + el: element[key].el, + }; + messages[key] = Object.assign(messages[key], mergeArrObj(itemize, key)); +} +const i18n = createI18n({ + legacy: false, + silentTranslationWarn: true, + missingWarn: false, + silentFallbackWarn: true, + fallbackWarn: false, + locale: localStorage.getItem('lang') || 'zh-cn', // 璁剧疆榛樿璇█ + messages, // 璁剧疆缈昏瘧鍐呭 +}); + +export default i18n; diff --git a/src/api/login.ts b/src/api/login.ts new file mode 100644 index 0000000..ba202d7 --- /dev/null +++ b/src/api/login.ts @@ -0,0 +1,8 @@ +import { request } from "@/utils/request" +export const login = (data)=>{ + return request ({ + url:"v3/UserLogin/WebLogin", + params:data, + method:'get' + }) +} \ No newline at end of file diff --git a/src/components/AppHeader.vue b/src/components/AppHeader.vue index 4c22b84..a8e09fe 100644 --- a/src/components/AppHeader.vue +++ b/src/components/AppHeader.vue @@ -17,7 +17,7 @@ <el-menu-item index="/certified-products" class="!px-4">鑳芥晥浜у搧</el-menu-item> <el-menu-item index="/eec-label-search" class="!px-4">璇佷功鏌ヨ</el-menu-item> <el-menu-item index="/news-detail/99" class="!px-4">琛ヨ创鏀跨瓥</el-menu-item> - <el-menu-item class="!px-4" @click="linkClick(' http://www.xpump.net/web/#/CN/Index')">鏌ユ车缃�</el-menu-item> + <el-menu-item class="!px-4" @click="linkClick">鏌ユ车缃�</el-menu-item> </el-menu> </nav> @@ -33,10 +33,10 @@ <template v-if="!userInfo"> <a href="#" class="hover:text-blue-500">娉ㄥ唽</a> <span class="mx-2">路</span> - <router-link to="/login" class="hover:text-blue-500">鐧诲綍</router-link> + <a @click="toLogin" class="hover:text-blue-500">鐧诲綍</a> </template> <template v-else> - <span class="text-blue-500 mr-2">{{ userInfo.username }}</span> + <span class="text-blue-500 mr-2">{{ userInfo.RealName }}</span> <a href="#" class="hover:text-blue-500" @click.prevent="handleLogout">閫�鍑�</a> </template> </div> @@ -52,6 +52,9 @@ import { ElMessage } from 'element-plus'; import { computed, ref } from 'vue'; import { useRoute, useRouter } from 'vue-router'; +import { useLogin } from '@/stores/useLogin'; + +const loginStore = useLogin(); const route = useRoute(); const router = useRouter(); @@ -66,19 +69,30 @@ // 鑾峰彇鐢ㄦ埛淇℃伅 const userInfo = computed(() => { - const info = localStorage.getItem('userInfo'); - return info ? JSON.parse(info) : null; + const UserInfo = loginStore.getUserInfo(); + return UserInfo ? UserInfo : null; }); +const toLogin = () => { + router.replace({ + path: '/login', + query: { + redirectPath: route.fullPath, + }, + }); +}; // 澶勭悊鐧诲嚭 const handleLogout = () => { - localStorage.removeItem('userInfo'); + loginStore.logOut(); ElMessage.success('宸查��鍑虹櫥褰�'); - router.push('/login'); + router.replace({ + path: '/login', + query: { redirectPath: route.fullPath }, + }); }; -const linkClick = (url) => { - window.open(url, '_blank'); +const linkClick = () => { + router.push('/select-selpara'); }; </script> diff --git a/src/main.ts b/src/main.ts index 8755154..d372438 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,7 @@ import '@/styles/index.scss'; import ElementPlus from 'element-plus'; import 'element-plus/dist/index.css'; +import i18n from './I18n/index'; import { createApp } from 'vue'; import App from './App.vue'; // import './assets/main.css'; @@ -9,6 +10,7 @@ const app = createApp(App); app.use(createPinia()); +app.use(i18n) app.use(router); app.use(ElementPlus); diff --git a/src/router/index.ts b/src/router/index.ts index a9c8609..333b633 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -72,6 +72,11 @@ name: 'order-info', component: () => import('../views/OrderInfo.vue'), }, + { + path:'/select-selpara', + name:'select-selpara', + component: () => import('../views/SPump/Select/ByPara2/Index.vue'), + } ], }); diff --git a/src/stores/db.ts b/src/stores/db.ts new file mode 100644 index 0000000..1f9d848 --- /dev/null +++ b/src/stores/db.ts @@ -0,0 +1,29 @@ +/**鏈湴瀛樺偍搴� */ + +export default { + /** + * @description 璁剧疆 + */ + set(key:string, value:any) { + localStorage.setItem(`${key}`, JSON.stringify(value)) + }, + /** + * @description 鑾峰彇 + */ + get(key:string) { + return JSON.parse(localStorage.getItem(`${key}`)) + }, + /** + * @description 鍒犻櫎浠ょ墝 + */ + remove(key:string) { + localStorage.removeItem(`${key}`) + }, + /** + * @description 娓呴櫎鍏ㄩ儴 + */ + clearAll() { + localStorage.clear() + }, + } + \ No newline at end of file diff --git a/src/stores/select.ts b/src/stores/select.ts new file mode 100644 index 0000000..d08f64e --- /dev/null +++ b/src/stores/select.ts @@ -0,0 +1,31 @@ +//閫夊瀷妯″潡 +import { defineStore } from "pinia"; +const corpFlag = "IEE"; +const keyBySimu = `${corpFlag}_BySimu`; +const keyByParas = `${corpFlag}_ByParas`; +export const useSelect = defineStore("select", { + state: () => ({ + /**鍙傛暟閫夊瀷 */ + ByParas:JSON.parse(sessionStorage.getItem(keyByParas)) || {} + }), + actions: { + setByParas(current) { + sessionStorage.setItem(keyByParas,JSON.stringify(current)); + Object.assign(this.ByParas, current); + }, + + setBySimu(current) { + sessionStorage.setItem(keyBySimu, JSON.stringify(current)); + Object.assign(this.BySimu, current); + }, + + setBySWParas(current) { + sessionStorage.setItem("BySWParas", JSON.stringify(current)); + Object.assign(this.BySWParas, current); + }, + + clear(key) { + sessionStorage.remove(key); + }, + }, +}); diff --git a/src/stores/useLogin.ts b/src/stores/useLogin.ts new file mode 100644 index 0000000..93db1bc --- /dev/null +++ b/src/stores/useLogin.ts @@ -0,0 +1,105 @@ +import { defineStore } from 'pinia'; +import db from './db'; +const account_key_name = `IEE_account`; +export const useLogin = defineStore('userInfo', { + state: () => ({ + /** 鐢ㄦ埛ID 0 Employee 1 OuterUser 2 Agent */ + UserID: 0, + /** 鐢ㄦ埛绫诲瀷 */ + UserType: 0, + /** 鐪熷疄濮撳悕 */ + RealName: '', + // 鐧诲綍鏃惰幏鍙栫殑Token + Token: null, + // 璁板綍閫�鍑虹櫥褰曚箣鍓嶇殑椤甸潰璺� + preLoginPagePath: db.get('path') || '', + }), + actions: { + /** + * @description 閫�鍑� + */ + logOut() { + // 娓呮浠ょ墝淇℃伅鍜岃处鎴蜂俊鎭� + this.clear(); + }, + + /** + * 浠庢湰鍦板瓨鍌ㄤ腑鍔犺浇浠ょ墝 + */ + loadfromlocalstorage() { + const user = db.get(account_key_name); + if (user) { + this.UserID = user.UserID; + this.UserType = user.UserType; + this.Token = user.Token; + this.RealName = user.RealName; + } + }, + /** + * 璁剧疆鐧婚檰鍚庤烦杞殑椤甸潰 + */ + preLoginPageRoute(path) { + //灏嗚矾寰勫瓨鍏ョ紦瀛� + db.set('path', path); + path = db.get('path'); + this.preLoginPagePath = path; + }, + + /** + * 鍒濆鍖栫敤鎴蜂俊鎭� + */ + init(user) { + let UserInfo = { + UserID: 0, + UserType: 0, + Token: '', + }; + if (!user) { + user = db.get(account_key_name); + UserInfo = { ...user }; + } + if (user) { + this.UserID = user.UserID; + this.UserType = user.UserType; + this.Token = user.Token; + this.RealName = user.RealName; + + UserInfo.UserID = user.UserID; + UserInfo.UserType = user.UserType; + UserInfo.Token = user.Token; + } + db.set(account_key_name, user); + }, + // 鑾峰彇鐢ㄦ埛淇℃伅 + getUserInfo() { + const user = db.get(account_key_name); + + let userInfo = { + /** 鐢ㄦ埛ID 0 Employee 1 OuterUser 2 Agent */ + UserID: this.UserID, + /** 鐢ㄦ埛绫诲瀷 */ + UserType: this.UserType, + /** 鐪熷疄濮撳悕 */ + RealName: this.RealName, + // 鐧诲綍鏃惰幏鍙栫殑Token + Token: this.Token, + }; + if (user) { + userInfo = user; + return userInfo; + } + return userInfo; + }, + + /** + * 娓呮鐢ㄦ埛淇℃伅 + */ + clear() { + this.UserID = 0; + this.UserType = 0; + this.RealName = ''; + this.Token = ''; + db.remove(account_key_name); + }, + }, +}); diff --git a/src/utils/request.ts b/src/utils/request.ts new file mode 100644 index 0000000..1d3dd4d --- /dev/null +++ b/src/utils/request.ts @@ -0,0 +1,36 @@ +import type { AxiosInstance, CreateAxiosDefaults } from 'axios'; +import axios from 'axios'; +import { useLogin } from '@/stores/useLogin'; +// 閰嶇疆鏂板缓涓�涓� axios 瀹炰緥 +const createAxiosInstance = (option: Partial<CreateAxiosDefaults<any>> = {}) => { + const WebApi = window.globalConfig.WebApi + return axios.create({ + baseURL: WebApi, + timeout: 1200000, + ...option, + }); +}; +//#region ====================== 鏅�氳姹傚疄渚� ====================== +export const request = createAxiosInstance(); +//#endregion + +const initRequestInterceptor_yw = (instance: AxiosInstance) => { + instance.interceptors.request.use((config) => { + config.headers['Token'] = getToken(); + config.headers['Lang'] = 0; + return config; + }); + + instance.interceptors.response.use((response) => { + return response.data; + }); +}; +const getToken = () => { + const loginStore = useLogin() + const userInfo = loginStore.getUserInfo(); + return userInfo.Token ?? ''; +}; + +// 鍒濆鍖栬姹傛嫤鎴櫒 +initRequestInterceptor_yw(request); + diff --git a/src/views/Home.vue b/src/views/Home.vue index 5b0df7f..5dbd22e 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -80,7 +80,7 @@ </div> </router-link> <router-link to="/" class="block" style="border-right: 1px solid #e3e3e3"> - <div class="flex items-center gap-1 justify-center" @click="linkClick(' https://www.xpump.net/')"> + <div class="flex items-center gap-1 justify-center" @click="linkClick"> <div class="w-16 h-16"> <!-- <svg viewBox="0 0 24 24" class="w-full h-full"> <path @@ -503,8 +503,8 @@ // }, ]); -const linkClick = (url) => { - window.open(url, '_blank'); +const linkClick = () => { + router.push('/select-selpara') }; const routeClick = (url) => { diff --git a/src/views/Login.vue b/src/views/Login.vue index ba3c714..f545523 100644 --- a/src/views/Login.vue +++ b/src/views/Login.vue @@ -26,7 +26,7 @@ /> </el-form-item> - <el-form-item prop="captcha" class="flex space-x-4 mb-2"> + <!-- <el-form-item prop="captcha" class="flex space-x-4 mb-2"> <el-input v-model="loginForm.captcha" placeholder="璇疯緭鍏ュ浘鐗囬獙璇佺爜" @@ -35,7 +35,7 @@ class="custom-input flex-1 mr-2" /> <img src="@/assets/login/captcha.png" alt="楠岃瘉鐮�" class="h-[40px] w-[100px] cursor-pointer" @click="refreshCaptcha" /> - </el-form-item> + </el-form-item> --> <div class="flex items-center justify-between mb-4"> <el-checkbox v-model="loginForm.remember">璁颁綇璐﹀彿</el-checkbox> @@ -59,14 +59,17 @@ import { Key, Lock, User } from '@element-plus/icons-vue'; import { ElMessage } from 'element-plus'; import { reactive, ref } from 'vue'; +import {useLogin} from '@/stores/useLogin'; +import { useRoute } from 'vue-router'; import { useRouter } from 'vue-router'; - +import { login } from '@/api/login'; const router = useRouter(); +const route = useRoute(); const formRef = ref(); - +const loginStore = useLogin() const loginForm = reactive({ - username: '', - password: '', + username: 'demo', + password: '123456', captcha: '', remember: false, }); @@ -74,25 +77,41 @@ const rules = { username: [{ required: true, message: '璇疯緭鍏ョ敤鎴峰悕', trigger: 'blur' }], password: [{ required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur' }], - captcha: [{ required: true, message: '璇疯緭鍏ラ獙璇佺爜', trigger: 'blur' }], + // captcha: [{ required: true, message: '璇疯緭鍏ラ獙璇佺爜', trigger: 'blur' }], }; const handleLogin = () => { formRef.value.validate((valid: boolean) => { if (valid) { - // 淇濆瓨鐢ㄦ埛淇℃伅鍒發ocalStorage - const userInfo = { - username: loginForm.username, - isLogin: true, - }; - localStorage.setItem('userInfo', JSON.stringify(userInfo)); - ElMessage.success('鐧诲綍鎴愬姛'); - router.push('/'); + submitLogin() } else { return false; } }); }; +const submitLogin = async () => { + let form_data = { + UserType: 0, + LoginName: loginForm.username, + PassWord: loginForm.password, + }; + let res = await login(form_data); + let data = res.Data; + if (res.Code !== 0) { + ElMessage.error(res.Message); + return; + } + let { redirectPath } = route.query; + let redirect = "/"; + if (redirectPath != null) { + redirect = redirectPath; + } + + //瀛樺偍鐧诲綍鎴愬姛鍚庣殑鐢ㄦ埛淇℃伅 + loginStore.init(data.User); + ElMessage.success('鐧诲綍鎴愬姛'); + router.replace(redirect); +}; const refreshCaptcha = () => { // 鍒锋柊楠岃瘉鐮佺殑閫昏緫 diff --git a/src/views/SPump/Select/ByPara2/Index.vue b/src/views/SPump/Select/ByPara2/Index.vue new file mode 100644 index 0000000..ffb87df --- /dev/null +++ b/src/views/SPump/Select/ByPara2/Index.vue @@ -0,0 +1,44 @@ +<template> + <div class="sel_index"> + <component :is="selParasComponent"></component> + </div> +</template> + +<script setup name="byPara2Index"> +import { defineAsyncComponent, onMounted } from "vue"; +import { useLogin } from "@/stores/useLogin"; +import { useRoute } from "vue-router"; + +const route = useRoute(); +const loginStore = useLogin(); +const userInfo = loginStore.getUserInfo(); + +// 榛樿閫夊瀷鍙傛暟鐣岄潰缁勪欢鏄疍efault +let selParasComponent = defineAsyncComponent(() => + import(`./components/SelParasDefault.vue`) +); + +onMounted(() => { + //鍒ゆ柇鏄惁鐧诲綍 + const cToken = userInfo.Token; + if (IsMustLogin) { + if (cToken == null || cToken == "") { + gotoLoginPage(); + return; + } + } +}); + +const gotoLoginPage = () => { + loginStore.preLoginPageRoute(route.fullPath); + loginStore.login(route.fullPath); +}; +</script> + +<style> +.sel_index { + width: 100%; + min-width: 13.66rem; + height: 100%; +} +</style> diff --git a/src/views/SPump/Select/ByPara2/components/SelParasDefault.vue b/src/views/SPump/Select/ByPara2/components/SelParasDefault.vue new file mode 100644 index 0000000..d183de9 --- /dev/null +++ b/src/views/SPump/Select/ByPara2/components/SelParasDefault.vue @@ -0,0 +1,2754 @@ +<template> + <div + class="is-homepage" + style="display: flex; justify-content: center; align-items: center" + v-loading="state.isShowLoadingFrm" + element-loading-background="rgba(255,255,255, 0.8)" + > + <el-container class="o-site-main" style="max-width: 14.4rem; height: 100%"> + <el-aside width="200" class="large-2 columns" style="min-width: 2.2rem"> + <ul class="c-sidebar tabs vertical"> + <li class="c-sidebar__item tabs-title is-active"> + <a + class="c-sidebar__link" + role="tab" + aria-selected="true" + style="text-align: left; font-size: 0.22rem" + @click="backTo" + > + <span class="el-icon-s-home" style="font-size: 0.22rem"></span> + {{ t("selectPage.gotoIndexPage.TR") }} + </a> + </li> + <li class="c-sidebar__divider"></li> + <li class="c-sidebar__item" v-if="false"> + <a class="c-sidebar__link" style="display: flex"> + <span + class="iconfont iconsliders" + style="line-height: 0.24rem" + ></span> + {{ t("selectPage.advancedSelection.TR") }} + </a> + </li> + </ul> + </el-aside> + <el-main style="height: 100%; overflow: unset"> + <form style="height: 100%"> + <div class="row js-sticky-parent" style="height: 100%"> + <div class="small-12 large-6 columns" style="height: 100%"> + <div class="js-sticky-column" style="height: 100%"> + <div class="js-sticky-sidebar" style="height: 100%"> + <div class="row align-justify align-middle"> + <div class="columns"> + <h2 + class="cos-header" + style=" + font-size: 0.4rem; + text-align: left; + color: #3b3b3b; + " + > + {{ t("selectPage.workingConditions.TR") }} + </h2> + </div> + </div> + <div + class="c-card" + style="height: calc(100% - 0.65rem); overflow: auto" + > + <div class="row"> + <div class="columns c-quick-select__inputs"> + <div class="row"> + <!-- 娴侀噺杈撳叆 --> + <div class="columns"> + <label class="c-form-label" for="FlowRated">{{ + t("selectPage.flow.TR") + }}</label> + <div + class="o-input-select-combo js-ui-flowRated" + style="position: relative" + > + <input + class="c-input-select-combo--left" + type="number" + v-model="state.formData.DpQ" + @input="handleInputDpQ" + id="FlowRated" + name="FlowRated" + size="1" + /> + <select + id="FlowRatedUnit" + name="FlowRatedUnit" + size="1" + class="c-input-select-combo--right" + v-model="state.formData.DpQu" + @change="handleDpQuSelect" + > + <option + :value="item.value" + :id="index" + v-for="(item, index) in state.q_unit_list" + :key="item.value" + > + {{ item.label }} + </option> + </select> + <label + v-if="state.ruleDpQ" + style=" + position: absolute; + bottom: -0.02rem; + font-size: 0.1rem; + color: red; + " + >*{{ t("selectPage.flowRule.TR") }}</label + > + </div> + </div> + <!-- 鎵▼杈撳叆 --> + <div class="columns"> + <label class="c-form-label" for="HeadRated">{{ + t("selectPage.head.TR") + }}</label> + <div + class="o-input-select-combo" + style="position: relative" + > + <input + class="c-input-select-combo--left u-no-margin" + type="number" + autofocus="autofocus" + id="HeadRated" + name="HeadRated" + v-model="state.formData.DpH" + @input="handleInputDpH" + size="1" + /> + <select + id="HeadRatedUnit" + name="FlowRatedUnit" + v-model="state.formData.DpHu" + @change="handleDpHuSelect" + size="1" + class="c-input-select-combo--right u-no-margin" + > + <option + :value="item.value" + :id="index" + v-for="(item, index) in state.h_unit_list" + :key="item.value" + > + {{ item.label }} + </option> + </select> + <label + v-if="state.ruleDpH" + style=" + position: absolute; + bottom: -0.18rem; + font-size: 0.1rem; + color: red; + " + > + *{{ t("selectPage.headRule.TR") }} + </label> + </div> + </div> + </div> + <div class="row"> + <!-- 搴旂敤杩愯閰嶇疆鏂囦欢 --> + <div class="columns"> + <label + class="c-form-label" + for="trueWeightedEfficiencyProfile" + >{{ t("selectPage.driveType.TR") }}</label + > + <select + class="u-no-margin" + id="loadProfileNameCOS" + name="loadProfileNameCOS" + v-model="state.formData.driveType" + @change="changeDriveType" + > + <option + v-for="item in state.driveTypeList" + :key="item.Value" + :value="item.Value" + :disabled="!item.Enable" + > + {{ item.Text }} + </option> + </select> + <p style="text-align: left"> + <a + @click=" + state.isShowMoreDesignPoint = + !state.isShowMoreDesignPoint + " + > + <span class="right u-pointer u-no-wrap"> + {{ + state.isShowMoreDesignPoint + ? t("selectPage.hide.TR") + : t("selectPage.moreDesignPoints.TR") + }} + <span + :class=" + state.isShowMoreDesignPoint + ? 'fa fa-fw fa-angle-double-down' + : 'fa fa-fw fa-angle-double-right' + " + ></span> + </span> + </a> + </p> + </div> + <!-- 璁剧疆棰戠巼 --> + <div + class="columns" + v-if="state.formData.driveType != 3" + > + <label for="cos_cycle">{{ + t("selectPage.setFrequency.TR") + }}</label> + <div class="row align-middle"> + <div class="columns" style="padding-left: 0rem"> + <select + id="Frequency" + name="Frequency" + size="1" + class="tableInputField" + v-model="state.formData.motorFrequence" + @change="handldHzSelect" + :disabled="state.formData.driveType == 3" + > + <option + v-for="item in state.m_frequenceList" + :key="item.Value" + :value="item.Value" + :id="item.Value" + > + {{ item.Text }} + </option> + </select> + </div> + <div + class="shrink columns" + style="margin-bottom: 0.2rem" + ></div> + </div> + </div> + <!-- 璁剧疆鏌存补鏈鸿浆閫� --> + <div + class="columns" + v-if="state.formData.driveType == 3" + > + <label for="cos_cycle">{{ + t("selectPage.dieselEngineSpeed.TR") + }}</label> + <div + class="row align-middle" + style="position: relative" + > + <div class="columns" style="padding-left: 0rem"> + <input + class="c-input-select-combo--left" + type="tel" + autofocus="autofocus" + v-model="state.formData.dieselSpeed" + /> + <!-- 鏌存补鏈鸿浆閫熻缃� --> + <!-- <label v-if="ruleDieselSpeed" + style=" position: absolute; font-size: 0.1rem; color: red; "> + *{{ + t("selectPage.dieselEngineSpeedRule.TR") + }} + </label> --> + </div> + </div> + </div> + </div> + <!-- 绗簩璁捐鐐� --> + <div class="row" v-if="state.isShowMoreDesignPoint"> + <!-- 娴侀噺杈撳叆 --> + <div class="columns"> + <label class="c-form-label" for="FlowRated2">{{ + state.m_secondDpFlowText + }}</label> + <div class="o-input-select-combo js-ui-flowRated"> + <input + class="c-input-select-combo--left" + type="number" + autofocus="autofocus" + v-model="state.formData.DpQTwo" + id="FlowRated2" + name="FlowRated2" + size="1" + /> + </div> + </div> + <!-- 鎵▼杈撳叆 --> + <div class="columns"> + <label class="c-form-label" for="HeadRated2">{{ + state.m_secondDpHeadText + }}</label> + <div class="o-input-select-combo"> + <input + class="c-input-select-combo--left u-no-margin" + type="number" + autofocus="autofocus" + id="HeadRated2" + name="HeadRated2" + v-model="state.formData.DpHTwo" + size="1" + /> + </div> + </div> + </div> + <!-- 绗笁璁捐鐐� --> + <div class="row" v-if="state.isShowMoreDesignPoint"> + <!-- 娴侀噺杈撳叆 --> + <div class="columns"> + <label class="c-form-label" for="FlowRated3">{{ + state.m_thirdDpFlowText + }}</label> + <div class="o-input-select-combo js-ui-flowRated"> + <input + class="c-input-select-combo--left" + type="number" + autofocus="autofocus" + v-model="state.formData.DpQThree" + id="FlowRated3" + name="FlowRated3" + size="1" + /> + </div> + </div> + <!-- 鎵▼杈撳叆 --> + <div class="columns"> + <label class="c-form-label" for="HeadRated3">{{ + state.m_thirdDpHeadText + }}</label> + <div class="o-input-select-combo"> + <input + class="c-input-select-combo--left u-no-margin" + type="number" + autofocus="autofocus" + id="HeadRated3" + name="HeadRated3" + v-model="state.formData.DpHThree" + size="1" + /> + </div> + </div> + </div> + <div + class="row align-middle" + v-if="state.isShowFirePumpType" + > + <div class="columns"> + <label + class="c-form-label" + for="firePumpTypeComb" + >{{ t("selectPage.firePump.TR") }}</label + > + <div> + <select + id="firePumpTypeComb" + name="firePumpTypeComb" + class="tableInputField" + v-model="state.formData.firePumpType" + @change="changeFirePumpType" + > + <option + v-for="item in state.firePumpTypeList" + :key="item.Value" + :disabled="!item.Enable" + :value="item.Value" + :id="item.Value" + > + {{ item.Text }} + </option> + </select> + </div> + </div> + </div> + <!-- 杞�熸潯浠� --> + <div class="row align-middle"> + <div + class="columns" + v-if="state.formData.driveType != 3" + > + <label + class="c-form-label" + for="motorPoleNumComb" + >{{ t("selectPage.motorPoleNum.TR") }}</label + > + <div> + <select + id="motorPoleNumComb" + name="motorPoleNumComb" + class="tableInputField" + v-model="state.formData.motorPoleNum" + @change="changeMotorPoleNum" + > + <option + v-for="item in state.MotorPoleList" + :key="item.Value" + :value="item.Value" + :id="item.Value" + > + {{ item.Text }} + </option> + </select> + </div> + </div> + </div> + <!-- 鐢垫満鍔熺巼 --> + <div class="row align-middle"> + <div + class="columns" + v-if="state.formData.driveType != 3" + > + <label class="c-form-label" for="FlowRated3" + >{{ t("detailPage.motorPower.TR") }}(kw)</label + > + <div class="o-input-select-combo js-ui-flowRated"> + <input + class="c-input-select-combo--left" + type="number" + autofocus="autofocus" + v-model="state.formData.motorPower" + id="motorPowerComb" + name="motorPowerComb" + size="1" + /> + </div> + </div> + <div class="columns"> + <label class="c-form-label" for="NPSHa" + >NPSHa</label + > + <div class="o-input-select-combo js-ui-flowRated"> + <input + class="c-input-select-combo--left" + type="number" + autofocus="autofocus" + size="1" + id="NPSHaComb" + name="NPSHaComb" + v-model="state.formData.NPSHa" + /> + </div> + </div> + </div> + <!-- 鏄剧ず闅愯棌鏇村璁剧疆 --> + <p class="lead text-center"> + <a + class="js-cos-expand__more" + @click="toggleShowMoreSetting" + :class="state.isShowMoreSetting ? 'hide' : ''" + > + <i class="iconfont iconFontAwesomepluscircle"></i> + {{ t("selectPage.moreSet.TR") }} + </a> + <a + class="js-cos-expand__less" + @click="toggleShowMoreSetting" + :class="state.isShowMoreSetting ? '' : 'hide'" + > + <i class="iconfont iconFontAwesomeminuscircle"></i> + {{ t("selectPage.put.TR") }} + </a> + </p> + <div + class="js-cos-expand" + v-show="state.isShowMoreSetting" + > + <!-- 鐢垫皵鏍囧噯 --> + <div class="row"> + <div class="columns"> + <label for="electricalStandard">{{ + t("selectPage.motorPowerStd.TR") + }}</label> + <select + id="electricalStandard" + v-model="state.formData.motorStd" + @change="changeMotorStd" + name="electricalStandard" + > + <option + v-for="item in state.m_motorStdList" + :key="item.Value" + :value="item.Value" + :id="item.Value" + :disabled="!item.Enable" + > + {{ item.Text }} + </option> + </select> + </div> + <div class="columns"> + <label for="MinEta">{{ + t("selectPage.e_requirements.TR") + }}</label> + <input + v-model="state.formData.MinEta" + size="6" + type="number" + class="tableInputField" + :min="0" + :max="100" + @change="changeMinEta" + /> + </div> + </div> + <hr /> + <!-- 浠嬭川鍚嶇О --> + <div class="row"> + <!-- 鍙紪杈戠殑浠嬭川鍚嶇О --> + <div + v-if="!state.isDiyJieZhi" + class="columns" + style="position: relative" + > + <label class="c-form-label" for="LiquidType">{{ + t("selectPage.mediaName.TR") + }}</label> + <input + v-model="state.formData.jzName" + size="6" + type="text" + class="tableInputField" + @change="handleJzName" + /> + </div> + <!-- 鍙緭鍏ュ彲涓嬫媺閫夋嫨鐨勪粙璐ㄥ悕绉� --> + <div + v-else + class="columns jz-select-div" + style="position: relative" + > + <label class="c-form-label" for="LiquidType">{{ + t("selectPage.mediaName.TR") + }}</label> + <el-popover + v-model="state.isShowJieZhiPopover" + placement="bottom" + width="400" + trigger="click" + popper-class="jiezhipopoverstyle" + :offset="0" + :popper-options="{ + boundariesElement: 'viewport', + removeOnDestroy: true, + }" + > + <el-tree + :data="state.m_JieZhiTreeData" + :props="state.defaultProps" + highlight-current + @node-click="handleJieZhiNodeClick" + style="max-height: 1.8rem; overflow: auto" + ></el-tree> + <template #reference> + <div class="w100" style="position: relative"> + <el-input v-model="state.formData.jzName"> + <template #suffix> + <i + class="el-input__icon el-icon-caret-bottom" + ></i> + </template> + </el-input> + <el-icon + style=" + position: absolute; + right: 0.2rem; + top: 0.12rem; + " + > + <ArrowDownBold /> + </el-icon> + </div> + </template> + </el-popover> + </div> + </div> + <div + id="liquidCalloutDiv" + class="callout grey js-liquid-properties-override" + > + <div class="row align-top"> + <div class="shrink columns"> + <div class="switch tiny"> + <input + @change=" + changeJieZhiInputMehtod(isDiyJieZhi) + " + v-model="state.isDiyJieZhi" + type="checkbox" + name="overrideLiquidProperties" + id="overrideLiquidProperties" + class="switch-input" + /> + <label + for="overrideLiquidProperties" + class="switch-paddle" + ></label> + </div> + </div> + <div class="columns u-no-padding shrink"> + <label + v-if="!state.isDiyJieZhi" + for="overrideLiquidProperties" + >{{ + t("selectPage.customMediaProp.TR") + }}</label + > + <label v-else for="overrideLiquidProperties"> + {{ t("selectPage.mediaLibrary.TR") }} + </label> + </div> + </div> + <div class="row"> + <!-- 浣撶Н娴撳害 --> + <div class="columns"> + <label + class="c-form-label" + for="VolumeConcentration" + > + {{ + t("selectPage.volumeConcentration.TR") + }}</label + > + <div class="o-input-select-combo"> + <input + placeholder="" + v-model="state.formData.volumeConcentration" + @blur="handleVolumeConcentration" + oninput="value=value.replace(/[^0-9.]/g,'')" + size="6" + id="VolumeConcentration" + name="VolumeConcentration" + type="number" + class="c-input-select-combo--left" + /> + <select + id="VolumeConcentration" + size="1" + disabled="true" + class="c-input-select-combo--right" + > + <option selected value="8" id="8">%</option> + </select> + </div> + </div> + <!-- 娓╁害 --> + <div class="columns"> + <label + class="c-form-label" + for="TemperatureMax" + >{{ + t("selectPage.maxTemperature.TR") + }}</label + > + <div class="o-input-select-combo"> + <input + placeholder="" + v-model="state.formData.jzTemperature" + @blur="handleTemperature" + size="6" + id="TemperatureMax" + name="TemperatureMax" + type="text" + class="c-input-select-combo--left" + /> + <select + id="TemperatureMaxUnit" + size="1" + class="c-input-select-combo--right" + > + <option selected value="8" id="8">鈩�</option> + <option value="22" id="22">掳F</option> + <option value="139" id="139">掳R茅</option> + <option value="50" id="50">K</option> + </select> + </div> + </div> + </div> + <div class="row"> + <!-- 瀵嗗害 --> + <div class="columns"> + <label class="c-form-label" for="SGMax">{{ + t("selectPage.maxDensity.TR") + }}</label> + <div class="o-input-select-combo"> + <input + v-model="state.formData.calcDensity" + size="6" + name="SGMax" + id="SGMax" + type="text" + class="c-input-select-combo--left" + /> + <select + name="FluidDensityUnit" + id="constFluidDensityUnit" + v-model="state.formData.miduUnit" + class="c-input-select-combo--right" + size="1" + > + <option + v-for="item in state.MiDuOptionList" + :value="item.value" + :id="item.value" + > + {{ item.label }} + </option> + </select> + </div> + </div> + <!-- 绮樺害 --> + <div class="columns"> + <label + class="c-form-label" + for="ViscosityRated" + >{{ + t("selectPage.mediumViscosity.TR") + }}</label + > + <div class="o-input-select-combo"> + <input + v-model="state.formData.calcViscosity" + size="6" + name="ViscosityRated" + id="ViscosityRated" + type="text" + class="c-input-select-combo--left" + /> + <select + name="ViscosityRatedUnit" + v-model="state.NianDuUnit" + id="ViscosityRatedUnit" + class="c-input-select-combo--right" + size="1" + > + <option + v-for="item in state.NianDuOptionList" + :value="item.value" + :id="item.value" + :key="item.value" + > + {{ item.label }} + </option> + </select> + </div> + </div> + </div> + <div class="row" style="position: relative"> + <!-- 浠嬭川璇存槑 --> + <div class="columns"> + <label class="c-form-label" for="jzDesc"> + {{ + t("selectPage.mediaDescription.TR") + }}</label + > + <div class="o-input-select-combo"> + <input + placeholder="" + type="text" + v-model="state.formData.jzDesc" + size="6" + id="jzDesc" + name="jzDesc" + class="c-input-select-combo--left" + /> + </div> + </div> + <!-- 鏄惁鍚湁浠嬭川棰楃矑 --> + <div + class="columns" + style="position: absolute; right: 0" + > + <label + class="c-form-label" + for="TemperatureMax" + ></label> + <div class="o-input-select-combo"> + <el-checkbox + v-model="state.formData.hasMediaParticles" + /> + <span> + {{ + t("selectPage.isMediumParticles.TR") + }}</span + > + </div> + </div> + </div> + </div> + <!-- 妫�楠屽宸爣鍑� --> + <div class="row align-middle"> + <div class="columns"> + <label + class="c-form-label" + for="toleranceStandard" + >{{ t("selectPage.toleranceStand.TR") }}</label + > + <div> + <select + id="toleranceStandard" + name="toleranceStandard" + class="tableInputField" + v-model="state.formData.ToleranceStand" + @change="changeToleranceStand" + > + <option + v-for="item in state.m_toleranceStandardList" + :key="item.value" + :disabled="item.disable" + :value="item.value" + :id="item.value" + > + {{ item.text }} + </option> + </select> + </div> + </div> + </div> + <!-- 妫�楠屽宸瓑绾� --> + <div class="row align-middle"> + <div class="columns"> + <label + class="c-form-label" + for="toleranceGrade" + >{{ t("selectPage.toleranceGrade.TR") }}</label + > + <div> + <select + id="toleranceGrade" + name="toleranceGrade" + class="tableInputField" + v-model=" + state.formData.PointTolerance.ToleranceGrade + " + @change="changeToleranceGrade" + > + <option + v-for="item in state.m_toleranceGradeList" + :key="item.value" + :value="item.value" + :id="item.value" + > + {{ item.text }} + </option> + </select> + </div> + </div> + </div> + <div class="row"> + <!-- 鏈�灏忔祦閲忕櫨鍒嗘瘮 --> + <div class="columns" style="margin-bottom: 0.16rem"> + <label for="cos_cycle">{{ + t("selectPage.MinFlowPercentage.TR") + }}</label> + <div class="row align-middle"> + <div class="columns" style="padding-left: 0rem"> + <input + class="c-input-select-combo--left u-no-margin" + type="number" + autofocus="autofocus" + id="RatioMinQ" + name="RatioMinQ" + :disabled="!state.isToleranceLevelCustom" + v-model=" + state.formData.PointTolerance.RatioMinQ + " + size="1" + /> + </div> + <div class="shrink columns"> + <label>%</label> + </div> + </div> + </div> + <!-- 鏈�澶ф祦閲忕櫨鍒嗘瘮 --> + <div class="columns" style="margin-bottom: 0.16rem"> + <label for="cos_cycle">{{ + t("selectPage.MaxFlowPercentage.TR") + }}</label> + <div class="row align-middle"> + <div class="columns" style="padding-left: 0rem"> + <input + class="c-input-select-combo--left u-no-margin" + type="number" + :disabled="!state.isToleranceLevelCustom" + autofocus="autofocus" + id="RatioMaxQ" + name="RatioMaxQ" + v-model=" + state.formData.PointTolerance.RatioMaxQ + " + size="1" + /> + </div> + <div class="shrink columns"> + <label>%</label> + </div> + </div> + </div> + </div> + <div class="row"> + <!-- 鏈�灏忔壃绋嬬櫨鍒嗘瘮 --> + <div class="columns" style="margin-bottom: 0.16rem"> + <label for="cos_cycle">{{ + t("selectPage.MinHeadPercentage.TR") + }}</label> + <div class="row align-middle"> + <div class="columns" style="padding-left: 0rem"> + <input + class="c-input-select-combo--left u-no-margin" + type="number" + autofocus="autofocus" + id="RatioMinH" + :disabled="!state.isToleranceLevelCustom" + name="RatioMinH" + v-model=" + state.formData.PointTolerance.RatioMinH + " + size="1" + /> + </div> + <div class="shrink columns"> + <label>%</label> + </div> + </div> + </div> + <!-- 鏈�澶ф壃绋嬬櫨鍒嗘瘮 --> + <div class="columns" style="margin-bottom: 0.16rem"> + <label for="cos_cycle">{{ + t("selectPage.MaxHeadPercentage.TR") + }}</label> + <div class="row align-middle"> + <div class="columns" style="padding-left: 0rem"> + <input + class="c-input-select-combo--left u-no-margin" + type="number" + :disabled="!state.isToleranceLevelCustom" + autofocus="autofocus" + id="RatioMaxH" + name="RatioMaxH" + v-model=" + state.formData.PointTolerance.RatioMaxH + " + size="1" + /> + </div> + <div class="shrink columns"> + <label>%</label> + </div> + </div> + </div> + </div> + <div class="row align-middle"> + <div class="columns"> + <el-checkbox v-model="state.formData.IsAllowCut" + ><span style="font-size: 0.16rem">{{ + t("selectPage.allowCutting.TR") + }}</span></el-checkbox + > + </div> + <div class="columns"> + <el-checkbox + v-model="state.formData.IsAllowFrequence" + ><span style="font-size: 0.16rem">{{ + t("selectPage.allowFrequencyConversion.TR") + }}</span></el-checkbox + > + </div> + </div> + </div> + <div v-if="!state.isShowMoreSetting"> + <a + class="button" + id="searchButton" + @click.stop="nextPage" + > + {{ t("selectPage.nextStep.TR") }} + <span + class="iconfont icona-AngleDoubleRight" + ></span> + </a> + </div> + </div> + <!-- <div v-if="!isShowMoreSetting" + @click.stop="nextPage"> + <a class="button" id="searchButton"> + {{ t("selectPage.nextStep.TR") }} + <span class="iconfont icona-AngleDoubleRight"></span> + </a> + </div> --> + </div> + </div> + </div> + </div> + </div> + <div class="small-12 large-6 columns" style="height: 100%"> + <div style="height: 100%"> + <div class="sticky-container" style="height: 0.64rem"> + <div + style=" + width: 100%; + max-width: 5.7rem; + margin-top: 0rem; + top: 0rem; + bottom: auto; + " + class="sticky is-anchored is-at-top" + > + <div class="row align-justify"> + <div class="columns"> + <h2 + class="cos-header" + style=" + font-size: 0.4rem; + text-align: left; + color: #3b3b3b; + " + > + {{ t("selectPage.productSeries.TR") }} + </h2> + </div> + <div + class="columns text-right shrink hide-for-small-only" + > + <div + class="menu" + v-if="state.isShowMoreSetting" + @click.stop="nextPage" + > + <a class="button" id="searchButton"> + {{ t("selectPage.nextStep.TR") }} + <span + class="iconfont icona-AngleDoubleRight" + ></span> + </a> + </div> + </div> + </div> + </div> + </div> + + <div + class="c-card" + id="productLines" + style="height: calc(100% - 0.65rem); position: relative" + > + <selPumpSeries + v-if="state.m_selPumpSeriesCtrlType" + ref="pumpSeriesCtrl" + ></selPumpSeries> + <selPumpCatalog + v-if="!state.m_selPumpSeriesCtrlType" + ref="pumpCatalogCtrl" + ></selPumpCatalog> + </div> + </div> + </div> + </div> + </form> + </el-main> + </el-container> + </div> +</template> +<script setup name="selParasDefault"> +import { onMounted, ref, reactive } from "vue"; +import { ElMessage, ElContainer, ElMain, ElAside, ElPopover, ElTree, ElInput} from "element-plus"; +import UnitHelper from "@/utils/unit.js"; +import ConstParas from "@/utils/constParas.js"; +import UserSettingsHelper from "@/utils/userSetting.js"; + +import selPumpSeries from "./selPumpSeries.vue"; +import selPumpCatalog from "./selPumpCatalog.vue"; +import axiosHelper from "@/utils/axiosHelper.js"; +import languageHelper from "@/utils/languageHelper.js"; +import seriesApplicationMixin from "/@/mixin/seriesApplication"; +import { useRoute, useRouter } from "vue-router"; +import { useLanguageMixin } from "/@/mixin/languageHook.js"; +import { useSelect } from "@/store/select.js"; +import { useI18n } from "vue-i18n"; + +const route = useRoute(); +const router = useRouter(); +const { t } = useI18n(); + +const selectStore = useSelect(); +const { + getLanguageParaName, + getCurrentLanguageType, + gotoIndexPage, + buildCurrentLanguageUrl, +} = useLanguageMixin(); +const m_currentLanguage = getCurrentLanguageType(); + +const pumpSeriesCtrl = ref(); +const pumpCatalogCtrl = ref(); +let state = reactive({ + m_userType: 0, + m_Token: "", + + m_selPumpSeriesCtrlType: true, // 琛ㄧず閫夋嫨绫诲瀷鎺т欢 + m_isSelectAllSeries: false, //鏄惁鍏ㄩ�� + + isShowFirePumpType: true, //鏄惁鏄剧ず娑堥槻娉电被鍨� + isShowMoreDesignPoint: false, //鏄惁鏄剧ず鏇村璁捐鐐� + isShowMoreSetting: false, //鏄剧ず鏇村璁剧疆 + isShowLoadingFrm: true, //鏄剧ず鍔犺浇鍔ㄧ敾 + isShowJieZhiPopover: false, //鏄剧ず浠嬭川閫夋嫨 + MotorPoleList: [ + //杞�熺瓑绾т笅鎷夋 浠呴┍鍔ㄤ负鐢垫満鏃跺�欎娇鐢� + { Value: "", Text: "涓嶉檺" }, + { Value: "2", Text: "2p" }, + { Value: "4", Text: "4p" }, + { Value: "6", Text: "6p" }, + { Value: "8", Text: "8p" }, + { Value: "10", Text: "10p" }, + { Value: "12", Text: "12p" }, + ], + NianDuUnit: 0, + NianDuOptionList: UnitHelper.NianDu_Value_List, + + MiDuOptionList: UnitHelper.MiDu_Value_List, + q_unit_list: UnitHelper.Q_Value_List, + h_unit_list: UnitHelper.H_Value_List, + + m_toleranceStandardList: [], //妫�楠屽宸爣鍑嗕笅鎷夋鏁版嵁 + m_toleranceGradeList: [], //妫�楠屽宸瓑绾т笅鎷夋鏁版嵁 + + m_motorStdList: [], //鐢垫満鍔熺巼鏍囧噯涓嬫媺妗� + driveTypeList: [], //椹卞姩绫诲瀷 涓嬫媺閫夋嫨 + firePumpTypeList: [], //娑堥槻娉电被鍨嬩笅鎷� + m_frequenceList: [ + { Value: 50, Text: "50 HZ" }, + { Value: 60, Text: "60 HZ" }, + ], //棰戠巼涓嬫媺 + + isDiyJieZhi: false, //鏄惁鑷畾涔変粙璐ㄥ睘鎬� + + m_secondDpFlowText: "", //绗簩璁捐鐐规祦閲忔樉绀虹殑鏂囧瓧 + m_secondDpHeadText: "", //绗簩璁捐鐐规壃绋嬬殑鏂囧瓧 + + m_secondDpFlowText: "", //绗簩璁捐鐐规祦閲忔樉绀虹殑鏂囧瓧 + m_secondDpHeadText: "", //绗簩璁捐鐐规壃绋嬫樉绀虹殑鏂囧瓧鐨勬枃瀛� + m_thirdDpFlowText: "", //绗笁璁捐鐐规祦閲忔樉绀虹殑鏂囧瓧 + m_thirdDpFlowText: "", //绗笁璁捐鐐规壃绋嬫樉绀虹殑鏂囧瓧 + + formData: { + //琛ㄥ崟鏁版嵁 + DpQ: "", //娴侀噺 + DpQu: 1, //娴侀噺鍗曚綅 + DpH: "", //鎵▼ + DpHu: 0, //鎵▼鍗曚綅 + DpQTwo: "", //绗簩娴侀噺璁捐鐐� + DpHTwo: "", //绗簩鎵▼璁捐鐐� + DpQThree: "", //绗笁娴侀噺璁捐鐐� + DpHThree: "", //绗笁鎵▼璁捐鐐� + + motorFrequence: 50, //棰戠巼 + motorPower: "", //鐢垫満鍔熺巼 + motorPoleNum: "null", //鐢垫満绾ф暟 + dieselSpeed: "", //鏌存补鏈鸿浆閫� + jzID: "1", //褰撳墠閫変腑鐨勪粙璐↖D + jzName: t("selectPage.cleanWater.TR"), + jzTemperature: "20.0", //娓╁害 + calcDensity: 1000, //瀵嗗害 + miduUnit: 0, //瀵嗗害鍗曚綅 + calcViscosity: 1, //绮樺害 + volumeConcentration: 100, //浣撶Н娴撳害 + jzDesc: "", //浠嬭川璇存槑 + hasMediaParticles: false, //鏄惁鏈変粙璐ㄩ绮� + driveType: 0, //椹卞姩绫诲瀷 0鐢垫満 3鏌存补鏈� + MinEta: "", //鏁堢巼瑕佹眰 + firePumpType: 0, //娑堥槻娉电被鍨� + NPSHa: "", //姘旇殌 + IsAllowCut: true, //鏄惁鍏佽鍒囧壊 + IsAllowFrequence: true, //鏄惁鍏佽鍙橀 + + motorStd: 0, //鐢垫満鏍囧噯 + ToleranceStand: 1, //鏍¢獙瀹瑰樊鏍囧噯ID + PointTolerance: { + ToleranceGrade: "", + RatioMinQ: "", + RatioMaxQ: "", + RatioMinH: "", + RatioMaxH: "", + }, + + isVisCorrect: false, //鏄惁淇绮樺害 榛樿false + }, + ruleDpQ: false, //鍒ゆ柇鏄惁杈撳叆浜嗘祦閲� + ruleDpH: false, //鍒ゆ柇鏄惁杈撳叆浜嗘壃绋� + ruleDieselSpeed: false, + ruleMotorPoleNum: false, //鍒ゆ柇鏄惁閫夋嫨浜嗙數鏈烘瀬鏁� + isToleranceLevelCustom: false, + pointToleranceConfig: window.pointToleranceConfig, //瀹瑰樊閰嶇疆 + m_JieZhiCalaStatus: 0, //褰撳墠浠嬭川璁$畻鐘舵�侊紝涓�1鏃朵笖褰撳墠閫夋嫨鐨勬槸浠嬭川搴撳垯鏍规嵁娓╁害鍜屼綋绉祿搴﹁绠楀瘑搴﹀拰绮樺害 + m_JieZhiTreeData: [], + defaultProps: { + children: "children", + label: "label", + }, +}); +onMounted(() => { + translateUI(); + //鍒濆鍖栭厤缃� + initConfig(); + //鍒濆鍖栭〉闈㈡暟鎹� + //this.$nextTick(() => {}); + seriesApplicationMixin.initialSeriesApplication( + function (seriesApplicationData) { + initialPageData(seriesApplicationData); + }, + function () {} + ); +}); +//鍒濆鍖栭〉闈㈡暟鎹� +const initialPageData = async (seriesApplicationData) => { + axiosHelper + .get({ + version: 3, + // lang: this.m_currentLanguage, + //isAddLangParam : "false",鏄惁娣诲姞璇█鍙傛暟, 涓嶅姞璁剧疆涓篺alse,鍚﹀垯null + controller: "SelectByParas", + action: "GetParaPageInfo", + data: null, //闄や簡Lang鐨勫叾浠栧弬鏁� + userInfo: {}, + apiUrlType: "main", + }) + .then(async (res) => { + state.isShowLoadingFrm = false; + document.title = `${t("indexPage.intelligentSelection.TR")}`; + let result = res.data; + if (result.Code != 0) { + ElMessage.error(result.Message); + return; + } + if (result.Data.DriveTypeList) { + state.formData.driveType = result.Data.DriveTypeList[0].Value; + state.driveTypeList = result.Data.DriveTypeList; + } + if (result.Data.FireTypeList) { + state.formData.firePumpType = result.Data.FireTypeList[0].Value; + state.firePumpTypeList = result.Data.FireTypeList; + } + if (result.Data.MotorStdList) { + state.formData.motorStd = result.Data.MotorStdList[0].Value; + state.m_motorStdList = result.Data.MotorStdList; + } + + if (result.Data.CatalogList && result.Data.SeriesList) { + var allCatalogList = result.Data.CatalogList; + var allSeriesList = result.Data.SeriesList; + getSelectSeriesCtrl().initData( + allCatalogList, + allSeriesList, + m_currentLanguage, + seriesApplicationData + ); + } + let JieZhi = await initJieZhi(); + let treeData = buildJieZhiTreeData(JieZhi); + state.m_JieZhiTreeData = treeData; + + //璁剧疆榛樿閰嶇疆 + setDefaultValue(); + //璁剧疆瀹瑰樊鏍囧噯 + initalToleranceStandard(); + //浠庡巻鍙茶〃鍗曚腑鍒濆鍖� + initDataFromHistory(); + + //浼犲叆绫诲瀷鍒楄〃 绯诲垪鍒楄〃 椹卞姩绫诲瀷 鐢垫満棰戠巼 + getSelectSeriesCtrl().filterSeriseList( + state.formData.driveType, + state.formData.motorFrequence, + state.formData.firePumpType + ); + }) + .catch((err) => { + console.log(err, 849); + state.isShowLoadingFrm = false; + //console.log("璇锋眰澶辫触:" + err); + }); +}; +// 鑾峰彇浠嬭川搴� +const initJieZhi = () => { + return new Promise((resolve, reject) => { + axiosHelper + .get({ + version: 3, + controller: "JieZhi", + action: "GetLibrary4XPump", + data: null, //闄や簡Lang鐨勫叾浠栧弬鏁� + userInfo: {}, + apiUrlType: "main", + isAddUrlSoftType: "false", + }) + .then((res) => { + let result = res.data; + if (result.Code != 0) { + ElMessage.error(result.Message); + resolve(null); + } else { + resolve(result.Data); + } + }) + .catch((err) => { + reject(err); + }); + }); +}; +// 璁$畻浠嬭川 +const calcJieZhi = () => { + axiosHelper + .get({ + version: 3, + // lang: this.m_currentLanguage, + //isAddLangParam : "false",鏄惁娣诲姞璇█鍙傛暟, 涓嶅姞璁剧疆涓篺alse,鍚﹀垯null + controller: "JieZhi", + action: "CalcJieZhiInfo", + data: { + JieZhiID: state.formData.jzID, + Wendu: state.formData.jzTemperature, + Nongdu: state.formData.volumeConcentration, + }, //闄や簡Lang鐨勫叾浠栧弬鏁� + userInfo: {}, + apiUrlType: "main", + isAddUrlSoftType: "false", + }) + .then((res) => { + let result = res.data; + if (result.Code != 0) { + ElMessage.error(result.Message); + return; + } else { + state.formData.calcViscosity = result.Data.Midu; + state.formData.calcDensity = result.Data.Niandu; + } + }) + .catch((err) => { + console.log(err, 849); + }); +}; + +const buildJieZhiTreeData = (data) => { + if (!Array.isArray(data)) { + return []; + } + let treeData = []; + data.forEach((item) => { + let node = { + label: item.Name, + children: [], + }; + if (item.Items && item.Items.length > 0) { + item.Items.forEach((child_node) => { + let treenode = { + label: child_node.Name, + option: child_node, + }; + node.children.push(treenode); + }); + } + treeData.push(node); + }); + return treeData; +}; +//鍒濆鍖栭厤缃� +const initConfig = () => { + let pageConfig = window.pageConfig; + const SelParasPage = pageConfig.SelParasPage; + var selectSeriesMethod = SelParasPage.SelectSeriesMethod; + if (selectSeriesMethod == "bySeries") state.m_selPumpSeriesCtrlType = true; + else state.m_selPumpSeriesCtrlType = false; + + state.isShowFirePumpType = SelParasPage.HasFirePump ?? true; + + //鍒濆鍖栧崟浣� --- 浠庣敤鎴疯缃腑璇诲彇 + state.formData.DpQu = UserSettingsHelper.getFlowUnit(m_currentLanguage); + state.formData.DpHu = UserSettingsHelper.getHeadUnit(m_currentLanguage); +}; +//璁剧疆榛樿鍙橀噺 +const setDefaultValue = () => { + //鏄惁鏈夌數姘旀爣鍑嗚繃婊� + var pageConfig = window.pageConfig; + if (pageConfig.SelParasPage == null) { + return; + } + + if (pageConfig.SelParasPage.defaultElectricalStandard) { + if (m_currentLanguage == 0) { + state.formData.motorStd = + pageConfig.SelParasPage.defaultElectricalStandard.CN; + } else { + state.formData.motorStd = + pageConfig.SelParasPage.defaultElectricalStandard.EN; + } + } + if (pageConfig.SelParasPage.defaultNianDuUnit) { + if (m_currentLanguage == 0) { + state.NianDuUnit = pageConfig.SelParasPage.defaultNianDuUnit.CN; + } else { + state.formData.motorStd = state.NianDuUnit = + pageConfig.SelParasPage.defaultNianDuUnit.EN; + } + } + + if (pageConfig.SelParasPage.defaultMotorFrequence) { + // console.log(this.m_currentLanguage,1110) + if (m_currentLanguage == 0) { + if (pageConfig.SelParasPage.defaultMotorFrequence.CN) { + state.formData.motorFrequence = + pageConfig.SelParasPage.defaultMotorFrequence.CN; + } + } else if (m_currentLanguage == 2) { + if (pageConfig.SelParasPage.defaultMotorFrequence.EN) { + state.formData.motorFrequence = + pageConfig.SelParasPage.defaultMotorFrequence.EN; + } + } else if (m_currentLanguage == 6) { + if (pageConfig.SelParasPage.defaultMotorFrequence.KO) { + state.formData.motorFrequence = + pageConfig.SelParasPage.defaultMotorFrequence.KO; + } + } else if (m_currentLanguage == 5) { + if (pageConfig.SelParasPage.defaultMotorFrequence.RU) { + state.formData.motorFrequence = + pageConfig.SelParasPage.defaultMotorFrequence.RU; + } + } else { + if (pageConfig.SelParasPage.defaultMotorFrequence.EN) { + state.formData.motorFrequence = + pageConfig.SelParasPage.defaultMotorFrequence.EN; + } + } + } +}; +// +const getSelectSeriesCtrl = () => { + if (state.m_selPumpSeriesCtrlType) { + return pumpSeriesCtrl.value; + } else { + return pumpCatalogCtrl.value; + } +}; +//璁剧疆瀹瑰樊鏍囧噯鏍囧噯 +const initalToleranceStandard = () => { + let currentLangName = getLanguageParaName(); + console.log(currentLangName, 1027); + let allStandardList = state.pointToleranceConfig.Standard4PumpSelectList; + let toleranceStandardList = []; + allStandardList.forEach((item) => { + let standColumn = { disable: false }; + standColumn.text = item.Name; + standColumn.value = item.Value; + toleranceStandardList.push(standColumn); + }); + state.m_toleranceStandardList = toleranceStandardList; + + let defauleValueObj = state.pointToleranceConfig.DefaultValue; + + let currentDefauleValue = null; + + Object.keys(defauleValueObj).forEach((item) => { + if (item == currentLangName) { + currentDefauleValue = defauleValueObj[item]; + } + }); + if (currentDefauleValue == null) + currentDefauleValue = defauleValueObj[currentLangName]; + // 鍒濆鍖栧宸瓑绾у垪琛� + initialTolerantGrandList( + currentDefauleValue.Standard, + currentDefauleValue.ToleranceGrade + ); +}; + +//鑾峰彇涓婃鐨勮〃鍗曞~鍐欒褰� +const initDataFromHistory = () => { + //鑾峰彇涓婃鐨勮〃鍗曞~鍐欒褰� + let historyFormData = selectStore.ByParas.selectParas; + if (historyFormData == null) { + return; + } + if (historyFormData.DesignInfo == null) { + return; + } + if (historyFormData.FilterInfo == null) { + return; + } + + state.formData.DpQ = historyFormData.DesignInfo.DpQ || state.formData.DpQ; + state.formData.DpQu = historyFormData.DesignInfo.UnitQ; + state.formData.DpH = historyFormData.DesignInfo.DpH || state.formData.DpH; + state.formData.DpHu = historyFormData.DesignInfo.UnitH; + state.formData.jzTemperature = historyFormData.FilterInfo.Temperature || 20; + + + if (historyFormData.FilterInfo.MotorFrequence) + state.formData.motorFrequence = historyFormData.FilterInfo.MotorFrequence; + + var firePumpType = historyFormData.FilterInfo.FirePumpType; + if (firePumpType == "2" || firePumpType == 2) { + firePumpType = "2"; + } else if (firePumpType == "1" || firePumpType == 1) { + firePumpType = 1; + } else { + firePumpType = 0; + } + state.formData.firePumpType = firePumpType; + + //鍘嗗彶浠嬭川鍙傛暟 + let jiezhiParas = historyFormData.JieZhi; + state.isDiyJieZhi = jiezhiParas.IsCustom ?? false; + state.formData.jzTemperature = historyFormData.FilterInfo.Temperature; + state.formData.volumeConcentration = jiezhiParas.V_C; + state.formData.jzID = jiezhiParas.ID; + state.formData.jzName = jiezhiParas.Name; + state.formData.miduUnit = jiezhiParas.MiDuUnit ?? state.formData.miduUnit; + state.NianDuUnit = jiezhiParas.NianDuUnit ?? state.NianDuUnit; + + if (state.formData.miduUnit !== 0) { + jiezhiParas.CalcDensity = jiezhiParas.CalcDensity / 1000; + } + if (state.NianDuUnit == 1) { + jiezhiParas.CalcViscosity = jiezhiParas.CalcViscosity / 100; + } + if (state.NianDuUnit == 5) { + let temp = jiezhiParas.CalcDensity; + if (state.formData.miduUnit !== 0) temp * 1000; + jiezhiParas.CalcViscosity = jiezhiParas.CalcViscosity / temp; + } + state.formData.calcDensity = jiezhiParas.CalcDensity; + state.formData.calcViscosity = jiezhiParas.CalcViscosity; + + state.formData.motorPoleNum = historyFormData.FilterInfo.MotorPoleNum; + state.formData.motorPower = historyFormData.FilterInfo.MotorPower; + state.formData.NPSHa = historyFormData.FilterInfo.NPSHa; + state.formData.MinEta = historyFormData.FilterInfo.MinEta; + state.formData.dieselSpeed = historyFormData.FilterInfo.DieselSpeed; + state.formData.driveType = historyFormData.FilterInfo.DriveType; + + state.formData.IsAllowCut = historyFormData.DesignInfo.IsAllowCut ?? true; + state.formData.IsAllowFrequence = historyFormData.DesignInfo.IsAllowFrequence ?? true; + + state.formData.ToleranceStand = historyFormData.DesignInfo.ToleranceStand || 1; //瀹瑰樊鏍囧噯 + // 鑾峰彇褰撳墠鐨勮瑷�绫诲瀷 + let langType = languageHelper.getParaNameByType( + languageHelper.getTypeFromRout(route.fullPath) + ); + // 鑾峰彇閰嶇疆涓宸瓑绾х殑榛樿鍊� + let defaultToleranceGrade = window.pointToleranceConfig.DefaultValue[langType].ToleranceGrade; + state.formData.PointTolerance.ToleranceGrade = defaultToleranceGrade; //瀹瑰樊绛夌骇 + if (historyFormData.DesignInfo.PointTolerance) { + let ToleranceGrade = historyFormData.DesignInfo.PointTolerance.ToleranceGrade; + state.formData.PointTolerance.ToleranceGrade = ToleranceGrade; + } + if (historyFormData.DesignInfo.PointTolerance && historyFormData.DesignInfo.PointTolerance != "") { + state.formData.PointTolerance.RatioMinQ = parseFloat( + historyFormData.DesignInfo.PointTolerance.RatioMinQ * 100 + ).toFixed(1); //鏈�灏忔祦閲忕櫨鍒嗘瘮 + state.formData.PointTolerance.RatioMaxQ = parseFloat( + historyFormData.DesignInfo.PointTolerance.RatioMaxQ * 100 + ).toFixed(1); //鏈�澶ф祦閲忕櫨鍒嗘瘮 + state.formData.PointTolerance.RatioMinH = parseFloat( + historyFormData.DesignInfo.PointTolerance.RatioMinH * 100 + ).toFixed(1); //鏈�灏忔壃绋嬬櫨鍒嗘瘮 + state.formData.PointTolerance.RatioMaxH = parseFloat( + historyFormData.DesignInfo.PointTolerance.RatioMaxH * 100 + ).toFixed(1); //鏈�澶ф壃绋嬬櫨鍒嗘瘮 + } + + if (state.formData.PointTolerance.ToleranceGrade == 0) { + //鍒ゆ柇濡傛灉瀹瑰樊绛夌骇鍊间负0锛岃〃绀烘槸鑷畾涔� + state.isToleranceLevelCustom = true; + } + initialTolerantGrandList( + state.formData.ToleranceStand, + state.formData.PointTolerance.ToleranceGrade + ); +}; + +//鏄剧ず鎴栭殣钘忔洿澶氳缃� +const toggleShowMoreSetting = () => { + state.isShowMoreSetting = !state.isShowMoreSetting; +}; + +//鐩戝惉娴侀噺杈撳叆 +const handleInputDpQ = (val) => { + if (val) { + state.ruleDpQ = false; + } else { + state.ruleDpQ = true; + } +}; +//鐩戝惉鎵▼杈撳叆 +const handleInputDpH = (val) => { + if (val) { + state.ruleDpH = false; + } else { + state.ruleDpH = true; + } +}; + +//鐩戝惉椹卞姩绫诲瀷鐨勯�夋嫨 +const changeDriveType = (e) => { + let driveType = e.target.value; + state.formData.driveType = driveType; + if (driveType !== 3) { + state.formData.dieselSpeed = ""; + } + // getSelectSeriesCtrl().resetData() + getSelectSeriesCtrl().filterSeriseList( + state.formData.driveType, + state.formData.motorFrequence, + state.formData.firePumpType + ); +}; + + +//鐩戝惉娑堥槻娉电被鍨嬬殑涓嬫媺閫夋嫨 +const changeFirePumpType = (e) => { + state.formData.firePumpType = e.target.value; + + if (state.formData.firePumpType == 2) { + state.formData.DpQu = 4; + } else { + state.formData.DpQu = 1; + } + getSelectSeriesCtrl().filterSeriseList( + state.formData.driveType, + state.formData.motorFrequence, + state.formData.firePumpType + ); +}; +//鐩戝惉鐢垫皵鏍囧噯鏍囧噯涓嬫媺閫夋嫨 +const changeMotorStd = (e) => { + state.formData.motorStd = e.target.value; +}; + +//鐩戝惉杞�熶笅鎷�(椹卞姩绫诲瀷涓虹數鏈�) +const changeMotorPoleNum = (e) => { + state.formData.motorPoleNum = e.target.value; +}; +//鐩戝惉娴侀噺鍗曚綅涓嬫媺妗嗗彉鍖栫殑鍊� +const handleDpQuSelect = (val) => { + state.formData.DpQu = parseInt(val.target.value); + state.m_secondDpFlowText = + `${t("selectPage.secondDpFlow.TR")}` + + "(" + + UnitHelper.GetUnitNameQ(state.formData.DpQu) + + ")"; //绗簩璁捐鐐规祦閲忔樉绀虹殑鏂囧瓧 + state.m_thirdDpFlowText = + `${t("selectPage.thirdDpFlow.TR")}` + + "(" + + UnitHelper.GetUnitNameQ(state.formData.DpQu) + + ")"; //绗笁璁捐鐐规祦閲忔樉绀虹殑鏂囧瓧 +}; +//鐩戝惉鎵▼鍗曚綅涓嬫媺妗嗗彉鍖栫殑鍊� +const handleDpHuSelect = (val) => { + state.formData.DpHu = parseInt(val.target.value); + state.m_secondDpHeadText = + `${t("selectPage.secondDpHead.TR")}` + + "(" + + UnitHelper.GetUnitNameH(state.formData.DpHu) + + ")"; //绗簩璁捐鐐规壃绋嬫樉绀虹殑鏂囧瓧鐨勬枃瀛� + state.m_thirdDpHeadText = + `${t("selectPage.thirdDpHead.TR")}` + + "(" + + UnitHelper.GetUnitNameH(state.formData.DpHu) + + ")"; //绗笁璁捐鐐规壃绋嬫樉绀虹殑鏂囧瓧 +}; +//鐩戝惉璁剧疆棰戠巼閫夋嫨涓嬫媺 +const handldHzSelect = (val) => { + state.formData.motorFrequence = parseInt(val.target.value); + getSelectSeriesCtrl().filterSeriseList( + state.formData.driveType, + state.formData.motorFrequence, + state.formData.firePumpType + ); +}; +// 鐩戝惉浠嬭川鐨勮緭鍏� +const handleJzName = (e) => { + state.formData.jzName = e.target.value; +}; +// 鐩戝惉浠嬭川閫夋嫨 +const handleJieZhiNodeClick = (data) => { + if (data.option) { + state.formData.jzID = data.option.ID; + state.formData.jzName = data.option.Name; + state.formData.calcDensity = data.option.Density; + state.formData.calcViscosity = data.option.Viscosity; + state.formData.jzTemperature = data.option.Temperature; + state.m_JieZhiCalaStatus = data.option.CalcStatus; + state.isShowJieZhiPopover = false; + } + if (state.m_JieZhiCalaStatus == 1 && state.isDiyJieZhi) { + calcJieZhi(); + } +}; +// 鐩戝惉浠嬭川浣撶Н娴撳害鐨勮緭鍏� +const handleVolumeConcentration = (e) => { + let value = e.target.value; + if (value >= 100) { + value = 100; + } + state.formData.volumeConcentration = value; + if (state.m_JieZhiCalaStatus == 1 && state.isDiyJieZhi) { + calcJieZhi(); + } +}; +// 鐩戝惉浠嬭川娓╁害鐨勮緭鍏� +const handleTemperature = (e) => { + let value = e.target.value; + state.formData.jzTemperature = value; + if (state.m_JieZhiCalaStatus == 1 && state.isDiyJieZhi) { + calcJieZhi(); + } +}; +// 鐩戝惉鏁堢巼宸�艰緭鍏� +const changeMinEta = (e) => { + let value = e.target.value; + if (value > 100) { + state.formData.MinEta = 100; + return; + } + state.formData.MinEta = value; +}; +//鐩戝惉鑷畾涔変粙璐ㄥ睘鎬х殑鍙樺寲 +const changeJieZhiInputMehtod = (e) => {}; +//鐩戝惉楠岃瘉瀹瑰樊鏍囧噯涓嬫媺 +const changeToleranceStand = (e) => { + state.isToleranceLevelCustom = false; + let standard = parseInt(e.target.value); + let grade = 0; + + let allStandardList = state.pointToleranceConfig.Standard4PumpSelectList; + allStandardList.forEach((item) => { + if (item.Value == standard) { + grade = item.DefaultGrade; + } + }); + + initialTolerantGrandList(standard, grade); +}; +//淇敼鏍囧噯鍚�,鏋勫缓绛夌骇涓嬫媺 +const initialTolerantGrandList = (standard, sel_grade) => { + state.formData.ToleranceStand = standard; + let allStandardList = state.pointToleranceConfig.Standard4PumpSelectList; + allStandardList.forEach((item) => { + if (item.Value == standard) { + state.formData.PointTolerance.ToleranceGrade = + item.ToleranceGrade[0].Value; + + var toleranceGradeList = []; + item.ToleranceGrade.forEach((grade) => { + let gradeColumn = { disable: false }; + gradeColumn.text = grade.Name; + gradeColumn.value = grade.Value; + toleranceGradeList.push(gradeColumn); + }); + + toleranceGradeList.push({ + text: `${t("selectPage.custom.TR")}`, + value: 0, + disable: false, + }); + + state.m_toleranceGradeList = toleranceGradeList; + } + }); + + if (sel_grade != null && sel_grade != 0) { + state.formData.PointTolerance.ToleranceGrade = sel_grade; + buildToleranceRangData(sel_grade); + } else { + state.formData.PointTolerance.ToleranceGrade = sel_grade; + state.isToleranceLevelCustom = true; + checkCustomValueIsUse(); + } +}; +//鐩戝惉楠岃瘉瀹瑰樊绛夌骇涓嬫媺 +const changeToleranceGrade = (e) => { + let grade = parseInt(e.target.value); + state.formData.PointTolerance.ToleranceGrade = grade; + if (grade == 0) { + state.isToleranceLevelCustom = true; + // 鍒ゆ柇閰嶇疆涓槸鍚︽湁閰嶇疆鑷畾涔夊宸寖鍥村緱鍊� + checkCustomValueIsUse(); + } else { + state.isToleranceLevelCustom = false; + buildToleranceRangData(grade); + } +}; +// 鏍¢獙瀹瑰樊绛夌骇閰嶇疆鐨勮嚜瀹氫箟鍊兼槸鍚﹀彲鐢� +const checkCustomValueIsUse = () => { + // 鑷畾涔夋渶灏忔祦閲忕櫨鍒嗘瘮 + if (state.pointToleranceConfig.CustomValue.RatioMinQ.isUse) { + state.formData.PointTolerance.RatioMinQ = parseFloat( + state.pointToleranceConfig.CustomValue.RatioMinQ.value * 100 + ).toFixed(1); + } + // 鑷畾涔夋渶澶ф祦閲忕櫨鍒嗘瘮 + if (state.pointToleranceConfig.CustomValue.RatioMaxQ.isUse) { + state.formData.PointTolerance.RatioMaxQ = parseFloat( + state.pointToleranceConfig.CustomValue.RatioMaxQ.value * 100 + ).toFixed(1); + } + // 鑷畾涔夋渶灏忔壃绋嬬櫨鍒嗘瘮 + if (state.pointToleranceConfig.CustomValue.RatioMinH.isUse) { + state.formData.PointTolerance.RatioMinH = parseFloat( + state.pointToleranceConfig.CustomValue.RatioMinH.value * 100 + ).toFixed(1); + } + // 鑷畾涔夋渶澶ф壃绋嬬櫨鍒嗘瘮 + if (state.pointToleranceConfig.CustomValue.RatioMaxH.isUse) { + state.formData.PointTolerance.RatioMaxH = parseFloat( + state.pointToleranceConfig.CustomValue.RatioMaxH.value * 100 + ).toFixed(1); + } +}; +//璁剧疆瀹瑰樊鑼冨洿鐨勬暟鎹� +const buildToleranceRangData = (grade) => { + let grade_tol = state.pointToleranceConfig.getGradeValue(grade); + if (grade_tol != null) { + state.formData.PointTolerance.RatioMinQ = parseFloat( + grade_tol.RatioMinQ * 100 + ).toFixed(1); //鏈�灏忔祦閲忕櫨鍒嗘瘮 + state.formData.PointTolerance.RatioMaxQ = parseFloat( + grade_tol.RatioMaxQ * 100 + ).toFixed(1); //鏈�澶ф祦閲忕櫨鍒嗘瘮 + state.formData.PointTolerance.RatioMinH = parseFloat( + grade_tol.RatioMinH * 100 + ).toFixed(1); //鏈�灏忔壃绋嬬櫨鍒嗘瘮 + state.formData.PointTolerance.RatioMaxH = parseFloat( + grade_tol.RatioMaxH * 100 + ).toFixed(1); //鏈�澶ф壃绋嬬櫨鍒嗘瘮 + } +}; + +//鐣岄潰缈昏瘧 +const translateUI = () => { + //杞�熺瓑绾х殑璇█杞崲澶勭悊 + state.MotorPoleList[0].Text = `${t("selectPage.unlimited.TR")}`; + //绗簩銆佷笁 璁捐鐐规祦閲忋�佹壃绋� 閫夋嫨椤规枃瀛楃殑澶勭悊 + state.m_secondDpFlowText = `${t( + "selectPage.secondDpFlow.TR" + )}(${UnitHelper.GetUnitNameQ(state.formData.DpQu)})`; //绗簩璁捐鐐规祦閲忔樉绀虹殑鏂囧瓧 + state.m_secondDpHeadText = `${t( + "selectPage.secondDpHead.TR" + )}(${UnitHelper.GetUnitNameH(state.formData.DpHu)})`; //绗簩璁捐鐐规壃绋嬫樉绀虹殑鏂囧瓧鐨勬枃瀛� + state.m_thirdDpFlowText = `${t( + "selectPage.thirdDpFlow.TR" + )}(${UnitHelper.GetUnitNameQ(state.formData.DpQu)})`; //绗笁璁捐鐐规祦閲忔樉绀虹殑鏂囧瓧 + state.m_thirdDpHeadText = `${t( + "selectPage.thirdDpHead.TR" + )}(${UnitHelper.GetUnitNameH(state.formData.DpHu)})`; //绗笁璁捐鐐规壃绋嬫樉绀虹殑鏂囧瓧 +}; +//杩斿洖涓婁竴椤� +const backTo = () => { + gotoIndexPage(); +}; +//涓嬩竴姝� +const nextPage = () => { + let cbData = getSelectSeriesCtrl().getSelectData(); + + if (cbData == null) return; + + let selSeriesIDs = cbData.SeriesID; + let selCatalogIDs = cbData.CatalogID; + let selMethod = cbData.SelMethod; + if (selCatalogIDs == null || selCatalogIDs.length == 0) { + if (selSeriesIDs == null || selSeriesIDs.length == 0) return; + } + + state.ruleDpQ = false; + state.ruleDpH = false; + state.ruleDieselSpeed = false; + if (state.formData.DpQ == "" || state.formData.DpH == "") { + state.ruleDpQ = true; + state.ruleDpH = true; + return; + } + if (state.formData.DpQ == "" || state.formData.DpH == "") { + state.ruleDpQ = true; + state.ruleDpH = true; + return; + } + // + if (state.formData.driveType == ConstParas.DriveType.Motor) { + if (state.formData.motorPoleNum == undefined) { + state.ruleMotorPoleNum = true; + return; + } + } + + let calcDensity = state.formData.calcDensity; + let miduUnit = Number(state.formData.miduUnit); + if (miduUnit !== 0) { + calcDensity = Number(calcDensity) * 1000; + } + // 璁$畻绮樺害 + let calcNianDu = state.formData.calcViscosity; + let nianDuUnit = Number(state.NianDuUnit); + if (nianDuUnit == 1) { + calcNianDu = Number(calcNianDu) * 100; + } + + if (nianDuUnit == 5) { + let temp = calcDensity; + if (miduUnit !== 0) temp = temp / 1000; + calcNianDu = calcNianDu / temp; + } + + if (calcDensity > 5000) { + ElMessage.warning("鏈�澶у瘑搴︿笉鑳藉ぇ浜�5000"); + return; + } + + if (calcNianDu > 1000) { + ElMessage.warning("浠嬭川绮樺害涓嶈兘澶т簬1000"); + return; + } + + //淇濆瓨鍙傛暟鍒扮紦瀛橀噷闈� + saveParas({ + SelSeriesIDs: selSeriesIDs, + SelCatalogIDs: selCatalogIDs, + SelMethod: selMethod, + CalcDensity: calcDensity, + CalcNianDu: calcNianDu, + }); + + let path = buildCurrentLanguageUrl("/Select/PumpList/Index"); + router.push({ + path: path, + }); +}; +//淇濆瓨鍙傛暟鍒扮紦瀛橀噷闈� +const saveParas = (saveData) => { + let { SelSeriesIDs, SelCatalogIDs, SelMethod, CalcDensity, CalcNianDu } = + saveData; + if (SelSeriesIDs == null) SelSeriesIDs = []; + if (SelCatalogIDs == null) SelCatalogIDs = []; + // 鍒ゆ柇褰撳墠閫夊瀷鏂规硶鏄笉鏄寜琛屼笟 + if (SelMethod == null || SelMethod != 1) { + // 鍒ゆ柇褰撳墠閫夊瀷鏂规硶鏄惁鏄寜绫诲瀷 m_selPumpSeriesCtrlType = true琛ㄧずbySeries + if (state.m_selPumpSeriesCtrlType) { + // selMethod = 1 琛ㄧず鎸夌郴鍒楅�夊瀷 + SelMethod = 1; + } else { + // selMethod = 0 琛ㄧず鎸夌被鍨嬮�夊瀷 + SelMethod = 0; + } + } else { + SelMethod = 2; + } + //鏄惁淇绮樺害 榛樿false + var isVisCorrect = false; + if (state.formData.calcViscosity && state.formData.calcViscosity > 30) + isVisCorrect = true; + + let post_data = { + //浠嬭川 + JieZhi: { + ID: state.formData.jzID, //浠嬭川id + Name: state.formData.jzName, //浠嬭川鍚嶇О + CalcDensity: CalcDensity, //瀵嗗害 + CalcViscosity: CalcNianDu, //绮樺害 + Temperature: state.formData.jzTemperature, //娓╁害 + V_C: state.formData.volumeConcentration, //浣撶Н娴撳害 + MiDuUnit: state.formData.miduUnit, //瀵嗗害鍗曚綅 + NianDuUnit: state.NianDuUnit, //绮樺害鍗曚綅 + IsCustom: state.isDiyJieZhi, //鏄惁鑷畾涔変粙璐� + }, + //绛涢�変俊鎭� + FilterInfo: { + DriveType: state.formData.driveType, //璁惧绫诲瀷 0鐢垫満 3鏌存补鏈� + KeyWord: "", //鍏抽敭瀛� 鏆傛椂榛樿绌� + MotorPoleNum: state.formData.motorPoleNum, //鐢垫満鏋佹暟 + DieselSpeed: state.formData.dieselSpeed, //鏌存补鏈鸿浆閫� + MotorFrequence: state.formData.motorFrequence, //鐢垫満璧吂 + FirePumpType: state.formData.firePumpType, //娑堥槻娉电被鍨� + Temperature: state.formData.jzTemperature, //娓╁害 + MinEta: state.formData.MinEta, //鏁堢巼瑕佹眰 + MotorStandard: state.formData.motorStd, //鐢垫満鍔熺巼鏍囧噯 + MotorPower: state.formData.motorPower, //鐢垫満鍔熺巼 + NPSHa: state.formData.NPSHa, //姘旇殌 + SeriesSelectMethod: SelMethod, //0 鐢ㄧ殑鏄� CatalogID 1 鐢ㄧ殑鏄疭eriesID 2 琛屼笟 + SeriesID: SelSeriesIDs.join(","), //娉电郴鍒桰D 鏆傛椂榛樿涓虹┖ + CatalogID: SelCatalogIDs.join(","), //娉电被鍨媔d + }, + //璁捐鐐瑰弬鏁� + DesignInfo: { + UnitQ: state.formData.DpQu, //娴侀噺鍗曚綅 + UnitH: state.formData.DpHu, //鎵▼鍗曚綅 + DpQ: state.formData.DpQ, //杈撳叆鐨勬祦閲忕殑鍊� + DpH: state.formData.DpH, //杈撳叆鐨勬壃绋嬬殑鍊� + IsAllowCut: state.formData.IsAllowCut, //鏄惁鍏佽鍒囧壊 + IsAllowFrequence: state.formData.IsAllowFrequence, //鏄惁鍏佽鍙橀 + ToleranceStand: state.formData.ToleranceStand, + PointTolerance: { + ToleranceGrade: state.formData.PointTolerance.ToleranceGrade, //瀹瑰樊绛夌骇鐨勫�� + RatioMinQ: parseFloat( + parseInt(state.formData.PointTolerance.RatioMinQ * 10) / 1000 + ).toFixed(2), + RatioMaxQ: parseFloat( + parseInt(state.formData.PointTolerance.RatioMaxQ * 10) / 1000 + ).toFixed(2), + RatioMinH: parseFloat( + parseInt(state.formData.PointTolerance.RatioMinH * 10) / 1000 + ).toFixed(2), + RatioMaxH: parseFloat( + parseInt(state.formData.PointTolerance.RatioMaxH * 10) / 1000 + ).toFixed(2), + }, + IsVisCorrect: isVisCorrect, + }, + }; + + //灏嗙瓫閫夋暟鎹瓨鍌ㄥ埌缂撳瓨涓� + selectStore.setByParas({ + selectParas: post_data, + }); +}; +</script> +<style lang="scss"> +.is-homepage { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + background-attachment: fixed; + background-position: center; + background-repeat: no-repeat; + background-size: cover; + color: #fefefe; + font-weight: normal; + line-height: 1.5; + + a { + color: #0c3471; + line-height: inherit; + } + + .o-site-main { + padding-top: 0.24rem; + } + + .large-2 { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + + .columns { + padding: 0 0.15rem; + } + + .tabs { + margin: 0; + list-style-type: none; + background: transparent; + border: 0.01rem solid transparent; + } + + ul, + ol, + dl { + line-height: 1.5; + list-style-position: outside; + } + + div, + dl, + dt, + dd, + ul, + ol, + li, + h1, + h2, + h3, + h4, + h5, + h6, + pre, + form, + p, + blockquote, + th, + td { + margin: 0; + padding: 0; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + font-weight: normal; + font-style: normal; + color: inherit; + text-rendering: optimizeLegibility; + margin-top: 0; + margin-bottom: 0.08rem; + line-height: 1.4; + } + + button, + input, + optgroup, + select, + textarea { + color: inherit; + font: inherit; + margin: 0; + } + + .tabs::after { + clear: both; + } + + .tabs::before, + .tabs::after { + content: " "; + display: table; + flex-basis: 0; + order: 1; + } + + .tabs.vertical > li { + width: auto; + float: none; + display: block; + } + + .c-sidebar__item { + margin-bottom: 0.08rem; + } + + li { + font-size: inherit; + } + + a { + color: #0c3471; + text-decoration: none; + line-height: inherit; + cursor: pointer; + } + + p { + font-size: inherit; + line-height: 1.5; + margin-bottom: 0.16rem; + text-rendering: optimizeLegibility; + } + + .el-radio-button__orig-radio:checked + .el-radio-button__inner { + background-color: #0c3471; + border-color: #0c3471; + } + + .el-radio-button:first-child .el-radio-button__inner { + border-top-left-radius: 0.04rem; + border-bottom-left-radius: 0.04rem; + } + + .el-radio-button:last-child .el-radio-button__inner { + border-top-right-radius: 0.04rem; + border-bottom-right-radius: 0.04rem; + } + + .tabs-title > a { + display: block; + padding: 0.2rem 0.24rem; + line-height: 1; + font-size: 0.12rem; + } + + .c-sidebar__item > .c-sidebar__link { + border-radius: 0.03rem; + color: #16181a; + font-size: 0.16rem; + padding: 0.08rem 0.16rem; + transition: background 150ms, color 150ms; + } + + .c-sidebar__divider { + border-top: 0.01rem solid #91a1aa; + margin-bottom: 0.12rem; + } + + .is-homepage .c-sidebar__item > .c-sidebar__link:hover, + .is-homepage .c-sidebar__item > .c-sidebar__link:focus { + color: #40464c; + } + + .c-sidebar__item > .c-sidebar__link:hover, + .c-sidebar__item > .c-sidebar__link:focus { + background: #ced5d9; + color: #40464c; + } + + .is-homepage .c-sidebar__item > .c-sidebar__link { + color: #fefefe; + } + + .c-sidebar__item.is-active > .c-sidebar__link { + color: #0c3471; + font-weight: 700; + } + + .row .row { + max-width: none; + } + + .row { + display: flex; + flex-flow: row wrap; + } + + .large-6 { + flex: 0 0 50%; + max-width: 50%; + } + + .column, + .columns { + padding-left: 0.08rem; + padding-right: 0.08rem; + } + + .align-middle { + align-items: center; + } + + .align-justify { + justify-content: space-between; + } + + .column, + .columns { + flex: 1 1 0rem; + min-width: initial; + } + + .c-card { + margin: 0 0 0.16rem 0; + padding: 0.16rem; + border-radius: 0.03rem; + position: relative; + color: #16181a; + background: #fefefe; + border: 0.01rem solid #dbe0e3; + box-shadow: 0 0.01rem 0.03rem rgba(145, 161, 170, 0.25); + } + + .c-card > :last-child { + margin-bottom: 0; + } + + .c-card > :first-child { + margin-top: 0; + } + + label { + display: block; + margin: 0; + font-size: 0.16rem; + font-weight: normal; + line-height: 1.5; + color: #16181a; + text-align: left; + } + + .o-input-select-combo { + display: flex; + } + + input { + line-height: normal; + } + + input[disabled], + input:disabled { + cursor: not-allowed; + background-color: #f1f2f3; + } + + select[disabled], + select:disabled { + cursor: not-allowed; + background: #fefefe; + } + + [type="submit"], + [type="button"] { + border-radius: 0.03rem; + } + + [type="text"], + [type="password"], + [type="date"], + [type="datetime"], + [type="datetime-local"], + [type="month"], + [type="week"], + [type="email"], + [type="number"], + [type="search"], + [type="tel"], + [type="time"], + [type="url"], + [type="color"], + textarea { + display: block; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + height: 0.39rem; + padding: 0.08rem; + border: 0.01rem solid #91a1aa; + margin: 0 0 0.16rem; + font-family: inherit; + font-size: 0.16rem; + color: #16181a; + background-color: #fefefe; + box-shadow: inset 0 0.01rem 0.02rem rgba(22, 24, 26, 0.1); + border-radius: 0.03rem; + -webkit-transition: box-shadow 150ms, border-color 150ms ease-in-out; + transition: box-shadow 150ms, border-color 150ms ease-in-out; + } + + .o-input-select-combo > * { + min-width: 0rem; + } + + .c-input-select-combo--left { + border-radius: 0.03rem 0 0 0.03rem; + } + + button, + select { + text-transform: none; + } + + select { + width: 100%; + border-radius: 0.03rem; + } + + select { + height: 0.39rem; + padding: 0.08rem; + border: 0.01rem solid #91a1aa; + margin: 0 0 0.16rem; + font-size: 0.16rem; + font-family: inherit; + line-height: normal; + color: #16181a; + background-color: #fefefe; + border-radius: 0.03rem; + background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%2851, 51, 51%29'></polygon></svg>"); + background-size: 0.09rem 0.06rem; + background-position: right -0.16rem center; + background-origin: content-box; + background-repeat: no-repeat; + padding-right: 0.24rem; + -webkit-appearance: none; + -moz-appearance: none; + cursor: pointer; + } + + input[type="checkbox"], + input[type="radio"] { + box-sizing: border-box; + padding: 0; + } + + .o-input-select-combo > * { + min-width: 0rem; + } + + .c-input-select-combo--right { + border-radius: 0 0.03rem 0.03rem 0; + } + + .u-pointer, + .u-cursor-pointer { + cursor: pointer !important; + } + + .u-no-wrap { + white-space: nowrap !important; + } + + .lead { + font-size: 125%; + line-height: 1.6; + } + + .text-center { + text-align: center; + } + + .switch { + margin-bottom: 0.16rem; + outline: 0; + position: relative; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + color: #fefefe; + font-weight: bold; + font-size: 0.14rem; + } + + .button { + display: inline-block; + text-align: center; + line-height: 1; + cursor: pointer; + transition: background-color 0.25s ease-out, color 0.25s ease-out; + vertical-align: middle; + border: 0.01rem solid transparent; + border-radius: 0.03rem; + padding: 0.136rem 0.16rem; + margin: 0 0 0.16rem 0; + font-size: 0.16rem; + background-color: #0c3471; + color: #fff; + } + + .button.grey { + background-color: #91a1aa; + color: #000; + } + + input { + line-height: normal; + } + + input:checked ~ .switch-paddle { + background: #0c3471; + } + + [type="file"], + [type="checkbox"], + [type="radio"] { + margin: 0 0 0.16rem; + } + + .switch-input { + opacity: 0; + position: absolute; + } + + input[type="checkbox"], + input[type="radio"] { + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; + } + + [type="checkbox"] + label, + [type="radio"] + label { + display: inline-block; + margin-left: 0.08rem; + margin-right: 0.16rem; + margin-bottom: 0; + vertical-align: baseline; + } + + [type="checkbox"] + label[for], + [type="radio"] + label[for] { + cursor: pointer; + } + + .switch-paddle { + background: #dbe0e3; + cursor: pointer; + display: block; + position: relative; + width: 0.64rem; + height: 0.32rem; + -webkit-transition: all 0.25s ease-out; + transition: all 0.25s ease-out; + border-radius: 0.03rem; + color: inherit; + font-weight: inherit; + } + + .switch-paddle::after { + background: #fefefe; + content: ""; + display: block; + position: absolute; + height: 0.24rem; + left: 0.04rem; + top: 0.04rem; + width: 0.24rem; + -webkit-transition: all 0.25s ease-out; + transition: all 0.25s ease-out; + -webkit-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + border-radius: 0.03rem; + } + + .switch.tiny .switch-paddle { + width: 0.48rem; + height: 0.24rem; + font-size: 0.1rem; + } + + .switch.tiny input:checked ~ .switch-paddle::after { + left: 0.28rem; + } + + .switch.tiny .switch-paddle::after { + width: 0.16rem; + height: 0.16rem; + } + + input + .switch-paddle { + margin: 0; + } + + .callout { + margin: 0 0 0.16rem 0; + padding: 0.16rem; + border: none; + border-radius: 0.03rem; + position: relative; + color: #16181a; + background-color: #fefefe; + } + + .callout.grey { + background-color: #91a1aa; + } + + .callout > :first-child { + margin-top: 0; + } + + .shrink { + flex: 0 0 auto; + max-width: 100%; + } + + .align-top { + align-items: flex-start; + } + + .menu { + margin: 0; + list-style-type: none; + width: 100%; + display: flex; + flex-wrap: nowrap; + align-items: center; + flex-wrap: nowrap; + } + + .menu > li { + flex: 0 0 auto; + } + + .menu > li > a { + flex-flow: row nowrap; + } + + .menu > li > a { + display: flex; + } + + .menu > li > a { + display: block; + padding: 0.08rem 0.16rem; + line-height: 1; + } + + .menu input, + .menu a, + .menu button { + margin-bottom: 0; + } + + .shrink { + flex: 0 0 auto; + max-width: 100%; + } + + .text-right { + text-align: right; + } + + .menu input, + .menu a, + .menu button { + margin-bottom: 0; + } + + .button, + .button:hover, + .button:focus { + color: #fff; + } + + .button.micro { + font-size: 0.12rem; + padding: 0.02rem 0.08rem; + } + + .u-no-margin { + margin: 0 !important; + } + + .c-product-line-select { + border: 0.01rem solid #ddd; + border-radius: 0.03rem; + color: #555; + margin-top: 0.08rem; + overflow: hidden; + } + + .c-product-line-select.is-selected { + background-color: #efefef; + border-color: currentColor; + color: black; + } + + .c-product-line-select__overview { + display: flex; + } + + .c-product-line-select__select-button, + .c-product-line-select__summary-button { + background: 0; + border: 0; + border-radius: 0; + color: currentColor; + font-size: calc(0.5vw + 0.16rem); + } + + .c-product-line-select__select-button { + display: flex; + align-items: center; + flex-grow: 1; + padding: 0; + text-align: left; + } + + .c-product-line-select__select-icon { + display: block; + flex: none; + padding: 0.16rem; + } + + .c-product-line-select__name { + flex-grow: 1; + font-size: calc(0.5vw + 0.12rem); + padding: 0.16rem 0 0.16rem 0.32rem; + } + + .c-product-line-select__select-icon::before { + content: "\f096"; + } + + .c-product-line-select.is-selected + .c-product-line-select__select-icon::before { + color: currentColor; + content: "\f046"; + opacity: 1; + } + + .c-product-line-select__select-button:hover + .c-product-line-select__select-icon::before { + content: "\f046"; + opacity: 0.5; + } + + .c-product-line-select__image { + display: block; + flex: none; + max-width: -webkit-calc(4vw + 6.4rem); + max-width: calc(4vw + 6.4rem); + padding: 0.16rem; + } + + .c-product-line-select__summary-button { + background-color: #ddd; + color: currentColor; + flex: none; + padding: 0 0.12rem; + } + + .c-product-line-select__summary { + background-color: #ddd; + color: black; + padding: 0.16rem; + text-align: left; + } + + .u-no-margin { + margin: 0 !important; + } + + .hide { + display: none !important; + } + + .is-homepage .el-input.is-active .el-input__inner, + .el-input__inner:focus { + border-color: #000; + border-width: 2px; + } + + .is-homepage .el-input--suffix .el-input__inner { + text-align: left; + } + + .is-homepage .el-input__suffix { + right: 0; + top: -5px; + color: #000; + } + + .jiezhipopoverstyle { + margin-top: 0px !important; + } + + .jz-select-div { + .el-input__wrapper { + box-shadow: none; + } + + .el-input__wrapper.is-focus { + box-shadow: none; + } + } +} + +*, +*::before, +*::after { + -moz-box-sizing: inherit; + box-sizing: inherit; +} +</style> diff --git a/src/views/SPump/Select/ByPara2/components/selPumpCatalog.vue b/src/views/SPump/Select/ByPara2/components/selPumpCatalog.vue new file mode 100644 index 0000000..1b62613 --- /dev/null +++ b/src/views/SPump/Select/ByPara2/components/selPumpCatalog.vue @@ -0,0 +1,709 @@ +<template> + <div class="productCatalog"> + <div id="productLines" style="height: 100%; position: relative; overflow: auto"> + <div class="sticky-container" style="height: 0.55rem"> + <div style="width: 100%; max-width: 5.36rem; margin-top: 0rem; top: 0rem; bottom: auto;" + class="sticky is-anchored is-at-top"> + <div id="productlinePicker"> + <div class="row"> + <div class="columns"> + <ul class="menu head-tool-style"> + <li @click="clickSelAllSeries" style="margin-right: 0.05rem;height: unset;"> + <a style="display: flex; justify-content: center; align-items: center;"> + <input type="checkbox" :checked="state.m_isSelectAll"> + <span style="font-size: 16px;margin-left: 5px;"> + {{ state.m_isSelectAll ? t("selectPage.reselect.TR") : t("selectPage.selectAll.TR") }} + </span> + </a> + </li> + <li class="select-type-style"> + <el-radio-group v-model="state.m_selSeriesMethod.current" size="small" + @change="changeSelSeriesMethod"> + <el-radio-button :disabled="state.m_selSeriesMethod.byCatalog.isDisable" + v-if="state.m_selSeriesMethod.byCatalog.isVisible" :label="0">{{ t("selectPage.byType.TR") + }}</el-radio-button> + <el-radio-button :disabled="state.m_selSeriesMethod.byHY.isDisable" + v-if="state.m_selSeriesMethod.byHY.isVisible" :label="1">{{ t("selectPage.byIndustry.TR") + }}</el-radio-button> + <el-radio-button :disabled="state.m_selSeriesMethod.byMedia.isDisable" + v-if="state.m_selSeriesMethod.byMedia.isVisible" :label="2">{{ t("selectPage.byMedia.TR") + }}</el-radio-button> + </el-radio-group> + </li> + </ul> + </div> + </div> + </div> + </div> + </div> + <!-- 鎸夌被鍨嬪垪琛� --> + <div style="height: calc(100% - 0.55rem); overflow: auto" v-show="state.m_selSeriesMethod.current == 0"> + <label v-if="state.m_ruleSelectStatus" + style="position: absolute; top: 0.3rem; font-size: 0.1rem; color: red">*{{ + t("selectPage.seriesRule.TR") }}</label> + <div v-for="(catalog_item, catalog_index) in state.m_showCatalogList" :key="catalog_index" + class="c-product-line-select" :class="catalog_item.isSelected ? 'is-selected' : ''" + @click="clickCatalogItem(catalog_index)"> + <div class="c-product-line-select__overview" style="height: 1.5rem"> + <button type="button" class="c-product-line-select__select-button"> + <span class="fa fa-fw c-product-line-select__select-icon"></span> + <span class="c-product-line-select__name"> + {{ catalog_item.Name }} + </span> + <img alt="Product Line" :onerror="useDefaultImage" :src="catalog_item.ThumbnailImage" + style="height: 100%;" class="c-product-line-select__image" /> + </button> + <button @click.stop=" + catalog_item.isShowDetail = !catalog_item.isShowDetail + " type="button" class="c-product-line-select__summary-button"> + <span class="fa fa-fw fa-info-circle"></span> + </button> + </div> + <div class="c-product-line-select__summary" :class="catalog_item.isShowDetail ? '' : 'hide'"> + <p class="u-no-margin" style="white-space: pre-line;">{{ catalog_item.ShortDescription }}</p> + </div> + </div> + </div> + <!-- 琛屼笟鍒楄〃 --> + <div style="height: calc(100% - 0.55rem); overflow: auto" v-show="state.m_selSeriesMethod.current == 1"> + <label v-if="state.m_ruleSelectStatus" + style="position: absolute; top: 0.3rem; font-size: 0.1rem; color: red">*{{ + t("selectPage.seriesRule.TR") }}</label> + <div v-for="(hy_item, hy_index) in state.m_allHangYeList" :key="hy_index" class="c-product-line-select" + :class="hy_item.isSelected ? 'is-selected' : ''" @click="clickHangYeItem(hy_index)"> + <div class="c-product-line-select__overview" style="height: 1.5rem"> + <button type="button" class="c-product-line-select__select-button"> + <span class="fa fa-fw c-product-line-select__select-icon"></span> + <span class="c-product-line-select__name">{{ + hy_item.Name + }}</span> + <img alt="Product Line" :src="hy_item.ImageSrc" + style=" height: 1.2rem; width: 1.2rem; filter: drop-shadow(0.02rem 0.04rem 0.06rem black);" + class="c-product-line-select__image" /> + </button> + <button @click.stop="hy_item.isShowDetail = !hy_item.isShowDetail" type="button" + class="c-product-line-select__summary-button"> + <span class="fa fa-fw fa-info-circle"></span> + </button> + </div> + <div class="c-product-line-select__summary" :class="hy_item.isShowDetail ? '' : 'hide'"> + <p class="u-no-margin">{{ hy_item.ShortDescription }}</p> + </div> + </div> + </div> + <!-- 鎸変粙璐ㄥ垎绫� --> + <div style="height: calc(100% - 0.55rem); overflow: auto" v-if="state.m_selSeriesMethod.current == 2"> + <label v-if="state.m_ruleSelectJZ" style="position: absolute; top: 0.3rem; font-size: 0.1rem; color: red">*{{ + t("selectPage.jiezhiRule.TR") }}</label> + <div v-for="(jz_item, jz_index) in state.m_allJieZhiList" :key="jz_index" class="c-product-line-select" + :class="jz_item.isSelected ? 'is-selected' : ''" @click="clickJieZhiItem(jz_index)"> + <div class="c-product-line-select__overview" style="height: 1.5rem"> + <button type="button" class="c-product-line-select__select-button"> + <span class="fa fa-fw c-product-line-select__select-icon"></span> + <span class="c-product-line-select__name">{{ + jz_item.Name + }}</span> + </button> + <button @click.stop="jz_item.isShowDetail = !jz_item.isShowDetail" type="button" + class="c-product-line-select__summary-button"> + <span class="fa fa-fw fa-info-circle"></span> + </button> + </div> + <div class="c-product-line-select__summary" :class="jz_item.isShowDetail ? '' : 'hide'"> + <p class="u-no-margin">{{ jz_item.ShortDescription }}</p> + </div> + </div> + </div> + </div> + </div> +</template> + +<script setup name="selPumpCatalog"> +import { reactive } from "vue"; +import { ElRadioGroup, ElRadioButton, ElCheckbox } from 'element-plus'; +import { useSelect } from '/@/store/select.js'; +import ConstParas from "/@/utils/constParas"; +import Utils from "/@/utils/utils"; +import SelectByCorpFlag from "/@/utils/selectByCorpFlag"; +import defaultImgUrl from '/@/views/assets/img_fail.png'; +import { useI18n } from 'vue-i18n'; +import noneImg from '/@/views/assets/none_img.png' +const { t } = useI18n() +const selectStore = useSelect() +let state = reactive({ + m_currentCorpFlag: window.globalConfig.CorpInfo.CorpFlag, + m_selSeriesMethod: { + current: 0, //0 绫诲瀷 + byCatalog: { + isDisable: true, + isVisible: false, + }, + byHY: { + isDisable: true, + isVisible: false, + }, + byMedia: { + isDisable: true, + isVisible: false, + }, + }, + m_isSelectAll: false, //鏄惁鍏ㄩ�� 榛樿鍏ㄩ�� + + // m_selSeriesMethod: 1, //鍒嗙被閫夋嫨 + selCatalogIDs: [],//褰撳墠閫変腑鐨勭被鍨婭D + + m_allCatalogList: [], //绫诲瀷鍒楄〃婧愭暟鎹� + m_showCatalogList: [],//鐢ㄤ簬鏄剧ず鐨勭被鍨嬪垪琛� + m_allSeriesList: [], //鎵�鏈夌殑绯诲垪 + + m_allHangYeList: [], //鎵�鏈夌殑琛屼笟鍒楄〃 + + m_ruleSelectStatus: false, //鍒ゆ柇鏄惁閫夋嫨浜嗙郴鍒� + m_ruleSelectHY: false, //鍒ゆ柇鏄惁閫夋嫨浜嗚涓� + m_ruleSelectJZ: false, //鍒ゆ柇鏄惁閫夋嫨浜嗕粙璐� +}) + +//鍒濆鍖栦骇鍝佺郴鍒楁暟鎹� +const initData = (all_catalog, all_series, currentLanguageType, seriesApplicationData) => { + + if (all_catalog == null || all_catalog.length == 0) return; + state.m_allSeriesList = all_series; + state.m_allCatalogList = all_catalog + initDataFromHistory(); + + if (seriesApplicationData && typeof seriesAppData == 'object') { + //鏋勫缓琛屼笟鍒楄〃 + buildHangYeList(currentLanguageType, seriesApplicationData); + //鏋勫缓浠嬭川鍒楄〃 + buildJieZhiList(currentLanguageType, seriesApplicationData); + } +} +//鏋勫缓琛屼笟鍒楄〃鏁版嵁 +const buildHangYeList = (currentLanguageType, seriesApplicationData) => { + let seriesAppData = JSON.parse(JSON.stringify(seriesApplicationData)) + let hangYeList = seriesAppData.HangYe.List; + if (hangYeList == null || hangYeList.length == 0) { + state.m_allHangYeList = []; + } + state.m_selSeriesMethod.byCatalog.isDisable = false; + state.m_selSeriesMethod.byCatalog.isVisible = true; + state.m_selSeriesMethod.byHY.isDisable = false; + state.m_selSeriesMethod.byHY.isVisible = true; + + // console.log(hangYeList,60) + let list = []; + if (currentLanguageType == 0) { + hangYeList.forEach((element, index) => { + let itemObj = { + HID: element.ID, + PumpSeriesID: element.PumpSeriesID, + Name: element.NameCN, + isSelected: false, + isShowDetail: false, //鏄惁灞曠ず璇︽儏 + ShortDescription: element.DescriptionCN, + ImageSrc: "static/img/HangYe/" + element.ImageName + "/ffffffx128.png", + }; + list.push(itemObj); + }); + } + else { + hangYeList.forEach((element, index) => { + let itemObj = { + HID: element.ID, + PumpSeriesID: element.PumpSeriesID, + Name: element.NameEN, + isSelected: false, + isShowDetail: false, //鏄惁灞曠ず璇︽儏 + ShortDescription: element.DescriptionEN, + ImageSrc: "static/img/HangYe/" + element.ImageName + "/ffffffx128.png", + }; + list.push(itemObj); + }); + } + state.m_allHangYeList = list; + // console.log(this.m_HangYeList,93) +} +//鏋勫缓浠嬭川鍒楄〃 +const buildJieZhiList = (langType, seriesApplicationData) => { + if ( + seriesApplicationData.JieZhiParas == "undefind" || + seriesApplicationData.JieZhiParas == null + ) { + seriesApplicationData.JieZhiParas = {}; + } + let jieZhiList = seriesApplicationData.JieZhiParas.List; + if (jieZhiList == null || jieZhiList.length == 0) { + state.m_allJieZhiList = []; + return + } + + state.m_selSeriesMethod.byCatalog.isDisable = false; + state.m_selSeriesMethod.byCatalog.isVisible = true; + state.m_selSeriesMethod.byMedia.isDisable = false; + state.m_selSeriesMethod.byMedia.isVisible = true; + + let list = []; + if (langType == 0) { + jieZhiList.forEach((element, index) => { + let itemObj = { + ID: element.ID, + PumpSeriesID: element.PumpSeriesID, + Name: element.NameCN, + isSelected: false, + isShowDetail: false, //鏄惁灞曠ず璇︽儏 + ShortDescription: element.DescriptionCN, + }; + if (element.ImageName) { + itemObj.ImageSrc = + "static/img/HangYe/" + element.ImageName + "/ffffffx128.png"; + } else { + itemObj.ImageSrc = ""; + } + list.push(itemObj); + }); + } + else { + jieZhiList.forEach((element, index) => { + let itemObj = { + ID: element.ID, + PumpSeriesID: element.PumpSeriesID, + Name: element.NameEN, + isSelected: false, + isShowDetail: false, //鏄惁灞曠ず璇︽儏 + ShortDescription: element.DescriptionCN, + }; + if (element.ImageName) { + itemObj.ImageSrc = + "static/img/HangYe/" + element.ImageName + "/ffffffx128.png"; + } else { + itemObj.ImageSrc = ""; + } + list.push(itemObj); + }); + } + state.m_allJieZhiList = list; +} +const initDataFromHistory = () => { + //鑾峰彇涓婃鐨勮〃鍗曞~鍐欒褰� + let historyFormData = selectStore.ByParas.selectParas; + let corpSelectDataByFlag = SelectByCorpFlag.getData(state.m_currentCorpFlag) + if (historyFormData == null || historyFormData.FilterInfo == null) { + return; + } + if (corpSelectDataByFlag.CatalogID == "" || corpSelectDataByFlag.CatalogID.length == 0) { + return + } + // 鍒ゆ柇鍘嗗彶閫夊瀷鏂瑰紡 鏄惁鏄寜琛屼笟 濡傛灉鏄垯涓嶈祴鍊煎巻鍙茬郴鍒梚d + state.m_selSeriesMethod.current = corpSelectDataByFlag.SelMethod + historyFormData.FilterInfo.CatalogID = corpSelectDataByFlag.CatalogID + var selCatalogIDs = historyFormData.FilterInfo.CatalogID; + state.selCatalogIDs = selCatalogIDs +} + +//绛涢�夌郴鍒楀垪琛� +const filterSeriseList = (DriveType, MotorFrequece, FirePumpType) => { + //var FirePumpType = this.formData.firePumpType; + // return; //鏆傛椂涓嶈繃婊� + let showSeriesArr = []; + state.m_allSeriesList.forEach((item) => { + //鍒ゆ柇鏄惁鏄數鏈� + if (DriveType == ConstParas.DriveType.Motor) { + //鍒ゆ柇绫诲瀷鏄惁鏄叏閮� + if (item.MotorFrequece == MotorFrequece && item.DriveType == DriveType) { + if (item.FirePumpStatus) { + if (item.FirePumpStatus.includes(Number(FirePumpType))) { + showSeriesArr.push(item); + } + } else { + showSeriesArr.push(item); + } + } + } + // 鏄惁鏄煷娌规満 + else if (DriveType == ConstParas.DriveType.Diesel) { + //鍒ゆ柇绫诲瀷鏄惁鏄叏閮� + if (item.DriveType == DriveType) { + if (item.FirePumpStatus) { + if (item.FirePumpStatus.includes(Number(FirePumpType))) { + showSeriesArr.push(item); + } + } else { + showSeriesArr.push(item); + } + } + } + }); + let showCatalogList = [] + state.m_allCatalogList.forEach((catalogItem, index) => { + let catalog_info = { + ID: catalogItem.ID, + Name: catalogItem.Name, + ShortDescription: "", + ThumbnailImage: "", + isSelected: false, //鏄惁琚�夋嫨 + isShowDetail: false, //鏄惁灞曠ず璇︽儏 + SeriesIDs: [], + }; + for (let i = 0; i < showSeriesArr.length; i++) { + let seriesItem = showSeriesArr[i]; + if (catalogItem.ID == seriesItem.CatalogID) { + if (catalog_info.ShortDescription == "" && seriesItem.ShortDescription != "") { + catalog_info.ShortDescription = seriesItem.ShortDescription.replace(/<br\/>/g, "\n"); + } + let ThumbnailImage = noneImg + if (catalog_info.ThumbnailImage == "" && seriesItem.ThumbnailImage != "") { + // console.log(catalog_info.ThumbnailImage, seriesItem.ThumbnailImage,362) + ThumbnailImage = window.globalConfig.WebApiUrl.FileUrl + 'Data/' + seriesItem.ThumbnailImage; + } + catalog_info.ThumbnailImage = ThumbnailImage + catalog_info.SeriesIDs.push(seriesItem.ID); + break; + } + } + if (catalog_info.SeriesIDs.length > 0) + showCatalogList.push(catalog_info); + }); + if (state.selCatalogIDs && state.selCatalogIDs.length > 0) { + showCatalogList.forEach((element) => { + if (state.selCatalogIDs.includes(element.ID)) { + element.isSelected = true; + state.m_isSelectAll = true + } else { + element.isSelected = false; + state.m_isSelectAll = false + } + }); + } + state.m_showCatalogList = showCatalogList; +} +// 閲嶇疆鍙傛暟锛岀敤浜庡湪椹卞姩绫诲瀷鍒囨崲鏃跺�欎娇鐢� +const resetData = () => { + state.selCatalogIDs = [] + state.m_isSelectAll = false +} +//鏄惁鍏ㄩ�� +const clickSelAllSeries = () => { + state.m_isSelectAll = !state.m_isSelectAll; + + if (state.m_selSeriesMethod.current == 0) { + if (state.m_isSelectAll) { + state.m_showCatalogList.forEach((item) => { + item.isSelected = true; + }); + state.m_ruleSelectStatus = false; + } else { + state.m_showCatalogList.forEach((item) => { + item.isSelected = false; + }); + } + } + if (state.m_selSeriesMethod.current == 1) { + if (state.m_isSelectAll) { + state.m_allHangYeList.forEach((item) => { + item.isSelected = true; + }); + state.m_ruleSelectStatus = false; + } else { + state.m_allHangYeList.forEach((item) => { + item.isSelected = false; + }); + } + } +} + +//閫夋嫨绯诲垪 +const clickCatalogItem = (index) => { + state.m_showCatalogList[index].isSelected = !state.m_showCatalogList[index].isSelected; + var sel_ids = []; + state.m_isSelectAll = true; + state.m_showCatalogList.forEach((catalog_item) => { + if (catalog_item.isSelected) { + sel_ids.push(catalog_item.ID); + } else { + state.m_isSelectAll = false; + } + }); + state.selCatalogIDs = sel_ids + if (sel_ids.length > 0) state.m_ruleSelectStatus = false; +} +//閫夋嫨琛屼笟 +const clickHangYeItem = (index) => { + state.m_ruleSelectStatus = false; + state.m_allHangYeList[index].isSelected = + !state.m_allHangYeList[index].isSelected; +} +//杩斿洖缁欎富椤甸潰 閫夋嫨鐨勭被鍨媔d銆佺郴鍒梚d鍜屽綋鍓嶇殑绯诲垪閫夋嫨鏂规硶 0琛ㄧず鎸夌被鍨� 1琛ㄧず鎸夎涓� 2琛ㄧず鎸変粙璐� +const getSelectData = () => { + let sel_series_ids = []; + let sel_catalog_ids = [] + if (state.m_selSeriesMethod.current == 0) { + state.m_showCatalogList.forEach((catalog) => { + if (catalog.isSelected) { + sel_catalog_ids.push(catalog.ID); + } + }); + + state.m_ruleSelectStatus = false; + if (sel_catalog_ids == null || sel_catalog_ids.length == 0) { + state.m_ruleSelectStatus = true; + return null; + } + } + if (state.m_selSeriesMethod.current == 1) { + state.m_allHangYeList.forEach((hy) => { + if (hy.isSelected) { + sel_series_ids.push(...hy.PumpSeriesID); + } + }); + sel_catalog_ids = getFilterSeriseIdList(sel_catalog_ids); + } + let data = { + CorpFlag: state.m_currentCorpFlag, + SeriesID: Utils.uniqueInArray(sel_series_ids), + CatalogID: sel_catalog_ids, + SelMethod: state.m_selSeriesMethod.current + }; + SelectByCorpFlag.saveData(state.m_currentCorpFlag, data) + return data; +} +//杩囨护鍙互閫夋嫨鐨勭郴鍒桰D(琛屼笟 , 浠嬭川鐢�) +const getFilterSeriseIdList = (series_id_list) => { + if (series_id_list == null) return []; + var ava_id = []; + state.m_allSeriesList.forEach((item) => { + if (series_id_list.indexOf(item.ID) < 0) return true; + //鍒ゆ柇鏄惁鏄數鏈� + if (state.m_DriveType == ConstParas.DriveType.Motor) { + if ( + item.MotorFrequece == state.m_MotorFrequence && + item.DriveType == state.m_DriveType + ) { + ava_id.push(item.ID); + } + } + // 鏄惁鏄煷娌规満 + else if (state.m_DriveType == ConstParas.DriveType.Diesel) { + if (item.m_DriveType == DriveType) { + ava_id.push(item.ID); + } + } + }); + + return ava_id; +} +//鐩戝惉绯诲垪绛涢�夐�夐」鍒囨崲鐨勫彉鍖� 榛樿鎸夎涓� +const changeSelSeriesMethod = (val) => { + state.m_selSeriesMethod.current = val; +} +const useDefaultImage = (event) => { + event.target.src = defaultImgUrl; +} + +defineExpose({ + initData, + filterSeriseList, + getSelectData +}) +</script> + +<style lang="scss"> +.productCatalog { + height: 100%; + + .c-card { + margin: 0 0 0.16rem 0; + padding: 0.16rem; + border-radius: 0.03rem; + position: relative; + color: #16181a; + background: #fefefe; + border: 0.01rem solid #dbe0e3; + box-shadow: 0 0.01rem 0.03rem rgba(145, 161, 170, 0.25); + } + + .c-card> :last-child { + margin-bottom: 0; + } + + .c-card> :first-child { + margin-top: 0; + } + + .row .row { + max-width: none; + } + + .row { + display: flex; + flex-flow: row wrap; + } + + .columns { + padding: 0 0.15rem; + } + + .column, + .columns { + padding-left: 0.08rem; + padding-right: 0.08rem; + } + + .column, + .columns { + flex: 1 1 0rem; + min-width: initial; + } + + .menu { + margin: 0; + list-style-type: none; + width: 100%; + display: flex; + flex-wrap: nowrap; + align-items: center; + flex-wrap: nowrap; + } + + .menu>li { + flex: 0 0 auto; + } + + .menu>li>a { + flex-flow: row nowrap; + } + + .menu>li>a { + display: flex; + } + + .menu>li>a { + display: block; + padding: 0.08rem 0rem; + line-height: 1; + } + + .menu input, + .menu a, + .menu button { + margin-bottom: 0; + } + + .shrink { + flex: 0 0 auto; + max-width: 100%; + } + + .text-right { + text-align: right; + } + + .menu input, + .menu a, + .menu button { + margin-bottom: 0; + } + + .c-product-line-select { + border: 0.01rem solid #ddd; + border-radius: 0.03rem; + color: #555; + margin-top: 0.08rem; + overflow: hidden; + } + + .c-product-line-select.is-selected { + background-color: #efefef; + border-color: currentColor; + color: black; + } + + .c-product-line-select__overview { + display: flex; + } + + .c-product-line-select__select-button, + .c-product-line-select__summary-button { + background: 0; + border: 0; + border-radius: 0; + color: currentColor; + font-size: calc(0.5vw + 0.16rem); + } + + .c-product-line-select__select-button { + display: flex; + align-items: center; + flex-grow: 1; + padding: 0; + text-align: left; + } + + .c-product-line-select__select-icon { + display: block; + flex: none; + padding: 0.16rem; + } + + .c-product-line-select__name { + flex-grow: 1; + font-size: calc(0.5vw + 0.12rem); + padding: 0.16rem 0 0.16rem 0.32rem; + } + + .c-product-line-select__select-icon::before { + content: "\f096"; + } + + .c-product-line-select.is-selected .c-product-line-select__select-icon::before { + color: currentColor; + content: "\f046"; + opacity: 1; + } + + .c-product-line-select__select-button:hover .c-product-line-select__select-icon::before { + content: "\f046"; + opacity: 0.5; + } + + .c-product-line-select__image { + display: block; + flex: none; + max-width: -webkit-calc(4vw + 6.4rem); + max-width: calc(4vw + 6.4rem); + padding: 0.16rem; + } + + .c-product-line-select__summary-button { + background-color: #ddd; + color: currentColor; + flex: none; + padding: 0 0.12rem; + } + + .c-product-line-select__summary { + background-color: #ddd; + color: black; + padding: 0.16rem; + text-align: left; + } + + .u-no-margin { + margin: 0 !important; + } + + .hide { + display: none !important; + } + + .head-tool-style li.active, + li:hover { + background-color: unset; + } + + .select-type-style { + label { + display: unset; + } + } +} +</style> \ No newline at end of file diff --git a/src/views/SPump/Select/ByPara2/components/selPumpSeries.vue b/src/views/SPump/Select/ByPara2/components/selPumpSeries.vue new file mode 100644 index 0000000..9af7cad --- /dev/null +++ b/src/views/SPump/Select/ByPara2/components/selPumpSeries.vue @@ -0,0 +1,934 @@ +<template> + <div class="productSeries"> + <div id="productLines" style="height: 100%; position: relative; overflow: auto"> + <div class="sticky-container" style="height: 0.55rem"> + <div style=" width: 100%; max-width: 5.36rem; margin-top: 0rem; top: 0rem; bottom: auto; " + class="sticky is-anchored is-at-top"> + <div id="productlinePicker"> + <div class="row"> + <div class="columns"> + <ul class="menu head-tool-style"> + <li style="margin-right: 0.05rem;height: unset;"> + <el-checkbox class="select_all_style" v-model="state.m_isSelectAllSeries" + @change="clickSelAllSeries" v-if="state.m_selSeriesMethod.current == 0"><span> + {{ state.m_isSelectAllSeries ? t("selectPage.reselect.TR") : t("selectPage.selectAll.TR") }} + </span> + </el-checkbox> + </li> + <li class="select-type-style"> + <el-radio-group v-model="state.m_selSeriesMethod.current" size="small" + @change="changeSelSeriesMethod"> + <el-radio-button :disabled="state.m_selSeriesMethod.byCatalog.isDisable" + v-if="state.m_selSeriesMethod.byCatalog.isVisible" :value="0">{{ t("selectPage.byType.TR") + }}</el-radio-button> + <el-radio-button :disabled="state.m_selSeriesMethod.byHY.isDisable" + v-if="state.m_selSeriesMethod.byHY.isVisible" :value="1">{{ t("selectPage.byIndustry.TR") + }}</el-radio-button> + <el-radio-button :disabled="state.m_selSeriesMethod.byMedia.isDisable" + v-if="state.m_selSeriesMethod.byMedia.isVisible" :value="2">{{ t("selectPage.byMedia.TR") + }}</el-radio-button> + </el-radio-group> + </li> + </ul> + </div> + </div> + </div> + </div> + </div> + <!-- 鎸夌被鍨嬩笅鎷� --> + <div class="row" id="prod_line_filters" v-show="state.m_selSeriesMethod.current == 0"> + <div class="shrink columns" style="display: flex; align-items: center"> + <label class="c-form-label" style="width: 0.65rem; margin-bottom: 0.16rem" for="comboxCatalog">{{ + t("selectPage.type.TR") }}:</label> + <select name="comboxCatalog" class="small" v-model="state.m_selCatalogID" @change="changeCatalog"> + <option v-for="item in state.m_allCatalogList" :key="item.ID" :value="item.ID"> + {{ item.Name }} + </option> + </select> + </div> + </div> + <!-- 鎸夌被鍨嬪垎绫� --> + <div style="height: calc(100% - 1.1rem); overflow: auto" v-if="state.m_selSeriesMethod.current == 0"> + <label v-if="state.m_ruleSelectStatus" style="position: absolute; top: 1rem; font-size: 0.1rem; color: red">*{{ + t("selectPage.seriesRule.TR") }}</label> + <div class="c-product-line-select" v-for="(series_item, series_index) in state.m_allDispSeriesList" + :key="series_index" :class="series_item.isSelected ? 'is-selected' : ''" style="position: relative"> + <div @click="clickSeriesItem(series_index)"> + <div class="c-product-line-select__overview" style="height: 1.5rem"> + <button type="button" class="c-product-line-select__select-button" style="flex-grow: 1;"> + <span class="fa fa-fw c-product-line-select__select-icon"></span> + <span class="c-product-line-select__name" + style="max-width: 2.19rem;display: inline-block; word-wrap: break-word;"> + {{ series_item.Name }} + </span> + <img alt="Product Line" :onerror="useDefaultImage" :src="series_item.ThumbnailImage" + class="c-product-line-select__image" style="height: 100%;" /> + </button> + <button @click.stop="series_item.isShowDetail = !series_item.isShowDetail" type="button" + class="c-product-line-select__summary-button"> + <span class="fa fa-fw fa-info-circle"></span> + </button> + </div> + <div class="c-product-line-select__summary" :class="series_item.isShowDetail ? '' : 'hide'"> + <p class="u-no-margin" style="white-space: pre-line;">{{ series_item.ShortDescription }}</p> + </div> + </div> + <div v-show="!series_item.isSelectEnable" class="unclick-mask"> + <div class="error_tip">{{ series_item.errorTips }}</div> + </div> + </div> + </div> + <!-- 鎸夎涓氬垎绫� --> + <div style="height: calc(100% - 0.55rem); overflow: auto" v-if="state.m_selSeriesMethod.current == 1"> + <label v-if="state.m_ruleSelectHY" style="position: absolute; top: 0.3rem; font-size: 0.1rem; color: red">*{{ + $t("selectPage.hangyeRule.TR") }}</label> + <div v-for="(hy_item, hy_index) in state.m_allHangYeList" :key="hy_index" class="c-product-line-select" + :class="hy_item.isSelected ? 'is-selected' : ''" @click="clickHangYeItem(hy_index)"> + <div class="c-product-line-select__overview" style="height: 1.5rem"> + <button type="button" class="c-product-line-select__select-button"> + <span class="fa fa-fw c-product-line-select__select-icon"></span> + <span class="c-product-line-select__name">{{ + hy_item.Name + }}</span> + <img alt="Product Line" :src="hy_item.ImageSrc" + style=" height: 1.2rem; width: 1.2rem; filter: drop-shadow(0.02rem 0.04rem 0.06rem black); " + class="c-product-line-select__image" /> + </button> + <button @click.stop="hy_item.isShowDetail = !hy_item.isShowDetail" type="button" + class="c-product-line-select__summary-button"> + <span class="fa fa-fw fa-info-circle"></span> + </button> + </div> + <div class="c-product-line-select__summary" :class="hy_item.isShowDetail ? '' : 'hide'"> + <p class="u-no-margin">{{ hy_item.ShortDescription }}</p> + </div> + </div> + </div> + <!-- 鎸変粙璐ㄥ垎绫� --> + <div style="height: calc(100% - 0.55rem); overflow: auto" v-if="state.m_selSeriesMethod.current == 2"> + <label v-if="state.m_ruleSelectJZ" style="position: absolute; top: 0.3rem; font-size: 0.1rem; color: red">*{{ + t("selectPage.jiezhiRule.TR") }}</label> + <div v-for="(jz_item, jz_index) in state.m_allJieZhiList" :key="jz_index" class="c-product-line-select" + :class="jz_item.isSelected ? 'is-selected' : ''" @click="clickJieZhiItem(jz_index)"> + <div class="c-product-line-select__overview" style="height: 1.5rem"> + <button type="button" class="c-product-line-select__select-button"> + <span class="fa fa-fw c-product-line-select__select-icon"></span> + <span class="c-product-line-select__name">{{ + jz_item.Name + }}</span> + </button> + <button @click.stop="jz_item.isShowDetail = !jz_item.isShowDetail" type="button" + class="c-product-line-select__summary-button"> + <span class="fa fa-fw fa-info-circle"></span> + </button> + </div> + <div class="c-product-line-select__summary" :class="jz_item.isShowDetail ? '' : 'hide'"> + <p class="u-no-margin">{{ jz_item.ShortDescription }}</p> + </div> + </div> + </div> + </div> + </div> +</template> + +<script setup name="selPumpSeries"> +import { onMounted, reactive } from "vue"; +import { ElRadioGroup, ElRadioButton, ElCheckbox, ElCheckboxGroup } from 'element-plus' +import { useSelect } from '/@/store/select.js'; +import ConstParas from "/@/utils/constParas"; +import Utils from "/@/utils/utils"; +import SelectByCorpFlag from "/@/utils/selectByCorpFlag"; +import defaultImgUrl from '/@/views/assets/img_fail.png'; +import { useI18n } from 'vue-i18n'; +import noneImg from '/@/views/assets/none_img.png' +const { t } = useI18n() +const selectStore = useSelect() +let state = reactive({ + m_currentCorpFlag: window.globalConfig.CorpInfo.CorpFlag, + m_selSeriesMethod: { + current: 0, //0 绫诲瀷 + byCatalog: { + isDisable: true, + isVisible: false, + }, + byHY: { + isDisable: true, + isVisible: false, + }, + byMedia: { + isDisable: true, + isVisible: false, + }, + }, + m_isSelectAllSeries: false, //鏄惁鍏ㄩ�� 榛樿鍏ㄩ�� + + m_allCatalogList: [], //鎵�鏈夌殑绫诲瀷 + m_allSeriesList: [], //鎵�鏈夌殑绯诲垪 + m_allDispSeriesList: [], //鐢ㄤ簬鏄剧ず鐨勭郴鍒楀垪琛� + + m_allHangYeList: [], //鎵�鏈夎涓氬垪琛� + + m_allJieZhiList: [], //鎵�鏈変粙璐ㄥ垪琛� + + m_selSeriesIDs: [], //褰撳墠閫変腑鐨勭郴鍒梚d + m_selCatalogID: 0, //褰撳墠鐢ㄦ潵灞曠ず鐨勭被鍨媔d + + m_DriveType: 0, //椹卞姩绫诲瀷 + m_MotorFrequence: 50, + m_FirePumpType: 0,//娑堥槻娉电被鍨嬶紝 + m_isFilterByjieZhiTemperature: false,//鏄惁杩囨护浠嬭川娓╁害 榛樿涓嶈繃婊� + m_jieZhiTemperature: null, //浠嬭川娓╁害 + m_ruleSelectStatus: false, //鍒ゆ柇鏄惁閫夋嫨浜嗙郴鍒� + m_ruleSelectHY: false, //鍒ゆ柇鏄惁閫夋嫨浜嗚涓� + m_ruleSelectJZ: false, //鍒ゆ柇鏄惁閫夋嫨浜嗕粙璐� +}) +//鍒濆鍖栦骇鍝佺郴鍒楁暟鎹� +const initData = (all_catalog, all_series, currentLanguageType, seriesApplicationData) => { + if (all_catalog == null || all_catalog.length == 0) return; + state.m_selSeriesMethod.byCatalog.isDisable = false; + state.m_selSeriesMethod.byCatalog.isVisible = true; + + state.m_allCatalogList = all_catalog; + state.m_allSeriesList = all_series; + + state.m_selCatalogID = all_catalog[0].ID; + + var allInfoList = []; + all_series.forEach((element, index) => { + let series_info = { + ID: element.ID, + CatalogID: element.CatalogID, + SeriesID: element.ID, + CatalogName: element.CatalogName, + ChartType: element.ChartType, + DriveType: element.DriveType, + FirePumpStatus: element.FirePumpStatus, + MotorFrequece: element.MotorFrequece, + Name: element.Name, + MaxTemperture: element.MaxTemperture, + MinTemperture: element.MinTemperture, + errorTips: "", + ShortDescription: element.ShortDescription == "" ? t('ebookPage.noProfile.TR') : element.ShortDescription.replace(/<br\/>/g, "\n"), + ThumbnailImage: "", + isSelected: false, //鏄惁琚�夋嫨 + isShowDetail: false, //鏄惁灞曠ず璇︽儏 + isSelectEnable: true, //鑳藉惁琚�夋嫨 + }; + + let ThumbnailImage = noneImg + if (element.ThumbnailImage && element.ThumbnailImage != "") { + ThumbnailImage = window.globalConfig.WebApiUrl.FileUrl + 'Data/' + element.ThumbnailImage + } + series_info.ThumbnailImage = ThumbnailImage + allInfoList.push(series_info); + }); + state.m_allSeriesList = allInfoList + // _this.m_allDispSeriesList = allInfoList + initDataFromHistory(); + if (seriesApplicationData) { + //鏋勫缓琛屼笟鍒楄〃 + buildHangYeList(currentLanguageType, seriesApplicationData); + //鏋勫缓浠嬭川鍒楄〃 + buildJieZhiList(currentLanguageType, seriesApplicationData); + } +} + +//鏋勫缓琛屼笟鍒楄〃 +const buildHangYeList = (langType, seriesApplicationData) => { + if ( + seriesApplicationData.HangYe == "undefind" || + seriesApplicationData.HangYe == null + ) { + seriesApplicationData.HangYe = {}; + } + let HYData = seriesApplicationData.HangYe.List; + if (HYData == null || HYData.length == 0) { + state.m_allHangYeList = []; + return; + } + state.m_selSeriesMethod.byHY.isDisable = false; + state.m_selSeriesMethod.byHY.isVisible = true; + + let list = []; + + HYData.forEach((element, index) => { + let itemObj = { + HID: element.ID, + PumpSeriesID: element.PumpSeriesID, + Name: element.NameCN, + isSelected: false, + isShowDetail: false, //鏄惁灞曠ず璇︽儏 + ShortDescription: element.DescriptionCN, + ImageSrc: "static/img/HangYe/" + element.ImageName + "/ffffffx128.png", + }; + if (langType == 0) { + itemObj.Name = element.NameCN + itemObj.ShortDescription = element.DescriptionCN + } else if (langType == 2) { + itemObj.Name = element.NameEN + itemObj.ShortDescription = element.DescriptionEN + } else if (langType == 6) { + itemObj.Name = element.NameKO ? element.NameKO : element.NameEN + itemObj.ShortDescription = element.DescriptionKO ? element.DescriptionKO : element.DescriptionEN + } else if (langType == 5) { + itemObj.Name = element.NameRU ? element.NameRU : element.NameEN + itemObj.ShortDescription = element.DescriptionRU ? element.DescriptionRU : element.DescriptionEN + } else { + itemObj.Name = element.NameCN + itemObj.ShortDescription = element.DescriptionCN + } + list.push(itemObj); + }); + + state.m_allHangYeList = list; +} +//鏋勫缓浠嬭川鍒楄〃 +const buildJieZhiList = (langType, seriesApplicationData) => { + // console.log(seriesApplicationData,406) + if ( + seriesApplicationData.JieZhiParas == "undefind" || + seriesApplicationData.JieZhiParas == null + ) { + seriesApplicationData.JieZhiParas = {}; + } + let jieZhiList = seriesApplicationData.JieZhiParas.List; + if (jieZhiList == null || jieZhiList.length == 0) { + state.m_allJieZhiList = []; + return + } + state.m_selSeriesMethod.byMedia.isDisable = false; + state.m_selSeriesMethod.byMedia.isVisible = true; + + let list = []; + if (langType == 0) { + jieZhiList.forEach((element, index) => { + let itemObj = { + ID: element.ID, + PumpSeriesID: element.PumpSeriesID, + Name: element.NameCN, + isSelected: false, + isShowDetail: false, //鏄惁灞曠ず璇︽儏 + ShortDescription: element.DescriptionCN, + }; + if (element.ImageName) { + itemObj.ImageSrc = "static/img/HangYe/" + element.ImageName + "/ffffffx128.png"; + } else { + itemObj.ImageSrc = ""; + } + list.push(itemObj); + }); + } + else { + jieZhiList.forEach((element, index) => { + let itemObj = { + ID: element.ID, + PumpSeriesID: element.PumpSeriesID, + Name: element.NameEN, + isSelected: false, + isShowDetail: false, //鏄惁灞曠ず璇︽儏 + ShortDescription: element.DescriptionCN, + }; + if (element.ImageName) { + itemObj.ImageSrc = "static/img/HangYe/" + element.ImageName + "/ffffffx128.png"; + } else { + itemObj.ImageSrc = ""; + } + list.push(itemObj); + }); + } + state.m_allJieZhiList = list; +} +//绛涢�夌郴鍒楀垪琛� +const filterSeriseList = (DriveType, MotorFrequece, FirePumpType) => { + state.m_FirePumpType = FirePumpType; + // debugger + resetSeriesCheckStatus() + state.m_DriveType = DriveType; + state.m_MotorFrequence = MotorFrequece; + + let showSeriesArr = []; + state.m_allSeriesList.forEach((item) => { + item.isSelectEnable = true; + //鍒ゆ柇鏄惁鏄數鏈� + if (DriveType == ConstParas.DriveType.Motor) { + if (item.MotorFrequece == MotorFrequece && item.DriveType == DriveType) { + if (item.FirePumpStatus) { + if (item.FirePumpStatus.includes(Number(FirePumpType))) { + if (state.m_selCatalogID == 0) { + //鍒ゆ柇绫诲瀷鏄惁鏄叏閮� + showSeriesArr.push(item); + } else { + if (state.m_selCatalogID == item.CatalogID) { + showSeriesArr.push(item); + } + } + } + } else { + if (state.m_selCatalogID == 0) { + //鍒ゆ柇绫诲瀷鏄惁鏄叏閮� + showSeriesArr.push(item); + } else { + if (state.m_selCatalogID == item.CatalogID) { + showSeriesArr.push(item); + } + } + } + } + } + // 鏄惁鏄煷娌规満 + else if (DriveType == ConstParas.DriveType.Diesel) { + if (item.DriveType == DriveType) { + if (item.FirePumpStatus) { + if (item.FirePumpStatus.includes(Number(FirePumpType))) { + if (state.m_selCatalogID == 0) { + //鍒ゆ柇绫诲瀷鏄惁鏄叏閮� + showSeriesArr.push(item); + } else { + if (state.m_selCatalogID == item.CatalogID) { + showSeriesArr.push(item); + } + } + } + } else { + if (state.m_selCatalogID == 0) { + //鍒ゆ柇绫诲瀷鏄惁鏄叏閮� + showSeriesArr.push(item); + } else { + if (state.m_selCatalogID == item.CatalogID) { + showSeriesArr.push(item); + } + } + + } + } + } + }); + //鍒ゆ柇鍘嗗彶鏄惁閫夋嫨浜嗙郴鍒楋紝濡傛灉鏈夊垯灏嗘墍閫夌郴鍒楀嬀涓� + if (state.m_selSeriesIDs.length != 0) { + state.m_selSeriesIDs.forEach(serIDs => { + showSeriesArr.forEach((item) => { + if (serIDs == item.ID) { + item.isSelected = true + } + }) + }) + } + state.m_allDispSeriesList = showSeriesArr; + buildDispSeriesList(); +} +//璁剧疆浠嬭川娓╁害 +const setJieZhiTemperture = (temperture) => { + state.m_jieZhiTemperature = temperture; + state.m_isFilterByjieZhiTemperature = true; + buildDispSeriesList(); +} +// 鑾峰彇鍘嗗彶琛ㄥ崟璁板綍 +const initDataFromHistory = () => { + //鑾峰彇涓婃鐨勮〃鍗曞~鍐欒褰� + let historyFormData = selectStore.ByParas.selectParas; + let corpSelectDataByFlag = SelectByCorpFlag.getData(state.m_currentCorpFlag) + if (historyFormData == null || historyFormData.FilterInfo == null) { + return; + } + if (corpSelectDataByFlag.CatalogID == "" || corpSelectDataByFlag.CatalogID.length == 0) { + return + } + if (corpSelectDataByFlag.SeriesID == "" || corpSelectDataByFlag.SeriesID.length == 0) { + return + } + + if (historyFormData.FilterInfo.CatalogID) { + historyFormData.FilterInfo.CatalogID = corpSelectDataByFlag.CatalogID + var selCatalogIDs = historyFormData.FilterInfo.CatalogID; + if (selCatalogIDs.length > 0) + state.m_selCatalogID = selCatalogIDs[0]; + } + state.m_selSeriesMethod.current = corpSelectDataByFlag.SelMethod + // 鍒ゆ柇鍘嗗彶閫夊瀷鏂瑰紡 鏄惁鏄寜琛屼笟 濡傛灉鏄垯涓嶈祴鍊煎巻鍙茬郴鍒梚d + if (corpSelectDataByFlag.SelMethod == 0) { + if (historyFormData.FilterInfo.SeriesID) { + historyFormData.FilterInfo.SeriesID = corpSelectDataByFlag.SeriesID + var selSeriesIDs = historyFormData.FilterInfo.SeriesID; + state.m_selSeriesIDs = selSeriesIDs; + // 鏍规嵁鍘嗗彶閫変腑鐨勭郴鍒梚d鍕鹃�変笂 + // selSeriesIDs.forEach(sid => { + // this.m_allDispSeriesList.forEach(serItem => { + // if (sid == serItem.SeriesID) { + // serItem.isSelected = true + // } + // }) + // }) + } + } + +} +//鏋勫缓灞曠ず鐨勭郴鍒楀垪琛� +const buildDispSeriesList = () => { + if (state.m_jieZhiTemperature == null) { + state.m_allDispSeriesList.forEach((element) => { + element.isSelectEnable = true; + element.errorTips = ""; + }); + return; + } + // console.log(this.m_jieZhiTemperature, _this.m_allDispSeriesList,292) + + state.m_allDispSeriesList.forEach((element) => { + element.isSelectEnable = true; + element.errorTips = ""; + if (element.MaxTemperture != null) { + if (state.m_jieZhiTemperature >= element.MaxTemperture) { + element.isSelected = false; + element.isSelectEnable = false; + element.errorTips = "楂樹簬鏈�澶ч�傜敤娓╁害" + element.MaxTemperture; + } + } + if (element.MinTemperture != null) { + if (state.m_jieZhiTemperature <= element.MinTemperture) { + element.isSelected = false; + element.isSelectEnable = false; + element.errorTips = "浣庝簬鏈�灏忛�傜敤娓╁害" + element.MinTemperture; + } + } + }); +} +// 閲嶇疆涓�閮ㄥ垎鏁版嵁 +const resetData = () => { + +} +//鐩戝惉绯诲垪绛涢�夐�夐」鍒囨崲鐨勫彉鍖� 榛樿鎸夎涓� +const changeSelSeriesMethod = (val) => { + state.m_selSeriesMethod.current = val; + state.m_selSeriesIDs = []; +} +//鏄惁鍏ㄩ�� +const clickSelAllSeries = () => { + let ser_id = []; + if (state.m_isSelectAllSeries) { + state.m_selSeriesIDs = []; + if (state.m_selSeriesMethod.current == 0) { + state.m_allDispSeriesList.forEach((item) => { + if (item.isSelectEnable) { + item.isSelected = true; + ser_id.push(item.SeriesID); + } + }); + state.m_selSeriesIDs = ser_id; + + // console.log(this.m_selSeriesIDs,"m_selSeriesIDs") + } + // 褰撳墠涓烘寜琛屼笟妯″潡 + if (state.m_selSeriesMethod.current == 1) { + state.m_allHangYeList.forEach((item) => { + item.isSelected = true; + ser_id.push(...item.PumpSeriesID); + }); + state.m_selSeriesIDs = Utils.uniqueInArray(ser_id); + } + state.m_ruleSelectStatus = false; + } else { + state.m_selSeriesIDs = []; + if (state.m_selSeriesMethod.current == 0) { + state.m_allDispSeriesList.forEach((item) => { + item.isSelected = false; + }); + } + if (state.m_selSeriesMethod.current == 1) { + state.m_allHangYeList.forEach((item) => { + item.isSelected = false; + }); + } + } +} +//鐩戝惉鎸夌被鍨嬩笅鎷夌殑鍙樺寲 +const changeCatalog = (e) => { + //鍒囨崲绫诲瀷鍚庯紝鍙栨秷鍏ㄩ�夊拰缃┖宸查�夋嫨鐨剆eriesID鏁扮粍 + state.m_isSelectAllSeries = false + state.m_selSeriesIDs = []; + state.m_selCatalogID = parseInt(e.target.value) || state.m_allCatalogList[0].ID; + + filterSeriseList( + state.m_DriveType, + state.m_MotorFrequence, + state.m_FirePumpType + ); + if (state.m_isFilterByjieZhiTemperature) { + buildDispSeriesList(); + } +} +//閫夋嫨绯诲垪 +const clickSeriesItem = (index) => { + state.m_allDispSeriesList[index].isSelected = !state.m_allDispSeriesList[index].isSelected; + var sel_ids = []; + + state.m_isSelectAllSeries = false; + state.m_allDispSeriesList.forEach((series_item) => { + if (series_item.isSelected) { + // this.m_isSelectAllSeries = true; + sel_ids.push(series_item.SeriesID); + } + }); + + state.m_selSeriesIDs = sel_ids; + // console.log(this.m_selSeriesIDs,630) + //鍒ゆ柇褰撳墠閫変腑鐨勭郴鍒梚d涓暟鏄惁鍜屽叏閮ㄧ殑绯诲垪涓暟鐩稿悓锛岀浉鍚屽垯浠h〃宸茬粡鍏ㄩ�� + if (state.m_selSeriesIDs.length == state.m_allDispSeriesList.length) { + state.m_isSelectAllSeries = true + } + if (state.m_selSeriesIDs.length > 0) { + state.m_ruleSelectStatus = false; + } + + //console.log(this.m_selSeriesIDs, 375); +} +//閫夋嫨琛屼笟 +const clickHangYeItem = (index) => { + state.m_allHangYeList.forEach((old_item) => { + old_item.isSelected = false; + }); + + state.m_allHangYeList[index].isSelected = !state.m_allHangYeList[index].isSelected; +} +//閫夋嫨浠嬭川 +const clickJieZhiItem = (index) => { + state.m_allJieZhiList.forEach((old_item) => { + old_item.isSelected = false; + }); + + state.m_allJieZhiList[index].isSelected = !state.m_allJieZhiList[index].isSelected; +} +//杩斿洖缁欎富椤甸潰 閫夋嫨鐨勭被鍨媔d 鍜� 绯诲垪id +const getSelectData = () => { + var sel_series_ids = []; + var sel_catalog_ids = []; + if (state.m_selSeriesMethod.current == 0) { + if (state.m_selSeriesIDs == null || state.m_selSeriesIDs.length == 0) { + state.m_ruleSelectStatus = true; + return null; + } + sel_series_ids = state.m_selSeriesIDs; + sel_catalog_ids.push(state.m_selCatalogID); + } + + if (state.m_selSeriesMethod.current == 1) { + state.m_allHangYeList.forEach((hy_item) => { + if (hy_item.isSelected) { + state.m_isSelectAllSeries = true; + sel_series_ids.push(...hy_item.PumpSeriesID); + } + }); + + sel_series_ids = getFilterSeriseIdList(sel_series_ids); //杩囨护涓�涓�, 鍝簺绯诲垪ID鍙 + + if (sel_series_ids == null || sel_series_ids.length == 0) { + state.m_ruleSelectHY = true; + return null; + } + } + if (state.m_selSeriesMethod.current == 2) { + state.m_allJieZhiList.forEach((jz_item1, index1) => { + if (jz_item1.isSelected) { + //鍒ゆ柇褰撳墠閫変腑鐨勪粙璐ㄩ」瀵瑰簲鐨勬车绯诲垪id鏄惁绛変簬 -1 + if ( + jz_item1.PumpSeriesID.length == 1 && + jz_item1.PumpSeriesID[0] == -1 + ) { + state.m_allJieZhiList.forEach((jz_item2, index2) => { + if (index1 != index2) { + sel_series_ids.push(...jz_item2.PumpSeriesID); + } + }); + } else { + sel_series_ids.push(...jz_item1.PumpSeriesID); + } + } + }); + + sel_series_ids = getFilterSeriseIdList(sel_series_ids); //杩囨护涓�涓�, 鍝簺绯诲垪ID鍙 + if (sel_series_ids == null || sel_series_ids.length == 0) { + state.m_ruleSelectJZ = true; + return null; + } + } + //console.log(sel_series_ids) + let data = { + CorpFlag: state.m_currentCorpFlag, + SeriesID: sel_series_ids, + CatalogID: sel_catalog_ids, + SelMethod: state.m_selSeriesMethod.current + }; + + SelectByCorpFlag.saveData(state.m_currentCorpFlag, data) + state.m_ruleSelectStatus = false; + return data; +} +//杩囨护鍙互鍙互閫夋嫨鐨勭郴鍒桰D(琛屼笟 , 浠嬭川鐢�) +const getFilterSeriseIdList = (series_id_list) => { + // console.log(series_id_list) + if (series_id_list == null) return []; + var ava_id = []; + state.m_allSeriesList.forEach((item) => { + if (!item.isSelectEnable) return true; + if (series_id_list.indexOf(item.ID) < 0) return true; + //鍒ゆ柇鏄惁鏄數鏈� + if (state.m_DriveType == ConstParas.DriveType.Motor) { + if ( + item.MotorFrequece == state.m_MotorFrequence && + item.DriveType == state.m_DriveType + ) { + ava_id.push(item.ID); + } + } + // 鏄惁鏄煷娌规満 + else if (state.m_DriveType == ConstParas.DriveType.Diesel) { + if (item.state.m_DriveType == DriveType) { + ava_id.push(item.ID); + } + } + }); + + return ava_id; +} +//娓呴櫎绯诲垪鍒楄〃鐨勯�変腑鐘舵�併�� +const resetSeriesCheckStatus = () => { + if (state.m_allDispSeriesList && state.m_allDispSeriesList.length > 0) { + state.m_allDispSeriesList.forEach(item => { + item.isSelected = false + }) + } +} +const useDefaultImage = (event) => { + event.target.src = defaultImgUrl; +} + +defineExpose({ + initData, + filterSeriseList, + getSelectData, + setJieZhiTemperture +}) +</script> + +<style lang="scss"> +.productSeries { + height: calc(100% - 0rem); + + .c-card { + margin: 0 0 0.16rem 0; + padding: 0.16rem; + border-radius: 0.03rem; + position: relative; + color: #16181a; + background: #fefefe; + border: 0.01rem solid #dbe0e3; + box-shadow: 0 0.01rem 0.03rem rgba(145, 161, 170, 0.25); + } + + .c-card> :last-child { + margin-bottom: 0; + } + + .c-card> :first-child { + margin-top: 0; + } + + .row .row { + max-width: none; + } + + .row { + display: flex; + flex-flow: row wrap; + } + + .columns { + padding: 0 0.15rem; + } + + .column, + .columns { + padding-left: 0.08rem; + padding-right: 0.08rem; + } + + .column, + .columns { + flex: 1 1 0rem; + min-width: initial; + } + + .menu { + margin: 0; + list-style-type: none; + width: 100%; + display: flex; + flex-wrap: nowrap; + align-items: center; + flex-wrap: nowrap; + } + + .menu>li { + flex: 0 0 auto; + } + + .menu>li>a { + flex-flow: row nowrap; + } + + .menu>li>a { + display: flex; + } + + .menu>li>a { + display: block; + padding: 0.08rem 0rem; + line-height: 1; + } + + .menu input, + .menu a, + .menu button { + margin-bottom: 0; + } + + .shrink { + flex: 0 0 auto; + max-width: 100%; + } + + .text-right { + text-align: right; + } + + .menu input, + .menu a, + .menu button { + margin-bottom: 0; + } + + .c-product-line-select { + border: 0.01rem solid #ddd; + border-radius: 0.03rem; + color: #555; + margin-top: 0.08rem; + overflow: hidden; + } + + .c-product-line-select.is-selected { + background-color: #efefef; + border-color: currentColor; + color: black; + } + + .c-product-line-select__overview { + display: flex; + } + + .c-product-line-select__select-button, + .c-product-line-select__summary-button { + background: 0; + border: 0; + border-radius: 0; + color: currentColor; + font-size: calc(0.5vw + 0.16rem); + } + + .c-product-line-select__select-button { + display: flex; + align-items: center; + flex-grow: 1; + padding: 0; + text-align: left; + } + + .c-product-line-select__select-icon { + display: block; + flex: none; + padding: 0.16rem; + } + + .c-product-line-select__name { + flex-grow: 1; + font-size: calc(0.5vw + 0.12rem); + padding: 0.16rem 0 0.16rem 0.32rem; + } + + .c-product-line-select__select-icon::before { + content: "\f096"; + } + + .c-product-line-select.is-selected .c-product-line-select__select-icon::before { + color: currentColor; + content: "\f046"; + opacity: 1; + } + + .c-product-line-select__select-button:hover .c-product-line-select__select-icon::before { + content: "\f046"; + opacity: 0.5; + } + + .c-product-line-select__image { + display: block; + flex: none; + max-width: -webkit-calc(4vw + 6.4rem); + max-width: calc(4vw + 6.4rem); + padding: 0.16rem; + } + + .c-product-line-select__summary-button { + background-color: #ddd; + color: currentColor; + flex: none; + padding: 0 0.12rem; + } + + .c-product-line-select__summary { + background-color: #ddd; + color: black; + padding: 0.16rem; + text-align: left; + } + + .u-no-margin { + margin: 0 !important; + } + + .hide { + display: none !important; + } + + .error_tip { + color: red; + padding: 0.16rem; + text-align: left; + font-size: 18px; + font-weight: 600; + } + + .unclick-mask { + width: 100%; + height: 1.5rem; + background-color: #fff; + position: absolute; + top: 0; + opacity: 0.7; + cursor: not-allowed; + } + + .head-tool-style li.active, + li:hover { + background-color: unset; + } + + .select-type-style { + label { + display: unset; + } + } + + .select_all_style { + display: inline-flex !important; + } +} +</style> \ No newline at end of file diff --git a/src/views/SPump/Select/PumpList/FmUL.vue b/src/views/SPump/Select/PumpList/FmUL.vue new file mode 100644 index 0000000..abb6f97 --- /dev/null +++ b/src/views/SPump/Select/PumpList/FmUL.vue @@ -0,0 +1,743 @@ +<template> + <div style="height: 100%"> + <page-head> </page-head> + <div style="height: calc(100% - 0.86rem)" ref="selpumplist" class="selpumplist" v-loading="state.isShowLoadingFrm" + element-loading-background="rgba(255,255,255, 0.8)"> + <div class="nav_header_box"> + <div class="nav_header"> + <div style="cursor: pointer" class="nav_header_a" @click="toHomePage">{{ t("selectPage.index.TR") }}</div> + </div> + <div class="nav_header_right"> + <!-- <el-dropdown v-if="false" :hide-on-click="false" trigger="click" :max-height="300"> + <el-button class="btn_color"> + {{ t("selectPage.selRow.TR") }}<i class="el-icon-arrow-down el-icon--right"></i> + </el-button> + <template #dropdown> + <el-dropdown-menu class="pumplist_dropdown_menu"> + <el-dropdown-item><el-checkbox-group v-model="state.m_dispColumnNameList"> + <el-checkbox v-for="item in m_columnOptions" :value="item.value" :key="item.value" + :checked="item.visible" + :disabled="item.disable">{{ item.label }}</el-checkbox> </el-checkbox-group></el-dropdown-item> + </el-dropdown-menu> + </template> +</el-dropdown> --> + <!-- 瀵煎嚭鎸夐挳 --> + <el-button class="btn_color">{{ t('selectPage.export.TR') }}</el-button> + <!-- 鎵撳嵃鎸夐挳 --> + <el-button class="btn_color">{{ t('selectPage.print.TR') }}</el-button> + <!-- 涓婁竴姝ユ寜閽� --> + <span class="btn_span" @click="prevPage">{{ t('selectPage.previous.TR') }}</span> + </div> + </div> + <div class="tableBox"> + <el-table :data="state.tableData" border stripei :max-height="state.tableMaxHeight" style="width: 100%" + :empty-text="state.tableEmptyContent" :header-cell-style="{ background: '#b0d8dd', color: '#606266' }"> + <!-- 琛ㄦ牸澶�--瀹炵墿鍥�--> + <el-table-column fixed align="center" header-align="center" width="200" :label="t('selectPage.physical.TR')"> + <template #default="scope"> + <div> + <img :src="scope.row.ThumbnailImage" :alt="`${scope.row.groupName}`" /> + </div> + </template> + </el-table-column> + <!-- 琛ㄦ牸澶�--绯诲垪--> + <el-table-column fixed align="center" header-align="center" width="120" prop="SereisName" + :label="t('selectPage.series.TR')"></el-table-column> + <!-- 琛ㄦ牸澶�--娉靛瀷鍙�--> + <el-table-column align="center" header-align="center" width="240" prop="PumpName" + :label="t('selectPage.model.TR')"> + <template #default="scope"> + <div @click="clickPumpNameCell(scope.$index, scope.row)"> + <span style="color: #6396c2; cursor: pointer">{{ + scope.row.PumpName + }}</span> + </div> + </template> + </el-table-column> + <!-- 琛ㄦ牸澶�--鏇茬嚎鍥�--> + <el-table-column align="center" header-align="center" width="300" prop="WorkCurveGroup" + :label="t('selectPage.diagram.TR')"> + <template #default="scope"> + <div style="width: 1.5rem; height: 0.9rem" class="CurveVhart" ref="CurveVhart" :data-svg="true" + :id="scope.row.PumpID" :data-pump_id="scope.row.PumpID" :data-pump_charttype="scope.row.ChartType"> + </div> + </template> + </el-table-column> + <!-- 琛ㄦ牸澶�--璁よ瘉娴侀噺--> + <el-table-column align="right" header-align="center" prop="CertifiedPointQ" width="180"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.certifiedTraffic.TR") }}</div> + <div>gpm</div> + </div> + </template> + </el-table-column> + <!-- 琛ㄦ牸澶�--璁よ瘉鎵▼--> + <el-table-column align="right" header-align="center" prop="CertifiedPointHrange" width="180"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.certifiedHead.TR") }}</div> + <div>psi</div> + </div> + </template> + </el-table-column> + <!-- 琛ㄦ牸澶�--璁よ瘉杞��--> + <el-table-column align="right" header-align="center" prop="CertifiedPointSpeed" width="180"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.certifiedSpeed.TR") }}</div> + <div>rpm</div> + </div> + </template> + </el-table-column> + <!-- 琛ㄦ牸澶�--150%鐐规祦閲�--> + <el-table-column align="right" header-align="center" width="180" prop="PercentPoint150Q"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.pointFlow_150.TR") }}</div> + <div>({{ state.SelDesignPtQUnitName }})</div> + </div> + </template> + </el-table-column> + <!-- 琛ㄦ牸澶�--150%鐐规壃绋�--> + <el-table-column align="right" header-align="center" prop="PercentPoint150H" width="180"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.pointLift_150.TR") }}</div> + <div>{{ state.SelDesignPtHUnitName }}</div> + </div> + </template> + </el-table-column> + <!-- 琛ㄦ牸澶�--150%鐐瑰姛鐜�--> + <el-table-column align="right" header-align="center" prop="PercentPoint150P" width="180"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.pointPower_150.TR") }}</div> + <div>({{ state.SelDesignPtPUnitName }})</div> + </div> + </template> + </el-table-column> + <!-- 琛ㄦ牸澶�--鏈�澶ц酱鍔熺巼 --> + <el-table-column width="180" align="right" header-align="center" prop="MaxPower"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.maxShaftPower.TR") }}</div> + <div>({{ state.SelDesignPtPUnitName }})</div> + </div> + </template> + </el-table-column> + <!-- 琛ㄦ牸澶�--鍙惰疆鐩村緞 --> + <el-table-column align="right" width="180" header-align="center" property="WorkD2"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.impellerDiameter.TR") }}</div> + <div>(mm)</div> + </div> + </template> + </el-table-column> + <!-- 琛ㄦ牸澶�--鍏虫鐐规壃绋� --> + <el-table-column align="right" width="180" header-align="center" property="ShutoffHead"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.deadCenterLift.TR") }}</div> + <div>({{ state.SelDesignPtHUnitName }})</div> + </div> + </template> + </el-table-column> + <!-- 琛ㄦ牸澶�--澶囨敞 --> + <el-table-column v-if="getColumnVisbileStatus('澶囨敞')" align="center" header-align="center" width="80" + property="Note" :label="t('selectPage.note.TR')"></el-table-column> + <!-- 琛ㄦ牸澶�--娉电骇鏁� --> + <el-table-column v-if="getColumnVisbileStatus('娉电骇鏁�')" align="center" header-align="center" width="80" + property="StageNumber" :label="t('selectPage.pumpStages.TR')"></el-table-column> + <!-- 琛ㄦ牸澶�--璇︽儏 --> + <el-table-column :label="t('selectPage.details.TR')" align="right" header-align="center" width="80"> + <template #default="scope"> + <el-button size="small" class="btn_color" @click="clickDetailCell(scope.$index, scope.row)">{{ + t('selectPage.details.TR') }}</el-button> + </template> + </el-table-column> + </el-table> + </div> + </div> + <page-footer> </page-footer> + </div> +</template> + +<script setup name="SelPumpListFMUL"> +import { onMounted, reactive, ref, nextTick } from "vue"; +import { ElMessage, ElTable, ElTableColumn, ElButton } from "element-plus"; +import thumbnailChart from "/@/components/chart/ThumbnailChart.js"; +import UnitHelper from "/@/utils/unit"; +import ConstParas from "/@/utils/constParas"; +import pageHead from "/@/views/head.vue"; +import pageFooter from "/@/views/footer.vue"; +import { useRoute, useRouter } from 'vue-router'; +import { useLanguageMixin } from '/@/mixin/languageHook.js' +import axiosHelper from "/@/utils/axiosHelper.js"; +import noneImg from '/@/views/assets/none_img.png'; +import { useSelect } from '/@/store/select.js'; +import { useI18n } from "vue-i18n"; +let { getCurrentLanguageType, buildCurrentLanguageUrl, getLanguageParaName } = useLanguageMixin() +const m_currentLanguage = getCurrentLanguageType() +const { t } = useI18n() +const selectStore = useSelect() +const route = useRoute() +const router = useRouter() +const selpumplist = ref(null) +let state = reactive({ + detailPageQueryModel: {}, //鐢ㄤ簬浼犻�佺粰涓嬩竴涓〉闈㈢殑绫� + + SelDesignPtQ_StdUnit: 0, //鏍囧噯鍗曚綅鐨勮璁$偣(鐢ㄤ簬缁樺埗灏忓浘) + SelDesignPtH_StdUnit: 0, //鏍囧噯鍗曚綅鐨勮璁$偣(鐢ㄤ簬缁樺埗灏忓浘) + + SelDesignPtQUnit: 4, + SelDesignPtQUnitName: "gpm", + + SelDesignPtHUnit: 5, + SelDesignPtHUnitName: "psi", + + SelDesignPtPUnit: 2, + SelDesignPtPUnitName: "hp", + + isShowLoadingFrm: true, //绛夊緟妗� + + tableData: [], + + m_columnOptions: [ + { label: "瀹炵墿鍥�", unit: "", value: 1, disable: false, visible: true }, + { label: "绯诲垪", unit: "", value: 2, disable: false, visible: true }, + { label: "娉靛瀷鍙�", unit: "", value: 3, disable: false, visible: true }, + { label: "鏇茬嚎鍥�", unit: "", value: 4, disable: true, visible: true }, + { + label: "璁よ瘉娴侀噺", + unit: "(gpm)", + value: 5, + disable: false, + visible: true, + }, + { + label: "璁よ瘉鎵▼", + unit: "(psi)", + value: 6, + disable: false, + visible: true, + }, + + { + label: "杞��", + unit: "(rpm)", + value: 10, + disable: false, + visible: true, + }, + { + label: "鍙惰疆鐩村緞", + unit: "(mm)", + value: 11, + disable: false, + visible: true, + }, + { + label: "鍙橀�熺巼", + unit: "(%)", + value: 12, + disable: false, + visible: false, + }, + { + label: "鍒囧壊鐜�", + unit: "(%)", + value: 13, + disable: false, + visible: true, + }, + { label: "閿�鍞环", value: 14, disable: false, visible: false }, + { label: "娉电骇鏁�", value: 15, disable: false, visible: false }, + { + label: "鍘熷鍙惰疆鐩村緞", + unit: "(mm)", + value: 16, + disable: false, + visible: true, + }, + { + label: "鍏虫鐐规壃绋�", + unit: "(m)", + value: 17, + disable: false, + visible: true, + }, + { + label: "棰濆畾杞��", + unit: "(rpm)", + value: 19, + disable: false, + visible: false, + }, + { label: "澶囨敞", value: 22, disable: true, visible: false }, + { label: "璇︾粏", value: 23, disable: true, visible: true }, + { label: "鎸囧浠�", value: 24, disable: true, visible: false }, + ], + m_dispColumnNameList: [], + tableMaxHeight: 790, + tableEmptyContent: "loading" +}) + +const initialPage = () => { + document.title = `${t('selectPage.selResult.TR')}` + state.tableEmptyContent = "loading" + let prvePathDataObj = selectStore.ByParas.selectParas; + if (prvePathDataObj == null) return; + if (prvePathDataObj.DesignInfo == null) return; + + var selDesignPtQ = prvePathDataObj.DesignInfo.DpQ; + var selDesignPtQUnit = prvePathDataObj.DesignInfo.UnitQ; + var selDesignPtH = prvePathDataObj.DesignInfo.DpH; + var selDesignPtHUnit = prvePathDataObj.DesignInfo.UnitH; + + state.SelDesignPtQUnit = selDesignPtQUnit; + state.SelDesignPtQUnitName = UnitHelper.GetUnitNameQ(selDesignPtQUnit); + state.SelDesignPtQ_StdUnit = UnitHelper.ConvertQ_toM3H( + selDesignPtQUnit, + selDesignPtQ + ); + + state.SelDesignPtHUnit = selDesignPtHUnit; + state.SelDesignPtHUnitName = UnitHelper.GetUnitNameH(selDesignPtHUnit); + state.SelDesignPtH_StdUnit = UnitHelper.ConvertH_toM( + selDesignPtHUnit, + selDesignPtH + ); + + var dispColumnNameList = []; + state.m_columnOptions.forEach((element) => { + if (element.visible) dispColumnNameList.push(element.label); + + if (element.label.indexOf("娴侀噺") >= 0) + element.unit = UnitHelper.GetUnitNameQ(selDesignPtQUnit); + if (element.label.indexOf("鎵▼") >= 0) + element.unit = UnitHelper.GetUnitNameH(selDesignPtHUnit); + }); + state.m_dispColumnNameList = dispColumnNameList; + + initData(prvePathDataObj); + + nextTick(() => { + // console.log(document.body.clientHeight); + // console.log(document.querySelector("#app header").clientHeight); + let headHeight = 0; + let footerHeight = 0; + if (document.querySelector("#app header")) { + headHeight = document.querySelector("#app header").clientHeight; + } + if (document.querySelector("#app footer")) { + footerHeight = document.querySelector("#app footer").clientHeight; + } + state.tableMaxHeight = + document.body.clientHeight - headHeight - footerHeight - 40; // + }); + window.onresize = () => { + let headHeight = 0; + let footerHeight = 0; + if (document.querySelector("#app header")) { + headHeight = document.querySelector("#app header").clientHeight; + } + if (document.querySelector("#app footer")) { + footerHeight = document.querySelector("#app footer").clientHeight; + } + return (() => { + //绐楀彛鍙樺寲鏄缃〃鏍兼渶澶ч珮搴︼紝浣垮叾閫傚簲绐楀彛鍙樺寲 + state.tableMaxHeight = + document.body.clientHeight - headHeight - footerHeight - 40; + })(); + }; +} +//鍒濆鍖栨暟鎹� +const initData = (prvePathDataObj) => { + + //console.log(prvePathDataObj, 401); + let postRequestData = { + //浠嬭川 + JieZhi: { + ID: prvePathDataObj.JieZhi.ID, //浠嬭川id + Name: prvePathDataObj.JieZhi.Name, //浠嬭川鍚嶇О + CalcDensity: prvePathDataObj.JieZhi.CalcDensity, //瀵嗗害 + CalcViscosity: prvePathDataObj.JieZhi.CalcViscosity, //绮樺害 + }, + //绛涢�変俊鎭� + FilterInfo: { + DriveType: prvePathDataObj.FilterInfo.DriveType, //璁惧绫诲瀷 0鐢垫満 3鏌存补鏈� + KeyWord: prvePathDataObj.FilterInfo.KeyWord, //鍏抽敭瀛� 鏆傛椂榛樿绌� + FirePumpType: prvePathDataObj.FilterInfo.FirePumpType, //娑堥槻娉电被鍨� + MotorPoleNum: prvePathDataObj.FilterInfo.MotorPoleNum, //鐢垫満鏁堢巼绛夌骇 鏆傛椂涓虹┖ + DieselSpeed: prvePathDataObj.FilterInfo.DieselSpeed == "" ? 0 : prvePathDataObj.FilterInfo.DieselSpeed, //鏌存补鏈鸿浆閫� 鏆傛椂榛樿 + MotorFrequence: prvePathDataObj.FilterInfo.MotorFrequence, //鐢垫満璧吂 + }, + //璁捐鐐瑰弬鏁� + DesignInfo: { + UnitQ: prvePathDataObj.DesignInfo.UnitQ, //娴侀噺鍗曚綅 + UnitH: prvePathDataObj.DesignInfo.UnitH, //鎵▼鍗曚綅 + DpQ: prvePathDataObj.DesignInfo.DpQ, //杈撳叆鐨勬祦閲忕殑鍊� + DpH: prvePathDataObj.DesignInfo.DpH, //杈撳叆鐨勬壃绋嬬殑鍊� + IsAllowCut: prvePathDataObj.DesignInfo.IsAllowCut, //鏄惁鍏佽鍒囧壊 + IsAllowFrequence: prvePathDataObj.DesignInfo.IsAllowFrequence, //鏄惁鍏佽鍙橀 + PointTolerance: prvePathDataObj.DesignInfo.PointTolerance, // 鐐瑰宸寖鍥� 榛樿绌� + IsVisCorrect: prvePathDataObj.DesignInfo.IsVisCorrect, //鏄惁淇绮樺害 榛樿false + }, + SeriesID: prvePathDataObj.FilterInfo.SeriesID, //娉电郴鍒桰D + CatalogID: prvePathDataObj.FilterInfo.CatalogID, //娉电被鍨媔d + SoftType: window.globalConfig.SoftType, + SystemInfo: "" + }; + + //console.log(this.requireData,2738) + + state.detailPageQueryModel = { + //鐢ㄤ簬鐐瑰嚮琛ㄦ牸璇︽儏浼犲嚭鐨勫弬鏁� + SID: "", + PID: "", + from: ConstParas.DetailPageFrom.ByParas, + pur: ConstParas.DetailPagePurpose.ByParas,//XPumpByParas = 1, + DpQ: postRequestData.DesignInfo.DpQ, + DpH: postRequestData.DesignInfo.DpH, + DpQu: postRequestData.DesignInfo.UnitQ, + DpHu: postRequestData.DesignInfo.UnitH, + jzid: postRequestData.JieZhi.ID, + jzmd: postRequestData.JieZhi.CalcDensity, + jznd: postRequestData.JieZhi.CalcViscosity, + jzmz: postRequestData.JieZhi.Name, + isndc: prvePathDataObj.DesignInfo.IsVisCorrect, + fpt: prvePathDataObj.FilterInfo.FirePumpType, + drive: prvePathDataObj.FilterInfo.DriveType, + speed: prvePathDataObj.FilterInfo.DieselSpeed + }; + + + axiosHelper + .post({ + version: 3, + // lang: this.m_currentLanguage, + controller: "SelectByParas", + action: "GetPageList", + data: postRequestData, + apiUrlType: "main", + }) + .then((res) => { + state.isShowLoadingFrm = false; + let result = res.data; + if (result.Code != 0) { + if (result.Code == -3) { + state.tableEmptyContent = `${t('ebookPage.noData.TR')}` + if (result.Message.length > 0) state.tableEmptyContent = result.Message + ElMessage({ + message: result.Message, + type: "error", + duration: 4000, + center: true, + }); + + + return; + } else { + ElMessage({ + message: result.Message, + type: "error", + duration: 4000, + center: true, + }); + // setTimeout(() => { + // that.$router.go(-1); //璇锋眰涓嶅埌鏁版嵁杩斿洖涓婁竴椤� + // }, 3000); + } + + return; + } + + let itemList = result.Data.ItemList; + //console.log(itemList, 632); + + var selDesignPtQUnit = state.SelDesignPtQUnit; + var selDesignPtHUnit = state.SelDesignPtHUnit; + var selDesignPtPUnit = state.SelDesignPtPUnit; + + var resultImg = {}; + var tableData = []; + for (let i = 0; i < itemList.length; i++) { + let tableItem = { + CatalogID: itemList[i].CatalogID, //绫诲瀷id + ChartType: itemList[i].ChartType, + SeriesID: itemList[i].SeriesID, //绯诲垪id + PumpID: itemList[i].PumpID, //娉礽d + ThumbnailImage: "", //瀹炵墿鍥捐矾寰� + SereisName: itemList[i].SereisName, //绯诲垪 + PumpName: itemList[i].PumpName, //娉靛瀷鍙� + + CertifiedPointQ: itemList[i].CertifiedPointQ, + CertifiedPointHrange: itemList[i].CertifiedPointHrange, + CertifiedPointSpeed: itemList[i].CertifiedPointSpeed, + PercentPoint150Q: itemList[i].PercentPoint150Q, + PercentPoint150H: itemList[i].PercentPoint150H, + PercentPoint150H_per: itemList[i].PercentPoint150H_per, + PercentPoint150E: itemList[i].PercentPoint150E, + PercentPoint150P: itemList[i].PercentPoint150P, + MaxPower: itemList[i].MaxPower, + + WorkSpeed: itemList[i].WorkSpeed, //杞�� + WorkD2: itemList[i].WorkD2, //鍙惰疆鐩村緞 + Note: itemList[i].Note, //澶囨敞 + + QPerQBep: itemList[i].QPerQBep, //閫夊瀷鐐瑰拰楂樻晥鐐圭殑鐧惧垎姣� + Ratedn: itemList[i].Ratedn, //鍘熷棰濆畾杞��(榛樿涓嶆樉绀�) + OrginD2: itemList[i].OrginD2, //鍘熷鍙惰疆鐩村緞(榛樿涓嶆樉绀�) + + CutRatio: itemList[i].CutRatio, //鍒囧壊鐜�(榛樿涓嶆樉绀�) + StageNumber: itemList[i].StageNumber, //娉电骇鏁�(榛樿涓嶆樉绀�) + ShutoffHead: itemList[i].ShutoffHead, //鍏虫鐐规壃绋�(榛樿涓嶆樉绀�) + SalePrice: itemList[i].SalePrice, //閿�鍞环(鎶樻墸鍚�) + OriginSalePrice: itemList[i].OriginSalePrice, //鎸囧浠�(鍘熷) + ChartObjects: itemList[i].ChartObjects, //宸ヤ綔鏇茬嚎 + }; + let ThumbnailImage = noneImg //榛樿鍥剧墖璺緞 + if (itemList[i].ThumbnailImage && itemList[i].ThumbnailImage != "") { + ThumbnailImage = window.globalConfig.WebApiUrl.FileUrl + 'Data/' + itemList[i].ThumbnailImage + } + tableItem.ThumbnailImage = ThumbnailImage + if (itemList[i].WorkPtNPSH) + tableItem.WorkPtNPSH = itemList[i].WorkPtNPSH.toFixed(1); + + if (itemList[i].WorkPtQ) + tableItem.WorkPtQ = UnitHelper.getDispValueQ( + UnitHelper.ConvertQ_fromM3H( + selDesignPtQUnit, + itemList[i].WorkPtQ + ) + ); + if (itemList[i].PercentPoint150Q) + tableItem.PercentPoint150Q = UnitHelper.getDispValueQ( + UnitHelper.ConvertQ_fromM3H( + selDesignPtQUnit, + itemList[i].PercentPoint150Q + ) + ); + if (itemList[i].WorkPtH) + tableItem.WorkPtH = UnitHelper.getDispValueH( + UnitHelper.ConvertH_fromM(selDesignPtHUnit, itemList[i].WorkPtH) + ); + if (itemList[i].PercentPoint150H) + tableItem.PercentPoint150H = UnitHelper.getDispValueH( + UnitHelper.ConvertH_fromM( + selDesignPtHUnit, + itemList[i].PercentPoint150H + ) + ); + if (itemList[i].ShutoffHead) + tableItem.ShutoffHead = UnitHelper.getDispValueH( + UnitHelper.ConvertH_fromM( + selDesignPtHUnit, + itemList[i].ShutoffHead + ) + ); + if (itemList[i].WorkPtE) tableItem.WorkPtE = itemList[i].WorkPtE; + if (itemList[i].WorkPtP) + tableItem.WorkPtP = UnitHelper.getDispValueP( + UnitHelper.ConvertP_fromKW( + selDesignPtPUnit, + itemList[i].WorkPtP + ) + ); + if (itemList[i].PercentPoint150P) + tableItem.PercentPoint150P = UnitHelper.getDispValueP( + UnitHelper.ConvertP_fromKW( + selDesignPtPUnit, + itemList[i].PercentPoint150P + ) + ); + + if (itemList[i].MaxPower) + tableItem.MaxPower = UnitHelper.getDispValueP( + UnitHelper.ConvertP_fromKW( + selDesignPtPUnit, + itemList[i].MaxPower + ) + ); + + tableData.push(tableItem); + + let index = itemList[i].PumpID.toString(); + resultImg[index] = itemList[i].ChartObjects; + } + state.tableData = tableData; + setTimeout(() => { + buildAllChartImg(resultImg); + }, 500); + // console.log(that.tableData, 525); + //console.log(that.resultImg, 547); + }) + .catch((err) => { + state.isShowLoadingFrm = false; + //console.log("璇锋眰澶辫触:" + err); + }); +} +//杩斿洖涓婚〉 +const toHomePage = () => { + router.push({ + path: buildCurrentLanguageUrl(`/Index`), + }); +} +//琛ㄥご鏄剧ず鎴栬�呴殣钘� +const getColumnVisbileStatus = (label) => { + let index = state.m_dispColumnNameList.indexOf(label); + return index == -1 ? false : true; +} +//鐩戝惉褰撳墠鐐瑰嚮鐨勬车鍚嶇О鐨勫睘鎬� +const clickPumpNameCell = (index, row) => { + state.detailPageQueryModel.SID = row.SeriesID; + state.detailPageQueryModel.PID = row.PumpID; + let routerPath = buildCurrentLanguageUrl(`/byParas/Index`); + let query = state.detailPageQueryModel; + let routeData = router.resolve({ path: routerPath, query: query }); + window.open(routeData.href, "_blank"); + // window.open(routeData.href, "_blank"); +} +//鐩戝惉鐐瑰嚮鐨勫綋鍓嶈〃鏍艰鐨勮鎯� +const clickDetailCell = (index, row) => { + state.detailPageQueryModel.SID = row.SeriesID; + state.detailPageQueryModel.PID = row.PumpID; + let routerPath = buildCurrentLanguageUrl(`/byParas/Index`); + let query = state.detailPageQueryModel; + let routeData = router.resolve({ path: routerPath, query: query }); + window.open(routeData.href, "_blank"); + // window.open(routeData.href, "_blank"); +} +//涓婁竴姝� +const prevPage = () => { + router.go(-1); +} +// +const buildAllChartImg = (resultImg) => { + document + .querySelectorAll("div[data-svg=true]") + .forEach(function (element) { + let $this = element; + let pumpId = $this.getAttribute("data-pump_id"); + let chartType = $this.getAttribute("data-pump_ChartType"); + if (pumpId in resultImg) { + drawChart(resultImg[pumpId], pumpId, 180, 300, chartType); + } + }); +} +// +const drawChart = (data, container, width, height, chartType) => { + + let c = new thumbnailChart.ThumbnailChart(); + var chartStyle = window.pageConfig.ChartStyle; + c.setChartStyle(chartStyle); + + if (chartType == 4 || chartType == "4") { + c.setContainerDivInfo(container, 220, 120); + c.setDesignPoint(state.SelDesignPtQ_StdUnit, state.SelDesignPtH_StdUnit); + let myChart = c.createChartZlp(data); + } else { + c.setContainerDivInfo(container, 220, 120); + c.setDesignPoint(state.SelDesignPtQ_StdUnit, state.SelDesignPtH_StdUnit); + let myChart = c.createChartLxp(data); + } +} +// 鏍规嵁prop鍒ゆ柇鏄鏈塼oolTip +const hasToolTipByProp = (prop, TipColumns) => { + if (!TipColumns || 0 == TipColumns.length) { + return false + } + for (let i = 0; i < TipColumns.length; i++) { + let item = TipColumns[i]; + if (prop == item.Col) { + return true; + } + } + return false; +} +const getNoteByProp = (prop, TipColumns) => { + for (let i = 0; i < TipColumns.length; i++) { + let item = TipColumns[i]; + if (item.Col == prop) { + return item.Note + } + } + return "" +} +defineExpose({ initialPage }) +</script> + +<style lang="scss"> +//scoped //缁勪欢鏃朵娇鐢� +.selpumplist { + height: 100%; + width: 100%; + + .el-table__header { + background-color: rgb(176, 216, 221); + } + + .el-button { + padding: 0.1rem 0.15rem; + + &.active { + background-color: #6396c2; + color: #fff; + } + } + + .tableBox { + width: 100%; + } + + .el-table .cell { + display: flex; + justify-content: center; + align-items: center; + } + + .tabHead { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + } + + .tabHead>div { + font-size: 0.14rem; + } + + .el-table th>.cell { + display: flex; + justify-content: center; + align-items: center; + } +} + +.pumplist_dropdown_menu { + .el-checkbox { + display: block; + } + + .table-default-style { + position: relative; + width: 100%; + display: flex; + justify-content: center; + align-items: center; + + i { + position: absolute; + left: 0.1rem; + font-size: .18rem; + } + } + + .bg-red { + color: red; + font-weight: bold; + } +} +</style> \ No newline at end of file diff --git a/src/views/SPump/Select/PumpList/General.vue b/src/views/SPump/Select/PumpList/General.vue new file mode 100644 index 0000000..993ccfa --- /dev/null +++ b/src/views/SPump/Select/PumpList/General.vue @@ -0,0 +1,1741 @@ +<template> + <div style="height: 100%"> + <page-head> + <template #customer> + <div class="customer-style"> + <div style=" + font-size: 0.28rem; + color: #003da6; + font-family: 'PingFang SC'; + "> + {{ state.m_headerTitle }} + </div> + </div> + </template> + </page-head> + <div style="height: calc(100% - 0.86rem)" ref="selpumplist" class="selpumplist" v-loading="state.isShowLoadingFrm" + element-loading-background="rgba(255,255,255, 0.8)"> + <div class="nav_header_box"> + <div class="nav_header"> + <div style="cursor: pointer" class="nav_header_a" @click="toHomePage"> + {{ t("selectPage.index.TR") }} + </div> + <div style="cursor: pointer" class="nav_header_a" @click="prevPage"> + {{ t("selectPage.selparas.TR") }} + </div> + </div> + <div class="nav_header_right"> + <!-- 鎺掑簭鏂瑰紡 --> + <el-dropdown v-if="true" :hide-on-click="true" @command="handleSortMethod" trigger="click" :max-height="300" + style="margin-right: 10px"> + <el-button class="btn_color"> + {{ t("selectPage.sortMethod.TR") }} + <el-icon class="el-icon--right"> + <arrow-down /> + </el-icon> + </el-button> + <template #dropdown> + <el-dropdown-menu class="pumplist_dropdown_menu"> + <el-dropdown-item command="efficiencySort"> + <div class="check-icon-style"> + <el-icon v-if="state.currentSortMethodIndex == 1" color="blue"> + <Check /> + </el-icon> + </div> + {{ t("selectPage.efficiencySort.TR") }} + </el-dropdown-item> + <el-dropdown-item command="compreSort"> + <div class="check-icon-style"> + <el-icon v-if="state.currentSortMethodIndex == 2" color="blue"> + <Check /> + </el-icon> + </div> + {{ t("selectPage.qPerQBepSort.TR") }} + </el-dropdown-item> + </el-dropdown-menu> + </template> + </el-dropdown> + <!-- 鍒楅�夋嫨 --> + <el-popover placement="bottom" width="90" trigger="click" max-height="300" popper-class="col-select-popStyle"> + <el-scrollbar height="500px"> + <el-checkbox-group v-model="state.m_dispColumnNameList"> + <el-checkbox v-for="item in state.m_columnOptions" v-model="item.label" :key="item.value" + :value="item.label" :disabled="item.disable">{{ item.label }}</el-checkbox> + </el-checkbox-group> + </el-scrollbar> + <template #reference> + <el-button class="btn_color"> + {{ t("selectPage.selRow.TR") }} + <el-icon class="el-icon--right"><arrow-down /></el-icon> + </el-button> + </template> + </el-popover> + <!-- 姣旇緝 --> + <el-button class="btn_color" @click="toCompare4Select"> + {{ t("header.compare.TR") }} + </el-button> + <!-- 瀵煎嚭 --> + <el-button class="btn_color" @click="exportExcel"> + {{ t("selectPage.export.TR") }} + </el-button> + <span class="btn_span custom-btn-span" @click="prevPage"> + {{ t("selectPage.previous.TR") }} + </span> + </div> + </div> + <div class="tableBox"> + <!-- 鐢ㄤ簬灞曠ず鐨勮〃鏍� --> + <el-table ref="tableList" :data="state.disp_tableData" border stripe :max-height="state.tableMaxHeight" + style="width: 100%" :header-cell-style="{ + background: '#b0d8dd', + color: '#606266', + height: '0.63rem', + }" @selection-change="handleTableSelectionChange" :empty-text="state.tableEmptyContent"> + <el-table-column type="selection" width="55"> </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.physical.TR'))" fixed align="center" + header-align="center" width="200" :label="t('selectPage.physical.TR')"> + <template #default="scope"> + <el-tooltip class="item" :enterable="true" effect="dark" placement="right-start"> + <template #content> + {{ t("ebookPage.noProfile.TR") }} + </template> + <div> + <img :src="scope.row.ThumbnailImage" :onerror="handleOnError" class="thumbnail-img-style" + :alt="`${scope.row.groupName}`" /> + </div> + </el-tooltip> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.series.TR'))" align="center" header-align="center" + width="120" fixed prop="SereisName" :label="t('selectPage.series.TR')"> + </el-table-column> + <el-table-column sortable v-if="getColumnVisbileStatus(t('selectPage.model.TR'))" align="center" + header-align="center" width="160" fixed prop="PumpName" :label="t('selectPage.model.TR')"> + <template #default="scope"> + <div @click="clickPumpNameCell(scope.$index, scope.row)"> + <span id="series_selected_name" style="cursor: pointer">{{ + scope.row.PumpName + }}</span> + </div> + </template> + </el-table-column> + <el-table-column align="center" header-align="center" width="300" fixed prop="WorkCurveGroup" + :label="t('selectPage.diagram.TR')"> + <template #default="scope"> + <!-- style="width: 1.5rem; height: 0.9rem" --> + <div class="CurveChart" :data-svg="true" :id="scope.row.PumpID" :data-pump_id="scope.row.PumpID" + :data-pump_charttype="scope.row.ChartType"></div> + </template> + </el-table-column> + <!-- 娴侀噺 --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.flow.TR'))" align="right" header-align="center" + prop="WorkPtQ" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.flow.TR") }}</div> + <div>{{ state.SelDesignPtQUnitName }}</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('WorkPtQ', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("WorkPtQ", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('WorkPtQ', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.WorkPtQ }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.WorkPtQ }}</span> + </template> + </el-table-column> + <!-- 鎵▼ --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.head.TR'))" align="right" header-align="center" + prop="WorkPtH" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.head.TR") }}</div> + <div>{{ state.SelDesignPtHUnitName }}</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('WorkPtH', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("WorkPtH", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('WorkPtH', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.WorkPtH }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.WorkPtH }}</span> + </template> + </el-table-column> + <!-- 鏁堢巼 --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.efficiency.TR'))" sortable align="right" + header-align="center" width="120" prop="WorkPtE" class-name="tool-tip-cell-style" + style="display: flex; justify-content: center; align-items: center"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.efficiency.TR") }}</div> + <div>(%)</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('WorkPtE', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("WorkPtE", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('WorkPtE', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.WorkPtE }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.WorkPtE }}</span> + </template> + </el-table-column> + <!-- --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.PerRated.TR'))" align="right" + header-align="center" width="120" prop="PerRated" + style="display: flex; justify-content: center; align-items: center"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.PerRated.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.PerRatedQ.TR'))" align="right" + header-align="center" width="120" prop="PerRatedQ" + style="display: flex; justify-content: center; align-items: center"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.PerRatedQ.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <!-- 杞村姛鐜� --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.shaftPower.TR'))" align="right" + header-align="center" prop="WorkPtP" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.shaftPower.TR") }}</div> + <div>({{ state.SelDesignPtPUnitName }})</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('WorkPtP', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("WorkPtP", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('WorkPtP', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.WorkPtP }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.WorkPtP }}</span> + </template> + </el-table-column> + <!-- 鐢垫満鍔熺巼 --> + <el-table-column v-if="getColumnVisbileStatus(t('detailPage.motorPower.TR'))" align="right" + header-align="center" prop="MotorPower" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>{{ t("detailPage.motorPower.TR") }}</div> + <div>(kW)</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('MotorPower', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("MotorPower", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('MotorPower', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.MotorPower }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.MotorPower }}</span> + </template> + </el-table-column> + <!-- 姹借殌 --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.npsh.TR'))" align="right" header-align="center" + prop="WorkPtNPSH" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.npsh.TR") }}</div> + <div>(m)</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('WorkPtNPSH', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("WorkPtNPSH", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('WorkPtNPSH', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.WorkPtNPSH }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.WorkPtNPSH }}</span> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.speed.TR'))" align="right" header-align="center" + prop="WorkSpeed"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.speed.TR") }}</div> + <div>rpm</div> + </div> + </template> + </el-table-column> + <!-- 鍙惰疆鐩村緞 --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.impellerDiameter.TR'))" align="right" + header-align="center" prop="WorkD2" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.impellerDiameter.TR") }}</div> + <div>(mm)</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('WorkD2', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("WorkD2", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('WorkD2', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.WorkD2 }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.WorkD2 }}</span> + </template> + </el-table-column> + <!-- 鏈�澶у厑璁告祦閲� --> + <el-table-column v-if="getColumnVisbileStatus('鏈�澶у厑璁告祦閲�')" align="right" header-align="center" + prop="AllowableRegionMax" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>鏈�澶у厑璁告祦閲�</div> + </div> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.note.TR'))" align="center" header-align="center" + width="80" prop="Note"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.note.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.ratedSpeed.TR'))" align="center" + header-align="center" width="80" prop="Ratedn"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.ratedSpeed.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.vbr.TR'))" align="center" header-align="center" + width="80" prop="SpeedRatio"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.vbr.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <!-- 鍒囧壊鐜� --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.cuttingRate.TR'))" align="right" + header-align="center" prop="CutRatio" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.cuttingRate.TR") }}</div> + <div>(%)</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('CutRatio', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("CutRatio", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('CutRatio', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.CutRatio }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.CutRatio }}</span> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.guidePrice.TR'))" align="center" + header-align="center" width="80" prop="OriginSalePrice"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.guidePrice.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.salesPrice.TR'))" align="center" + header-align="center" width="80" prop="SalePrice"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.salesPrice.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.pumpStages.TR'))" align="center" + header-align="center" width="80" prop="StageNumber"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.pumpStages.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <el-table-column v-if=" + getColumnVisbileStatus( + t('selectPage.originalImpellerDiameter.TR') + ) + " align="center" header-align="center" width="120" prop="OrginD2"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.originalImpellerDiameter.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <el-table-column :label="t('selectPage.details.TR')" align="right" header-align="center" width="100" + fixed="right"> + <template #default="scope"> + <el-button size="default" class="btn_color" @click="clickDetailCell(scope.$index, scope.row)">{{ + t("selectPage.details.TR") }}</el-button> + </template> + </el-table-column> + </el-table> + + <!-- 鐢ㄤ簬瀵煎嚭鐨勮〃鏍� --> + <el-table v-show="false" id="export-sel-list" ref="exportSelListRef" :data="state.exportTableData" + :empty-text="state.tableEmptyContent"> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.series.TR'))" align="center" header-align="center" + width="120" prop="SereisName" :label="t('selectPage.series.TR')"> + </el-table-column> + <el-table-column sortable v-if="getColumnVisbileStatus(t('selectPage.model.TR'))" align="center" + header-align="center" width="160" prop="PumpName" :label="t('selectPage.model.TR')"> + <template #default="scope"> + <div @click="clickPumpNameCell(scope.$index, scope.row)"> + <span id="series_selected_name" style="cursor: pointer">{{ + scope.row.PumpName + }}</span> + </div> + </template> + </el-table-column> + <!-- 娴侀噺 --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.flow.TR'))" align="right" header-align="center" + prop="WorkPtQ" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.flow.TR") }}</div> + <div>{{ state.SelDesignPtQUnitName }}</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('WorkPtQ', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("WorkPtQ", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('WorkPtQ', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.WorkPtQ }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.WorkPtQ }}</span> + </template> + </el-table-column> + <!-- 鎵▼ --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.head.TR'))" align="right" header-align="center" + prop="WorkPtH" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.head.TR") }}</div> + <div>{{ state.SelDesignPtHUnitName }}</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('WorkPtH', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("WorkPtH", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('WorkPtH', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.WorkPtH }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.WorkPtH }}</span> + </template> + </el-table-column> + <!-- 鏁堢巼 --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.efficiency.TR'))" sortable align="right" + header-align="center" width="120" prop="WorkPtE" class-name="tool-tip-cell-style" + style="display: flex; justify-content: center; align-items: center"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.efficiency.TR") }}</div> + <div>(%)</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('WorkPtE', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("WorkPtE", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('WorkPtE', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.WorkPtE }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.WorkPtE }}</span> + </template> + </el-table-column> + <!-- --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.PerRated.TR'))" align="right" + header-align="center" width="120" prop="PerRated" + style="display: flex; justify-content: center; align-items: center"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.PerRated.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.PerRatedQ.TR'))" align="right" + header-align="center" width="120" prop="PerRatedQ" + style="display: flex; justify-content: center; align-items: center"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.PerRatedQ.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <!-- 杞村姛鐜� --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.shaftPower.TR'))" align="right" + header-align="center" prop="WorkPtP" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.shaftPower.TR") }}</div> + <div>({{ state.SelDesignPtPUnitName }})</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('WorkPtP', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("WorkPtP", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('WorkPtP', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.WorkPtP }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.WorkPtP }}</span> + </template> + </el-table-column> + <!-- 鐢垫満鍔熺巼 --> + <el-table-column v-if="getColumnVisbileStatus(t('detailPage.motorPower.TR'))" align="right" + header-align="center" prop="MotorPower" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>{{ t("detailPage.motorPower.TR") }}</div> + <div>(kW)</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('MotorPower', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("MotorPower", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('MotorPower', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.MotorPower }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.MotorPower }}</span> + </template> + </el-table-column> + <!-- 姹借殌 --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.npsh.TR'))" align="right" header-align="center" + prop="WorkPtNPSH" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.npsh.TR") }}</div> + <div>(m)</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('WorkPtNPSH', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("WorkPtNPSH", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('WorkPtNPSH', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.WorkPtNPSH }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.WorkPtNPSH }}</span> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.speed.TR'))" align="right" header-align="center" + prop="WorkSpeed"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.speed.TR") }}</div> + <div>rpm</div> + </div> + </template> + </el-table-column> + <!-- 鍙惰疆鐩村緞 --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.impellerDiameter.TR'))" align="right" + header-align="center" prop="WorkD2" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.impellerDiameter.TR") }}</div> + <div>({{ state.SelDesignPtD2UnitName }})</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('WorkD2', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("WorkD2", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('WorkD2', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.WorkD2 }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.WorkD2 }}</span> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.note.TR'))" align="center" header-align="center" + width="80" prop="Note"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.note.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.ratedSpeed.TR'))" align="center" + header-align="center" width="80" prop="Ratedn"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.ratedSpeed.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.vbr.TR'))" align="center" header-align="center" + width="80" prop="SpeedRatio"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.vbr.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <!-- 鍒囧壊鐜� --> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.cuttingRate.TR'))" align="right" + header-align="center" prop="CutRatio" class-name="tool-tip-cell-style"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.cuttingRate.TR") }}</div> + <div>(%)</div> + </div> + </template> + <template #default="scope"> + <el-tooltip v-if="hasToolTipByProp('CutRatio', scope.row.TipColumns)" class="item" :enterable="true" + effect="dark" placement="top"> + <template #content> + {{ getNoteByProp("CutRatio", scope.row.TipColumns) }} + </template> + <div class="table-default-style" :class="hasToolTipByProp('CutRatio', scope.row.TipColumns) + ? 'bg-yellow' + : '' + "> + <el-icon> + <warning-filled /> + </el-icon> + <span>{{ scope.row.CutRatio }}</span> + </div> + </el-tooltip> + <span v-else>{{ scope.row.CutRatio }}</span> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.guidePrice.TR'))" align="center" + header-align="center" width="80" prop="OriginSalePrice"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.guidePrice.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.salesPrice.TR'))" align="center" + header-align="center" width="80" prop="SalePrice"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.salesPrice.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <el-table-column v-if="getColumnVisbileStatus(t('selectPage.pumpStages.TR'))" align="center" + header-align="center" width="80" prop="StageNumber"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.pumpStages.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + <el-table-column v-if=" + getColumnVisbileStatus( + t('selectPage.originalImpellerDiameter.TR') + ) + " align="center" header-align="center" width="120" prop="OrginD2"> + <template #header> + <div class="tabHead"> + <div>{{ t("selectPage.originalImpellerDiameter.TR") }}</div> + <div></div> + </div> + </template> + </el-table-column> + </el-table> + </div> + </div> + <page-footer></page-footer> + </div> +</template> + +<script setup name="pumpListGeneral"> +import errorImg from "../../assets/img_fail.png"; +import { onMounted, reactive, ref, watch, nextTick } from "vue"; +import { + ElMessage, + ElTable, + ElTableColumn, + ElDropdown, + ElDropdownItem, + ElDropdownMenu, + ElButton, + ElTooltip, + ElPopover, + ElCheckboxGroup, + ElCheckbox, + ElScrollbar, +} from "element-plus"; +import thumbnailChart from "/@/components/chart/ThumbnailChart.js"; +import UnitHelper from "/@/utils/unit"; +import FileSaver from "file-saver"; +import * as XLSX from "xlsx"; +import ConstParas from "/@/utils/constParas"; +import PageHead from "/@/views/head.vue"; +import PageFooter from "/@/views/footer.vue"; +import { useLanguageMixin } from "/@/mixin/languageHook.js"; +import axiosHelper from "/@/utils/axiosHelper.js"; +import UserSettingsHelper from "/@/utils/userSetting"; +import { useI18n } from "vue-i18n"; +import { useSelect } from "/@/store/select.js"; +import { useRoute, useRouter } from "vue-router"; +import noneImg from "/@/views/assets/none_img.png"; +let { getCurrentLanguageType, buildCurrentLanguageUrl, getLanguageParaName } = useLanguageMixin(); +const m_currentLanguage = getCurrentLanguageType(); +const { t } = useI18n(); + +const emits = defineEmits(["prevPageClick"]); +const selectStore = useSelect(); + +const state = reactive({ + detailPageQueryModel: {}, //鐢ㄤ簬浼犻�佺粰涓嬩竴涓〉闈㈢殑绫� + + SelDesignPtQ_StdUnit: 0, //鏍囧噯鍗曚綅鐨勮璁$偣(鐢ㄤ簬缁樺埗灏忓浘) + SelDesignPtH_StdUnit: 0, //鏍囧噯鍗曚綅鐨勮璁$偣(鐢ㄤ簬缁樺埗灏忓浘) + + SelDesignPtQUnit: 0, + SelDesignPtQUnitName: "m鲁/h", + + SelDesignPtHUnit: 1, + SelDesignPtHUnitName: "m", + + SelDesignPtPUnit: 1, + SelDesignPtPUnitName: "kW", + + SelDesignPtD2Unit: 0, + SelDesignPtD2UnitName: "mm", + + isShowLoadingFrm: true, //绛夊緟妗� + + tableData: [], + disp_tableData: [], + exportTableData: [], + m_columnOptions: [ + { + label: `${t("selectPage.physical.TR")}`, + unit: "", + value: 1, + disable: true, + visible: true, + }, + { + label: `${t("selectPage.series.TR")}`, + unit: "", + value: 2, + disable: true, + visible: true, + }, + { + label: `${t("selectPage.model.TR")}`, + unit: "", + value: 3, + disable: true, + visible: true, + }, + { + label: `${t("selectPage.diagram.TR")}`, + unit: "", + value: 4, + disable: true, + visible: true, + }, + { + label: `${t("selectPage.flow.TR")}`, + unit: "(m鲁/h)", + value: 5, + disable: false, + visible: true, + }, + { + label: `${t("selectPage.head.TR")}`, + unit: "(m)", + value: 6, + disable: false, + visible: true, + }, + { + label: `${t("selectPage.efficiency.TR")}`, + unit: "(kW)", + value: 7, + disable: false, + visible: true, + }, + { + label: `${t("selectPage.shaftPower.TR")}`, + unit: "(kW)", + value: "", + disable: false, + visible: true, + }, + //鐢垫満鍔熺巼 + { + label: `${t("detailPage.motorPower.TR")}`, + unit: "(kW)", + value: "MotorPower", + disable: true, + visible: true, + }, + { + label: `${t("selectPage.npsh.TR")}`, + unit: "(m)", + value: 8, + disable: false, + visible: true, + }, + { + label: `${t("selectPage.efficiency.TR")}`, + unit: "(%)", + value: 9, + disable: false, + visible: true, + }, + { + label: `${t("selectPage.speed.TR")}`, + unit: "(rpm)", + value: 10, + disable: false, + visible: true, + }, + { + label: `${t("selectPage.impellerDiameter.TR")}`, + unit: "mm", + value: 11, + disable: false, + visible: true, + }, + { + label: `鏈�澶у厑璁告祦閲廯, + unit: "", + value: "", + disable: false, + visible: false, + }, + { + label: `${t("selectPage.vbr.TR")}`, + unit: "%", + value: 12, + disable: false, + visible: false, + }, + { + label: `${t("selectPage.cuttingRate.TR")}`, + unit: "(%)", + value: 13, + disable: false, + visible: false, + }, + { + label: `${t("selectPage.salesPrice.TR")}`, + value: 14, + disable: false, + visible: false, + }, + { + label: `${t("selectPage.guidePrice.TR")}`, + value: 24, + disable: false, + visible: false, + }, + { + label: `${t("selectPage.pumpStages.TR")}`, + value: 15, + disable: false, + visible: false, + }, + { + label: `${t("selectPage.originalImpellerDiameter.TR")}`, + unit: "mm", + value: 16, + disable: false, + visible: false, + }, + { + label: `${t("selectPage.deadCenterLift.TR")}`, + unit: "(m)", + value: 17, + disable: false, + visible: false, + }, + { + label: `${t("selectPage.ratedSpeed.TR")}`, + unit: "(rpm)", + value: 19, + disable: false, + visible: false, + }, + { + label: `${t("selectPage.note.TR")}`, + value: 22, + disable: true, + visible: false, + }, + { + label: `${t("selectPage.details.TR")}`, + value: 23, + disable: true, + visible: true, + }, + { + label: `${t("selectPage.PerRated.TR")}`, + value: 25, + disable: false, + visible: false, + }, + { + label: `${t("selectPage.PerRatedQ.TR")}`, + value: 26, + disable: false, + visible: false, + }, + ], + m_dispColumnNameList: [], + tableMaxHeight: 790, + m_currentSelectArr: [], //瀛樻斁褰撳墠閫夋嫨鐨勬暟缁� + m_compare4SelectList: [], //褰撳墠鐨勬瘮杈冨垪琛� + currentSelectIcon: "el-icon-check", + currentSortMethodIndex: 2, //褰撳墠鎺掑簭鏂规硶榛樿鏄患鍚堟帓搴� + + m_currentFromPath: "123", //褰撳墠鏄摢涓〉闈㈣烦杞繃鏉ョ殑 + tableEmptyContent: `Loading...`, + m_headerTitle: "", + m_NPSHa_Ratio: 0.6, //姘旇殌宸�肩郴鏁� +}); +const route = useRoute(); +const router = useRouter(); +const tableList = ref(); +watch( + () => state.m_dispColumnNameList, + (m_dispColumnNameList) => { }, + { deep: true, immediate: true } +); + +const initialPage = () => { + state.tableEmptyContent = `Loading...`; + const pageConfig = window.pageConfig.SelParasPage; + let currentLang = getLanguageParaName(); + if (pageConfig.HeadSetting) { + state.m_headerTitle = pageConfig.HeadSetting.Title[currentLang]; + } + + state.m_NPSHa_Ratio = pageConfig.NPSHaRatio ?? state.m_NPSHa_Ratio; + + let prvePathDataObj = selectStore.ByParas.selectParas; + + if (prvePathDataObj == null) return; + if (prvePathDataObj.DesignInfo == null) return; + + var selDesignPtQ = prvePathDataObj.DesignInfo.DpQ; + var selDesignPtQUnit = prvePathDataObj.DesignInfo.UnitQ; + var selDesignPtH = prvePathDataObj.DesignInfo.DpH; + var selDesignPtHUnit = prvePathDataObj.DesignInfo.UnitH; + + state.SelDesignPtQUnit = selDesignPtQUnit; + state.SelDesignPtQUnitName = UnitHelper.GetUnitNameQ(selDesignPtQUnit); + state.SelDesignPtQ_StdUnit = UnitHelper.ConvertQ_toM3H( + selDesignPtQUnit, + selDesignPtQ + ); + + state.SelDesignPtHUnit = selDesignPtHUnit; + state.SelDesignPtHUnitName = UnitHelper.GetUnitNameH(selDesignPtHUnit); + state.SelDesignPtH_StdUnit = UnitHelper.ConvertH_toM( + selDesignPtHUnit, + selDesignPtH + ); + + let D2_unit_setting = UserSettingsHelper.getD2UnitSetting(m_currentLanguage); + if (D2_unit_setting >= 0) { + state.SelDesignPtD2Unit = D2_unit_setting; + state.SelDesignPtD2UnitName = UnitHelper.GetUnitNameLength(D2_unit_setting); + } + + var p_unit_setting = + UserSettingsHelper.getPowerUnitSetting(m_currentLanguage); + if (p_unit_setting >= 0) { + state.SelDesignPtPUnit = p_unit_setting; + state.SelDesignPtPUnitName = UnitHelper.GetUnitNameP(p_unit_setting); + } + + var dispColumnNameList = []; + state.m_columnOptions.forEach((element) => { + if (element.visible) dispColumnNameList.push(element.label); + + if (element.label.indexOf("娴侀噺") >= 0) + element.unit = UnitHelper.GetUnitNameQ(selDesignPtQUnit); + if (element.label.indexOf("鎵▼") >= 0) + element.unit = UnitHelper.GetUnitNameH(selDesignPtHUnit); + }); + state.m_dispColumnNameList = dispColumnNameList; + // 鍒濆鍖栨暟鎹� + initData(prvePathDataObj); + + nextTick(function () { + let headHeight = 0; + let footerHeight = 0; + if (document.querySelector("#app header")) { + headHeight = document.querySelector("#app header").clientHeight; + } + if (document.querySelector("#app footer")) { + footerHeight = document.querySelector("#app footer").clientHeight; + } + state.tableMaxHeight = + document.body.clientHeight - headHeight - footerHeight - 40; // + }); + window.onresize = () => { + let headHeight = 0; + let footerHeight = 0; + if (document.querySelector("#app header")) { + headHeight = document.querySelector("#app header").clientHeight; + } + if (document.querySelector("#app footer")) { + footerHeight = document.querySelector("#app footer").clientHeight; + } + return (() => { + //绐楀彛鍙樺寲鏄缃〃鏍兼渶澶ч珮搴︼紝浣垮叾閫傚簲绐楀彛鍙樺寲 + state.tableMaxHeight = + document.body.clientHeight - headHeight - footerHeight - 40; + })(); + }; +}; +//鍒濆鍖栨暟鎹� +const initData = (prvePathDataObj) => { + document.title = `${t("selectPage.selResult.TR")}`; + // 鍏堝皢鏁版嵁缃┖ + state.tableData = []; + state.disp_tableData = []; + + if (prvePathDataObj.DesignInfo.IsAllowCut == undefined) { + prvePathDataObj.DesignInfo.IsAllowCut = true; + } + + if (prvePathDataObj.DesignInfo.IsAllowFrequence == undefined) { + prvePathDataObj.DesignInfo.IsAllowFrequence = true; + } + + let postRequestData = { + //浠嬭川 + JieZhi: { + ID: prvePathDataObj.JieZhi.ID, //浠嬭川id + Name: prvePathDataObj.JieZhi.Name, //浠嬭川鍚嶇О + CalcDensity: prvePathDataObj.JieZhi.CalcDensity, //瀵嗗害 + CalcViscosity: prvePathDataObj.JieZhi.CalcViscosity, //绮樺害 + }, + //绛涢�変俊鎭� + FilterInfo: { + DriveType: prvePathDataObj.FilterInfo.DriveType, //璁惧绫诲瀷 0鐢垫満 3鏌存补鏈� + KeyWord: prvePathDataObj.FilterInfo.KeyWord, //鍏抽敭瀛� 鏆傛椂榛樿绌� + FirePumpType: prvePathDataObj.FilterInfo.FirePumpType, // 娑堥槻娉电被鍨� + MotorPoleNum: prvePathDataObj.FilterInfo.MotorPoleNum, //鐢垫満鏁堢巼绛夌骇 鏆傛椂涓虹┖ + MotorPower: prvePathDataObj.FilterInfo.MotorPower, //鐢垫満鍔熺巼 + MotorFrequence: prvePathDataObj.FilterInfo.MotorFrequence, //鐢垫満璧吂 + // "MotorStandard": prvePathDataObj.FilterInfo.MotorStandard?'International' : 'US Standard',//瀹㈡埛涓烘嘲鎴堢殑鏃跺�欎娇鐢� + MotorStandard: prvePathDataObj.FilterInfo.MotorStandard, + DieselSpeed: prvePathDataObj.FilterInfo.DieselSpeed == "" ? 0 : prvePathDataObj.FilterInfo.DieselSpeed, //鏌存补鏈鸿浆閫� 鏆傛椂榛樿 + MinEta: prvePathDataObj.FilterInfo.MinEta + ""//鏁堢巼瑕佹眰 + }, + //璁捐鐐瑰弬鏁� + DesignInfo: { + UnitQ: prvePathDataObj.DesignInfo.UnitQ, //娴侀噺鍗曚綅 + UnitH: prvePathDataObj.DesignInfo.UnitH, //鎵▼鍗曚綅 + DpQ: prvePathDataObj.DesignInfo.DpQ, //杈撳叆鐨勬祦閲忕殑鍊� + DpH: prvePathDataObj.DesignInfo.DpH, //杈撳叆鐨勬壃绋嬬殑鍊� + IsAllowCut: prvePathDataObj.DesignInfo.IsAllowCut, //鏄惁鍏佽鍒囧壊 + IsAllowFrequence: prvePathDataObj.DesignInfo.IsAllowFrequence, //鏄惁鍏佽鍙橀 + PointTolerance: prvePathDataObj.DesignInfo.PointTolerance, // 鐐瑰宸寖鍥� 榛樿绌� + IsVisCorrect: prvePathDataObj.DesignInfo.IsVisCorrect, //鏄惁淇绮樺害 榛樿false + }, + SeriesID: prvePathDataObj.FilterInfo.SeriesID, //娉电郴鍒桰D + CatalogID: prvePathDataObj.FilterInfo.CatalogID, //娉电被鍨媔d + SoftType: window.globalConfig.SoftType, + SystemInfo: "", + }; + + state.detailPageQueryModel = { + //鐢ㄤ簬鐐瑰嚮琛ㄦ牸璇︽儏浼犲嚭鐨勫弬鏁� + SID: "", + PID: "", + from: ConstParas.DetailPageFrom.ByParas, + pur: ConstParas.DetailPagePurpose.ByParas, + DpQ: postRequestData.DesignInfo.DpQ, + DpH: postRequestData.DesignInfo.DpH, + DpQu: postRequestData.DesignInfo.UnitQ, + DpHu: postRequestData.DesignInfo.UnitH, + jzid: postRequestData.JieZhi.ID, + jzmd: postRequestData.JieZhi.CalcDensity, + jznd: postRequestData.JieZhi.CalcViscosity, + jzmz: postRequestData.JieZhi.Name, + jzvc: prvePathDataObj.JieZhi.V_C, + isndc: prvePathDataObj.DesignInfo.IsVisCorrect, + fpt: prvePathDataObj.FilterInfo.FirePumpType, + TGrade: postRequestData.DesignInfo.PointTolerance?.ToleranceGrade, + TRatioMinQ: postRequestData.DesignInfo.PointTolerance?.RatioMinQ, + TRatioMaxQ: postRequestData.DesignInfo.PointTolerance?.RatioMaxQ, + TRatioMinH: postRequestData.DesignInfo.PointTolerance?.RatioMinH, + TRatioMaxH: postRequestData.DesignInfo.PointTolerance?.RatioMaxH, + drive: prvePathDataObj.FilterInfo.DriveType, + speed: prvePathDataObj.FilterInfo.DieselSpeed, + }; + + if (!prvePathDataObj.DesignInfo.IsAllowCut) { + state.detailPageQueryModel.iscut = 0; + } + + if (!prvePathDataObj.DesignInfo.IsAllowFrequence) { + state.detailPageQueryModel.isspeed = 0; + } + + let selDesignPtQUnit = state.SelDesignPtQUnit; + let selDesignPtHUnit = state.SelDesignPtHUnit; + let selDesignPtPUnit = state.SelDesignPtPUnit; + let selDesignPtD2Unit = state.SelDesignPtD2Unit; + //娓呴櫎宸ヤ綔鏇茬嚎 + clearCurve(); + + axiosHelper + .post({ + version: 3, + controller: "SelectByParas", + action: "GetPageList", + data: postRequestData, + apiUrlType: "main", + }) + .then((res) => { + state.isShowLoadingFrm = false; + let result = res.data; + if (result.Code != 0) { + state.tableEmptyContent = `${t("ebookPage.noData.TR")}`; + if (result.Message.length > 0) state.tableEmptyContent = result.Message; + if (result.Code == -3) { + let errorMsg = t("selectPage.findErr1.TR"); + if (result.Message.length > 0) { + errorMsg = result.Message; + } + ElMessage({ + message: `${errorMsg}`, + type: "error", + duration: 4000, + center: true, + }); + let curr_rount1 = window.location.href; + setTimeout(() => { + var curr_rount2 = window.location.href; + if (curr_rount1 == curr_rount2) { + router.go(-1); + } //璇锋眰涓嶅埌鏁版嵁杩斿洖涓婁竴椤� + else { + return; + } + }, 5000); + + return; + } else { + ElMessage({ + message: `${result.Message}`, + type: "error", + duration: 4000, + center: true, + }); + setTimeout(() => { + router.go(-1); //璇锋眰涓嶅埌鏁版嵁杩斿洖涓婁竴椤� + }, 3000); + } + return; + } + // console.log(result, 589) + let itemList = result.Data.ItemList; + var resultImg = {}; + var tableData = []; + for (let i = 0; i < itemList.length; i++) { + var item = itemList[i]; + + let tableItem = { + CatalogID: item.CatalogID, //绫诲瀷id + ChartType: item.ChartType, + SeriesID: item.SeriesID, //绯诲垪id + PumpID: item.PumpID, //娉礽d + ThumbnailImage: "", //瀹炵墿鍥捐矾寰� + SereisName: item.SereisName, //绯诲垪 + PumpName: item.PumpName, //娉靛瀷鍙� + AllowableRegionMax: item.AllowableRegionMax, //鏈�澶у厑璁告祦閲� + WorkSpeed: item.WorkSpeed, //杞�� + WorkD2: "", //鍙惰疆鐩村緞 + PerRated: item.PerRated, //閾墝鍙傛暟缁煎悎鍋忓樊鍊� + PerRatedQ: item.PerRatedQ, //閾墝鍙傛暟娴侀噺鍋忓樊鍊� + MotorPower: item.MotorPower, //鐢垫満鍔熺巼 + + Note: item.Note, //澶囨敞 + PlaceAngle: item.PlaceAngle, //瀹夋斁瑙� + QPerQBep: item.QPerQBep, //閫夊瀷鐐瑰拰楂樻晥鐐圭殑鐧惧垎姣� + Ratedn: item.Ratedn, //鍘熷棰濆畾杞��(榛樿涓嶆樉绀�) + OrginD2: item.OrginD2, //鍘熷鍙惰疆鐩村緞(榛樿涓嶆樉绀�) + Note: item.Note, + CutRatio: item.CutRatio, //鍒囧壊鐜�(榛樿涓嶆樉绀�) + StageNumber: item.StageNumber, //娉电骇鏁�(榛樿涓嶆樉绀�) + ShutoffHead: item.ShutoffHead, //鍏虫鐐规壃绋�(榛樿涓嶆樉绀�) + SalePrice: item.SalePrice, //閿�鍞环(鎶樻墸鍚�) + OriginSalePrice: item.OriginSalePrice, //鎸囧浠�(鍘熷) + ChartObjects: item.ChartObjects, //宸ヤ綔鏇茬嚎 + TipColumns: item.TipColumns ?? [], + }; + let ThumbnailImage = noneImg; //榛樿鍥剧墖璺緞 + if (item.ThumbnailImage && item.ThumbnailImage != "") { + ThumbnailImage = + window.globalConfig.WebApiUrl.FileUrl + + "Data/" + + item.ThumbnailImage; + } + tableItem.ThumbnailImage = ThumbnailImage; + // 鍙惰疆鐩村緞 + if (itemList[i].WorkD2) { + const transD2 = (workD2) => { + return UnitHelper.getDispValueLength( + UnitHelper.ConverLength_FromMM(selDesignPtD2Unit, workD2), true + ) + } + let d2_value = itemList[i].WorkD2.split('/'); + tableItem.WorkD2 = transD2(parseFloat(d2_value[0])); + if (d2_value.length > 1) { + tableItem.WorkD2 = transD2(parseFloat(d2_value[0])) + '/' + transD2(parseFloat(d2_value[1])); + } + } + if (item.WorkPtNPSH) tableItem.WorkPtNPSH = item.WorkPtNPSH.toFixed(1); + + if (item.WorkPtQ) + tableItem.WorkPtQ = UnitHelper.getDispValueQ( + UnitHelper.ConvertQ_fromM3H(selDesignPtQUnit, item.WorkPtQ) + ); + + if (item.WorkPtH) + tableItem.WorkPtH = UnitHelper.getDispValueH( + UnitHelper.ConvertH_fromM(selDesignPtHUnit, item.WorkPtH) + ); + if (item.WorkPtE) tableItem.WorkPtE = item.WorkPtE; + if (item.WorkPtP) + tableItem.WorkPtP = UnitHelper.getDispValueP( + UnitHelper.ConvertP_fromKW(selDesignPtPUnit, item.WorkPtP) + ); + + let selParasMotorPower = prvePathDataObj.FilterInfo.MotorPower; + let selParasNPSHa = prvePathDataObj.FilterInfo.NPSHa; + if (selParasMotorPower !== "" && item.MotorPower > selParasMotorPower) { + tableItem.TipColumns.push({ + Col: "MotorPower", + Note: `${t('selectPage.currentMotorPower.TR')}(${item.MotorPower}kW)>${t('selectPage.requiredMotorPower.TR')}(${selParasMotorPower}kW)`, + }); + } + if ( + selParasNPSHa !== "" && + selParasNPSHa - state.m_NPSHa_Ratio <= item.WorkPtNPSH + ) { + tableItem.TipColumns.push({ + Col: "WorkPtNPSH", + Note: `NPSHr(${item.WorkPtNPSH})鈮PSHa(${selParasNPSHa}-${state.m_NPSHa_Ratio})`, + }); + } + + tableData.push(tableItem); + + let index = item.PumpID.toString(); + resultImg[index] = item.ChartObjects; + } + state.tableData = tableData; + state.disp_tableData = tableData; + + //svg + // var list_svg = document.getElementsByTagName("svg"); + // if (list_svg != null) { + // for (i = 0; i < list_svg.length; i++) { + // if (list_svg[i] != null) + // // list_svg[i].parentNode.removeChild(list_svg[i]); + // list_svg[i].remove(); + // } + // } + + // + setTimeout(() => { + buildAllChartImg(resultImg); + }, 500); + + // 鏍规嵁閰嶇疆鍒囨崲鎺掑簭 涓�0鏃舵槸鏁堢巼鎺掑簭 榛樿缁煎悎鎺掑簭锛堟殏鏃朵笉浣跨敤锛� + // if (window.pageConfig.SelectPumpList && window.pageConfig.SelectPumpList.defaultSort == 0) { + // this.currentSortMethodIndex = window.pageConfig.SelectPumpList.defaultSort + // this.$refs.tableList.sort('WorkPtE', 'descending') + // } + // // 鏍规嵁閰嶇疆鍒囨崲鎺掑簭 涓�2鏃舵槸棰濆畾鐐规帓搴� 涔熷彨缁煎悎鎺掑簭 + // if (window.pageConfig.SelectPumpList && window.pageConfig.SelectPumpList.defaultSort == 2) { + // this.currentSortMethodIndex = window.pageConfig.SelectPumpList.defaultSort + // this.$refs.tableList.sort('QPerQBep', 'descending') + // } + }) + .catch((err) => { + state.isShowLoadingFrm = false; + console.log("璇锋眰澶辫触:" + err); + }); +}; +const clearCurve = () => { + //娓呯悊鍘熸潵鐨勫浘琛� + let list_svg = document.getElementsByClassName("CurveChart"); + if (list_svg != null) { + for (let i = 0; i < list_svg.length; i++) { + if (list_svg[i] != null) + // list_svg[i].parentNode.removeChild(list_svg[i]); + list_svg[i].innerHTML = ""; + } + } +}; +//鐩戝惉閫夋嫨椤圭殑鍙樺寲鐘舵�� +const handleTableSelectionChange = (selection) => { + // console.log(selection,780) + state.m_currentSelectArr = selection; + // console.log(this.m_currentSelectArr,778) +}; +//璺宠浆鍒版瘮杈冮〉闈� +const toCompare4Select = () => { + // 鏈�灏戜袱涓繘琛屾瘮杈� + if (state.m_currentSelectArr.length < 2) { + ElMessage({ + message: `${t("header.compareTip.TR")}`, + type: "warning", + }); + return; + } + + let compare4SelectList = []; + compare4SelectList = compare4SelectList.concat(state.m_currentSelectArr); + if (compare4SelectList.length > 10) { + return; + } + let json = JSON.stringify(compare4SelectList); + //瀛樺偍 + localStorage.setItem("compare4SelectList", json); + state.m_compare4SelectList = compare4SelectList; + + let routerPath = buildCurrentLanguageUrl(`/Compare4Select/Index`); + router.push({ path: routerPath }); + + // window.open(routeData.href, "_blank"); +}; +//瀵煎嚭琛ㄦ牸 +const exportExcel = () => { + state.exportTableData = state.tableData; + + const fileName = `${document.title}.xlsx`; + nextTick(() => { + const wb = XLSX.utils.table_to_book( + document.getElementById("export-sel-list") + ); + const wbout = XLSX.write(wb, { + bookType: "xlsx", + bookSST: true, + type: "array", + }); + try { + FileSaver.saveAs( + new Blob([wbout], { type: "application/octet-stream" }), + fileName + ); + state.exportTableData = []; + } catch (e) { + if (typeof console !== "undefined") console.log(e, wbout); + return wbout; + } + }); +}; + +//杩斿洖涓婚〉 +const toHomePage = () => { + router.push({ + path: buildCurrentLanguageUrl(`/Index`), + }); +}; +//琛ㄥご鏄剧ず鎴栬�呴殣钘� +const getColumnVisbileStatus = (label) => { + let index = state.m_dispColumnNameList.indexOf(label); + //console.log(index,label,759) + return index == -1 ? false : true; +}; +//鐩戝惉褰撳墠鐐瑰嚮鐨勬车鍚嶇О鐨勫睘鎬� +const clickPumpNameCell = (index, row) => { + openPumpDetailPage(row.SeriesID, row.PumpID); +}; +//鐩戝惉鐐瑰嚮鐨勫綋鍓嶈〃鏍艰鐨勮鎯� +const clickDetailCell = (index, row) => { + openPumpDetailPage(row.SeriesID, row.PumpID); +}; + +const openPumpDetailPage = (sid, pid) => { + state.detailPageQueryModel.SID = sid; + state.detailPageQueryModel.PID = pid; + + let routerPath = buildCurrentLanguageUrl(`/byParas/Index`); + let query = state.detailPageQueryModel; + let routeData = router.resolve({ path: routerPath, query: query }); + + window.open(routeData.href, "_blank"); +}; +//涓婁竴姝� +const prevPage = () => { + emits("prevPageClick"); +}; +const handleOnError = (event) => { + event.target.src = errorImg; +}; +// +const buildAllChartImg = (resultImg) => { + //console.log(this.resultImg, 2875); + document.querySelectorAll("div[data-svg=true]").forEach(function (element) { + let $this = element; + let pumpId = $this.getAttribute("data-pump_id"); + let chartType = $this.getAttribute("data-pump_ChartType"); + if (pumpId in resultImg) { + drawChart(resultImg[pumpId], pumpId, 180, 300, chartType); + } + }); +}; +// +const drawChart = (data, container, width, height, chartType) => { + let c = new thumbnailChart.ThumbnailChart(); + + // + var chartStyle = window.pageConfig.ChartStyle; + c.setChartStyle(chartStyle); + + if (chartType == 4 || chartType == "4") { + c.setContainerDivInfo(container, 220, 120); + c.setDesignPoint(state.SelDesignPtQ_StdUnit, state.SelDesignPtH_StdUnit); + let myChart = c.createChartZlp(data); + } else { + c.setContainerDivInfo(container, 220, 120); + c.setDesignPoint(state.SelDesignPtQ_StdUnit, state.SelDesignPtH_StdUnit); + let myChart = c.createChartLxp(data); + } +}; +// 鎺掑簭鏂规硶鐩戝惉浜嬩欢 +const handleSortMethod = (commend) => { + let [...data] = state.tableData; //闃叉sort鎺掑簭鏃跺鑷寸殑鍘熸暟缁勬敼鍙� + if (commend == "efficiencySort") { + state.currentSortMethodIndex = 1; + tableList.value.sort("WorkPtE", "descending"); + } + if (commend == "compreSort") { + state.currentSortMethodIndex = 2; + state.disp_tableData = state.tableData; + tableList.value.clearSort(); + } +}; +// 鏍规嵁prop鍒ゆ柇鏄鏈塼oolTip +const hasToolTipByProp = (prop, TipColumns) => { + if (!TipColumns || 0 == TipColumns.length) { + return false; + } + for (let i = 0; i < TipColumns.length; i++) { + let item = TipColumns[i]; + if (prop == item.Col) { + return true; + } + } + return false; +}; +const getNoteByProp = (prop, TipColumns) => { + for (let i = 0; i < TipColumns.length; i++) { + let item = TipColumns[i]; + if (item.Col == prop) { + return item.Note; + } + } + return ""; +}; + +defineExpose({ initialPage }); +</script> + +<style lang="scss"> +//scoped //缁勪欢鏃朵娇鐢� +.selpumplist { + height: 100%; + width: 100%; + + .el-table__header { + background-color: rgb(176, 216, 221); + } + + .el-button { + padding: 0.1rem 0.15rem; + width: unset; + + &.active { + background-color: #6396c2; + color: #fff; + } + } + + .tableBox { + width: 100%; + } + + .el-table .cell { + display: flex; + justify-content: center; + align-items: center; + padding: unset; + height: 100%; + } + + .tabHead { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + } + + .tabHead>div { + font-size: 0.14rem; + } + + .el-table th>.cell { + display: flex; + justify-content: center; + align-items: center; + padding: unset; + height: 100%; + } +} + +.thumbnail-img-style { + width: 100%; + object-fit: cover; +} + +.pumplist_dropdown_menu { + .el-checkbox { + display: block; + } + + .el-tooltip__popper.is-dark { + left: 155px !important; + } +} + +.warin-color { + color: red; + margin-right: 0.05rem; + font-size: 0.16rem; +} + +.col-select-popStyle { + max-height: 500px; + height: 500px; +} + +.check-icon-style { + width: 0.14rem; + display: flex; + justify-content: center; + align-items: center; +} + +.custom-btn-span { + height: 32px; + margin-left: 15px; + line-height: 32px; +} + +#series_selected_name { + text-decoration: underline; + color: var(--selModelNameColor); +} + +.table-default-style { + position: relative; + width: 100%; + display: flex; + justify-content: center; + align-items: center; + height: 100%; + + i { + position: absolute; + top: 0.05rem; + right: 0.05rem; + font-size: 0.18rem; + } +} + +.tool-tip-cell-style { + padding: unset !important; + height: 1.27rem; + // background-color: red; +} + +.bg-red { + color: red; + font-weight: bold; +} + +.bg-yellow { + background-color: rgb(250 236 216 / 50%) !important; + color: red; + font-weight: bold; +} +</style> diff --git a/src/views/SPump/Select/PumpList/Index.vue b/src/views/SPump/Select/PumpList/Index.vue new file mode 100644 index 0000000..2a5ee31 --- /dev/null +++ b/src/views/SPump/Select/PumpList/Index.vue @@ -0,0 +1,47 @@ +<template> + <div style="height: 100%;width: 100%; + min-width: 13.66rem;"> + <pumpListGeneral ref="pumpListGeneralCtrl" v-if="state.isGeneralList" @prevPageClick=prevPageClick> + </pumpListGeneral> + <pumpListFmUL ref="pumpListFmULCtrl" v-if="state.isFmUlList" @prevPageClick=prevPageClick></pumpListFmUL> + </div> +</template> + +<script setup name="pumpListIndex"> +import { onMounted, reactive, ref, nextTick } from "vue"; +import pumpListGeneral from "/@/views/Select/PumpList/General.vue"; +import pumpListFmUL from "/@/views/Select/PumpList/FmUL.vue"; +import { useSelect } from "/@/store/select.js" +import { useRouter } from "vue-router"; +const router = useRouter() +const selectStore = useSelect() +let state = reactive({ + isGeneralList: true, + isFmUlList: false, +}) +const pumpListGeneralCtrl = ref() +const pumpListFmULCtrl = ref() +onMounted(() => { + let prvePathDataObj = selectStore.ByParas.selectParas; + if (prvePathDataObj == null) return; + if (prvePathDataObj.FilterInfo == null) return; + let firePumpType = prvePathDataObj.FilterInfo.FirePumpType; + if (firePumpType == 2 || firePumpType == "2") { + state.isGeneralList = false; + state.isFmUlList = true; + nextTick(() => { + pumpListFmULCtrl.value.initialPage(); + }); + } else { + state.isGeneralList = true; + state.isFmUlList = false; + nextTick(() => { + pumpListGeneralCtrl.value.initialPage(); + }); + } +}) +const prevPageClick = () => { + router.go(-1); +} +</script> + \ No newline at end of file -- Gitblit v1.9.3