From 04a2d3e3c701a03981c4b66162ff9515f9d7dd12 Mon Sep 17 00:00:00 2001
From: tanghaolin <1723298894@qq.com>
Date: 星期一, 21 四月 2025 22:32:21 +0800
Subject: [PATCH] 修改数据与页面逻辑

---
 src/views/ProductSeries.vue |  251 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 176 insertions(+), 75 deletions(-)

diff --git a/src/views/ProductSeries.vue b/src/views/ProductSeries.vue
index 43ef0a9..854a1ca 100644
--- a/src/views/ProductSeries.vue
+++ b/src/views/ProductSeries.vue
@@ -19,23 +19,24 @@
 
             <!-- 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="鏆傛湭涓婁紶" />
+                    <el-tab-pane label="涓夌淮鍔ㄧ敾" name="bim" class="h-full">
+                        <div class="h-full" style="box-sizing: border-box;" v-loading="loading_frm">
+                            <!-- <el-empty description="鏆傛湭涓婁紶" /> -->
+                            <model-3D ref="model3dCtrl"></model-3D>
                         </div>
                     </el-tab-pane>
-                    <el-tab-pane label="浜у搧瑙嗛" name="model">
+                    <el-tab-pane label="浜у搧瑙嗛" name="video">
                         <div class="p-4">
                             <el-empty description="鏆傛湭涓婁紶" />
                         </div>
@@ -68,39 +69,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">
@@ -119,7 +112,7 @@
                         </div>
                     </template>
                 </el-table-column>
-                <!-- <el-table-column prop="power" align="center">
+                <el-table-column prop="power" align="center">
                     <template #header>
                         <div class="text-center">
                             <div>鍔熺巼</div>
@@ -142,7 +135,7 @@
                             <div class="text-xs text-gray-500">(%)</div>
                         </div>
                     </template>
-                </el-table-column> -->
+                </el-table-column>
             </el-table>
 
             <!-- Pagination -->
@@ -164,8 +157,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 +169,18 @@
     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() },
+}
 const EecLevelEnum = {
     1: { name: '涓�绾ц兘鏁�', icon: EecLevel1 },
     2: { name: '浜岀骇鑳芥晥', icon: EecLevel2 },
+    3: { name: '涓夌骇绾ц兘鏁�', icon: EecLevel3 },
 };
 
 const DescListByType = {
@@ -184,7 +189,7 @@
         catalog: {
             1: {
                 description: "绠$綉鍙犲帇锛堟棤璐熷帇锛夊彉棰戠粰姘磋澶囷紙浜屾渚涙按璁惧锛夋槸涓�绉嶅湪鍘熸湁绠$綉姘村帇鍔涘熀纭�涓婂啀娆″姞鍘嬬殑渚涙按璁惧銆傚叾涓昏鍔熻兘鏄湪甯傛斂渚涙按绠$綉鍘嬪姏鐨勫熀纭�涓婅繘琛屼簩娆″姞鍘嬶紝浠ユ弧瓒虫洿楂樼殑渚涙按闇�姹傦紝鍚屾椂纭繚甯傛斂绠$綉鐨勫帇鍔涗笉浣庝簬璁惧畾淇濇姢鍘嬪姏锛岄槻姝㈣礋鍘嬩骇鐢燂紝纭繚渚涙按鐨勫畨鍏ㄣ�佸彲闈犲拰绋冲畾鈥屸��",
-                hangyeDisc: "姹℃按姹$墿娼滄按鐢垫车閫傜敤浜庘�屾櫘閫氫綇瀹呮ゼ銆佸晢浣忔ゼ銆佸眳姘戝皬鍖衡�屻�侀珮灞傚缓绛戙�侀珮绾у棣嗛キ搴椼�佺敓娲诲皬鍖恒�侀珮灞傚缓绛戠殑鐑按渚涘簲绯荤粺銆佺患鍚堟ゼ銆佸啓瀛楁ゼ绛夊缓绛�",
+                hangyeDisc: "绠$綉鍙犲帇锛堟棤璐熷帇锛夊彉棰戠粰姘磋澶囷紙浜屾渚涙按璁惧锛夐�傜敤浜庘�屾櫘閫氫綇瀹呮ゼ銆佸晢浣忔ゼ銆佸眳姘戝皬鍖衡�屻�侀珮灞傚缓绛戙�侀珮绾у棣嗛キ搴椼�佺敓娲诲皬鍖恒�侀珮灞傚缓绛戠殑鐑按渚涘簲绯荤粺銆佺患鍚堟ゼ銆佸啓瀛楁ゼ绛夊缓绛�",
                 videoUrl: "",
                 three_D_url: ""
             },
@@ -196,7 +201,13 @@
             },
             3: {
                 description: "鈥岀珛寮忓绾х蹇冩车鏄叿鏈夋暣浣撶粨鏋勭揣鍑戙�佷綋绉皬銆侀噸閲忚交銆佸櫔澹颁綆銆佽妭鑳芥晥鏋滄樉钁楋紝妫�淇柟渚跨殑绂诲績娉点�傞噰鐢ㄦ爣鍑嗙珛寮忕數鏈哄拰蹇寮忔満姊板瘑灏侊紝鏇存崲闈炲父鏂逛究銆傛车鐨勮繃娴侀儴鍒嗗潎閲囩敤涓嶉攬閽紙304/316锛夋潗鏂欏埗鎴愶紝鍙�傜敤浜庤交搴﹁厫铓�鎬т粙璐ㄣ��",
-                hangyeDisc: "鈥岄珮灞傚缓绛戜緵姘粹�岋細绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车閫傜敤浜庨珮灞傚缓绛戠殑渚涙按绯荤粺锛岃兘澶熸彁渚涚ǔ瀹氱殑姘村帇锛屾弧瓒抽珮灞傚缓绛戠殑鏃ュ父鐢熸椿鐢ㄦ按闇�姹傗�孿n鈥屽伐涓氱敤姘粹�岋細鍦ㄥ伐涓氱敓浜т腑锛岀珛寮忓绾т笉閿堥挗绂诲績娉靛彲鐢ㄤ簬杈撻�佸悇绉嶅伐涓氱敤姘达紝濡傚喎鍗村惊鐜按銆佽繘鏂欐按銆佹礂娑ゆ按绛夛紝婊¤冻涓嶅悓宸ヨ壓鐨勭敤姘磋姹傗�孿n鈥屽啘鐢扮亴婧夆�岋細璇ユ车鍙敤浜庡啘鐢扮亴婧夛紝鎻愪緵鍏呰冻鐨勬按璧勬簮锛屼繚璇佸啘浣滅墿鐨勭敓闀库�孿n鈥屾按澶勭悊宸ョ▼鈥岋細鍦ㄦ按澶勭悊宸ョ▼涓紝绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车骞挎硾搴旂敤浜庣粰姘村鐞嗐�佸弽娓楅�忋�佽秴婊ょ瓑宸ヨ壓锛屾彁渚涢珮璐ㄩ噺鐨勬按婧愨�孿n鈥屽寲宸ヨ涓氣�岋細鍦ㄥ寲宸ョ敓浜т腑锛岃娉靛叿鏈夎壇濂界殑鑰愯厫铓�鎬ц兘锛屽彲鐢ㄤ簬杈撻�佸惈鏈夎厫铓�鎬с�佹槗鐕冩�с�佹槗鐖嗘�х殑浠嬭川鈥孿n鈥岃兘婧愯涓氣�岋細鍦ㄨ兘婧愯涓氫腑锛屽鏍哥數绔欍�佺數鍘備緵姘寸瓑锛岀珛寮忓绾т笉閿堥挗绂诲績娉典篃鏈夊箍娉涘簲鐢ㄢ�孿n鈥屾秷闃茬郴缁熲�岋細鍦ㄦ秷闃茬郴缁熶腑锛岃娉佃兘澶熷揩閫熷皢姘村鍘嬪埌鎵�闇�鐨勯珮鍘嬬姸鎬侊紝淇濊瘉娑堥槻姘磋兘澶熷柗灏勫埌杈冮珮鐨勬ゼ灞傛垨鑰呰緝杩滅殑璺濈鈥孿n鈥岄鍝併�佸尰鑽�佸寲宸ョ瓑琛屼笟鈥岋細绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车杩樺箍娉涘簲鐢ㄤ簬椋熷搧銆佸尰鑽�佸寲宸ャ�佹按浜у吇娈栫瓑棰嗗煙锛屼綔涓虹粰姘存帓姘寸殑鍔ㄥ姏璁惧鈥孿n杩欎簺搴旂敤棰嗗煙灞曠ず浜嗙珛寮忓绾т笉閿堥挗绂诲績娉电殑澶氭牱鎬у拰閲嶈鎬э紝鍏跺湪涓嶅悓琛屼笟涓彂鎸ョ潃鍏抽敭浣滅敤銆�",
+                hangyeDisc: "鈥屸�岀珛寮忓绾х蹇冩车閫傜敤浜嶾n楂樺眰寤虹瓚渚涙按鈥岋細绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车閫傜敤浜庨珮灞傚缓绛戠殑渚涙按绯荤粺锛岃兘澶熸彁渚涚ǔ瀹氱殑姘村帇锛屾弧瓒抽珮灞傚缓绛戠殑鏃ュ父鐢熸椿鐢ㄦ按闇�姹傗�孿n鈥屽伐涓氱敤姘粹�岋細鍦ㄥ伐涓氱敓浜т腑锛岀珛寮忓绾т笉閿堥挗绂诲績娉靛彲鐢ㄤ簬杈撻�佸悇绉嶅伐涓氱敤姘达紝濡傚喎鍗村惊鐜按銆佽繘鏂欐按銆佹礂娑ゆ按绛夛紝婊¤冻涓嶅悓宸ヨ壓鐨勭敤姘磋姹傗�孿n鈥屽啘鐢扮亴婧夆�岋細璇ユ车鍙敤浜庡啘鐢扮亴婧夛紝鎻愪緵鍏呰冻鐨勬按璧勬簮锛屼繚璇佸啘浣滅墿鐨勭敓闀库�孿n鈥屾按澶勭悊宸ョ▼鈥岋細鍦ㄦ按澶勭悊宸ョ▼涓紝绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车骞挎硾搴旂敤浜庣粰姘村鐞嗐�佸弽娓楅�忋�佽秴婊ょ瓑宸ヨ壓锛屾彁渚涢珮璐ㄩ噺鐨勬按婧愨�孿n鈥屽寲宸ヨ涓氣�岋細鍦ㄥ寲宸ョ敓浜т腑锛岃娉靛叿鏈夎壇濂界殑鑰愯厫铓�鎬ц兘锛屽彲鐢ㄤ簬杈撻�佸惈鏈夎厫铓�鎬с�佹槗鐕冩�с�佹槗鐖嗘�х殑浠嬭川鈥孿n鈥岃兘婧愯涓氣�岋細鍦ㄨ兘婧愯涓氫腑锛屽鏍哥數绔欍�佺數鍘備緵姘寸瓑锛岀珛寮忓绾т笉閿堥挗绂诲績娉典篃鏈夊箍娉涘簲鐢ㄢ�孿n鈥屾秷闃茬郴缁熲�岋細鍦ㄦ秷闃茬郴缁熶腑锛岃娉佃兘澶熷揩閫熷皢姘村鍘嬪埌鎵�闇�鐨勯珮鍘嬬姸鎬侊紝淇濊瘉娑堥槻姘磋兘澶熷柗灏勫埌杈冮珮鐨勬ゼ灞傛垨鑰呰緝杩滅殑璺濈鈥孿n鈥岄鍝併�佸尰鑽�佸寲宸ョ瓑琛屼笟鈥岋細绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车杩樺箍娉涘簲鐢ㄤ簬椋熷搧銆佸尰鑽�佸寲宸ャ�佹按浜у吇娈栫瓑棰嗗煙锛屼綔涓虹粰姘存帓姘寸殑鍔ㄥ姏璁惧鈥孿n杩欎簺搴旂敤棰嗗煙灞曠ず浜嗙珛寮忓绾т笉閿堥挗绂诲績娉电殑澶氭牱鎬у拰閲嶈鎬э紝鍏跺湪涓嶅悓琛屼笟涓彂鎸ョ潃鍏抽敭浣滅敤銆�",
+                videoUrl: "",
+                three_D_url: ""
+            },
+            5: {
+                description: "鈥岀珛寮忓绾ф车鏄叿鏈夋暣浣撶粨鏋勭揣鍑戙�佷綋绉皬銆侀噸閲忚交銆佸櫔澹颁綆銆佽妭鑳芥晥鏋滄樉钁楋紝妫�淇柟渚跨殑绂诲績娉点�傞噰鐢ㄦ爣鍑嗙珛寮忕數鏈哄拰蹇寮忔満姊板瘑灏侊紝鏇存崲闈炲父鏂逛究銆傛车鐨勮繃娴侀儴鍒嗗潎閲囩敤涓嶉攬閽紙304/316锛夋潗鏂欏埗鎴愶紝鍙�傜敤浜庤交搴﹁厫铓�鎬т粙璐ㄣ��",
+                hangyeDisc: "鈥屸�岀珛寮忓绾ф车閫傜敤浜嶾n楂樺眰寤虹瓚渚涙按鈥岋細绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车閫傜敤浜庨珮灞傚缓绛戠殑渚涙按绯荤粺锛岃兘澶熸彁渚涚ǔ瀹氱殑姘村帇锛屾弧瓒抽珮灞傚缓绛戠殑鏃ュ父鐢熸椿鐢ㄦ按闇�姹傗�孿n鈥屽伐涓氱敤姘粹�岋細鍦ㄥ伐涓氱敓浜т腑锛岀珛寮忓绾т笉閿堥挗绂诲績娉靛彲鐢ㄤ簬杈撻�佸悇绉嶅伐涓氱敤姘达紝濡傚喎鍗村惊鐜按銆佽繘鏂欐按銆佹礂娑ゆ按绛夛紝婊¤冻涓嶅悓宸ヨ壓鐨勭敤姘磋姹傗�孿n鈥屽啘鐢扮亴婧夆�岋細璇ユ车鍙敤浜庡啘鐢扮亴婧夛紝鎻愪緵鍏呰冻鐨勬按璧勬簮锛屼繚璇佸啘浣滅墿鐨勭敓闀库�孿n鈥屾按澶勭悊宸ョ▼鈥岋細鍦ㄦ按澶勭悊宸ョ▼涓紝绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车骞挎硾搴旂敤浜庣粰姘村鐞嗐�佸弽娓楅�忋�佽秴婊ょ瓑宸ヨ壓锛屾彁渚涢珮璐ㄩ噺鐨勬按婧愨�孿n鈥屽寲宸ヨ涓氣�岋細鍦ㄥ寲宸ョ敓浜т腑锛岃娉靛叿鏈夎壇濂界殑鑰愯厫铓�鎬ц兘锛屽彲鐢ㄤ簬杈撻�佸惈鏈夎厫铓�鎬с�佹槗鐕冩�с�佹槗鐖嗘�х殑浠嬭川鈥孿n鈥岃兘婧愯涓氣�岋細鍦ㄨ兘婧愯涓氫腑锛屽鏍哥數绔欍�佺數鍘備緵姘寸瓑锛岀珛寮忓绾т笉閿堥挗绂诲績娉典篃鏈夊箍娉涘簲鐢ㄢ�孿n鈥屾秷闃茬郴缁熲�岋細鍦ㄦ秷闃茬郴缁熶腑锛岃娉佃兘澶熷揩閫熷皢姘村鍘嬪埌鎵�闇�鐨勯珮鍘嬬姸鎬侊紝淇濊瘉娑堥槻姘磋兘澶熷柗灏勫埌杈冮珮鐨勬ゼ灞傛垨鑰呰緝杩滅殑璺濈鈥孿n鈥岄鍝併�佸尰鑽�佸寲宸ョ瓑琛屼笟鈥岋細绔嬪紡澶氱骇涓嶉攬閽㈢蹇冩车杩樺箍娉涘簲鐢ㄤ簬椋熷搧銆佸尰鑽�佸寲宸ャ�佹按浜у吇娈栫瓑棰嗗煙锛屼綔涓虹粰姘存帓姘寸殑鍔ㄥ姏璁惧鈥孿n杩欎簺搴旂敤棰嗗煙灞曠ず浜嗙珛寮忓绾т笉閿堥挗绂诲績娉电殑澶氭牱鎬у拰閲嶈鎬э紝鍏跺湪涓嶅悓琛屼笟涓彂鎸ョ潃鍏抽敭浣滅敤銆�",
                 videoUrl: "",
                 three_D_url: ""
             },
@@ -247,10 +258,42 @@
         }
     }
 }
+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'
+
+    },
+    2: {
+        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'
+    },
+    3: {
+        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 +303,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 +314,8 @@
 
 const fromType = ref(null)
 const catalogType = ref(1)
-const seriesID = ref(null)
+const seriesID = ref(1)
+const catalogID = ref(1)
 const m_curSeriesNode = ref({
     PhysicalPicturePath: "",
     Tip: "",
@@ -304,7 +336,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 +344,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 +357,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 +444,72 @@
     let pagingData = getSelectPageData(allTableData);
     tableData.value = pagingData;
 }
+const changeTab = (value) => {
+    console.log('鎴戣璋冪敤浜�', value)
+    if (value === 'bim' && !isLoadingBim.value) {
+        nextTick(() => {
+            loadModel3dView();
+        })
+
+    }
+
+}
+const loadModel3dView = () => {
+    const fbx_file_path = BimObj[seriesID.value].filePath;
+
+    loading_frm.value = true
+    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 +518,10 @@
     // 閲嶇疆琛ㄥ崟
     searchForm.model = ''
     searchForm.energyLevel = 0
-    
+
     // 閲嶇疆鍒嗛〉鍒扮涓�椤�
     m_paginationConfig.currentPage = 1;
-    
+
     // 閲嶇疆琛ㄦ牸鏁版嵁涓哄師濮嬫暟鎹�
     tableData.value = getSelectPageData(catalogItemList.value);
 }

--
Gitblit v1.9.3