Jelajahi Sumber

全局设置页面

wangwenhua 3 bulan lalu
induk
melakukan
ad76b33f35

+ 3 - 0
src/assets/icons/homeIcon1.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
+  <path d="M2 2.167c0-.738.52-1.042 1.159-.681l10.362 5.859c.64.362.638.95 0 1.31L3.159 14.514c-.64.362-1.159.057-1.159-.68V2.166Z"/>
+</svg>

+ 3 - 0
src/assets/icons/homeIcon2.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
+  <path d="M3.708 8.558 9.196 3.07l2.352 2.353-5.487 5.487-2.353-2.352Zm9.408-4.704a1.104 1.104 0 0 0 0-1.569l-.784-.784a1.104 1.104 0 0 0-1.569 0l-.784.784 2.352 2.352.785-.783ZM5.188 11.78h.088l-2.44-2.439v.088a1.4 1.4 0 0 0-.26.784l-.872 2.7 2.7-.872c.262.002.523-.085.784-.26Zm9.175 1.852H1.627a.576.576 0 1 0 0 1.153h12.736a.576.576 0 1 0 0-1.153Z"/>
+</svg>

+ 3 - 0
src/assets/icons/homeIcon3.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
+  <path d="M13.75 3.5H2.25a.75.75 0 0 1 0-1.5H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.75a.75.75 0 1 1 0 1.5ZM13 13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4.5h10V13ZM7 7.25a.75.75 0 0 0-1.5 0v4.5a.75.75 0 1 0 1.5 0v-4.5Zm3.5 0a.75.75 0 1 0-1.5 0v4.5a.75.75 0 1 0 1.5 0v-4.5Z"/>
+</svg>

+ 4 - 0
src/assets/icons/homeIcon4.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
+  <path fill-rule="evenodd" d="M3.665 4.669c.369 0 .667.298.667.666v8.667a.667.667 0 0 1-1.333 0V5.335c0-.368.298-.666.666-.666Zm4.334 4.333c.368 0 .666.298.666.667v4.333a.667.667 0 0 1-1.333 0V9.669c0-.369.299-.667.667-.667Zm0-7.668c.368 0 .666.298.666.667v4.333a.667.667 0 1 1-1.333 0V2.001c0-.369.299-.667.667-.667Zm4.333 0c.368 0 .667.298.667.667v8.666a.667.667 0 0 1-1.334 0V2.001c0-.369.299-.667.667-.667Z" clip-rule="evenodd"/>
+  <path fill-rule="evenodd" d="M1.332 3.667a2.333 2.333 0 1 1 4.667 0 2.333 2.333 0 0 1-4.667 0Zm2.333-1a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm2 5.333a2.333 2.333 0 1 1 4.667 0 2.333 2.333 0 0 1-4.667 0ZM8 7a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm1.999 5.334a2.333 2.333 0 1 1 4.666 0 2.333 2.333 0 0 1-4.666 0Zm2.333-1a1 1 0 1 0 0 2 1 1 0 0 0 0-2Z" clip-rule="evenodd"/>
+</svg>

+ 5 - 0
src/router/index.ts

@@ -55,6 +55,11 @@ export const constantRoutes: RouteRecordRaw[] = [
         component: () =>
           import("@/views/modules/person-manager/person-manager.vue"),
       },
+      {
+        path: "global-config",
+        component: () =>
+          import("@/views/modules/global-config/global-config.vue"),
+      },
     ],
   },
   // {

+ 121 - 0
src/views/modules/global-config/global-config.vue

@@ -0,0 +1,121 @@
+<script lang="ts" setup>
+import { computed, ref } from "vue";
+import type { TabsPaneContext } from "element-plus";
+
+const activeName = ref("仪器配置");
+
+const handleClick = (tab: TabsPaneContext, event: Event) => {
+  // console.log(tab, event);
+};
+
+interface User {
+  date: string;
+  name: string;
+  address: string;
+}
+
+const search = ref("");
+const filterTableData = computed(() =>
+  tableData.filter(
+    (data) =>
+      !search.value ||
+      data.name.toLowerCase().includes(search.value.toLowerCase())
+  )
+);
+const handleEdit = (index: number, row: User) => {
+  console.log(index, row);
+};
+const handleDelete = (index: number, row: User) => {
+  console.log(index, row);
+};
+
+const tableData: User[] = [
+  {
+    date: "2016-05-03",
+    name: "Tom",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    date: "2016-05-02",
+    name: "John",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    date: "2016-05-04",
+    name: "Morgan",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+  {
+    date: "2016-05-01",
+    name: "Jessy",
+    address: "No. 189, Grove St, Los Angeles",
+  },
+];
+</script>
+
+<template>
+  <div class="global-config">
+    <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
+      <el-tab-pane label="仪器配置" name="仪器配置">
+        <div class="global-config-pane">
+          <el-button type="primary">
+            <span class="add">+</span>
+            新增
+          </el-button>
+          <div>
+            <el-table :data="filterTableData" style="width: 100%">
+              <el-table-column label="序号" type="index" />
+              <!-- <el-table-column label="Date" prop="date" /> -->
+              <el-table-column label="所需仪器类型" prop="date" />
+              <el-table-column label="名称" prop="name" />
+              <el-table-column label="仪器地址" prop="name" />
+              <el-table-column label="操作" prop="操作">
+                <template #default="scope">
+                  <el-button
+                    size="small"
+                    @click="handleEdit(scope.$index, scope.row)"
+                  >
+                    Edit
+                  </el-button>
+                  <el-button
+                    size="small"
+                    type="danger"
+                    @click="handleDelete(scope.$index, scope.row)"
+                  >
+                    Delete
+                  </el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+      </el-tab-pane>
+      <el-tab-pane label="全局数据" name="全局数据"> <div></div> </el-tab-pane>
+    </el-tabs>
+  </div>
+</template>
+
+<style scoped lang="scss">
+.global-config {
+  .demo-tabs {
+    // background-color: red;
+    ::v-deep .el-tabs__nav-scroll {
+      padding: 0 20px;
+    }
+  }
+  .global-config-pane {
+    padding: 0 20px;
+  }
+  .add {
+    width: 12px;
+    height: 12px;
+    line-height: 12px;
+    border-radius: 12px;
+    text-align: center;
+    background-color: #fff;
+    color: #3b7cff;
+    margin-right: 10px;
+    vertical-align: middle;
+  }
+}
+</style>

+ 5 - 13
src/views/modules/home/home.vue

@@ -75,29 +75,21 @@
               <span class="item-gray">开发人员:</span>{{ item.creator }}
             </div>
             <div>
-              <span class="item-gray">更新时间:</span>{{ item.string }}<
+              <span class="item-gray">更新时间:</span>{{ item.updated }}
             </div>
           </div>
           <div class="list-item-btns">
             <span @click="showDetailsFun(item)">
-              <el-icon>
-                <Edit />
-              </el-icon>
+              <svg-icon icon-class="homeIcon2" />
             </span>
             <span>
-              <el-icon>
-                <DeleteFilled />
-              </el-icon>
+              <svg-icon icon-class="homeIcon3" />
             </span>
             <span>
-              <el-icon>
-                <Tools />
-              </el-icon>
+              <svg-icon icon-class="homeIcon4" />
             </span>
             <span>
-              <el-icon>
-                <CaretRight />
-              </el-icon>
+              <svg-icon icon-class="homeIcon1" />
             </span>
           </div>
         </div>

+ 133 - 0
src/views/modules/project-config/com/project-message.vue

@@ -7,11 +7,59 @@ const emits = defineEmits(["onClickItem"]);
 const handleClickItem = (item) => {
   emits("onClickItem", item);
 };
+const router = useRouter();
+const goGlobalConfig = () => {
+  router.push({ path: "/main/global-config" });
+};
 </script>
 
 <template>
   <div class="project-message-col">
     <TitleHeader> 工程信息</TitleHeader>
+
+    <div class="project-msg-item">
+      <span class="text-l">产品:</span>
+      <span class="text-r">{{ "控制面板" }}</span>
+      <span class="edit">
+        <svg-icon icon-class="homeIcon2" />
+      </span>
+    </div>
+    <div class="project-msg-item">
+      <span class="text-l">工程类型:</span
+      ><span class="text-r">{{ "控制面板" }}</span>
+    </div>
+    <div class="project-msg-item">
+      <span class="text-l">版本:</span
+      ><span class="text-r">{{ "控制面板" }}</span>
+    </div>
+    <div class="project-msg-item">
+      <span class="text-l">创建时间:</span
+      ><span class="text-r">{{ "控制面板" }}</span>
+    </div>
+
+    <div class="project-all-config" @click="goGlobalConfig">
+      <svg-icon icon-class="project-config" />
+      全局配置
+    </div>
+
+    <div class="project-test-btn">
+      <div class="name">测试项目</div>
+      <div class="btn">
+        <span>-</span>
+        <span>+</span>
+      </div>
+    </div>
+
+    <div class="project-list-cont">
+      <div
+        class="project-list-item"
+        v-for="item in 10"
+        :key="index"
+        @click="handleClickItem(item)"
+      >
+        {{ item }}
+      </div>
+    </div>
   </div>
 </template>
 
@@ -21,5 +69,90 @@ const handleClickItem = (item) => {
   height: calc(100vh - $main-header-height);
   background-color: $hj-black-2;
   border-right: 1px solid $hj-white-4;
+  .project-msg-item {
+    position: relative;
+    padding: 0 11px;
+    margin-bottom: 10px;
+    .text-l {
+      font-size: var(--hj-fs-12);
+      color: var(--fc-color-3);
+    }
+    .text-r {
+      font-size: var(--hj-fs-14);
+      color: var(--hj-white-1);
+    }
+    .edit {
+      cursor: pointer;
+      position: absolute;
+      right: 20px;
+      color: var(--hj-white-1);
+    }
+  }
+  .project-all-config {
+    width: 130px;
+    height: 36px;
+    line-height: 36px;
+    margin: 0 auto;
+    background: var(--fc-color-7);
+    color: var(--hj-white-1);
+    text-align: center;
+    border-radius: 4px 4px 4px 4px;
+    cursor: pointer;
+  }
+  .project-test-btn {
+    display: flex;
+    justify-content: space-between;
+    margin: 0 12px;
+    margin-top: 12px;
+    position: relative;
+    padding: 14px 0;
+    &::before {
+      position: absolute;
+      top: 0;
+      content: "";
+      display: block;
+      width: 100%;
+      height: 1px;
+      background-color: var(--hj-white-4);
+    }
+    .name {
+      font-size: var(--hj-fs-14);
+      font-weight: 400;
+      color: var(--hj-white-1);
+    }
+    .btn {
+      span {
+        cursor: pointer;
+        display: inline-block;
+        width: 18px;
+        height: 18px;
+        text-align: center;
+        line-height: 16px;
+        border-radius: 0px 0px 0px 0px;
+        border: 2px solid #ffffff;
+        color: var(--hj-white-1);
+        &:nth-of-type(2) {
+          margin-left: 12px;
+        }
+      }
+    }
+  }
+  .project-list-cont {
+    height: 300px;
+    overflow-y: auto;
+    .project-list-item {
+      cursor: pointer;
+      font-size: var(--hj-fs-12);
+      color: var(--hj-white-1);
+      margin: 0 12px;
+      margin-bottom: 12px;
+      height: 36px;
+      line-height: 36px;
+      text-align: center;
+      background: rgba(59, 124, 255, 0.5);
+      border-radius: 4px 4px 4px 4px;
+      border: 1px solid #3b7cff;
+    }
+  }
 }
 </style>