From 002bf14a27efa3c491179fe58b7184dcb48ad298 Mon Sep 17 00:00:00 2001
From: donghao <donghao@supervision.ltd>
Date: Wed, 12 Jun 2024 10:21:55 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20mock=E7=9B=B8=E5=85=B3=E8=B0=83?=
 =?UTF-8?q?=E6=95=B4=E8=A1=A5=E5=85=85=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 index.html                                    |  4 +--
 mock/alarm.ts                                 |  4 +--
 mock/modelList.ts                             | 32 +++++++++++++++++++
 mock/pools/deviceSceneData.ts                 |  2 +-
 mock/screenData.ts                            | 18 -----------
 package.json                                  |  3 +-
 src/api/list.ts                               | 11 +++----
 .../dataScreen/views/modelList/modelList.scss |  4 +--
 .../dataScreen/views/modelList/modelList.vue  | 32 +++++++++++++------
 src/router/modules/deviceScene.ts             |  4 +--
 src/views/device/scene.scss                   |  1 +
 src/views/modelList/index.vue                 |  6 ++--
 12 files changed, 73 insertions(+), 48 deletions(-)
 create mode 100644 mock/modelList.ts

diff --git a/index.html b/index.html
index 92280e0..90ba2dc 100644
--- a/index.html
+++ b/index.html
@@ -2,7 +2,7 @@
  * @Author: donghao donghao@supervision.ltd
  * @Date: 2024-01-12 14:35:28
  * @LastEditors: donghao donghao@supervision.ltd
- * @LastEditTime: 2024-03-21 17:55:12
+ * @LastEditTime: 2024-03-25 11:16:58
  * @FilePath: \General-AI-Platform-Web-Client\index.html
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 -->
@@ -21,7 +21,7 @@
     <!-- update 2024-01-21 16:41 -->
     <link
       rel="stylesheet"
-      href="//at.alicdn.com/t/c/font_4412653_eop55bznk7u.css"
+      href="//at.alicdn.com/t/c/font_4412653_qjjikxo6f6p.css"
     />
 
     <script src="https://threejs.org/build/three.js"></script>
diff --git a/mock/alarm.ts b/mock/alarm.ts
index 10be7c4..bd8be7e 100644
--- a/mock/alarm.ts
+++ b/mock/alarm.ts
@@ -2,9 +2,9 @@
  * @Author: donghao donghao@supervision.ltd
  * @Date: 2024-01-17 13:54:43
  * @LastEditors: donghao donghao@supervision.ltd
- * @LastEditTime: 2024-02-04 16:45:14
+ * @LastEditTime: 2024-04-16 09:29:01
  * @FilePath: \General-AI-Platform-Web-Client\mock\alarm.ts
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ * @Description: mock的告警数据
  */
 import { MockMethod } from "vite-plugin-mock";
 import { alarmListData } from "./pools/alarmData";
diff --git a/mock/modelList.ts b/mock/modelList.ts
new file mode 100644
index 0000000..17dfc13
--- /dev/null
+++ b/mock/modelList.ts
@@ -0,0 +1,32 @@
+/*
+ * @Author: donghao donghao@supervision.ltd
+ * @Date: 2024-01-17 13:54:43
+ * @LastEditors: donghao donghao@supervision.ltd
+ * @LastEditTime: 2024-04-16 09:31:07
+ * @FilePath: \General-AI-Platform-Web-Client\mock\alarm.ts
+ * @Description: mock的告警数据
+ */
+import { MockMethod } from "vite-plugin-mock";
+import { modelListData } from "./pools/modelListData";
+import { fetchCurrPageByList } from "./utils/apiMock";
+
+export default [
+  {
+    url: "/model/list",
+    method: "post",
+    response: req => {
+      const { page, pageSize } = req.body;
+      // console.log(req);
+      return {
+        ...fetchCurrPageByList({
+          ...modelListData,
+          data: {
+            ...modelListData.data,
+            page,
+            pageSize: pageSize || 10
+          }
+        })
+      };
+    }
+  }
+] as MockMethod[];
diff --git a/mock/pools/deviceSceneData.ts b/mock/pools/deviceSceneData.ts
index 533f387..c012e8b 100644
--- a/mock/pools/deviceSceneData.ts
+++ b/mock/pools/deviceSceneData.ts
@@ -42,7 +42,7 @@ function fetchList(): Record<string, any>[] {
       createTime: generateRandomDateTimeByYear(2023),
       updateTime: "2023-10-17T02:35:41.14308Z",
       name: "GigEPRO_gmcam_01_00" + (i + 1),
-      alarmList: fetchSceneItemsList({ maxCount: 3 })
+      alarmList: fetchSceneItemsList({ maxCount: 4 })
     });
   }
   return currList;
diff --git a/mock/screenData.ts b/mock/screenData.ts
index 4cd378a..d9f347d 100644
--- a/mock/screenData.ts
+++ b/mock/screenData.ts
@@ -74,23 +74,5 @@ export default [
       // console.log(req);
       return fetchMockSuccessFullByOther({ data: finalServerList });
     }
-  },
-  {
-    url: "/getModelBoxList",
-    method: "post",
-    response: req => {
-      const { page, pageSize } = req.body;
-      // console.log(req);
-      return {
-        ...fetchCurrPageByList({
-          ...modelListData,
-          data: {
-            ...modelListData.data,
-            page,
-            pageSize: pageSize || 10
-          }
-        })
-      };
-    }
   }
 ] as MockMethod[];
diff --git a/package.json b/package.json
index c47060f..7816053 100644
--- a/package.json
+++ b/package.json
@@ -60,8 +60,7 @@
     "vue-router": "^4.2.2",
     "vue-types": "^5.1.0",
     "vue-waterfall-plugin-next": "^2.2.1",
-    "vue3-scale-box": "^0.1.9",
-    "安装插件": "link://安装插件"
+    "vue3-scale-box": "^0.1.9"
   },
   "devDependencies": {
     "@commitlint/cli": "^17.6.6",
diff --git a/src/api/list.ts b/src/api/list.ts
index 5822da0..d206dd2 100644
--- a/src/api/list.ts
+++ b/src/api/list.ts
@@ -2,7 +2,7 @@
  * @Author: donghao donghao@supervision.ltd
  * @Date: 2024-01-15 14:45:56
  * @LastEditors: donghao donghao@supervision.ltd
- * @LastEditTime: 2024-03-20 14:26:49
+ * @LastEditTime: 2024-04-16 09:40:18
  * @FilePath: \General-AI-Platform-Web-Client\src\api\list.ts
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
@@ -33,12 +33,11 @@ export const updateServerBoxList = (data?: object) => {
   return http.request<Result>("post", "/updateServerBoxList", { data });
 };
 
-export const getModelList = (data?: object) => {
-  return http.request<Result>("post", "/getModelList", { data });
+export const postModelList = (data?: object) => {
+  return http.request<Result>("post", "/model/list", { data });
 };
-
-export const getModelBoxList = (data?: object) => {
-  return http.request<Result>("post", "/getModelBoxList", { data });
+export const getModelList = (data?: object) => {
+  return http.request<Result>("post", "getModelList", { data });
 };
 
 /** 告警列表 */
diff --git a/src/pages/dataScreen/views/modelList/modelList.scss b/src/pages/dataScreen/views/modelList/modelList.scss
index 541c24e..c567070 100644
--- a/src/pages/dataScreen/views/modelList/modelList.scss
+++ b/src/pages/dataScreen/views/modelList/modelList.scss
@@ -1,5 +1,5 @@
-.modelList {
-  padding: 32px;
+.ds_modelList {
+  padding: 0 32px;
   .banner_side {
     width: 29px;
     height: 870px;
diff --git a/src/pages/dataScreen/views/modelList/modelList.vue b/src/pages/dataScreen/views/modelList/modelList.vue
index 43c3c22..090207e 100644
--- a/src/pages/dataScreen/views/modelList/modelList.vue
+++ b/src/pages/dataScreen/views/modelList/modelList.vue
@@ -1,6 +1,6 @@
 <script setup lang="ts">
 // import { getList } from "@/api/list";
-import { getModelBoxList } from "@/api/list";
+import { postModelList } from "@/api/list";
 import error from "@/assets/dataScreen/modelList/error.png";
 import loading from "@/assets/dataScreen/modelList/loading.png";
 import { ElLoading } from "element-plus";
@@ -56,12 +56,13 @@ const options = reactive({
   // 是否懒加载
   lazyload: true
 });
-
+const pageTotal = ref(0);
 const page = ref(1);
 const list = ref([]);
-const pageSize = ref(20);
+const pageSize = ref(100);
 const loadingInstance = ref();
 const modelDialogVisible = ref(false);
+const isFinish = ref(false);
 const INITIAL_DATA = {
   index: null,
   industry: "",
@@ -78,16 +79,27 @@ const modelInfo = ref({ ...INITIAL_DATA });
 
 /** 加载更多 */
 function handleLoadMore() {
+  console.log(list.value.length, "handleLoadMore", pageTotal.value);
+  isFinish.value = pageTotal.value <= list.value.length;
+  if (!isFinish.value) {
+    loadList();
+  } else {
+    console.log("加载完成");
+  }
+}
+
+function loadList() {
   loadingInstance.value = ElLoading.service({
     target: ".content",
     background: "transparent",
     text: "加载中"
   });
-  getModelBoxList({
+  postModelList({
     page: page.value,
     pageSize: pageSize.value
   }).then(res => {
     console.log(res);
+    pageTotal.value = res.data?.total || 0;
     setTimeout(() => {
       list.value.push(...res.data.list);
       page.value += 1;
@@ -110,18 +122,18 @@ const handleBoxDetail = product => {
 };
 
 onMounted(() => {
-  handleLoadMore();
+  loadList();
 });
 </script>
 
 <template>
-  <div class="flex justify-between modelList">
+  <div class="flex justify-between ds_modelList">
     <div class="banner_side" />
     <div class="model-list-mid">
       <div class="model-list-title ff1">
-        苏胜天大模型衍生模型库<span>{{ 256 }}</span>
+        苏胜天大模型衍生模型库<span>{{ pageTotal }}</span>
       </div>
-      <div class="model-list-box w-full">
+      <div class="w-full model-list-box">
         <el-scrollbar height="810px" class="content">
           <Waterfall :list="list" v-bind="options">
             <template #item="{ item }">
@@ -167,7 +179,7 @@ onMounted(() => {
           模型版本:<span>{{ modelInfo.version }}</span
           >适用行业:<span>{{ modelInfo.industry }}</span>
         </div>
-        <div class="modelListDialogContent mb-3">
+        <div class="mb-3 modelListDialogContent">
           模型状态:<span class="modelListState">{{
             modelInfo.state === "在线" ? "使用中" : "未使用"
           }}</span>
@@ -181,6 +193,6 @@ onMounted(() => {
   </div>
 </template>
 
-<style lang="scss" scoped>
+<style lang="scss">
 @import "./modelList.scss";
 </style>
diff --git a/src/router/modules/deviceScene.ts b/src/router/modules/deviceScene.ts
index 80abf85..d009673 100644
--- a/src/router/modules/deviceScene.ts
+++ b/src/router/modules/deviceScene.ts
@@ -2,7 +2,7 @@
  * @Author: donghao donghao@supervision.ltd
  * @Date: 2024-03-19 15:44:27
  * @LastEditors: donghao donghao@supervision.ltd
- * @LastEditTime: 2024-03-20 15:50:20
+ * @LastEditTime: 2024-03-25 09:42:50
  * @FilePath: \General-AI-Platform-Web-Client\src\router\modules\deviceScene.ts
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
@@ -12,7 +12,7 @@ export default {
   path: "/deviceScene",
   meta: {
     title: $t("menus.hsdeviceScene"),
-    icon: "icon-shebeiliebiao-weixuan",
+    icon: "icon-shebeixianchangweixuanzhong",
     // showLink: false,
     bodyClass: "deviceScene_page",
     rank: 7,
diff --git a/src/views/device/scene.scss b/src/views/device/scene.scss
index 2ff3ec5..12d1535 100644
--- a/src/views/device/scene.scss
+++ b/src/views/device/scene.scss
@@ -5,6 +5,7 @@
         background-color: white;
         box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.1);
         border-radius: 8px;
+        height: calc(100vh - 160px);
       }
       .left {
         width: 65.52%;
diff --git a/src/views/modelList/index.vue b/src/views/modelList/index.vue
index 7c98939..6f7f3c9 100644
--- a/src/views/modelList/index.vue
+++ b/src/views/modelList/index.vue
@@ -5,7 +5,7 @@ import { onMounted, ref } from "vue";
 defineOptions({
   name: "ServerList"
 });
-
+// TODO 0416 卡片分页封装
 const svg = `
         <path class="path" d="
           M 30 15
@@ -35,9 +35,9 @@ const onCurrentChange = (current: number) => {
 };
 const getCardListData = async () => {
   try {
-    const { data } = await getModelList();
+    const { data } = await getModelList({});
     deviceList.value = data.list;
-    console.log(data.list);
+    console.log(data, "resData", data.list);
     pagination.value = {
       ...pagination.value,
       total: data.list.length