From 2d1e485d56fbc736b2156347a0e6d602cd048547 Mon Sep 17 00:00:00 2001
From: tanghaolin <1723298894@qq.com>
Date: 星期三, 23 四月 2025 17:42:58 +0800
Subject: [PATCH] 修改主页新闻列表

---
 src/views/ProductSeries.vue |  280 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 190 insertions(+), 90 deletions(-)

diff --git a/src/views/ProductSeries.vue b/src/views/ProductSeries.vue
index 43ef0a9..79f9b47 100644
--- a/src/views/ProductSeries.vue
+++ b/src/views/ProductSeries.vue
@@ -12,31 +12,34 @@
         <div class="grid grid-cols-1 md:grid-cols-2 gap-8 mb-8">
             <!-- Product Image -->
             <div class="bg-white p-4 rounded-lg shadow flex justify-center flex-col">
-                <img :src="m_curSeriesNode.PhysicalPicturePath" :alt="m_curSeriesNode.ModelType"
-                    class="w-full max-w-md mx-auto" />
+                <img :src="m_curSeriesNode.PhysicalPicturePath"  :alt="m_curSeriesNode.ModelType"
+                    class="w-full max-w-md mx-auto h-[475px]" style="object-fit: contain;" />
                 <h2 class="text-xl font-bold mt-4 text-center">{{ m_curSeriesNode.ModelType }}</h2>
             </div>
 
             <!-- Product Info Tabs -->
             <div class="bg-white rounded-lg shadow">
-                <el-tabs class="w-full h-full" v-model="activeTab" type="border-card">
+                <el-tabs class="w-full h-full" v-model="activeTab" type="border-card" @tab-change="changeTab">
                     <el-tab-pane label="姒傝堪" name="properties">
-                        <div class="p-4">
-                            <p class="text-gray-700">{{ currentDescription.description }}</p>
+                        <div class="p-4" style="white-space: pre-wrap;">
+                            <p class="text-gray-700">{{ currentDescription?.description || "" }}</p>
                         </div>
                     </el-tab-pane>
                     <el-tab-pane label="琛屼笟搴旂敤" name="features">
-                        <div class="p-4">
-                            {{ currentDescription.hangyeDisc }}
+                        <div class="p-4" style="white-space: pre-wrap;">
+                            {{ currentDescription?.hangyeDisc || "" }}
                         </div>
                     </el-tab-pane>
-                    <el-tab-pane label="涓夌淮鍔ㄧ敾" name="applications">
-                        <div class="p-4">
-                            <el-empty description="鏆傛湭涓婁紶" />
-                        </div>
+                    <el-tab-pane label="涓夌淮鍔ㄧ敾" name="bim" class="h-full">
+                        <el-empty description="鏆傛湭涓婁紶" v-if="!hasBimFile" />
+                        <template v-if="hasBimFile">
+                            <div style="box-sizing: border-box; height: calc(100% - 2px);"  v-loading="loading_frm">
+                                <model-3D ref="model3dCtrl"></model-3D>
+                            </div>
+                        </template>
                     </el-tab-pane>
-                    <el-tab-pane label="浜у搧瑙嗛" name="model">
-                        <div class="p-4">
+                    <el-tab-pane label="浜у搧瑙嗛" name="video">
+                        <div>
                             <el-empty description="鏆傛湭涓婁紶" />
                         </div>
                     </el-tab-pane>
@@ -68,39 +71,31 @@
         <!-- Table Section -->
         <div class="bg-white rounded-lg shadow">
             <el-table :data="tableData" style="width: 100%" stripe border height="500px">
-                <el-table-column prop="Model" align="center">
+                <el-table-column prop="model" align="center">
                     <template #header>
                         <div class="text-center">
                             <div>鍨嬪彿</div>
                         </div>
                     </template>
                     <template #default="scope">
-                        <div class="text-[#003a8f]" style="cursor: pointer;" @click="handleSeriesClick(scope.row.Id)">
-                            {{ scope.row.Model }}
+                        <div class="text-[#003a8f]" style="cursor: pointer;" @click="handleSeriesClick(scope.row)">
+                            {{ scope.row.model }}
                         </div>
                     </template>
                 </el-table-column>
-                <el-table-column prop="energyLevel" align="center">
+                <el-table-column prop="eec" align="center">
                     <template #header>
                         <div class="text-center">
                             <div>鑳芥晥绛夌骇</div>
                         </div>
                     </template>
                     <template #default="scope">
-                        <div class="flex items-center eec-level-div">
-                            <!-- <img :src="EecLevelEnum[scope.row.EnergyEfficiencyClass].icon" /> -->
-                            <!-- <span class="eec-numb text-[#003a8f]">{{ scope.row.EnergyEfficiencyClass }}</span> -->
-                            <span class="eec-level-name">{{
-                                EecLevelEnum[scope.row.EnergyEfficiencyClass]?.name || ""
-                            }}</span>
+                        <div class="flex items-center eec-level-div" v-if="scope.row.eec !==-1">
+                            <img :src="EecLevelEnum[scope.row.eec].icon" />
                         </div>
-                    </template>
-                </el-table-column>
-                <el-table-column prop="CompanyName" align="center">
-                    <template #header>
-                        <div class="text-center">
-                            <div>鍘傚晢</div>
-                        </div>
+                        <template v-else>
+                            {{ scope.row.eec ==-1?"":"" }}
+                        </template>
                     </template>
                 </el-table-column>
                 <el-table-column prop="flow" align="center">
@@ -126,7 +121,7 @@
                             <div class="text-xs text-gray-500">(kw)</div>
                         </div>
                     </template>
-                </el-table-column>
+                </el-table-column> -->
                 <el-table-column prop="speed" align="center">
                     <template #header>
                         <div class="text-center">
@@ -135,14 +130,14 @@
                         </div>
                     </template>
                 </el-table-column>
-                <el-table-column prop="efficiency" align="center">
+                <el-table-column prop="eta" align="center">
                     <template #header>
                         <div class="text-center">
                             <div>鏁堢巼</div>
                             <div class="text-xs text-gray-500">(%)</div>
                         </div>
                     </template>
-                </el-table-column> -->
+                </el-table-column>
             </el-table>
 
             <!-- Pagination -->
@@ -164,8 +159,11 @@
 import { onMounted, ref, reactive, computed } from 'vue'
 import { useRoute, useRouter } from 'vue-router';
 import axios from 'axios';
-import EecLevel1 from '@/assets/icons/energy_level_1.svg';
-import EecLevel2 from '@/assets/icons/energy_level_2.svg';
+import EecLevel1 from '@/assets/icons/ecc1.svg';
+import EecLevel2 from '@/assets/icons/ecc2.svg';
+import EecLevel3 from '@/assets/icons/ecc3.svg';
+import Model3D from '@/components/model3DContainer.vue';
+
 const m_RequestDataObj = {
     1: { requestPath: 'static/EecProductData/Pump.json?v=' + new Date().getTime() },
     2: { requestPath: 'static/EecProductData/AirCompressor.json?v=' + new Date().getTime() },
@@ -173,9 +171,19 @@
     4: { requestPath: 'static/EecProductData/WaterChiller.json?v=' + new Date().getTime() },
     7: { requestPath: 'static/EecProductData/ElectricMachinery.json?v=' + new Date().getTime() },
 };
+
+const m_pumpList = {
+    1: { requestPath: 'static/EecProductData/CDL.json?v=' + new Date().getTime() },
+    2: { requestPath: 'static/EecProductData/NB.json?v=' + new Date().getTime() },
+    3: { requestPath: 'static/EecProductData/ND.json?v=' + new Date().getTime() },
+    4: { requestPath: 'static/EecProductData/NIS.json?v=' + new Date().getTime() },
+    5: { requestPath: 'static/EecProductData/NZS.json?v=' + new Date().getTime() },
+    7: { requestPath: 'static/EecProductData/WQA.json?v=' + new Date().getTime() },
+}
 const EecLevelEnum = {
     1: { name: '涓�绾ц兘鏁�', icon: EecLevel1 },
     2: { name: '浜岀骇鑳芥晥', icon: EecLevel2 },
+    3: { name: '涓夌骇绾ц兘鏁�', icon: EecLevel3 },
 };
 
 const DescListByType = {
@@ -184,22 +192,34 @@
         catalog: {
             1: {
                 description: "绠$綉鍙犲帇锛堟棤璐熷帇锛夊彉棰戠粰姘磋澶囷紙浜屾渚涙按璁惧锛夋槸涓�绉嶅湪鍘熸湁绠$綉姘村帇鍔涘熀纭�涓婂啀娆″姞鍘嬬殑渚涙按璁惧銆傚叾涓昏鍔熻兘鏄湪甯傛斂渚涙按绠$綉鍘嬪姏鐨勫熀纭�涓婅繘琛屼簩娆″姞鍘嬶紝浠ユ弧瓒虫洿楂樼殑渚涙按闇�姹傦紝鍚屾椂纭繚甯傛斂绠$綉鐨勫帇鍔涗笉浣庝簬璁惧畾淇濇姢鍘嬪姏锛岄槻姝㈣礋鍘嬩骇鐢燂紝纭繚渚涙按鐨勫畨鍏ㄣ�佸彲闈犲拰绋冲畾鈥屸��",
-                hangyeDisc: "姹℃按姹$墿娼滄按鐢垫车閫傜敤浜庘�屾櫘閫氫綇瀹呮ゼ銆佸晢浣忔ゼ銆佸眳姘戝皬鍖衡�屻�侀珮灞傚缓绛戙�侀珮绾у棣嗛キ搴椼�佺敓娲诲皬鍖恒�侀珮灞傚缓绛戠殑鐑按渚涘簲绯荤粺銆佺患鍚堟ゼ銆佸啓瀛楁ゼ绛夊缓绛�",
+                hangyeDisc: "绠$綉鍙犲帇锛堟棤璐熷帇锛夊彉棰戠粰姘磋澶囷紙浜屾渚涙按璁惧锛夐�傜敤浜庘�屾櫘閫氫綇瀹呮ゼ銆佸晢浣忔ゼ銆佸眳姘戝皬鍖衡�屻�侀珮灞傚缓绛戙�侀珮绾у棣嗛キ搴椼�佺敓娲诲皬鍖恒�侀珮灞傚缓绛戠殑鐑按渚涘簲绯荤粺銆佺患鍚堟ゼ銆佸啓瀛楁ゼ绛夊缓绛�",
                 videoUrl: "",
                 three_D_url: ""
             },
-            2: {
+            4: {
                 description: "姹℃按姹$墿娼滄按鐢垫车鏄竴绉嶄笓涓鸿緭閫佸惈鏈夊潥纭浐浣撳拰绾ょ淮鐨勬恫浣撹�岃璁$殑璁惧锛岀壒鍒�傜敤浜庡鐞嗙壒鍒剰銆佺矘鎴栨粦鐨勬恫浣撱�傚畠鍦ㄦ薄姘村鐞嗗拰鎺掓斁绯荤粺涓彂鎸ョ潃鑷冲叧閲嶈鐨勪綔鐢ㄢ��",
                 hangyeDisc: "姹℃按姹$墿娼滄按鐢垫车閫傜敤浜庡悇绉嶇敓娲绘薄姘淬�佸伐涓氬簾姘淬�佸缓绛戝伐鍦版帓姘淬�佹恫鐘堕ゲ鏂欑瓑銆傚湪甯傛斂宸ョ▼銆佸伐涓氥�佸尰闄€�佸缓绛戙�侀キ搴椼�佹按鍒╁缓璁剧瓑鍚勮鍚勪笟涓兘鏈夊箍娉涘簲鐢ㄢ��",
                 videoUrl: "",
                 three_D_url: ""
             },
-            3: {
-                description: "鈥岀珛寮忓绾х蹇冩车鏄叿鏈夋暣浣撶粨鏋勭揣鍑戙�佷綋绉皬銆侀噸閲忚交銆佸櫔澹颁綆銆佽妭鑳芥晥鏋滄樉钁楋紝妫�淇柟渚跨殑绂诲績娉点�傞噰鐢ㄦ爣鍑嗙珛寮忕數鏈哄拰蹇寮忔満姊板瘑灏侊紝鏇存崲闈炲父鏂逛究銆傛车鐨勮繃娴侀儴鍒嗗潎閲囩敤涓嶉攬閽紙304/316锛夋潗鏂欏埗鎴愶紝鍙�傜敤浜庤交搴﹁厫铓�鎬т粙璐ㄣ��",
-                hangyeDisc: "鈥岄珮灞傚缓绛戜緵姘粹�岋細绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车閫傜敤浜庨珮灞傚缓绛戠殑渚涙按绯荤粺锛岃兘澶熸彁渚涚ǔ瀹氱殑姘村帇锛屾弧瓒抽珮灞傚缓绛戠殑鏃ュ父鐢熸椿鐢ㄦ按闇�姹傗�孿n鈥屽伐涓氱敤姘粹�岋細鍦ㄥ伐涓氱敓浜т腑锛岀珛寮忓绾т笉閿堥挗绂诲績娉靛彲鐢ㄤ簬杈撻�佸悇绉嶅伐涓氱敤姘达紝濡傚喎鍗村惊鐜按銆佽繘鏂欐按銆佹礂娑ゆ按绛夛紝婊¤冻涓嶅悓宸ヨ壓鐨勭敤姘磋姹傗�孿n鈥屽啘鐢扮亴婧夆�岋細璇ユ车鍙敤浜庡啘鐢扮亴婧夛紝鎻愪緵鍏呰冻鐨勬按璧勬簮锛屼繚璇佸啘浣滅墿鐨勭敓闀库�孿n鈥屾按澶勭悊宸ョ▼鈥岋細鍦ㄦ按澶勭悊宸ョ▼涓紝绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车骞挎硾搴旂敤浜庣粰姘村鐞嗐�佸弽娓楅�忋�佽秴婊ょ瓑宸ヨ壓锛屾彁渚涢珮璐ㄩ噺鐨勬按婧愨�孿n鈥屽寲宸ヨ涓氣�岋細鍦ㄥ寲宸ョ敓浜т腑锛岃娉靛叿鏈夎壇濂界殑鑰愯厫铓�鎬ц兘锛屽彲鐢ㄤ簬杈撻�佸惈鏈夎厫铓�鎬с�佹槗鐕冩�с�佹槗鐖嗘�х殑浠嬭川鈥孿n鈥岃兘婧愯涓氣�岋細鍦ㄨ兘婧愯涓氫腑锛屽鏍哥數绔欍�佺數鍘備緵姘寸瓑锛岀珛寮忓绾т笉閿堥挗绂诲績娉典篃鏈夊箍娉涘簲鐢ㄢ�孿n鈥屾秷闃茬郴缁熲�岋細鍦ㄦ秷闃茬郴缁熶腑锛岃娉佃兘澶熷揩閫熷皢姘村鍘嬪埌鎵�闇�鐨勯珮鍘嬬姸鎬侊紝淇濊瘉娑堥槻姘磋兘澶熷柗灏勫埌杈冮珮鐨勬ゼ灞傛垨鑰呰緝杩滅殑璺濈鈥孿n鈥岄鍝併�佸尰鑽�佸寲宸ョ瓑琛屼笟鈥岋細绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车杩樺箍娉涘簲鐢ㄤ簬椋熷搧銆佸尰鑽�佸寲宸ャ�佹按浜у吇娈栫瓑棰嗗煙锛屼綔涓虹粰姘存帓姘寸殑鍔ㄥ姏璁惧鈥孿n杩欎簺搴旂敤棰嗗煙灞曠ず浜嗙珛寮忓绾т笉閿堥挗绂诲績娉电殑澶氭牱鎬у拰閲嶈鎬э紝鍏跺湪涓嶅悓琛屼笟涓彂鎸ョ潃鍏抽敭浣滅敤銆�",
+            6: {
+                description: "鈥岀鍚告车鈥岋紝涔熺О涓哄崟鍚告车锛屾槸鎸囨恫浣撲粠鍙惰疆鐨勪竴绔繘姘寸殑娉点�傚叾鍩烘湰缁撴瀯鐢辨车浣撱�佸彾杞�佽酱銆佸瘑灏佽缃瓑缁勬垚锛岃繘鍙e拰鍑哄彛浣嶄簬娉电殑鍚屼竴渚э紝閫氬父杩涘彛鍦ㄦ车鐨勬湯绔紝鍑哄彛鍦ㄦ车鐨勫墠绔�岃繖绉嶈璁′娇寰楁车鐨勭粨鏋勭浉瀵圭揣鍑戯紝渚夸簬瀹夎鍜岀淮鎶も��",
+                hangyeDisc: "鈥岀鍚告车骞挎硾搴旂敤浜庡缓绛戜緵姘淬�佸鍘嬨�佺┖璋冪郴缁熴�佸伐涓氬惊鐜瓑澶氱鍦哄悎銆�",
                 videoUrl: "",
                 three_D_url: ""
             },
+            5: {
+                description: "鈥岀珛寮忓绾ф车鏄叿鏈夋暣浣撶粨鏋勭揣鍑戙�佷綋绉皬銆侀噸閲忚交銆佸櫔澹颁綆銆佽妭鑳芥晥鏋滄樉钁楋紝妫�淇柟渚跨殑绂诲績娉点�傞噰鐢ㄦ爣鍑嗙珛寮忕數鏈哄拰蹇寮忔満姊板瘑灏侊紝鏇存崲闈炲父鏂逛究銆傛车鐨勮繃娴侀儴鍒嗗潎閲囩敤涓嶉攬閽紙304/316锛夋潗鏂欏埗鎴愶紝鍙�傜敤浜庤交搴﹁厫铓�鎬т粙璐ㄣ��",
+                hangyeDisc: "鈥屸�岀珛寮忓绾ф车閫傜敤浜嶾n楂樺眰寤虹瓚渚涙按鈥岋細绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车閫傜敤浜庨珮灞傚缓绛戠殑渚涙按绯荤粺锛岃兘澶熸彁渚涚ǔ瀹氱殑姘村帇锛屾弧瓒抽珮灞傚缓绛戠殑鏃ュ父鐢熸椿鐢ㄦ按闇�姹傗�孿n鈥屽伐涓氱敤姘粹�岋細鍦ㄥ伐涓氱敓浜т腑锛岀珛寮忓绾т笉閿堥挗绂诲績娉靛彲鐢ㄤ簬杈撻�佸悇绉嶅伐涓氱敤姘达紝濡傚喎鍗村惊鐜按銆佽繘鏂欐按銆佹礂娑ゆ按绛夛紝婊¤冻涓嶅悓宸ヨ壓鐨勭敤姘磋姹傗�孿n鈥屽啘鐢扮亴婧夆�岋細璇ユ车鍙敤浜庡啘鐢扮亴婧夛紝鎻愪緵鍏呰冻鐨勬按璧勬簮锛屼繚璇佸啘浣滅墿鐨勭敓闀库�孿n鈥屾按澶勭悊宸ョ▼鈥岋細鍦ㄦ按澶勭悊宸ョ▼涓紝绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车骞挎硾搴旂敤浜庣粰姘村鐞嗐�佸弽娓楅�忋�佽秴婊ょ瓑宸ヨ壓锛屾彁渚涢珮璐ㄩ噺鐨勬按婧愨�孿n鈥屽寲宸ヨ涓氣�岋細鍦ㄥ寲宸ョ敓浜т腑锛岃娉靛叿鏈夎壇濂界殑鑰愯厫铓�鎬ц兘锛屽彲鐢ㄤ簬杈撻�佸惈鏈夎厫铓�鎬с�佹槗鐕冩�с�佹槗鐖嗘�х殑浠嬭川鈥孿n鈥岃兘婧愯涓氣�岋細鍦ㄨ兘婧愯涓氫腑锛屽鏍哥數绔欍�佺數鍘備緵姘寸瓑锛岀珛寮忓绾т笉閿堥挗绂诲績娉典篃鏈夊箍娉涘簲鐢ㄢ�孿n鈥屾秷闃茬郴缁熲�岋細鍦ㄦ秷闃茬郴缁熶腑锛岃娉佃兘澶熷揩閫熷皢姘村鍘嬪埌鎵�闇�鐨勯珮鍘嬬姸鎬侊紝淇濊瘉娑堥槻姘磋兘澶熷柗灏勫埌杈冮珮鐨勬ゼ灞傛垨鑰呰緝杩滅殑璺濈鈥孿n鈥岄鍝併�佸尰鑽�佸寲宸ョ瓑琛屼笟鈥岋細绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车杩樺箍娉涘簲鐢ㄤ簬椋熷搧銆佸尰鑽�佸寲宸ャ�佹按浜у吇娈栫瓑棰嗗煙锛屼綔涓虹粰姘存帓姘寸殑鍔ㄥ姏璁惧鈥孿n杩欎簺搴旂敤棰嗗煙灞曠ず浜嗙珛寮忓绾т笉閿堥挗绂诲績娉电殑澶氭牱鎬у拰閲嶈鎬э紝鍏跺湪涓嶅悓琛屼笟涓彂鎸ョ潃鍏抽敭浣滅敤銆�",
+                videoUrl: "",
+                three_D_url: ""
+            },
+            8: {
+                description: "鍗曠骇绠¢亾娉碘�屾槸涓�绉嶅崟鍚稿崟绾х蹇冩车锛屽睘浜庣珛寮忕粨鏋勩�傚叾杩涘嚭鍙e湪鍚屼竴鐩寸嚎涓婏紝涓旇繘鍑哄彛鍙e緞鐩稿悓锛屽褰豢浼间竴娈电閬擄紝鍥犳寰楀悕銆傚崟鏈虹閬撴车鍙互瀹夎鍦ㄧ閬撶殑浠讳綍浣嶇疆锛屽叿鏈夌粨鏋勭揣鍑戙�佸崰鍦伴潰绉皬銆佸畨瑁呮柟渚跨瓑鐗圭偣鈥�",
+                hangyeDisc:"鍗曠骇绠¢亾娉甸�傜敤浜庡寲宸ャ�佺煶娌广�佸埗鑽�佸伐涓氳涓�",
+                videoUrl: "",
+                three_D_url: ""
+            }
         }
     },
     2: {
@@ -207,7 +227,7 @@
         catalog: {
             1: {
                 description: "鏄緷闈犲帇缂╄厰鐨勫唴閮ㄥ绉缉灏忔潵鎻愰珮姘斾綋鎴栬捀姘斿帇鍔涚殑鍘嬬缉鏈猴紝鏄帇缂╂満鐨勪竴绫伙紝甯歌鐢ㄥ湪鍒跺喎銆佺┖璋冨強鐑车绛夈�傚帇缂╂満鏄帇缂╂皵浣撲互鎻愰珮姘斾綋鍘嬪姏鐨勬満姊帮紝濡傚帇姘旀満銆佹皵娉电瓑锛屾牴鎹帇缂╂皵浣撶殑鏂瑰紡涓嶅悓锛屽彲鍒嗕负瀹圭Н寮忓帇缂╂満鍜屽姩鍔涘紡鍘嬬缉鏈恒�傗��",
-                hangyeDisc: "姹℃按姹$墿娼滄按鐢垫车閫傜敤浜庘�屾櫘閫氫綇瀹呮ゼ銆佸晢浣忔ゼ銆佸眳姘戝皬鍖衡�屻�侀珮灞傚缓绛戙�侀珮绾у棣嗛キ搴椼�佺敓娲诲皬鍖恒�侀珮灞傚缓绛戠殑鐑按渚涘簲绯荤粺銆佺患鍚堟ゼ銆佸啓瀛楁ゼ绛夊缓绛�",
+                hangyeDisc: "",
                 videoUrl: "",
                 three_D_url: ""
             }
@@ -217,8 +237,8 @@
         name: "閫氶鏈�",
         catalog: {
             1: {
-                description: "鏄竴绉嶅湪鍘熸湁绠$綉姘村帇鍔涘熀纭�涓婂啀娆″姞鍘嬬殑渚涙按璁惧銆傚叾涓昏鍔熻兘鏄湪甯傛斂渚涙按绠$綉鍘嬪姏鐨勫熀纭�涓婅繘琛屼簩娆″姞鍘嬶紝浠ユ弧瓒虫洿楂樼殑渚涙按闇�姹傦紝鍚屾椂纭繚甯傛斂绠$綉鐨勫帇鍔涗笉浣庝簬璁惧畾淇濇姢鍘嬪姏锛岄槻姝㈣礋鍘嬩骇鐢燂紝纭繚渚涙按鐨勫畨鍏ㄣ�佸彲闈犲拰绋冲畾鈥屸��",
-                hangyeDisc: "瀹圭Н寮忕┖鍘嬫満鍦ㄥ涓鍩熸湁骞挎硾搴旂敤鈥岋紝涓昏鍖呮嫭鍖昏嵂銆佹苯杞﹀埗閫犮�佹満姊板姞宸ャ�佺煶娌瑰寲宸ャ�佹柊鑳芥簮绛夐鍩熴�傚湪鍖昏嵂棰嗗煙锛屽绉紡绌哄帇鏈哄彲鐢ㄤ簬鍖昏嵂鍖呰鍜屽尰鑽櫎灏樿繃绋嬶紱鍦ㄦ苯杞﹀埗閫犻鍩燂紝鍏跺簲鐢ㄤ簬杞﹁韩鍠锋秱鍜岃疆鑳庡厖姘旂瓑娴佺▼锛涘湪鐭虫补鍖栧伐棰嗗煙锛岀敤浜庡ぉ鐒舵皵澶勭悊鍜岃緭閫佺瓑鐜妭鈥屾澶栵紝瀹圭Н寮忕┖鍘嬫満杩樺箍娉涘簲鐢ㄤ簬鍒跺喎銆佺┖璋冨強鐑车绛夐鍩熲��",
+                description: "閫氶鏈烘槸渚濋潬杈撳叆鐨勬満姊拌兘锛屾彁楂樻皵浣撳帇鍔涘苟鎺掗�佹皵浣撶殑鏈烘锛屽畠鏄竴绉嶄粠鍔ㄧ殑娴佷綋鏈烘銆傛帓姘斿帇鍔涗綆浜�1.5脳10^4甯曘��",
+                hangyeDisc: "鈥�",
                 videoUrl: "",
                 three_D_url: ""
             }
@@ -228,8 +248,8 @@
         name: "姘村喎鏈虹粍",
         catalog: {
             1: {
-                description: "鏄竴绉嶅湪鍘熸湁绠$綉姘村帇鍔涘熀纭�涓婂啀娆″姞鍘嬬殑渚涙按璁惧銆傚叾涓昏鍔熻兘鏄湪甯傛斂渚涙按绠$綉鍘嬪姏鐨勫熀纭�涓婅繘琛屼簩娆″姞鍘嬶紝浠ユ弧瓒虫洿楂樼殑渚涙按闇�姹傦紝鍚屾椂纭繚甯傛斂绠$綉鐨勫帇鍔涗笉浣庝簬璁惧畾淇濇姢鍘嬪姏锛岄槻姝㈣礋鍘嬩骇鐢燂紝纭繚渚涙按鐨勫畨鍏ㄣ�佸彲闈犲拰绋冲畾鈥屸��",
-                hangyeDisc: "姹℃按姹$墿娼滄按鐢垫车閫傜敤浜庘�屾櫘閫氫綇瀹呮ゼ銆佸晢浣忔ゼ銆佸眳姘戝皬鍖衡�屻�侀珮灞傚缓绛戙�侀珮绾у棣嗛キ搴椼�佺敓娲诲皬鍖恒�侀珮灞傚缓绛戠殑鐑按渚涘簲绯荤粺銆佺患鍚堟ゼ銆佸啓瀛楁ゼ绛夊缓绛�",
+                description: "鍐锋按鏈虹粍锛堝張绉帮細鍐峰喕鏈恒�佸埗鍐锋満缁勩�佸啺姘存満缁勩�佸喎鍗磋澶囷級鏄竴涓埗鍐疯澶囥�傚湪鍒跺喎琛屼笟涓垎涓洪鍐峰紡鍐锋按鏈虹粍鍜屾按鍐峰紡鍐锋按鏈虹粍涓ょ锛屾牴鎹帇缂╂満鍙堝垎涓鸿灪鏉嗗紡鍐锋按鏈虹粍銆佹丁鏃嬪紡鍐锋按鏈虹粍銆佺蹇冨紡鍐锋按鏈虹粍銆�",
+                hangyeDisc: "",
                 videoUrl: "",
                 three_D_url: ""
             }
@@ -239,18 +259,34 @@
         name: "鐢垫満",
         catalog: {
             1: {
-                description: "鏄竴绉嶅湪鍘熸湁绠$綉姘村帇鍔涘熀纭�涓婂啀娆″姞鍘嬬殑渚涙按璁惧銆傚叾涓昏鍔熻兘鏄湪甯傛斂渚涙按绠$綉鍘嬪姏鐨勫熀纭�涓婅繘琛屼簩娆″姞鍘嬶紝浠ユ弧瓒虫洿楂樼殑渚涙按闇�姹傦紝鍚屾椂纭繚甯傛斂绠$綉鐨勫帇鍔涗笉浣庝簬璁惧畾淇濇姢鍘嬪姏锛岄槻姝㈣礋鍘嬩骇鐢燂紝纭繚渚涙按鐨勫畨鍏ㄣ�佸彲闈犲拰绋冲畾鈥屸��",
-                hangyeDisc: "姹℃按姹$墿娼滄按鐢垫车閫傜敤浜庘�屾櫘閫氫綇瀹呮ゼ銆佸晢浣忔ゼ銆佸眳姘戝皬鍖衡�屻�侀珮灞傚缓绛戙�侀珮绾у棣嗛キ搴椼�佺敓娲诲皬鍖恒�侀珮灞傚缓绛戠殑鐑按渚涘簲绯荤粺銆佺患鍚堟ゼ銆佸啓瀛楁ゼ绛夊缓绛�",
+                description: "",
+                hangyeDisc: "",
                 videoUrl: "",
                 three_D_url: ""
             }
         }
     }
 }
+const loading_frm = ref(false)
+const isLoadingBim = ref(false)
+
+//BimObj涓烘祴璇曟暟鎹彲鍒犻櫎
+const BimObj = {
+    1: {
+        requestPath: "http://60.188.55.38:85/v3/ModelLibrary/GetProductDimList",
+        filePath: "http://60.188.55.38:82/Data/Series1/BIM/FL/DIM.fbx",
+        settingPath: "http://60.188.55.38:82/Data/Series1/BIM/FL/DIM.json",
+        SeriesID: 1,
+        LawID: 2,
+        FileName: 'AS1-20'
+
+    }
+}
 
 const route = useRoute()
 const router = useRouter()
 
+const model3dCtrl = ref(null)
 const currentPage = ref(1)
 const activeTab = ref('properties')
 const searchForm = reactive({
@@ -260,19 +296,7 @@
     energyLevel: 0,
 })
 
-const tableData = ref([
-    {
-        model: 'IS50-32-125',
-        diameter: 50,
-        flow: 12.5,
-        head: 15,
-        power: 2.2,
-        speed: 2900,
-        efficiency: 64,
-        energyLevel: '2绾ц兘鏁�'
-    },
-    // Add more sample data as needed
-])
+const tableData = ref([])
 
 const catalogItemList = ref([])
 
@@ -283,7 +307,10 @@
 
 const fromType = ref(null)
 const catalogType = ref(1)
-const seriesID = ref(null)
+const seriesID = ref(1)
+const catalogID = ref(1)
+
+const hasBimFile = ref(false)
 const m_curSeriesNode = ref({
     PhysicalPicturePath: "",
     Tip: "",
@@ -304,7 +331,7 @@
     if (!m_curSeriesNode.value?.CatalogID || !catalogType.value) {
         return '';
     }
-    return DescListByType[catalogType.value]?.catalog[m_curSeriesNode.value.CatalogID];
+    return DescListByType[catalogType.value]?.catalog[catalogID.value];
 });
 
 onMounted(() => {
@@ -312,6 +339,7 @@
     fromType.value = route.query.ft ?? null;
     catalogType.value = route.query.type ?? 1;
     seriesID.value = route.query.sid ?? null
+    catalogID.value = route.query.cid ?? null
     initCatalogList()
 
 })
@@ -324,55 +352,78 @@
         url: m_RequestDataObj[catalogTag].requestPath,
     })
         .then((res) => {
-            let result = res.data;
+            let result = res.data.SeriesList;
             result = result.map((item: any, index: number) => {
-                if (catalogTag === 2) {
-                    item.Price = item.Price * 10;
-                }
-                if (catalogTag === 4) {
-                    item.Price = item.Price * 5;
-                }
-                let incrementFactor = 0.1 * (index + 1); // 鏍规嵁绱㈠紩璁$畻閫掑绯绘暟
-                let newPrice = parseFloat(item.Price) + parseFloat((item.Price * incrementFactor).toFixed(1)); // 璁$畻鏂扮殑Price鍊�
-
                 return {
                     Id: item.Id,
                     Type: item.Type,
                     ModelType: item.ModelType,
                     Model: item.Model,
+                    SeriesID: item.SeriesID,
                     CatalogID: item.CatalogueID ?? 1,
                     CompanyName: item.CompanyName,
                     RecordNumber: item.RecordNumber,
                     EnergyEfficiencyClass: item.EnergyEfficiencyClass,
                     RecordTime: item.RecordTime,
-                    Price: newPrice,
                     PhysicalPicturePath: 'static/EecProductData/' + item.PhysicalPicturePath,
                     CertificatePath: `static/EecProductData/${item.CertificatePath}`,
                     Tip: `澶囨鏃堕棿锛�${item.RecordTime} \n 澶囨鍙凤細${item.RecordNumber}`,
                 };
             });
             const curSeries = result.filter(item => {
-                return item.Id === seriesID.value
+                return item.SeriesID === Number(seriesID.value)
             })
-            console.log(curSeries[0],123)
             m_curSeriesNode.value = curSeries[0]
-
+            initPumpList()
             catalogItemList.value = result;
-            tableData.value = getSelectPageData(result);
         })
         .catch((err) => {
+            console.log(err)
         });
 };
+const initPumpList = () => {
+    if(!m_pumpList[seriesID.value])return
+    axios({
+        method: 'get',
+        url: m_pumpList[seriesID.value].requestPath,
+    })
+        .then((res) => {
+            let result = res.data;
+            result = result.map(item => {
+                return {
+                    id: item.id,
+                    seriesID: item.sid,
+                    model: item.model,
+                    flow: item.flow,
+                    head: item.head,
+                    speed: item.speed,
+                    eta: item.eta,
+                    eec: item.nengxiao_level == "" ? -1 : Number(item.nengxiao_level)
+                }
+            })
+            catalogItemList.value = result
+            tableData.value = getSelectPageData(result);
+        }).catch(err => {
+            console.log(err)
+        })
+}
 
-const handleSeriesClick = (productId: string) => {
+const handleSeriesClick = (row: object) => {
     // 鎵惧埌褰撳墠鐐瑰嚮鐨勪骇鍝�
-    const currentProduct = catalogItemList.value.find((item) => item.Id === productId);
+    const currentProduct = catalogItemList.value.find((item) => item.id === row.id);
+    console.log(currentProduct,m_curSeriesNode.value,418)
+    currentProduct.CompanyName = m_curSeriesNode.value.CompanyName;
+    currentProduct.ModelType = m_curSeriesNode.value.ModelType
+    currentProduct.PhysicalPicturePath = m_curSeriesNode.value.PhysicalPicturePath
+    currentProduct.RecordNumber = m_curSeriesNode.value.RecordNumber
+    currentProduct.type = m_curSeriesNode.value.Type;
+    currentProduct.CertificatePath = m_curSeriesNode.value.CertificatePath
     if (currentProduct) {
         // 淇濆瓨浜у搧淇℃伅鍒發ocalStorage
         localStorage.setItem('currentProduct', JSON.stringify(currentProduct));
     }
     router.push({
-        path: `/product/${productId}`,
+        path: `/product/${currentProduct.id}`,
     });
 };
 
@@ -388,27 +439,76 @@
     let pagingData = getSelectPageData(allTableData);
     tableData.value = pagingData;
 }
+const changeTab = (value) => {
+    console.log('鎴戣璋冪敤浜�', value)
+    if (value === 'bim' && !isLoadingBim.value) {
+            loadModel3dView();
+    }
+
+}
+const loadModel3dView = () => {
+    if(!BimObj[seriesID.value]){
+        hasBimFile.value = false; 
+        return;
+    }
+    const fbx_file_path = BimObj[seriesID.value].filePath;
+    hasBimFile.value = true; 
+    loading_frm.value = true;
+    nextTick(()=>{
+        model3dCtrl.value.loadModel(fbx_file_path, true, (val) => {
+        setModelSizeValue();
+        loading_frm.value = false;
+        isLoadingBim.value = true;
+    });
+    })
+
+}
+
+const setModelSizeValue = () => {
+    let lawNode = BimObj[seriesID.value];
+    let SeriesID = lawNode.SeriesID;
+    let LawID = lawNode.LawID;
+    let fileName = lawNode.FileName;
+    if (SeriesID == null || SeriesID == 0) return;
+    if (LawID == null || LawID == 0) return;
+    axios({
+        method: 'get',
+        url: lawNode.requestPath,
+        params: {
+            SeriesID: SeriesID,
+            LawID: LawID,
+            FileName: fileName
+        }
+    }).then((res) => {
+        let resData = res.data;
+        console.log(resData, 300)
+        model3dCtrl.value.setDimDisplay(true);
+        model3dCtrl.value.updateSizeValue(resData.Data);
+    }).catch(err => {
+        console.log(err)
+    })
+}
 
 const handleSearch = () => {
     let filteredData = [...catalogItemList.value];
-    
+
     // 鎸夊瀷鍙风瓫閫�
     if (searchForm.model) {
-        filteredData = filteredData.filter(item => 
-            item.Model.toLowerCase().includes(searchForm.model.toLowerCase())
+        filteredData = filteredData.filter(item =>
+            item.model.toLowerCase().includes(searchForm.model.toLowerCase())
         );
     }
-    
+
     // 鎸夎兘鏁堢瓑绾х瓫閫�
     if (searchForm.energyLevel !== 0) {
-        filteredData = filteredData.filter(item => 
-            item.EnergyEfficiencyClass === searchForm.energyLevel
+        filteredData = filteredData.filter(item =>
+            item.eec === searchForm.energyLevel
         );
     }
-    
+
     // 閲嶇疆鍒嗛〉鍒扮涓�椤�
     m_paginationConfig.currentPage = 1;
-    
+
     // 鏇存柊琛ㄦ牸鏁版嵁
     tableData.value = getSelectPageData(filteredData);
 }
@@ -417,10 +517,10 @@
     // 閲嶇疆琛ㄥ崟
     searchForm.model = ''
     searchForm.energyLevel = 0
-    
+
     // 閲嶇疆鍒嗛〉鍒扮涓�椤�
     m_paginationConfig.currentPage = 1;
-    
+
     // 閲嶇疆琛ㄦ牸鏁版嵁涓哄師濮嬫暟鎹�
     tableData.value = getSelectPageData(catalogItemList.value);
 }

--
Gitblit v1.9.3