From 2b99047683332624832c1dfcae596e957a710b7d Mon Sep 17 00:00:00 2001
From: ZZJ <10913410+zzj2100@user.noreply.gitee.com>
Date: 星期四, 28 七月 2022 10:20:49 +0800
Subject: [PATCH] bug修复

---
 vue.config.js                                                             |    9 
 src/views/productDetail/components/ConfirmOrder.vue                       |   39 +-
 src/views/GB28181/components/DevList.vue                                  |    6 
 src/views/hashrate/CameraManage/CameraRules/components/AddRuleBox.vue     |    2 
 src/components/Connect.vue                                                |   24 
 src/views/productDetail/components/OffpayInstruct.vue                     |    2 
 src/views/equipmentManagement/equipmentList/components/QuitClusterBox.vue |    2 
 src/views/hashrate/HashManage/components/SettingBox.vue                   |    2 
 src/views/personalCenter/components/OrderMng.vue                          |  119 ++++++
 src/views/personalCenter/components/SubAccount.vue                        |   39 +
 src/views/search/index.vue                                                |    1 
 src/views/hashrate/AlgManage/index.vue                                    |   29 +
 src/views/hashrate/HashManage/components/ClusterCard.vue                  |    2 
 src/components/Footer.vue                                                 |    7 
 src/views/GB28181/components/TreeArea.vue                                 |    2 
 src/components/giantTree/zTree/ztree.vue                                  |   11 
 src/views/hashrate/CameraManage/CameraRules/components/TimeSlider.vue     |   35 +
 src/views/index/components/commendContent.vue                             |    6 
 src/views/hashrate/CameraManage/CameraRules/components/HashrateCard.vue   |    3 
 src/components/IndexHeader.vue                                            |   31 +
 src/views/productDetail/components/PayCard.vue                            |   77 ++++
 src/views/index/components/userCard.vue                                   |    9 
 src/views/index/components/rightRrid.vue                                  |    6 
 src/views/register/components/SelectType.vue                              |   17 
 src/views/hashrate/CameraManage/CameraInfo/index.vue                      |    4 
 src/assets/css/common.css                                                 |    9 
 src/components/Header.vue                                                 |   10 
 src/views/register/index.vue                                              |   10 
 src/views/personalCenter/components/Content.vue                           |   19 
 src/views/equipmentManagement/equipmentDetail/components/UnbindBox.vue    |    2 
 src/components/canvas/index.vue                                           |    2 
 src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue  |    8 
 src/views/index/index.vue                                                 |  145 +-------
 src/views/personalCenter/components/AddBox.vue                            |    2 
 src/views/index/components/rightTabs.vue                                  |    6 
 src/views/hashrate/HashManage/index.vue                                   |    4 
 src/views/personalCenter/components/LeftMenu.vue                          |    4 
 src/views/trialCenter/components/SdkItem.vue                              |    6 
 src/views/hashrate/CameraManage/CameraRules/components/RuleItem.vue       |   18 
 src/Pool/TaskMange.ts                                                     |    7 
 src/views/productDetail/index.vue                                         |   14 
 src/views/equipmentManagement/equipmentList/components/JoinClusterBox.vue |    2 
 src/views/search/components/Banner.vue                                    |    5 
 src/views/index/components/rightColumn.vue                                |    6 
 src/views/equipmentManagement/equipmentDetail/components/SettingBox.vue   |    2 
 src/api/product.ts                                                        |   12 
 /dev/null                                                                 |    0 
 src/views/manageCenter/index.vue                                          |    9 
 src/views/product/components/productCard.vue                              |    5 
 src/views/hashrate/CameraManage/CameraRules/index.vue                     |    6 
 src/views/connectUs/index.vue                                             |    3 
 src/views/GB28181/components/FormArea.vue                                 |    2 
 src/views/hashrate/AlgManage/components/AlgCard.vue                       |    2 
 src/views/productDetail/components/UploadBox.vue                          |   12 
 src/views/personalCenter/components/QuitClusterBox.vue                    |    2 
 src/views/equipmentManagement/equipmentList/components/AddBox.vue         |  132 ++++---
 src/views/personalCenter/components/JoinClusterBox.vue                    |    2 
 57 files changed, 583 insertions(+), 369 deletions(-)

diff --git a/public/images/equipmentManagement/add.png.png b/public/images/equipmentManagement/add.png.png
deleted file mode 100644
index b93aa89..0000000
--- a/public/images/equipmentManagement/add.png.png
+++ /dev/null
Binary files differ
diff --git a/src/Pool/TaskMange.ts b/src/Pool/TaskMange.ts
index a66f478..10cf214 100644
--- a/src/Pool/TaskMange.ts
+++ b/src/Pool/TaskMange.ts
@@ -66,7 +66,12 @@
 
     let res:any = await findAllSdk({ userId: "", nodeId: id })
     if (res && res.success) {
-      this.list1 = res.data
+      this.list1 = []
+      res.data.forEach(item => {
+        if(item.installed) {
+          this.list1.push(item)
+        }
+      });
     }
   }
 
diff --git a/src/api/product.ts b/src/api/product.ts
index d605cad..2c5e046 100644
--- a/src/api/product.ts
+++ b/src/api/product.ts
@@ -301,4 +301,14 @@
         url: `/saas/api-s/saasProduct/getFreeList`,
         method: 'post',
     })
-}
\ No newline at end of file
+}
+
+//鏍规嵁id鏌ヨ浜у搧
+export const getProductById = (data: any) => {
+    return request({
+        url: `/saas/api-s/saasProduct/getProductById`,
+        method: 'post',
+        data
+    })
+}
+
diff --git a/src/assets/css/common.css b/src/assets/css/common.css
index 488341d..cee2af8 100644
--- a/src/assets/css/common.css
+++ b/src/assets/css/common.css
@@ -27,3 +27,12 @@
 .iconfont {
   user-select: none;
 }
+
+.el-pagination .el-pager .number {
+  font-size: 14px;
+  font-weight: 400;
+}
+
+.el-pagination__jump {
+  font-size: 14px !important;
+}
diff --git a/src/components/Connect.vue b/src/components/Connect.vue
index 222120c..c5e8849 100644
--- a/src/components/Connect.vue
+++ b/src/components/Connect.vue
@@ -13,14 +13,11 @@
         </div>
         <div class="teleNum">010-84155885</div>
       </div>
-      <router-link to="/connectUs">
-        <div class="advice">
-          <div class="title">
-            <span class="iconfont">&#xe612;</span>寤鸿鍙嶉
-          </div>
-          <div class="des">鎮ㄧ殑姣忎竴鏉″缓璁0闊筹紝鎴戜滑閮借鐪熷寰�</div>
-        </div>
-      </router-link>
+
+      <div class="advice" @click="jump1()">
+        <div class="title"><span class="iconfont">&#xe612;</span>寤鸿鍙嶉</div>
+        <div class="des">鎮ㄧ殑姣忎竴鏉″缓璁0闊筹紝鎴戜滑閮借鐪熷寰�</div>
+      </div>
     </div>
 
     <div
@@ -30,7 +27,9 @@
     >
       <span class="iconfont">&#xe611;</span>鑱旂郴鎴戜滑
     </div>
-    <div class="backToTop iconfont" v-if="showConnect" @click="backToTop">&#xe610;</div>
+    <div class="backToTop iconfont" v-if="showConnect" @click="backToTop">
+      &#xe610;
+    </div>
   </div>
 </template>
 
@@ -45,7 +44,7 @@
   created() {
     window.addEventListener("scroll", this.scrollListener);
   },
-   destroyed() {
+  destroyed() {
     window.removeEventListener("scroll", this.scrollListener);
   },
   methods: {
@@ -79,7 +78,7 @@
         _this.isShowConnectBox = false;
       }, 100);
     },
-     //娣诲姞婊氬姩鐩戝惉
+    //娣诲姞婊氬姩鐩戝惉
     scrollListener() {
       //椤甸潰婊戝姩瑙﹀彂浜嬩欢 (婊氬姩鏉$Щ鍔ㄥ垯璋冪敤鏄惁鏄剧ず杩斿洖椤堕儴鎸夐挳浜嬩欢)
       var a = document.documentElement.clientHeight; // 婊氬姩瀹瑰櫒鐨勫彲瑙嗛珮
@@ -95,6 +94,9 @@
 
       //妫�鏌ユ粴鍔ㄦ潯鏄惁鍦ㄩ《閮紝鎺у埗杩斿洖椤堕儴鎸夐挳鐨勯殣钘忓拰鏄剧ず
     },
+    jump1() {
+      window.open("http://smartai.com/contact");
+    },
   },
 };
 </script>
diff --git a/src/components/Footer.vue b/src/components/Footer.vue
index 382c817..6132f0c 100644
--- a/src/components/Footer.vue
+++ b/src/components/Footer.vue
@@ -4,7 +4,7 @@
       漏 2009-2019 smartai.com 鐗堟潈鎵�鏈� ICP璇侊細45456566 鍏綉瀹夊 436435455鍙�
     </div>
     <div class="right">
-      <span class="label">鍏充簬鎴戜滑</span>
+      <span class="label" @click="jump">鍏充簬鎴戜滑</span>
       <span class="label">娉曞緥澹版槑</span>
       <span class="label">闅愮鏀跨瓥</span>
       <span class="label">寤夋涓炬姤</span>
@@ -22,6 +22,11 @@
       default: false,
     },
   },
+  methods: {
+    jump() {
+      window.open("http://www.smartai.com/");
+    },
+  },
 };
 </script>
 
diff --git a/src/components/Header.vue b/src/components/Header.vue
index 8aa2dc4..410116a 100644
--- a/src/components/Header.vue
+++ b/src/components/Header.vue
@@ -8,13 +8,19 @@
     <div class="right">
       <div class="link"><router-link to="/">棣栭〉</router-link></div>
       <div class="link" @click="$router.push('/connectUs')">鑱旂郴鎴戜滑</div>
-      <div class="link">鍏充簬鎴戜滑</div>
+      <div class="link" @click="jump">鍏充簬鎴戜滑</div>
     </div>
   </div>
 </template>
 
 <script>
-export default {};
+export default {
+  methods: {
+    jump() {
+      window.open("http://www.smartai.com/");
+    },
+  },
+};
 </script>
 
 <style scoped lang="scss">
diff --git a/src/components/IndexHeader.vue b/src/components/IndexHeader.vue
index ec0e7b0..3602825 100644
--- a/src/components/IndexHeader.vue
+++ b/src/components/IndexHeader.vue
@@ -49,11 +49,12 @@
         <!-- 宸茬櫥褰曟儏鍐� -->
         <img
           class="userImg"
-          src="/images/index/default.png"
+          src="/images/index/8.jpg"
           alt=""
           v-if="userInfo"
           @mouseenter="showUserBox"
           @mouseleave="hiddenUserBox"
+          style="border-radius: 50%"
         />
       </div>
     </div>
@@ -67,14 +68,14 @@
     >
       <div class="userName">{{ userInfo.username }}</div>
       <ul>
-        <li class="money">
+        <!--   <li class="money">
           <div class="label">浣欓</div>
           <div class="content">
             <span class="button">鍏呭��</span>
             <span class="number">锟�0</span>
           </div>
         </li>
-
+ -->
         <li class="personal">
           <div class="label">
             <router-link to="/personalCenter">涓汉涓績</router-link>
@@ -86,19 +87,19 @@
         </li>
 
         <li>
-          <div class="label" @click="jump(1)">璁㈠崟绠$悊</div>
+          <div class="label" @click="jump(0)">璁㈠崟绠$悊</div>
         </li>
 
-        <li>
+        <!--  <li>
           <div class="label">浜у搧缁垂</div>
-        </li>
+        </li> -->
 
-        <li>
+        <!--  <li>
           <div class="label">鏈娑堟伅</div>
-        </li>
+        </li> -->
 
         <li>
-          <div class="label">鏈敮浠樿鍗�</div>
+          <div class="label" @click="jump(0, 1)">鏈敮浠樿鍗�</div>
         </li>
 
         <li>
@@ -213,7 +214,10 @@
       });
     },
 
-    jump(id) {
+    jump(id, type) {
+      if (type) {
+        sessionStorage.setItem("type", type);
+      }
       this.$router.push({
         path: "/personalCenter",
         query: {
@@ -327,6 +331,9 @@
 
       .label {
         color: #3d3d3d;
+        &:hover {
+          color: #0065ff;
+        }
       }
     }
     .right {
@@ -440,7 +447,7 @@
   top: 64px;
   padding: 0 20px;
   width: 240px;
-  height: 427px;
+  height: 327px;
   background-color: #fff;
   box-shadow: 0px 4px 12px rgba(96, 100, 106, 0.12);
   border-radius: 4px;
@@ -452,7 +459,7 @@
   }
 
   ul {
-    height: 300px;
+    height: 200px;
     border-top: 1px solid #e9ebee;
     border-bottom: 1px solid #e9ebee;
 
diff --git a/src/components/canvas/index.vue b/src/components/canvas/index.vue
index 83f3fc0..d3672d5 100644
--- a/src/components/canvas/index.vue
+++ b/src/components/canvas/index.vue
@@ -635,7 +635,7 @@
 
   .dialog-footer {
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     text-align: center;
     line-height: 32px;
     font-size: 14px;
diff --git a/src/components/giantTree/zTree/ztree.vue b/src/components/giantTree/zTree/ztree.vue
index 8f8637a..cac4b59 100644
--- a/src/components/giantTree/zTree/ztree.vue
+++ b/src/components/giantTree/zTree/ztree.vue
@@ -264,6 +264,7 @@
           // this.clickRemove(treeNode)
           _vue.$emit("onAddDevice", treeNode.id);
         });
+        btn.innerHTML = "&#xe642;";
 
         item.appendChild(btn);
       }
@@ -288,6 +289,7 @@
           // this.clickRemove(treeNode)
           _vue.$emit("onImport", treeNode.id);
         });
+        btn.innerHTML = "&#xe643;";
 
         item.appendChild(btn);
       }
@@ -661,6 +663,15 @@
   top: 2px;
 }
 
+.ztree i.iconshishishipin,
+.ztree i.icondaoru {
+  margin-right: 8px;
+  font-size: 18px;
+  vertical-align: middle;
+  width: 24px;
+  text-align: left;
+}
+
 .ztree li a.primary {
   color: #3d68e1;
 }
diff --git a/src/views/GB28181/components/DevList.vue b/src/views/GB28181/components/DevList.vue
index ce540b4..396f565 100644
--- a/src/views/GB28181/components/DevList.vue
+++ b/src/views/GB28181/components/DevList.vue
@@ -9,7 +9,11 @@
     <div class="list scroll">
       <div class="devItem" v-for="(item, index) in devList" :key="index">
         <div class="mainInfo">
-          <img v-if="item.type == 1" src="/images/hashrate/闆嗙兢.png" alt="" />
+          <img
+            v-if="item.type == 1"
+            src="/images/hashrate/cluster.png"
+            alt=""
+          />
           <img v-else src="/images/hashrate/equipment.png" alt="" />
 
           <div class="right">
diff --git a/src/views/GB28181/components/FormArea.vue b/src/views/GB28181/components/FormArea.vue
index f7ce4c2..9184634 100644
--- a/src/views/GB28181/components/FormArea.vue
+++ b/src/views/GB28181/components/FormArea.vue
@@ -303,7 +303,7 @@
     padding: 20px 0;
     border-top: 1px solid #e9ebee;
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     text-align: center;
 
     .cancel {
diff --git a/src/views/GB28181/components/TreeArea.vue b/src/views/GB28181/components/TreeArea.vue
index f9382c7..281491a 100644
--- a/src/views/GB28181/components/TreeArea.vue
+++ b/src/views/GB28181/components/TreeArea.vue
@@ -278,7 +278,7 @@
     padding: 20px 0;
     border-top: 1px solid #e9ebee;
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     text-align: center;
 
     .cancel {
diff --git a/src/views/connectUs/index.vue b/src/views/connectUs/index.vue
index 72a0ffb..d861af0 100644
--- a/src/views/connectUs/index.vue
+++ b/src/views/connectUs/index.vue
@@ -37,6 +37,9 @@
       if (index == 0) {
         this.$router.push("/");
       }
+      if (index == 2 || index == 4) {
+        window.open("http://smartai.com/contact");
+      }
     },
   },
 };
diff --git a/src/views/equipmentManagement/equipmentDetail/components/SettingBox.vue b/src/views/equipmentManagement/equipmentDetail/components/SettingBox.vue
index 47e1f70..f576e9c 100644
--- a/src/views/equipmentManagement/equipmentDetail/components/SettingBox.vue
+++ b/src/views/equipmentManagement/equipmentDetail/components/SettingBox.vue
@@ -368,7 +368,7 @@
     right: 20px;
     bottom: 20px;
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     text-align: center;
     line-height: 40px;
 
diff --git a/src/views/equipmentManagement/equipmentDetail/components/UnbindBox.vue b/src/views/equipmentManagement/equipmentDetail/components/UnbindBox.vue
index 79ed391..2a2f7cc 100644
--- a/src/views/equipmentManagement/equipmentDetail/components/UnbindBox.vue
+++ b/src/views/equipmentManagement/equipmentDetail/components/UnbindBox.vue
@@ -118,7 +118,7 @@
 
   .btns {
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     text-align: center;
     line-height: 40px;
 
diff --git a/src/views/equipmentManagement/equipmentList/components/AddBox.vue b/src/views/equipmentManagement/equipmentList/components/AddBox.vue
index c93332a..c4091d4 100644
--- a/src/views/equipmentManagement/equipmentList/components/AddBox.vue
+++ b/src/views/equipmentManagement/equipmentList/components/AddBox.vue
@@ -25,74 +25,77 @@
           </div>
         </div>
         <div class="body" v-if="listType == 'cluster'">
-          <div class="row" v-for="(item, index) in clusterList" :key="index">
-            <div class="content">
-              <div class="rowItem index">{{ index + 1 }}</div>
-              <div class="rowItem name">{{ item.clusterName }}</div>
-              <div class="rowItem ip">{{ item.virtualIp }}</div>
-              <div class="rowItem status">
-                <div v-if="!item.canAdd" class="status green">宸叉坊鍔�</div>
-                <div v-else class="status">鏈坊鍔�</div>
+          <template v-if="clusterList.length > 0">
+            <div class="row" v-for="(item, index) in clusterList" :key="index">
+              <div class="content">
+                <div class="rowItem index">{{ index + 1 }}</div>
+                <div class="rowItem name">{{ item.clusterName }}</div>
+                <div class="rowItem ip">{{ item.virtualIp }}</div>
+                <div class="rowItem status">
+                  <div v-if="!item.canAdd" class="status green">宸叉坊鍔�</div>
+                  <div v-else class="status">鏈坊鍔�</div>
+                </div>
+                <div class="rowItem options">
+                  <!-- 娣诲姞 -->
+                  <span v-if="!item.canAdd">-</span>
+                  <template v-else>
+                    <span
+                      class="iconfont option"
+                      @click="showBox('cluster', item.clusterId)"
+                      >&#xe63f;</span
+                    >
+                    <!-- 闆嗙兢璇︽儏  -->
+                    <span
+                      class="iconfont option"
+                      @click="showChildrenLIst(index, item.clusterId)"
+                      >&#xe63e;</span
+                    >
+                  </template>
+                </div>
               </div>
-              <div class="rowItem options">
-                <!-- 娣诲姞 -->
-                <span v-if="!item.canAdd">-</span>
-                <template v-else>
-                  <span
-                    class="iconfont option"
-                    @click="showBox('cluster', item.clusterId)"
-                    >&#xe63f;</span
-                  >
-                  <!-- 闆嗙兢璇︽儏  -->
-                  <span
-                    class="iconfont option"
-                    @click="showChildrenLIst(index, item.clusterId)"
-                    >&#xe63e;</span
-                  >
-                </template>
-              </div>
-            </div>
 
-            <div
-              class="overList"
-              :class="{ isShow: showClusterChild == index }"
-            >
-              <el-table
-                :data="overList"
-                :fit="true"
-                header-row-class-name="overList-head"
+              <div
+                class="overList"
+                :class="{ isShow: showClusterChild == index }"
               >
-                <el-table-column
-                  label="搴忓彿"
-                  type="index"
-                  width="146"
-                  class-name="index "
+                <el-table
+                  :data="overList"
+                  :fit="true"
+                  header-row-class-name="overList-head"
                 >
-                </el-table-column>
-                <el-table-column
-                  prop="dev_id"
-                  label="璁惧ID"
-                  width="146"
-                ></el-table-column>
+                  <el-table-column
+                    label="搴忓彿"
+                    type="index"
+                    width="146"
+                    class-name="index "
+                  >
+                  </el-table-column>
+                  <el-table-column
+                    prop="dev_id"
+                    label="璁惧ID"
+                    width="146"
+                  ></el-table-column>
 
-                <el-table-column
-                  prop="dev_ip"
-                  label="璁惧IP"
-                  width="146"
-                ></el-table-column>
+                  <el-table-column
+                    prop="dev_ip"
+                    label="璁惧IP"
+                    width="146"
+                  ></el-table-column>
 
-                <el-table-column
-                  prop="dev_name"
-                  label="璁惧鍚嶇О"
-                  width="240"
-                ></el-table-column>
-              </el-table>
+                  <el-table-column
+                    prop="dev_name"
+                    label="璁惧鍚嶇О"
+                    width="240"
+                  ></el-table-column>
+                </el-table>
 
-              <div class="iconfont" @click="showClusterChild = null">
-                &#xe63d;
+                <div class="iconfont" @click="showClusterChild = null">
+                  &#xe63d;
+                </div>
               </div>
             </div>
-          </div>
+          </template>
+          <div class="empty" v-else>鏆傛棤鏁版嵁</div>
         </div>
       </div>
 
@@ -346,6 +349,15 @@
   .clusterList {
     max-height: 507px;
     overflow-y: overlay;
+
+    .empty {
+      height: 60px;
+      background-color: rgb(233, 235, 238);
+      line-height: 60px;
+      color: #909399;
+      font-size: 14px;
+      text-align: center;
+    }
   }
 
   .tableList {
@@ -557,7 +569,7 @@
     .btns {
       margin-top: 40px;
       display: flex;
-      justify-content: end;
+      justify-content: flex-end;
       text-align: center;
       line-height: 32px;
       font-size: 14px;
diff --git a/src/views/equipmentManagement/equipmentList/components/JoinClusterBox.vue b/src/views/equipmentManagement/equipmentList/components/JoinClusterBox.vue
index a417afa..008dd73 100644
--- a/src/views/equipmentManagement/equipmentList/components/JoinClusterBox.vue
+++ b/src/views/equipmentManagement/equipmentList/components/JoinClusterBox.vue
@@ -413,7 +413,7 @@
   .btns {
     margin-top: 20px;
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     text-align: center;
     line-height: 32px;
     font-size: 14px;
diff --git a/src/views/equipmentManagement/equipmentList/components/QuitClusterBox.vue b/src/views/equipmentManagement/equipmentList/components/QuitClusterBox.vue
index 318932e..b5be873 100644
--- a/src/views/equipmentManagement/equipmentList/components/QuitClusterBox.vue
+++ b/src/views/equipmentManagement/equipmentList/components/QuitClusterBox.vue
@@ -142,7 +142,7 @@
   .btns {
     margin-top: 20px;
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     text-align: center;
     line-height: 32px;
     font-size: 14px;
diff --git a/src/views/hashrate/AlgManage/components/AlgCard.vue b/src/views/hashrate/AlgManage/components/AlgCard.vue
index 8bb77a5..e9206e7 100644
--- a/src/views/hashrate/AlgManage/components/AlgCard.vue
+++ b/src/views/hashrate/AlgManage/components/AlgCard.vue
@@ -128,7 +128,7 @@
     .btns {
       position: absolute;
       display: flex;
-      justify-content: end;
+      justify-content: flex-end;
       bottom: 10px;
       right: 10px;
 
diff --git a/src/views/hashrate/AlgManage/index.vue b/src/views/hashrate/AlgManage/index.vue
index 1edfacd..3619277 100644
--- a/src/views/hashrate/AlgManage/index.vue
+++ b/src/views/hashrate/AlgManage/index.vue
@@ -10,9 +10,7 @@
         <div class="algCard" v-for="(item, index) in payAlg" :key="index">
           <img :src="item.logoUrl" alt="" draggable="false" />
           <div class="name">{{ item.productName }}</div>
-          <span class="button pay" @click="toDetail(item.productName)"
-            >璐拱</span
-          >
+          <span class="button pay" @click="toDetail(item.id)">璐拱</span>
         </div>
       </div>
 
@@ -34,9 +32,7 @@
             @dragstart="dragStart(item)"
           />
           <div class="name">{{ item.productName }}</div>
-          <span class="button detail" @click="toDetail(item.productName)"
-            >鏌ョ湅璇︽儏</span
-          >
+          <span class="button detail" @click="toDetail(item.id)">鏌ョ湅璇︽儏</span>
         </div>
       </div>
     </div>
@@ -53,25 +49,25 @@
         <div class="algList">
           <!-- 绠楁硶card -->
           <Card
-            v-for="(alg, index) in item.sdkList"
+            v-for="(alg, index) in item.sdkList1"
             :key="index"
             :alg="alg"
             :devId="item.devId"
-            @unInstall="item.sdkList.splice(index, 1)"
+            @unInstall="item.sdkList1.splice(index, 1)"
           ></Card>
           <!-- 鎷栨嫿瀛樻斁box -->
           <div
             class="dropBox"
             v-if="dragAlg"
             @dragover="dragover($event)"
-            @drop="drop(item.sdkList, item.devId)"
+            @drop="drop(item.sdkList1, item.devId)"
           >
             璇锋嫋鍔ㄥ埌姝ゅ
           </div>
           <!-- 绌虹畻娉曟儏鍐� -->
           <div
             class="empty"
-            v-if="item.sdkList && item.sdkList.length === 0 && !dragAlg"
+            v-if="item.sdkList1 && item.sdkList1.length === 0 && !dragAlg"
           >
             <img src="/images/hashrate/sdkEmpty.png" alt="" />
             <div class="des">
@@ -190,6 +186,13 @@
         this.equipmentArr = [];
         res.data.forEach((item, index) => {
           if (item.sdkList) {
+            let sdkList1 = [];
+            item.sdkList.forEach((sdk) => {
+              if (sdk.installed) {
+                sdkList1.push(sdk);
+              }
+            });
+            item.sdkList1 = sdkList1;
             this.equipmentArr.push(item);
           }
         });
@@ -255,7 +258,7 @@
         let devObj = {};
         let sdkIds = [];
         devObj.devId = dev.devId;
-        dev.sdkList.forEach((sdk) => {
+        dev.sdkList1.forEach((sdk) => {
           if (sdk.isUpgrade) {
             sdkIds.push(sdk.id);
           }
@@ -275,11 +278,11 @@
         });
       }
     },
-    toDetail(productName) {
+    toDetail(id) {
       this.$router.push({
         path: "/productDetail",
         query: {
-          name: productName,
+          id: id,
         },
       });
     },
diff --git a/src/views/hashrate/CameraManage/CameraInfo/index.vue b/src/views/hashrate/CameraManage/CameraInfo/index.vue
index 76926e1..2b886e1 100644
--- a/src/views/hashrate/CameraManage/CameraInfo/index.vue
+++ b/src/views/hashrate/CameraManage/CameraInfo/index.vue
@@ -735,7 +735,7 @@
       .connect {
         margin-bottom: 20px;
         display: flex;
-        justify-content: end;
+        justify-content: flex-end;
       }
 
       .el-button {
@@ -862,7 +862,7 @@
 
   .btns {
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     margin-top: 20px;
 
     .delBtn {
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/AddRuleBox.vue b/src/views/hashrate/CameraManage/CameraRules/components/AddRuleBox.vue
index 89a9593..8503ddb 100644
--- a/src/views/hashrate/CameraManage/CameraRules/components/AddRuleBox.vue
+++ b/src/views/hashrate/CameraManage/CameraRules/components/AddRuleBox.vue
@@ -253,7 +253,7 @@
   background-color: #fff;
   box-shadow: 0px 2px 16px 0px rgba(0, 43, 106, 0.25);
 
-  z-index: 2;
+  z-index: 2002;
 
   .title {
     box-sizing: border-box;
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/HashrateCard.vue b/src/views/hashrate/CameraManage/CameraRules/components/HashrateCard.vue
index 3b3fd76..7d5d0e3 100644
--- a/src/views/hashrate/CameraManage/CameraRules/components/HashrateCard.vue
+++ b/src/views/hashrate/CameraManage/CameraRules/components/HashrateCard.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="HashrateCard">
     <div class="hashrate">
-      <img :src="`/images/hashrate/${title}.png`" alt="" />
+      <img :src="`/images/hashrate/${image}`" alt="" />
       <div class="hashrateContent">
         <div class="label">{{ title }}</div>
         <div class="data">
@@ -56,6 +56,7 @@
     InValidCount: { type: String, default: "" },
     RunningCount: { type: String, default: "" },
     NoDeal: { type: String, default: "" },
+    image: {},
   },
   data() {
     return {};
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/RuleItem.vue b/src/views/hashrate/CameraManage/CameraRules/components/RuleItem.vue
index 5134cbc..8e3b6b2 100644
--- a/src/views/hashrate/CameraManage/CameraRules/components/RuleItem.vue
+++ b/src/views/hashrate/CameraManage/CameraRules/components/RuleItem.vue
@@ -9,13 +9,22 @@
         </div>
         <div class="des">
           <div class="desItem">
-            <i class="iconfont">&#xe611;</i>{{ eventName }}
+            <i class="iconfont">&#xe663;</i>绛夌骇: {{ eventName }}
           </div>
           <div class="desItem">
-            <i class="iconfont">&#xe611;</i>{{ timeName }}
+            <i class="iconfont">&#xe662;</i>鏃堕棿: {{ timeName }}
           </div>
-          <div class="desItem" v-if="rule.desc">
-            <i class="iconfont">&#xe611;</i>{{ rule.desc }}
+          <div class="desItem">
+            <i class="iconfont">&#xe664;</i>鎻忚堪:
+            {{ rule.desc ? rule.desc : "-" }}
+          </div>
+          <div class="desItem" v-if="rule.voice && rule.voice.name">
+            <i class="iconfont">&#xe665;</i>澹伴煶:
+            {{ rule.voice.name }}
+          </div>
+
+          <div class="desItem" v-else>
+            <i class="iconfont">&#xe665;</i>澹伴煶: -
           </div>
         </div>
       </div>
@@ -292,6 +301,7 @@
 
     .desItem {
       margin-top: 7px;
+      font-size: 13px;
       .iconfont {
         margin-right: 10px;
         font-size: 16px;
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue b/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue
index 7748a4a..8604d05 100644
--- a/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue
+++ b/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue
@@ -1091,17 +1091,17 @@
       }
 
       .el-input ::v-deep {
-        width: 50px;
+        width: 100px;
         height: 32px;
 
         input {
-          width: 50px;
+          width: 100px;
           height: 32px;
         }
       }
 
       .el-select {
-        width: 68px;
+        width: 100px;
       }
 
       .font {
@@ -1128,7 +1128,7 @@
   .btns {
     position: absolute;
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     align-items: center;
     left: 0;
     right: 0;
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/TimeSlider.vue b/src/views/hashrate/CameraManage/CameraRules/components/TimeSlider.vue
index 5877a6b..c000dc0 100644
--- a/src/views/hashrate/CameraManage/CameraRules/components/TimeSlider.vue
+++ b/src/views/hashrate/CameraManage/CameraRules/components/TimeSlider.vue
@@ -182,11 +182,27 @@
       });
     },
     chooseEdit(data) {
-      this.$prompt("璇疯緭鍏ユ柊鐨勫満鏅悕绉�", "鎻愮ず", {
+      this.$prompt("璇疯緭鍏ユ柊鐨勬椂闂存鍚嶇О", "鎻愮ず", {
         confirmButtonText: "纭畾",
         cancelButtonText: "鍙栨秷",
       })
         .then(({ value }) => {
+          let repeat = false;
+          this.VideoManageData.TimeRules.forEach((item) => {
+            if (item.name === value) {
+              repeat = true;
+            }
+          });
+          console.log("aaa");
+          console.log(repeat);
+          if (repeat) {
+            this.$notify({
+              message: "鍚嶇О涓嶈兘閲嶅",
+              type: "warning",
+            });
+            return;
+          }
+
           this.activeTabObj.name = value;
           this.save();
         })
@@ -251,14 +267,11 @@
           return;
         }
 
-        this.$confirm(
-          "姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ鍒�, 鎵�鍏宠仈鐨勪换鍔″皢浼氬け鏁堬紝鏄惁缁х画?",
-          {
-            center: true,
-            confirmButtonText: "纭畾",
-            cancelButtonText: "鍙栨秷",
-          }
-        )
+        this.$confirm("姝ゆ搷浣滃皢鍒犻櫎璇ヨ鍒�, 鎵�鍏宠仈鐨勪换鍔″皢浼氬け鏁堬紝鏄惁缁х画?", {
+          center: true,
+          confirmButtonText: "纭畾",
+          cancelButtonText: "鍙栨秷",
+        })
           .then(() => {
             deleteTimeRule({ id: tabId }).then((rsp) => {
               if (rsp && rsp.success) {
@@ -382,7 +395,7 @@
     padding: 0 20px;
     margin-top: 20px;
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     text-align: center;
     line-height: 32px;
     font-size: 14px;
@@ -479,7 +492,7 @@
   .btns {
     position: absolute;
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     align-items: center;
     left: 0;
     right: 0;
diff --git a/src/views/hashrate/CameraManage/CameraRules/index.vue b/src/views/hashrate/CameraManage/CameraRules/index.vue
index 4bf132f..789c9f6 100644
--- a/src/views/hashrate/CameraManage/CameraRules/index.vue
+++ b/src/views/hashrate/CameraManage/CameraRules/index.vue
@@ -25,6 +25,7 @@
             :InValidCount="`${PollData.RealTimeInvalid}`"
             :RunningCount="`${PollData.RealTimeRun}`"
             :NoDeal="`${PollData.RealTimeNoDeal}`"
+            image="realTime (2).png"
           ></HashrateCard>
 
           <!-- 杞绠楀姏淇℃伅 -->
@@ -36,6 +37,7 @@
             :InValidCount="`${PollData.PollInvalid}`"
             :RunningCount="`${PollData.PollRun}`"
             :NoDeal="`${PollData.PollNoDeal}`"
+            image="polling.png"
           ></HashrateCard>
         </div>
       </div>
@@ -1178,7 +1180,7 @@
     .control {
       position: absolute;
       display: flex;
-      justify-content: end;
+      justify-content: flex-end;
       top: 20px;
       right: 20px;
 
@@ -1239,7 +1241,7 @@
     .control {
       position: absolute;
       display: flex;
-      justify-content: end;
+      justify-content: flex-end;
       top: 20px;
       right: 20px;
 
diff --git a/src/views/hashrate/HashManage/components/ClusterCard.vue b/src/views/hashrate/HashManage/components/ClusterCard.vue
index 02a8764..752887e 100644
--- a/src/views/hashrate/HashManage/components/ClusterCard.vue
+++ b/src/views/hashrate/HashManage/components/ClusterCard.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="ClusterCard">
     <div class="cardHeader">
-      <img v-if="info.type == 1" src="/images/hashrate/闆嗙兢.png" alt="" />
+      <img v-if="info.type == 1" src="/images/hashrate/cluster.png" alt="" />
       <img v-else src="/images/hashrate/equipment.png" alt="" />
 
       <div class="info">
diff --git a/src/views/hashrate/HashManage/components/SettingBox.vue b/src/views/hashrate/HashManage/components/SettingBox.vue
index 30c3955..cc03f06 100644
--- a/src/views/hashrate/HashManage/components/SettingBox.vue
+++ b/src/views/hashrate/HashManage/components/SettingBox.vue
@@ -278,7 +278,7 @@
     .btns {
       margin-top: 10px;
       display: flex;
-      justify-content: end;
+      justify-content: flex-end;
       text-align: center;
       line-height: 40px;
       font-size: 14px;
diff --git a/src/views/hashrate/HashManage/index.vue b/src/views/hashrate/HashManage/index.vue
index b26e003..37d4ba7 100644
--- a/src/views/hashrate/HashManage/index.vue
+++ b/src/views/hashrate/HashManage/index.vue
@@ -16,12 +16,12 @@
           </div>
         </div>
         <!-- 瀹炴椂绠楀姏 -->
-        <HashCard :type="0" :hashrate="realTime"></HashCard>
+        <HashCard :type="0" :hashrate="polling"></HashCard>
       </div>
 
       <div class="medium">
         <!-- 杞绠楀姏 -->
-        <HashCard class="topCard" :type="1" :hashrate="polling"></HashCard>
+        <HashCard class="topCard" :type="1" :hashrate="realTime"></HashCard>
         <!-- 鏁版嵁鏍堢畻鍔� -->
         <HashCard :type="2" :hashrate="stack"></HashCard>
       </div>
diff --git a/src/views/index/components/commendContent.vue b/src/views/index/components/commendContent.vue
index 1074544..5e32f21 100644
--- a/src/views/index/components/commendContent.vue
+++ b/src/views/index/components/commendContent.vue
@@ -12,7 +12,7 @@
       <div class="title">{{ item.productName }}</div>
       <div class="des limitRow2">{{ item.description }}</div>
       <price :priceNew="item.priceBase ? item.priceBase : 0"></price>
-      <div class="button" @click="buyProduct(item.productName)">绔嬪嵆璐拱</div>
+      <div class="button" @click="buyProduct(item.id)">绔嬪嵆璐拱</div>
     </div>
   </div>
 </template>
@@ -33,11 +33,11 @@
     refresh() {
       this.$emit("refresh");
     },
-    buyProduct(productName) {
+    buyProduct(id) {
       this.$router.push({
         path: "/productDetail",
         query: {
-          name: productName,
+          id: id,
         },
       });
     },
diff --git a/src/views/index/components/rightColumn.vue b/src/views/index/components/rightColumn.vue
index a60fbfb..e761a5b 100644
--- a/src/views/index/components/rightColumn.vue
+++ b/src/views/index/components/rightColumn.vue
@@ -14,7 +14,7 @@
         </li>
       </ul>
       <price :priceNew="item.priceBase"></price>
-      <div class="button" @click="buyProduct(item.modelName)">绔嬪嵆璐拱</div>
+      <div class="button" @click="buyProduct(item.id)">绔嬪嵆璐拱</div>
     </div>
   </div>
 </template>
@@ -44,11 +44,11 @@
     }
   },
   methods: {
-    buyProduct(modelName) {
+    buyProduct(id) {
       this.$router.push({
         path: "/productDetail",
         query: {
-          name: modelName,
+          id: id,
         },
       });
     },
diff --git a/src/views/index/components/rightRrid.vue b/src/views/index/components/rightRrid.vue
index c1eb39c..2cca0d6 100644
--- a/src/views/index/components/rightRrid.vue
+++ b/src/views/index/components/rightRrid.vue
@@ -9,7 +9,7 @@
         {{ item.description }}
       </div>
       <price :priceNew="item.priceBase"></price>
-      <div class="button" @click="buyProduct(item.modelName)">绔嬪嵆璐拱</div>
+      <div class="button" @click="buyProduct(item.id)">绔嬪嵆璐拱</div>
     </div>
   </div>
 </template>
@@ -39,11 +39,11 @@
     }
   },
   methods: {
-    buyProduct(modelName) {
+    buyProduct(id) {
       this.$router.push({
         path: "/productDetail",
         query: {
-          name: modelName,
+          id: id,
         },
       });
     },
diff --git a/src/views/index/components/rightTabs.vue b/src/views/index/components/rightTabs.vue
index 24364d5..aae48b4 100644
--- a/src/views/index/components/rightTabs.vue
+++ b/src/views/index/components/rightTabs.vue
@@ -110,7 +110,7 @@
       display: flex;
       height: 300px;
       .left {
-        margin-top: 114px;
+        margin-top: 76px;
         margin-left: 20px;
         margin-right: 30px;
         width: 195px;
@@ -130,7 +130,7 @@
       }
 
       .middle {
-        margin-top: 55px;
+        margin-top: 16px;
         margin-right: 19px;
         width: 404px;
         height: 100%;
@@ -188,7 +188,7 @@
       bottom: 20px;
       width: 100%;
       display: flex;
-      justify-content: end;
+      justify-content: flex-end;
 
       .question {
         margin-right: 20px;
diff --git a/src/views/index/components/userCard.vue b/src/views/index/components/userCard.vue
index 144051e..17f85bb 100644
--- a/src/views/index/components/userCard.vue
+++ b/src/views/index/components/userCard.vue
@@ -1,7 +1,8 @@
 <template>
   <div class="userCard">
     <div class="profile">
-      <img src="/images/index/default.png" alt="" />
+      <img v-if="!userInfo" src="/images/index/default.png" alt="" />
+      <img v-else src="/images/index/8.jpg" style="border-radius: 50%" alt="" />
     </div>
     <div class="notification" v-if="!userInfo">
       Hi!璇�
@@ -25,7 +26,7 @@
 <script>
 export default {
   props: {
-    userBuyInfo:Object,
+    userBuyInfo: Object,
     userCardArr: {
       type: Array,
       default: () => {
@@ -34,14 +35,14 @@
             num: "_",
             label: "寰呬粯娆�",
           },
-          {
+          /*   {
             num: "_",
             label: "寰呯画璐�",
           },
           {
             num: "_",
             label: "娑堟伅涓績",
-          },
+          }, */
         ];
       },
     },
diff --git a/src/views/index/index.vue b/src/views/index/index.vue
index 5556fe2..161ba7c 100644
--- a/src/views/index/index.vue
+++ b/src/views/index/index.vue
@@ -153,7 +153,7 @@
         {
           img: "/images/index/beforeSell.png",
           title: "鍞墠鍜ㄨ",
-          des: "鑷寸數0315-2233066锛岄鍙栨偍鐨勪笓灞炴潈鐩�",
+          des: "鑷寸數010-84155885锛岄鍙栨偍鐨勪笓灞炴潈鐩�",
           router: "/",
         },
         {
@@ -214,154 +214,53 @@
           typeId: 2,
           pic: "/images/index/modelbgc.png",
           name: "杈圭紭璁$畻璁惧",
-          desc:
-            "涓�绉嶉儴缃插湪杩戝満渚х殑楂樺彲鐢ㄧ殑杞‖涓�浣撲骇鍝侊紝鎻愬崌搴旂敤绋嬪簭鐨勫揩閫熷搷搴旇兘鍔涖�佽妭鐪佸甫瀹芥祦閲忔垚鏈�",
+          desc: "涓�绉嶉儴缃插湪杩戝満渚х殑楂樺彲鐢ㄧ殑杞‖涓�浣撲骇鍝侊紝鎻愬崌搴旂敤绋嬪簭鐨勫揩閫熷搷搴旇兘鍔涖�佽妭鐪佸甫瀹芥祦閲忔垚鏈�",
           product: [
             {
-              name: "杈圭紭璁$畻璁惧1",
-              title: "LE-V-S003 楂樻�ц兘杈圭紭璁$畻涓绘満",
-              des:
-                "涓撲负楂樻�ц兘瑙嗛搴旂敤鎵撻�狅紝寮烘倣鐨勫弻蹇楀己澶勭悊鍣紝杞绘澗搴斿楂樼畻鍔涘簲鐢ㄥ満鏅殑闇�姹傘��",
+              name: "楂樻�ц兘杈圭紭璁$畻璁惧",
+              title: "NVIDIA Jetson Xavier NX AI杈圭紭璁$畻鐩掑瓙",
+              des: "绯荤粺灏哄灏忓阀锛屽畨瑁呯伒娲伙紝鎺ュ彛涓板瘜锛屽叿澶囩伒娲荤殑鎵╁睍鑳藉姏銆傚彲骞挎硾搴旂敤浜庡埗閫犮�侀搧璺�佺潱瀵熴�佺幆淇濄�佹櫤鎱у煄甯傘�佸尰鐤椾繚鍋ュ拰鐢熷懡绉戝銆佹櫤鑳芥満鍣ㄧ瓑棰嗗煙銆�",
               content: [
                 {
                   key: "鐗圭偣",
                   value: [
-                    "鎼浇涓ら楂樻�ц兘蹇楀己澶勭悊鍣紝鍙彁渚涢珮杈�64T鐨勫嚩鐚涚畻鍔�",
-                    "Server绯诲垪锛屽叿澶囧崟鍙颁笌闆嗙兢鏈嶅姟",
-                    "鏀寔绠楀姏铏氭嫙鍖栫鎺э紝楂樼ǔ瀹氭�у崟鏈虹儹澶�",
+                    "杞‖涓�浣擄紝棰勮浜嗚礉鎬濈鑷爺鐨勭埥鐏典紒涓氱骇AI鎿嶄綔绯荤粺",
+                    "寮�绠卞嵆鐢紝鍔╁姏浼佷笟蹇�熷紑鍚疉I搴旂敤鐨勬瀯寤�",
+                    "寮�鏀惧吋瀹癸紝閫傞厤褰撳墠涓绘祦纭欢骞冲彴x86銆丄RM銆丄I鑺墖绛�",
+                    "宸ヤ笟绾ц璁★紝楂樻姉闇囷紝閫傚簲涓ラ叿宸ヤ笟鐜",
                   ],
                 },
 
                 {
                   key: "閰嶇疆",
                   value: [
-                    "鑻辩壒灏� 蹇楀己 Silver 4114 10鏍稿鐞嗗櫒 x 2",
-                    "64GB 鍐呭瓨 (16GB x 4) + 480GB SSD 瀛樺偍 + 8TB HDD 瀛樺偍 鍗冨厗 LAN x 4",
+                    "CPU:6-core NVIDIA Carmel ARM庐v8.2 64-bit CPU 6MB L2 + 4MB L3",
+                    "GPU:384-core NVIDIA VoltaTM GPU with 48 Tensor Cores",
                   ],
                 },
               ],
               img: "/images/index/equipment.png",
             },
             {
-              name: "杈圭紭璁$畻璁惧2",
-              title: "LE-V-S003 楂樻�ц兘杈圭紭璁$畻涓绘満",
-              des:
-                "涓撲负楂樻�ц兘瑙嗛搴旂敤鎵撻�狅紝寮烘倣鐨勫弻蹇楀己澶勭悊鍣紝杞绘澗搴斿楂樼畻鍔涘簲鐢ㄥ満鏅殑闇�姹傘��",
+              name: "浣庡姛鑰楄竟缂樿绠楄澶�",
+              title: "Jetson AGX Xavier AI杈圭紭璁$畻鐩掑瓙",
+              des: "姝や骇鍝佹惌杞絁etson AGX Xavier鏍稿績妯″潡锛岄瑁呬簡璐濇�濈鑷爺鐨勨�旂埥鐏典紒涓氱骇AI鎿嶄綔绯荤粺锛岃兘浠�30W鐨勪綆鍔熻�楁彁渚涢珮杈�321Tops鐨勫疄鏃舵帹鐞嗚兘鍔涖��",
               content: [
                 {
                   key: "鐗圭偣",
                   value: [
-                    "鎼浇涓ら楂樻�ц兘蹇楀己澶勭悊鍣紝鍙彁渚涢珮杈�64T鐨勫嚩鐚涚畻鍔�",
-                    "Server绯诲垪锛屽叿澶囧崟鍙颁笌闆嗙兢鏈嶅姟",
-                    "鏀寔绠楀姏铏氭嫙鍖栫鎺э紝楂樼ǔ瀹氭�у崟鏈虹儹澶�",
+                    "杞‖涓�浣擄紝棰勮浜嗚礉鎬濈鑷爺鐨勭埥鐏典紒涓氱骇AI鎿嶄綔绯荤粺",
+                    "寮�绠卞嵆鐢紝鍔╁姏浼佷笟蹇�熷紑鍚疉I搴旂敤鐨勬瀯寤�",
+                    "寮�鏀惧吋瀹癸紝閫傞厤褰撳墠涓绘祦纭欢骞冲彴x86銆丄RM銆丄I鑺墖绛�",
+                    "宸ヤ笟绾ц璁★紝楂樻姉闇囷紝閫傚簲涓ラ叿宸ヤ笟鐜",
                   ],
                 },
 
                 {
                   key: "閰嶇疆",
                   value: [
-                    "鑻辩壒灏� 蹇楀己 Silver 4114 10鏍稿鐞嗗櫒 x 2",
-                    "64GB 鍐呭瓨 (16GB x 4) + 480GB SSD 瀛樺偍 + 8TB HDD 瀛樺偍 鍗冨厗 LAN x 4",
-                  ],
-                },
-              ],
-              img: "/images/index/equipment.png",
-            },
-            {
-              name: "杈圭紭璁$畻璁惧3",
-              title: "LE-V-S003 楂樻�ц兘杈圭紭璁$畻涓绘満",
-              des:
-                "涓撲负楂樻�ц兘瑙嗛搴旂敤鎵撻�狅紝寮烘倣鐨勫弻蹇楀己澶勭悊鍣紝杞绘澗搴斿楂樼畻鍔涘簲鐢ㄥ満鏅殑闇�姹傘��",
-              content: [
-                {
-                  key: "鐗圭偣",
-                  value: [
-                    "鎼浇涓ら楂樻�ц兘蹇楀己澶勭悊鍣紝鍙彁渚涢珮杈�64T鐨勫嚩鐚涚畻鍔�",
-                    "Server绯诲垪锛屽叿澶囧崟鍙颁笌闆嗙兢鏈嶅姟",
-                    "鏀寔绠楀姏铏氭嫙鍖栫鎺э紝楂樼ǔ瀹氭�у崟鏈虹儹澶�",
-                  ],
-                },
-
-                {
-                  key: "閰嶇疆",
-                  value: [
-                    "鑻辩壒灏� 蹇楀己 Silver 4114 10鏍稿鐞嗗櫒 x 2",
-                    "64GB 鍐呭瓨 (16GB x 4) + 480GB SSD 瀛樺偍 + 8TB HDD 瀛樺偍 鍗冨厗 LAN x 4",
-                  ],
-                },
-              ],
-              img: "/images/index/equipment.png",
-            },
-            {
-              name: "杈圭紭璁$畻璁惧4",
-              title: "LE-V-S003 楂樻�ц兘杈圭紭璁$畻涓绘満",
-              des:
-                "涓撲负楂樻�ц兘瑙嗛搴旂敤鎵撻�狅紝寮烘倣鐨勫弻蹇楀己澶勭悊鍣紝杞绘澗搴斿楂樼畻鍔涘簲鐢ㄥ満鏅殑闇�姹傘��",
-              content: [
-                {
-                  key: "鐗圭偣",
-                  value: [
-                    "鎼浇涓ら楂樻�ц兘蹇楀己澶勭悊鍣紝鍙彁渚涢珮杈�64T鐨勫嚩鐚涚畻鍔�",
-                    "Server绯诲垪锛屽叿澶囧崟鍙颁笌闆嗙兢鏈嶅姟",
-                    "鏀寔绠楀姏铏氭嫙鍖栫鎺э紝楂樼ǔ瀹氭�у崟鏈虹儹澶�",
-                  ],
-                },
-
-                {
-                  key: "閰嶇疆",
-                  value: [
-                    "鑻辩壒灏� 蹇楀己 Silver 4114 10鏍稿鐞嗗櫒 x 2",
-                    "64GB 鍐呭瓨 (16GB x 4) + 480GB SSD 瀛樺偍 + 8TB HDD 瀛樺偍 鍗冨厗 LAN x 4",
-                  ],
-                },
-              ],
-              img: "/images/index/equipment.png",
-            },
-            {
-              name: "杈圭紭璁$畻璁惧5",
-              title: "LE-V-S003 楂樻�ц兘杈圭紭璁$畻涓绘満",
-              des:
-                "涓撲负楂樻�ц兘瑙嗛搴旂敤鎵撻�狅紝寮烘倣鐨勫弻蹇楀己澶勭悊鍣紝杞绘澗搴斿楂樼畻鍔涘簲鐢ㄥ満鏅殑闇�姹傘��",
-              content: [
-                {
-                  key: "鐗圭偣",
-                  value: [
-                    "鎼浇涓ら楂樻�ц兘蹇楀己澶勭悊鍣紝鍙彁渚涢珮杈�64T鐨勫嚩鐚涚畻鍔�",
-                    "Server绯诲垪锛屽叿澶囧崟鍙颁笌闆嗙兢鏈嶅姟",
-                    "鏀寔绠楀姏铏氭嫙鍖栫鎺э紝楂樼ǔ瀹氭�у崟鏈虹儹澶�",
-                  ],
-                },
-
-                {
-                  key: "閰嶇疆",
-                  value: [
-                    "鑻辩壒灏� 蹇楀己 Silver 4114 10鏍稿鐞嗗櫒 x 2",
-                    "64GB 鍐呭瓨 (16GB x 4) + 480GB SSD 瀛樺偍 + 8TB HDD 瀛樺偍 鍗冨厗 LAN x 4",
-                  ],
-                },
-              ],
-              img: "/images/index/equipment.png",
-            },
-            {
-              name: "杈圭紭璁$畻璁惧6",
-              title: "LE-V-S003 楂樻�ц兘杈圭紭璁$畻涓绘満",
-              des:
-                "涓撲负楂樻�ц兘瑙嗛搴旂敤鎵撻�狅紝寮烘倣鐨勫弻蹇楀己澶勭悊鍣紝杞绘澗搴斿楂樼畻鍔涘簲鐢ㄥ満鏅殑闇�姹傘��",
-              content: [
-                {
-                  key: "鐗圭偣",
-                  value: [
-                    "鎼浇涓ら楂樻�ц兘蹇楀己澶勭悊鍣紝鍙彁渚涢珮杈�64T鐨勫嚩鐚涚畻鍔�",
-                    "Server绯诲垪锛屽叿澶囧崟鍙颁笌闆嗙兢鏈嶅姟",
-                    "鏀寔绠楀姏铏氭嫙鍖栫鎺э紝楂樼ǔ瀹氭�у崟鏈虹儹澶�",
-                  ],
-                },
-
-                {
-                  key: "閰嶇疆",
-                  value: [
-                    "鑻辩壒灏� 蹇楀己 Silver 4114 10鏍稿鐞嗗櫒 x 2",
-                    "64GB 鍐呭瓨 (16GB x 4) + 480GB SSD 瀛樺偍 + 8TB HDD 瀛樺偍 鍗冨厗 LAN x 4",
+                    "CPU:Volta 512 CUDA Cores + 64 Tensor Cores + 2 NVDLA10TFLOPs(FP16) 32TOPs(INT8)",
+                    "GPU:8x Carmel ARM V8.2",
                   ],
                 },
               ],
@@ -383,14 +282,14 @@
             num: res.data.needPay,
             label: "寰呬粯娆�",
           },
-          {
+          /* {
             num: res.data.needRenewal,
             label: "寰呯画璐�",
           },
           {
             num: "_",
             label: "娑堟伅涓績",
-          },
+          }, */
         ];
       });
     },
diff --git a/src/views/manageCenter/index.vue b/src/views/manageCenter/index.vue
index 62667e4..7a85ad9 100644
--- a/src/views/manageCenter/index.vue
+++ b/src/views/manageCenter/index.vue
@@ -872,6 +872,13 @@
         return item == route.permission;
       });
       if (val) {
+        if (route.path === "/search") {
+          const { href } = this.$router.resolve({
+            path: "/search",
+          });
+          window.open(href, "_blank");
+          return;
+        }
         this.$router.push(route.path);
       } else if (!userInfo.parentId) {
         this.$router.push(route.openPath);
@@ -1234,7 +1241,7 @@
 
       .item {
         display: flex;
-        justify-content: end;
+        justify-content: flex-end;
         align-items: center;
 
         .label {
diff --git a/src/views/personalCenter/components/AddBox.vue b/src/views/personalCenter/components/AddBox.vue
index 86a3bdb..c3433c8 100644
--- a/src/views/personalCenter/components/AddBox.vue
+++ b/src/views/personalCenter/components/AddBox.vue
@@ -571,7 +571,7 @@
     .btns {
       margin-top: 40px;
       display: flex;
-      justify-content: end;
+      justify-content: flex-end;
       text-align: center;
       line-height: 32px;
       font-size: 14px;
diff --git a/src/views/personalCenter/components/Content.vue b/src/views/personalCenter/components/Content.vue
index 3d65390..dd146b5 100644
--- a/src/views/personalCenter/components/Content.vue
+++ b/src/views/personalCenter/components/Content.vue
@@ -1,10 +1,12 @@
 <template>
   <div class="whiteContent Content">
-    <LeftMenu @mChange="mChange"> </LeftMenu>
-    <div class="right-content">
-      <SubAccount v-if="activeIndex == 4"></SubAccount>
-      <BasicInfo v-if="activeIndex == 3" @gotolist="gotolist"></BasicInfo>
-      <OrderMng v-if="activeIndex == 1"></OrderMng>
+    <div class="heart">
+      <LeftMenu @mChange="mChange"> </LeftMenu>
+      <div class="right-content">
+        <SubAccount v-if="activeIndex == 2"></SubAccount>
+        <BasicInfo v-if="activeIndex == 1" @gotolist="gotolist"></BasicInfo>
+        <OrderMng v-if="activeIndex == 0"></OrderMng>
+      </div>
     </div>
   </div>
 </template>
@@ -68,6 +70,11 @@
   margin: 30px auto;
   display: flex;
   justify-content: center;
+
+  .heart {
+    display: flex;
+  }
+
   .left-menu {
     margin-right: 24px;
   }
@@ -80,7 +87,7 @@
     min-height: 856px;
     box-sizing: border-box;
     background-color: #fff;
-    width: 1196px;
+    width: 1036px;
   }
 }
 </style>
\ No newline at end of file
diff --git a/src/views/personalCenter/components/JoinClusterBox.vue b/src/views/personalCenter/components/JoinClusterBox.vue
index 2b53c89..e763220 100644
--- a/src/views/personalCenter/components/JoinClusterBox.vue
+++ b/src/views/personalCenter/components/JoinClusterBox.vue
@@ -321,7 +321,7 @@
   .btns {
     margin-top: 20px;
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     text-align: center;
     line-height: 32px;
     font-size: 14px;
diff --git a/src/views/personalCenter/components/LeftMenu.vue b/src/views/personalCenter/components/LeftMenu.vue
index 2477fb0..2670f4f 100644
--- a/src/views/personalCenter/components/LeftMenu.vue
+++ b/src/views/personalCenter/components/LeftMenu.vue
@@ -31,9 +31,9 @@
   data() {
     return {
       menuList: [
-        { name: "璐︽埛鎬昏" },
+        // { name: "璐︽埛鎬昏" },
         { name: "璁㈠崟绠$悊" },
-        { name: "娑堟伅涓績" },
+        // { name: "娑堟伅涓績" },
         { name: "鍩烘湰璧勬枡" },
         { name: "瀛愯处鎴风鐞�" },
       ],
diff --git a/src/views/personalCenter/components/OrderMng.vue b/src/views/personalCenter/components/OrderMng.vue
index 93429a8..b8c9777 100644
--- a/src/views/personalCenter/components/OrderMng.vue
+++ b/src/views/personalCenter/components/OrderMng.vue
@@ -5,7 +5,11 @@
       <div class="left">
         <div class="id">
           璁㈠崟缂栧彿/浜у搧鍚嶇О
-          <el-input v-model="inputText" placeholder="璇疯緭鍏�"></el-input>
+          <el-input
+            style="width: 140px"
+            v-model="inputText"
+            placeholder="璇疯緭鍏�"
+          ></el-input>
         </div>
 
         <div class="cluster">
@@ -18,7 +22,25 @@
             start-placeholder="寮�濮嬫棩鏈�"
             end-placeholder="缁撴潫鏃ユ湡"
             :default-time="['00:00:00', '23:59:59']"
+            style="width: 212px"
           ></el-date-picker>
+        </div>
+
+        <div class="id">
+          鐘舵��
+          <el-select
+            class="selectStatus"
+            v-model="status"
+            @change="searchingBtn"
+          >
+            <el-option label="鍏ㄩ儴" :value="-10"></el-option>
+            <el-option label="宸插彇娑�" :value="-1"></el-option>
+            <el-option label="鏈笅鍗�" :value="0"></el-option>
+            <el-option label="寰呮敮浠�" :value="1"></el-option>
+            <el-option label="宸叉敮浠�" :value="2"></el-option>
+            <el-option label="瀹℃牳涓�" :value="11"></el-option>
+            <el-option label="宸查┏鍥�" :value="12"></el-option>
+          </el-select>
         </div>
       </div>
 
@@ -60,8 +82,15 @@
           prop="createTime"
           label="鍒涘缓鏃堕棿"
           show-overflow-tooltip
+          sortable
+          width="180"
         ></el-table-column>
-        <el-table-column prop="orderMoney" label="璁㈠崟閲戦"></el-table-column>
+        <el-table-column
+          prop="orderMoney"
+          label="璁㈠崟閲戦(鍏�)"
+          sortable
+          width="140"
+        ></el-table-column>
         <el-table-column label="鏀粯鏂瑰紡">
           <template slot-scope="scope">
             <div v-if="scope.row.payMethod == 0">绾夸笅姹囨</div>
@@ -69,11 +98,27 @@
             <div v-if="scope.row.payMethod == 2">寰俊</div>
           </template>
         </el-table-column>
-        <el-table-column prop="status" label="璁㈠崟鐘舵��"></el-table-column>
+        <el-table-column
+          prop="status"
+          label="璁㈠崟鐘舵��"
+          sortable
+        ></el-table-column>
 
-        <el-table-column label="鎿嶄綔">
+        <el-table-column label="鎿嶄綔" width="140">
           <template slot-scope="scope">
-            <span class="option" @click="showDetail(scope.row)">璁㈠崟璇︽儏</span>
+            <span class="option" @click="showDetail(scope.row)">璇︽儏</span>
+            <span
+              class="option"
+              v-if="scope.row.status === '寰呮敮浠�'"
+              @click="showPayBox(scope.row.id)"
+              >鏀粯</span
+            >
+            <span
+              class="option"
+              v-if="scope.row.status === '寰呮敮浠�'"
+              @click="cancel(scope.row.id)"
+              >鍙栨秷</span
+            >
           </template>
         </el-table-column>
       </el-table>
@@ -90,6 +135,12 @@
         ></el-pagination>
       </div>
     </div>
+
+    <ConfirmOrder
+      v-if="showOrder"
+      :orderId="orderId"
+      @close="closeBox"
+    ></ConfirmOrder>
   </div>
 
   <div class="order-detail" v-else>
@@ -237,20 +288,25 @@
 </template>
 
 <script>
-import { getOrders, getAuthFile } from "@/api/order";
+import { getOrders, getAuthFile, cancelOrder } from "@/api/order";
 import { getOrderById } from "@/api/product";
+import ConfirmOrder from "@/views/productDetail/components/ConfirmOrder";
 
 export default {
-  components: {},
+  components: {
+    ConfirmOrder,
+  },
   created() {
+    let type = sessionStorage.getItem("type");
+    if (type) {
+      this.status = +type;
+      sessionStorage.removeItem("type");
+    }
     this.searchingBtn();
   },
   data() {
     return {
-      searchTime: [
-        this.$moment().format("YYYY-MM-DD 00:00:00"),
-        this.$moment().format("YYYY-MM-DD HH:mm:ss"),
-      ], //鎼滅储鏃堕棿
+      searchTime: [], //鎼滅储鏃堕棿
       page: 1,
       size: 10, //鍒嗛〉鐩稿叧
       inputText: "", //杈撳叆妗嗗唴瀹�
@@ -277,6 +333,9 @@
       form: {}, //澶勭悊涓殑璁惧
       isShowDetail: false,
       showTable: false,
+      orderId: "",
+      showOrder: false,
+      status: -10,
     };
   },
   methods: {
@@ -291,7 +350,7 @@
         productBaseId: "0",
         orderName: "",
         orderType: "",
-        status: 0,
+        status: this.status,
       };
       getOrders(param)
         .then((res) => {
@@ -397,7 +456,7 @@
 
     clearSearch() {
       debugger;
-      this.searchTime = this.getDateInit();
+      this.searchTime = [];
       debugger;
       this.inputText = "";
       this.searchingBtn();
@@ -551,6 +610,30 @@
 
       window.URL.revokeObjectURL(Temp);
     },
+
+    showPayBox(id) {
+      this.showOrder = true;
+      this.orderId = id;
+    },
+
+    cancel(id) {
+      cancelOrder("/saas/api-s/saasOrder/cancel/" + id).then((res) => {
+        if (res && res.success) {
+          this.$notify({
+            type: "success",
+            message: "璁㈠崟鍙栨秷鎴愬姛",
+            duration: 2500,
+            offset: 57,
+          });
+          this.searchingBtn();
+        }
+      });
+    },
+
+    closeBox() {
+      this.showOrder = false;
+      this.searchingBtn();
+    },
   },
   mounted() {},
 };
@@ -586,7 +669,7 @@
     color: #fff;
     background: #0065ff;
     border-radius: 3px;
-    margin-right: 20px;
+    margin-right: 10px;
   }
   .right {
     display: flex;
@@ -602,7 +685,7 @@
     color: #fff;
     align-items: center;
     justify-content: center;
-    margin-left: 195px;
+    margin-left: 20px;
     cursor: pointer;
   }
   .resetBtn {
@@ -663,6 +746,12 @@
       }
     }
 
+    .selectStatus {
+      margin: 0 10px;
+      margin-right: 30px;
+      width: 100px;
+    }
+
     .el-input ::v-deep {
       width: 200px;
       margin-left: 10px;
diff --git a/src/views/personalCenter/components/QuitClusterBox.vue b/src/views/personalCenter/components/QuitClusterBox.vue
index 3c7b8c3..f67fbd7 100644
--- a/src/views/personalCenter/components/QuitClusterBox.vue
+++ b/src/views/personalCenter/components/QuitClusterBox.vue
@@ -110,7 +110,7 @@
   .btns {
     margin-top: 20px;
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     text-align: center;
     line-height: 32px;
     font-size: 14px;
diff --git a/src/views/personalCenter/components/SubAccount.vue b/src/views/personalCenter/components/SubAccount.vue
index dc001bc..2de1e99 100644
--- a/src/views/personalCenter/components/SubAccount.vue
+++ b/src/views/personalCenter/components/SubAccount.vue
@@ -10,7 +10,11 @@
 
         <div class="cluster">
           鎺堟潈鏃堕暱
-          <el-select v-model="timeLength" placeholder="璇烽�夋嫨">
+          <el-select
+            @change="findUserList"
+            v-model="timeLength"
+            placeholder="璇烽�夋嫨"
+          >
             <el-option
               v-for="item in durationArr"
               :key="item.value"
@@ -33,10 +37,10 @@
         <span class="iconfont">&#xe614;</span>
         <span>娣诲姞瀛愯处鍙�</span>
       </div>
-      <div class="button export" @click="isShowRelate = true">
+      <!-- <div class="button export" @click="isShowRelate = true">
         <span class="iconfont">&#xe614;</span>
         <span>鍏宠仈瀛愯处鍙�</span>
-      </div>
+      </div> -->
     </div>
 
     <div class="table-area">
@@ -52,14 +56,19 @@
             scope.$index + 1 + (page - 1) * size
           }}</template>
         </el-table-column>
-        <el-table-column
+        <!--  <el-table-column
           prop="trueName"
           label="濮撳悕"
           show-overflow-tooltip
-        ></el-table-column>
+        ></el-table-column> -->
         <el-table-column
           prop="username"
           label="鐢ㄦ埛鍚�"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="phoneNum"
+          label="鎵嬫満鍙�"
           show-overflow-tooltip
         ></el-table-column>
         <el-table-column prop="userType" label="鐢ㄦ埛绫诲瀷">
@@ -291,15 +300,15 @@
       durationArr: [
         {
           value: 1,
-          label: "涓�骞�",
+          label: "1骞�",
         },
         {
           value: 2,
-          label: "涓ゅ勾",
+          label: "2骞�",
         },
         {
           value: 3,
-          label: "涓夊勾",
+          label: "3骞�",
         },
       ], //鎵�灞為泦缇や笅鎷夋
       timeLength: null, //閫変腑鐨勬巿鏉冩椂闀�
@@ -318,7 +327,7 @@
         isChangePwd: false,
         industryId: "",
         address: [],
-        authDuration: "",
+        authDuration: 1,
         areaId: "",
         provinceId: "",
         menuIds: [],
@@ -401,7 +410,7 @@
         industryId: "",
         areaId: "",
         provinceId: "",
-        authDuration: "",
+        authDuration: 1,
       };
       this.$nextTick(() => {
         this.$refs.treeMenus.setCheckedKeys([]);
@@ -436,6 +445,15 @@
             menuIds: this.ruleForm.menuIds,
             dataIds: this.ruleForm.dataIds,
           };
+
+          if (typeof json.areaId === "string") {
+            delete json.areaId;
+          }
+
+          if (typeof json.authDuration === "string") {
+            delete json.authDuration;
+          }
+
           saveSubUser(json)
             .then((res) => {
               if (res.success) {
@@ -460,6 +478,7 @@
         inputText: this.inputText,
         page: this.page,
         size: this.size,
+        authDuration: this.timeLength,
       })
         .then((res) => {
           if (res.success) {
diff --git a/src/views/product/components/productCard.vue b/src/views/product/components/productCard.vue
index 8d69278..6645526 100644
--- a/src/views/product/components/productCard.vue
+++ b/src/views/product/components/productCard.vue
@@ -45,7 +45,7 @@
       this.$router.push({
         path: "/productDetail",
         query: {
-          name: this.data.productName,
+          id: this.data.id,
         },
       });
     },
@@ -92,12 +92,13 @@
     display: flex;
 
     img {
-      margin: 0 10px;
+      margin-left: 10px;
       width: 60px;
       height: 60px;
     }
 
     .right {
+      margin-left: 10px;
       .name {
         margin-bottom: 10px;
         font-size: 16px;
diff --git a/src/views/productDetail/components/ConfirmOrder.vue b/src/views/productDetail/components/ConfirmOrder.vue
index 752336f..7dbcee9 100644
--- a/src/views/productDetail/components/ConfirmOrder.vue
+++ b/src/views/productDetail/components/ConfirmOrder.vue
@@ -17,9 +17,10 @@
           <el-table-column
             prop="productName"
             label="浜у搧鍚嶇О"
+            width="200"
           ></el-table-column>
 
-          <el-table-column label="閰嶇疆璇︽儏">
+          <el-table-column label="閰嶇疆璇︽儏" width="250">
             <template slot-scope="scope">
               <div style="text-align: left">
                 <p v-if="scope.row.moduleNames.length > 0">
@@ -55,7 +56,7 @@
             </template>
           </el-table-column>
           <el-table-column prop="devCount" label="璐拱鏁伴噺"></el-table-column>
-          <el-table-column pro="devIdList" label="缁戝畾璁惧">
+          <el-table-column pro="devIdList" label="缁戝畾璁惧" width="250">
             <template slot-scope="scope">
               <div>
                 <p v-for="item in scope.row.devIdList" :key="item">
@@ -65,7 +66,11 @@
             </template>
           </el-table-column>
           <el-table-column label="浼樻儬" prop="discount"></el-table-column>
-          <el-table-column label="灏忚" prop="productPrice"></el-table-column>
+          <el-table-column label="灏忚">
+            <template>
+              {{ orderInfo.orderMoney }}
+            </template>
+          </el-table-column>
         </el-table>
       </div>
       <div class="title">鏀粯鏂瑰紡</div>
@@ -100,7 +105,7 @@
 
       <div class="total">
         <div class="money">
-          搴斾粯娆�<span class="number">{{ sum }}鍏�</span>
+          搴斾粯娆�<span class="number">{{ orderInfo.orderMoney }}鍏�</span>
         </div>
 
         <div class="policy">
@@ -134,7 +139,11 @@
       <OffpayInstruct
         v-if="showOffpayInstruct"
         @close="showOffpayInstruct = false"
-        :offerData="{ username: username, sum: sum, orderId: orderId }"
+        :offerData="{
+          username: username,
+          sum: orderInfo.orderMoney,
+          orderId: orderId,
+        }"
         @confirm="confirmOrder"
       ></OffpayInstruct>
       <UploadBox
@@ -142,6 +151,7 @@
         @close="showUploadBox = false"
         @back="back"
         v-if="showUploadBox"
+        @closeAll="closeAll"
       >
       </UploadBox>
     </div>
@@ -178,21 +188,14 @@
       showUploadBox: false,
     };
   },
-  computed: {
-    sum() {
-      let sum = 0;
-      sum = this.orders.reduce((prev, next) => prev + next.productPrice, 0);
-      return this.numeral(sum).format("0,0.00");
-    },
-  },
   mounted() {
     this.getResumeList();
     this.username = JSON.parse(sessionStorage.getItem("userInfo")).username;
   },
   methods: {
     assureOnlinePay() {
-      this.onlinePayVisible = false;
-      this.$router.replace("/Layout/ManageOrder");
+      this.$emit("close");
+      this.$router.replace("/personalCenter?id=0");
     },
     getResumeList() {
       getOrderById(this.orderId).then((res) => {
@@ -264,6 +267,10 @@
       }
     },
     close() {
+      this.$emit("close");
+    },
+    closeAll() {
+      this.showUploadBox = false;
       this.$emit("close");
     },
     confirmOrder() {
@@ -380,7 +387,7 @@
       .policy {
         margin-top: 10px;
         display: flex;
-        justify-content: end;
+        justify-content: flex-end;
         align-items: center;
         font-size: 14px;
 
@@ -400,7 +407,7 @@
     right: 20px;
     bottom: 20px;
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     text-align: center;
     line-height: 40px;
 
diff --git a/src/views/productDetail/components/OffpayInstruct.vue b/src/views/productDetail/components/OffpayInstruct.vue
index 8584905..bb4e718 100644
--- a/src/views/productDetail/components/OffpayInstruct.vue
+++ b/src/views/productDetail/components/OffpayInstruct.vue
@@ -142,7 +142,7 @@
     right: 20px;
     bottom: 20px;
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     text-align: center;
     line-height: 40px;
 
diff --git a/src/views/productDetail/components/PayCard.vue b/src/views/productDetail/components/PayCard.vue
index 18a7ef1..b4d8c35 100644
--- a/src/views/productDetail/components/PayCard.vue
+++ b/src/views/productDetail/components/PayCard.vue
@@ -19,22 +19,31 @@
       <div class="title">
         <div class="name">{{ data.productName }}</div>
         <div class="tagList">
-          <span class="tag" v-for="(name, index) in labels" :key="index">{{
+          <!-- <span class="tag" v-for="(name, index) in labels" :key="index">{{
             name
-          }}</span>
+          }}</span> -->
+          <span class="tag red" v-if="data.productType == 1">杞欢</span>
+          <span class="tag orange" v-if="data.productType == 4">搴旂敤</span>
+          <span class="tag lightBlue" v-if="data.productType == 3">SDK</span>
+          <span class="tag" v-if="data.productType == 2">杞‖涓�浣�</span>
+          <span class="tag blue" v-if="data.productType == 5">浜у搧瀵嗛挜</span>
         </div>
       </div>
       <div class="des">{{ data.description }}</div>
       <div class="typeVersion">
         <div class="label">鍨嬪彿:</div>
-        <div class="typeVersionContent">{{ data.productModel }}</div>
+        <div class="typeVersionContent">
+          {{ data.productModel ? data.productModel : "-" }}
+        </div>
         <div class="label">鐗堟湰:</div>
-        <div class="typeVersionContent">{{ data.productVersion }}</div>
+        <div class="typeVersionContent">
+          {{ data.productVersion ? data.productVersion : "-" }}
+        </div>
       </div>
 
       <div class="price">
         <div class="label">浠锋牸</div>
-        <div class="number">锟{ data.priceBase }}.00</div>
+        <div class="number">锟{ this.totalMoney }}.00</div>
       </div>
 
       <div class="row">
@@ -299,9 +308,9 @@
       </div>
 
       <div class="btns">
-        <div class="button addCar">鍔犲叆璐墿杞�</div>
+        <!-- <div class="button addCar">鍔犲叆璐墿杞�</div> -->
         <div class="button pay" @click="confirmNow">
-          {{ data.priceBase ? "绔嬪嵆璐拱" : "鍏嶈垂璇曠敤" }}
+          {{ totalMoney ? "绔嬪嵆璐拱" : "鍏嶈垂璇曠敤" }}
         </div>
       </div>
     </div>
@@ -372,6 +381,28 @@
       showOrder: false,
       orderId: "",
     };
+  },
+  computed: {
+    totalMoney() {
+      let modulesPrice = 0;
+      this.cartItem.moduleIds.forEach((id) => {
+        this.data.modulePriceSet.forEach((module) => {
+          if (module.moduleId === id) {
+            modulesPrice += module.modulePrice;
+          }
+        });
+      });
+
+      let priceSingle =
+        this.data.priceBase +
+        this.data.authPrice * this.cartItem.authCount +
+        this.data.chUnitPrice * this.cartItem.chCount +
+        modulesPrice;
+
+      console.log(this.data);
+
+      return priceSingle * this.cartItem.devCount * this.cartItem.timeLength;
+    },
   },
   methods: {
     getInfo() {
@@ -453,8 +484,6 @@
       this.cartItem.timeLength = year;
     },
     selectModel(index) {
-      console.log("-----");
-      console.log(this.isSmartCalDot);
       if (this.isSmartCalDot) {
         return;
       }
@@ -534,7 +563,7 @@
         },
       ];
       resumeOrder({
-        orderMoney: this.numeral(this.sum).value(),
+        orderMoney: this.numeral(this.totalMoney).value(),
         payMethod: 0,
         products,
         status: 0,
@@ -543,13 +572,13 @@
         if (res.success) {
           this.orderId = res.data.orderId;
 
-          if (this.data.priceBase == 0) {
+          if (this.totalMoney == 0) {
             resumePay({ orderId: this.orderId, payMethod: 5 }).then((res) => {
               if (res.success) {
                 this.$router.push({
                   path: "/personalCenter",
                   query: {
-                    id: 1,
+                    id: 0,
                   },
                 });
                 this.$notify({
@@ -630,6 +659,26 @@
           padding: 2px 5px;
           border: 1px solid #ff5033;
           color: #ff5033;
+
+          &.red {
+            color: #ff4f32;
+            border-color: #ff4f32;
+          }
+
+          &.orange {
+            color: #ff9500;
+            border-color: #ff9500;
+          }
+
+          &.lightBlue {
+            color: #00bee7;
+            border-color: #00bee7;
+          }
+
+          &.blue {
+            color: #0064ff;
+            border-color: #0064ff;
+          }
         }
       }
     }
@@ -770,6 +819,10 @@
         .el-tag {
           margin-top: 0;
         }
+
+        .el-select__tags-text {
+          color: #999;
+        }
       }
     }
 
diff --git a/src/views/productDetail/components/UploadBox.vue b/src/views/productDetail/components/UploadBox.vue
index febde84..44b2ab0 100644
--- a/src/views/productDetail/components/UploadBox.vue
+++ b/src/views/productDetail/components/UploadBox.vue
@@ -65,7 +65,7 @@
             <el-image
               class="preview"
               v-if="item.appendix"
-              :src="`http://${item.appendix}`"
+              :src="`/httpImage/${item.appendix}`"
               fit="contain"
             ></el-image>
             <el-upload
@@ -208,10 +208,16 @@
                   duration: 2500,
                   offset: 57,
                 });
+
+                if (this.$route.path === "/personalCenter") {
+                  this.$emit("closeAll");
+                  return;
+                }
+
                 this.$router.push({
                   path: "/personalCenter",
                   query: {
-                    id: 1,
+                    id: 0,
                   },
                 });
               }
@@ -288,7 +294,7 @@
     right: 20px;
     bottom: 20px;
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     text-align: center;
     line-height: 40px;
 
diff --git a/src/views/productDetail/index.vue b/src/views/productDetail/index.vue
index bdc9586..654af17 100644
--- a/src/views/productDetail/index.vue
+++ b/src/views/productDetail/index.vue
@@ -27,7 +27,7 @@
 import PayCard from "@/views/productDetail/components/PayCard";
 import Footer from "@/components/Footer";
 import Function from "@/views/productDetail/components/Function";
-import { findAllCenterProduct } from "@/api/product";
+import { getProductById } from "@/api/product";
 export default {
   created() {
     this.getProduct();
@@ -49,16 +49,10 @@
   methods: {
     getProduct() {
       let param = {
-        page: 1,
-        size: 1,
-        inputText: this.$route.query.name,
-        archType: "",
-        gpuType: "",
-        publishStatus: 1,
-        productType: 0,
+        id: this.$route.query.id,
       };
-      findAllCenterProduct(param).then((res) => {
-        this.data.data = res.data.list[0];
+      getProductById(param).then((res) => {
+        this.data.data = res.data;
         this.showData = true;
       });
     },
diff --git a/src/views/register/components/SelectType.vue b/src/views/register/components/SelectType.vue
index 82b4825..0e63566 100644
--- a/src/views/register/components/SelectType.vue
+++ b/src/views/register/components/SelectType.vue
@@ -177,6 +177,14 @@
           });
           this.info.provinceId = this.info.address[0];
           this.info.areaId = this.info.address[1];
+          for (const key in this.info) {
+            if (this.info[key] === "") {
+              delete this.info[key];
+            }
+          }
+          if (this.info.userType == 2) {
+            this.info.trueName = this.info.companyName;
+          }
           entireUserInfo(this.info)
             .then(() => {
               this.loading.close();
@@ -193,11 +201,6 @@
             })
             .catch((err) => {
               this.loading.close();
-              //鍚庨棬
-              this.$router.push({
-                path: "/register/success",
-                query: { info: this.userInfo },
-              });
               this.$notify({
                 type: "error",
                 message: err.msg,
@@ -419,5 +422,9 @@
   .el-scrollbar__view {
     overflow: hidden;
   }
+
+  .el-cascader-node__postfix::before {
+    display: none !important;
+  }
 }
 </style>
\ No newline at end of file
diff --git a/src/views/register/index.vue b/src/views/register/index.vue
index a4dd165..34be8f8 100644
--- a/src/views/register/index.vue
+++ b/src/views/register/index.vue
@@ -78,6 +78,16 @@
   background-size: 100% 100%;
   font-size: 14px;
 
+  .Header ::v-deep {
+    .right .link {
+      color: #3d3d3d;
+
+      &:hover {
+        color: #0065ff;
+      }
+    }
+  }
+
   .registerHeart {
     margin: 0 auto;
     width: 1280px;
diff --git a/src/views/search/components/Banner.vue b/src/views/search/components/Banner.vue
index fffd112..1065dfb 100644
--- a/src/views/search/components/Banner.vue
+++ b/src/views/search/components/Banner.vue
@@ -19,7 +19,10 @@
         userId: JSON.parse(sessionStorage.getItem("userInfo")).id,
         menuId: "89098e9f-baaa-4a69-9e9b-26444dd69ff6",
       });
-      this.$router.push("/search");
+      const { href } = this.$router.resolve({
+        path: "/search",
+      });
+      window.open(href, "_blank");
     },
   },
 };
diff --git a/src/views/search/index.vue b/src/views/search/index.vue
index 756f2f8..e252b64 100644
--- a/src/views/search/index.vue
+++ b/src/views/search/index.vue
@@ -132,7 +132,6 @@
   height: calc(100vh - 130px);
 }
 .left-tree-box .el-tabs--border-card .el-tabs__header {
-  display: block;
   margin-bottom: 10px;
 }
 .column {
diff --git a/src/views/trialCenter/components/SdkItem.vue b/src/views/trialCenter/components/SdkItem.vue
index 9bda830..4e842d6 100644
--- a/src/views/trialCenter/components/SdkItem.vue
+++ b/src/views/trialCenter/components/SdkItem.vue
@@ -7,7 +7,7 @@
     <div class="des limitRow2">
       {{ sdk.description }}
     </div>
-    <div class="button" @click="buyProduct(sdk.productName)">绔嬪嵆璇曠敤</div>
+    <div class="button" @click="buyProduct(sdk.id)">绔嬪嵆璇曠敤</div>
   </div>
 </template>
 
@@ -17,11 +17,11 @@
     sdk: {},
   },
   methods: {
-    buyProduct(productName) {
+    buyProduct(id) {
       this.$router.push({
         path: "/productDetail",
         query: {
-          name: productName,
+          id: id,
         },
       });
     },
diff --git a/vue.config.js b/vue.config.js
index e533757..ef308c3 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -14,8 +14,13 @@
     proxy: {
       "/api": {
         // target: "http://192.168.20.10:7004",
+<<<<<<< HEAD
         // target: "http://192.168.20.174:7070",
         target: "http://192.168.20.115:7070",
+=======
+        target: "http://192.168.20.115:7070",
+        // target: "http://192.168.20.235:7070",
+>>>>>>> bug淇
         //  target: "http://192.168.20.117:7080",
         // secure: false,
         changeOrigin: true,
@@ -26,6 +31,10 @@
         // target: "http://222.128.87.51:7003",
         // target: "http://192.168.20.10:7009",
         // target: "http://192.168.20.189:7009",
+<<<<<<< HEAD
+=======
+        // target: "http://192.168.20.235:7070",
+>>>>>>> bug淇
         target: "http://192.168.20.115:7070",
 
         changeOrigin: true, //寮�鍚唬鐞�

--
Gitblit v1.8.0