From c2ddf632c8e642813c89e501d402f06c57369a22 Mon Sep 17 00:00:00 2001
From: QYF-GitLab1 <1940665526@qq.com>
Date: 星期一, 03 三月 2025 16:22:18 +0800
Subject: [PATCH] 国际化配置

---
 src/main.js                              |   26 ++-
 package.json                             |    1 
 src/views/model/index.vue                |    7 
 src/views/model/children/landerModel.vue |   49 ++++++
 src/views/model/children/roverModel.vue  |  228 +++++++++++++++++++++++++++++++
 src/App.vue                              |   43 +----
 src/styles/global.less                   |    8 
 7 files changed, 304 insertions(+), 58 deletions(-)

diff --git a/package.json b/package.json
index 7b6811f..3696301 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,6 @@
   "private": true,
   "version": "0.0.0",
   "type": "module",
-  "main": "index.js",
   "license": "MIT",
   "scripts": {
     "dev": "vite",
diff --git a/src/App.vue b/src/App.vue
index 3c352f4..a03c67c 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,52 +1,31 @@
 <script setup lang="ts">
-import { ref } from 'vue';
-import Header from './layout/Header.vue';
-import TreeMenu from './components/TreeMenu.vue';
+import { ref } from "vue";
+import Header from "./layout/Header.vue";
+import TreeMenu from "./components/TreeMenu.vue";
+import { ElConfigProvider } from "element-plus";
+import zhCn from "element-plus/es/locale/lang/zh-cn";
 
-const menuItem = ref('/')
+const menuItem = ref("/");
 
 const handMenu = (key: string) => {
   menuItem.value = key;
 };
-
 </script>
 
 <template>
-  <div class="common-layout">
-    <el-container>
+  <el-config-provider :locale="zhCn">
+    <el-container class="common-layout">
       <el-header height="60px">
-        <Header @selectMenu="handMenu"/>
+        <Header @selectMenu="handMenu" />
       </el-header>
       <el-container>
         <el-aside width="240px">
-          <TreeMenu :menuItem="menuItem"/>
+          <TreeMenu :menuItem="menuItem" />
         </el-aside>
         <el-main>
           <RouterView />
         </el-main>
       </el-container>
     </el-container>
-  </div>
+  </el-config-provider>
 </template>
-
-<style lang="less">
-.common-layout {
-  height: 100vh;
-  .el-container {
-    height: 100%;
-  }
-  .el-header {
-    background-color: #fff;
-    color: #333;
-    line-height: 60px;
-    border-bottom: 1px solid #eee;
-  }
-  .el-aside {
-    background-color: #fff;
-    border-right: 1px solid #eee;
-  }
-  .el-main {
-    background-color: #f5f7fa;
-  }
-}
-</style>
diff --git a/src/main.js b/src/main.js
index 2f978f6..cb6d167 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,20 +1,22 @@
-import { createApp } from 'vue'
-import App from './App.vue'
+import { createApp } from "vue";
+import App from "./App.vue";
 // 瀹屾暣寮曞叆 Element Plus
-import ElementPlus from 'element-plus'
-import 'element-plus/dist/index.css'
-import * as ElementPlusIconsVue from '@element-plus/icons-vue'
-import router from './router'
-import './styles/global.less'
+import ElementPlus from "element-plus";
+import * as ElementPlusIconsVue from "@element-plus/icons-vue";
+import router from "./router";
+import "./styles/global.less";
 
-const app = createApp(App)
+
+
+const app = createApp(App);
 
 // 娉ㄥ唽鎵�鏈夊浘鏍�
 for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
-  app.component(key, component)
+  app.component(key, component);
 }
 
 // 浣跨敤 Element Plus
-app.use(ElementPlus)
-app.use(router)
-app.mount('#app')
+app.use(ElementPlus);
+
+app.use(router);
+app.mount("#app");
diff --git a/src/styles/global.less b/src/styles/global.less
index 936bdb4..70a99a1 100644
--- a/src/styles/global.less
+++ b/src/styles/global.less
@@ -97,14 +97,14 @@
 
 /* 寮曞叆 Element Plus 鐨勫熀纭�鏍峰紡 */
 
+
 .common-layout {
   width: 100%;
-  height: 100%;
+  height: 100%
 }
 
-.el-container {
-  width: 100%;
-  height: 100%;
+.common-layout .el-container {
+  height: calc(100% - 60px);
 }
 
 .el-header {
diff --git a/src/views/model/children/landerModel.vue b/src/views/model/children/landerModel.vue
index f85a342..1ddc270 100644
--- a/src/views/model/children/landerModel.vue
+++ b/src/views/model/children/landerModel.vue
@@ -20,6 +20,7 @@
         border
         style="width: 100%"
         @selection-change="handleSelectionChange"
+        class="landerTable"
       >
         <el-table-column type="selection" width="55" />
         <el-table-column prop="index" label="搴忓彿" width="70" />
@@ -28,17 +29,37 @@
         <el-table-column prop="address" label="Address" />
       </el-table>
     </div>
+    <div class="lander-pagination-block">
+      <el-pagination
+        v-model:current-page="currentPage"
+        :page-size="pageSize"
+        :size="size"
+        :background="background"
+        layout="total, prev, pager, next"
+        :total="100"
+        @current-change="handleCurrentChange"
+      />
+    </div>
   </div>
 </template>
 
 <script setup lang="ts">
 import { ref } from "vue";
 import { Plus } from "@element-plus/icons-vue";
-import type { TableInstance } from "element-plus";
+import type { ComponentSize, TableInstance } from "element-plus";
 
+// 鎼滅储
 const input4 = ref("");
+
+// 琛ㄦ牸
 const multipleTableRef = ref<TableInstance>();
 const multipleSelection = ref<any[]>([]);
+
+// 鍒嗛〉
+const currentPage = ref(4);
+const pageSize = ref(20);
+const size = ref<ComponentSize>("default");
+const background = ref(true);
 
 const tableData = [
   {
@@ -83,10 +104,15 @@
     name: "Tom",
     address: "No. 189, Grove St, Los Angeles",
   },
+
+  
 ];
 
+const handleCurrentChange = (val: number) => {
+  console.log(`current page: ${val}`);
+};
+
 const handleSelectionChange = (val: []) => {
-  console.log(val);
   multipleSelection.value = val;
 };
 </script>
@@ -94,13 +120,30 @@
 <style lang="less" scoped>
 .landerBox {
   width: 100%;
+  height: 100%;
+  
   .landerTopBox {
     display: flex;
     justify-content: space-between;
-    margin-bottom: 10px;
+    align-items: center;
+    height: 50px;
+    padding: 0 10px;
+    box-sizing: border-box;
   }
   .landerContentBox {
     width: 100%;
+    max-height: calc(100% - 120px);
+    .landerTable {
+      height: 750px;
+    }
+  }
+  .lander-pagination-block {
+    height: 60px;
+    display: flex;
+    justify-content: flex-end;
+    padding: 0 20px;
+    background-color: #fff;
+
   }
 }
 </style>
diff --git a/src/views/model/children/roverModel.vue b/src/views/model/children/roverModel.vue
index 0317fc9..c0313d6 100644
--- a/src/views/model/children/roverModel.vue
+++ b/src/views/model/children/roverModel.vue
@@ -1,14 +1,232 @@
 <template>
-  <div class="kinematic">
-    <h2>宸¤鍣ㄦā鍨嬪簱</h2>
+  <div class="roverBox">
+    <div class="roverTopBox">
+      <el-button :icon="Plus">鏂板缓</el-button>
+      <el-input
+        v-model="input4"
+        style="width: 300px"
+        placeholder="璇疯緭鍏ュ叧閿瓧鎼滅储"
+      >
+        <template #suffix>
+          <el-icon class="el-input__icon"><search /></el-icon>
+        </template>
+      </el-input>
+    </div>
+    <div class="roverContentBox">
+      <el-table
+        ref="multipleTableRef"
+        :data="tableData"
+        row-key="id"
+        border
+        style="width: 100%"
+        @selection-change="handleSelectionChange"
+        class="roverTable"
+      >
+        <el-table-column type="selection" width="55" />
+        <el-table-column prop="index" label="搴忓彿" width="70" />
+        <el-table-column prop="date" label="Date" width="180" />
+        <el-table-column prop="name" label="Name" width="180" />
+        <el-table-column prop="address" label="Address" />
+      </el-table>
+    </div>
+    <div class="rover-pagination-block">
+      <el-pagination
+        v-model:current-page="currentPage"
+        :page-size="pageSize"
+        :size="size"
+        :background="background"
+        layout="total, prev, pager, next"
+        :total="100"
+        @current-change="handleCurrentChange"
+      />
+    </div>
   </div>
 </template>
 
 <script setup lang="ts">
+import { ref } from "vue";
+import { Plus } from "@element-plus/icons-vue";
+import type { ComponentSize, TableInstance } from "element-plus";
+
+// 鎼滅储
+const input4 = ref("");
+
+// 琛ㄦ牸
+const multipleTableRef = ref<TableInstance>();
+const multipleSelection = ref<any[]>([]);
+
+// 鍒嗛〉
+const currentPage = ref(4);
+const pageSize = ref(100);
+const size = ref<ComponentSize>("default");
+const background = ref(true);
+
+const tableData = [
+  {
+    id: 1,
+    date: "2016-05-03",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 2,
+    date: "2016-05-02",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 3,
+    date: "2016-05-04",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 4,
+    date: "2016-05-01",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 5,
+    date: "2016-05-08",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 6,
+    date: "2016-05-06",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    id: 7,
+    date: "2016-05-07",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+];
+
+const handleCurrentChange = (val: number) => {
+  console.log(`current page: ${val}`);
+};
+
+const handleSelectionChange = (val: []) => {
+  multipleSelection.value = val;
+};
 </script>
 
 <style lang="less" scoped>
-.kinematic {
-  padding: 20px;
+.roverBox {
+  width: 100%;
+  height: 100%;
+  .roverTopBox {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    height: 50px;
+    padding: 0 10px;
+    box-sizing: border-box;
+  }
+  .roverContentBox {
+    max-height: calc(100% - 120px);
+
+    .roverTable {
+      height: 750px;
+    }
+  }
+  .rover-pagination-block {
+    height: 60px;
+    display: flex;
+    justify-content: flex-end;
+    background-color: #fff;
+    padding: 0 10px;
+    box-sizing: border-box;
+  }
 }
-</style> 
\ No newline at end of file
+</style>
diff --git a/src/views/model/index.vue b/src/views/model/index.vue
index 076d6ce..7ee031c 100644
--- a/src/views/model/index.vue
+++ b/src/views/model/index.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="kinematic">
+  <div class="modelContainer">
     <RouterView />
   </div>
 </template>
@@ -8,4 +8,9 @@
 </script>
 
 <style lang="less" scoped>
+.modelContainer {
+  width: 100%;
+  height: 100%;
+  background-color: #fff;
+}
 </style> 
\ No newline at end of file

--
Gitblit v1.9.1