浏览代码

Merge remote-tracking branch 'origin/master'

jiaxiaoqiang 3 月之前
父节点
当前提交
c9404f96e9

+ 1 - 1
.env.development

@@ -11,7 +11,7 @@ VITE_APP_BASE_API = '/dev-api'
 
 
 # 开发接口地址
 # 开发接口地址
 # VITE_APP_API_URL = 'http://192.168.101.4:8078'
 # VITE_APP_API_URL = 'http://192.168.101.4:8078'
-VITE_APP_API_URL = 'http://192.168.101.51:8078'
+VITE_APP_API_URL = 'http://192.168.1.43:7201'
 
 
 # 是否启用 Mock 服务
 # 是否启用 Mock 服务
 VITE_MOCK_DEV_SERVER = true
 VITE_MOCK_DEV_SERVER = true

+ 106 - 0
src/api/config/index.ts

@@ -0,0 +1,106 @@
+import request from "@/utils/request";
+import { AxiosPromise } from "axios";
+// import {} from "./types";
+
+/**
+ * 测试仪器配置分页查询接口
+ *
+ * @param queryParams - 查询参数对象,可选
+ * @returns AxiosPromise<any> - 返回一个 AxiosPromise 对象,包含分页查询的结果
+ */
+//测试仪器配置分页查询
+export function instrumentConfigPage(queryParams?: object): AxiosPromise<any> {
+  return request({
+    url: "/api/v1/instrumentConfig/page",
+    method: "post",
+    data: queryParams,
+  });
+}
+
+/**
+ * 发送全局数据分页查询请求
+ *
+ * @param queryParams - 查询参数对象,可选
+ * @returns AxiosPromise<any> - 返回一个 AxiosPromise 对象,包含请求的响应数据
+ */
+//测试全局数据分页查询
+export function globalDataPage(queryParams?: object): AxiosPromise<any> {
+  return request({
+    url: "/api/v1/globalData/page",
+    method: "post",
+    data: queryParams,
+  });
+}
+
+/**
+ * 更新仪器配置
+ *
+ * @param queryParams - 可选的查询参数对象,包含要更新的配置数据。
+ * @returns 返回一个 AxiosPromise 对象,表示更新请求的结果。
+ */
+export function configUpdate(queryParams?: object): AxiosPromise<any> {
+  return request({
+    url: "/api/v1/instrumentConfig/update",
+    method: "post",
+    data: queryParams,
+  });
+}
+
+/**
+ * 添加仪器配置
+ *
+ * @param queryParams - 要添加的仪器配置参数,默认为空对象。
+ * @returns 返回一个 AxiosPromise 对象,表示添加仪器配置的请求结果。
+ */
+export function configAdd(queryParams?: object): AxiosPromise<any> {
+  return request({
+    url: "/api/v1/instrumentConfig/add",
+    method: "post",
+    data: queryParams,
+  });
+}
+
+/**
+ * 删除仪器配置
+ *
+ * @param queryParams - 可选的查询参数对象,包含要删除的仪器配置数据。
+ * @returns 返回一个 AxiosPromise 对象,表示删除操作的结果。
+ */
+export function configDel(queryParams?: object): AxiosPromise<any> {
+  return request({
+    url: "/api/v1/instrumentConfig/del",
+    method: "post",
+    data: queryParams,
+  });
+}
+
+/**
+ * 向全局数据新增接口发送请求
+ *
+ * @param queryParams - 可选的查询参数对象,包含要新增的全局数据
+ * @returns AxiosPromise<any> - 返回一个 AxiosPromise 对象,表示请求的结果
+ */
+//全局数据新增
+export function globalDataAdd(queryParams?: object): AxiosPromise<any> {
+  return request({
+    url: "/api/v1/globalData/add",
+    method: "post",
+    data: queryParams,
+  });
+}
+
+export function globalDataDel(queryParams?: object): AxiosPromise<any> {
+  return request({
+    url: "/api/v1/globalData/del",
+    method: "post",
+    data: queryParams,
+  });
+}
+
+export function globalDataUpdate(queryParams?: object): AxiosPromise<any> {
+  return request({
+    url: "/api/v1/globalData/update",
+    method: "post",
+    data: queryParams,
+  });
+}

+ 0 - 0
src/api/config/types.ts


+ 96 - 0
src/views/modules/global-config/components/ConfigAdd.vue

@@ -0,0 +1,96 @@
+<template>
+  <div class="add">
+    <el-dialog v-model="dialogVisible" title="新建测试工程" width="500">
+      <el-form
+        :label-position="labelPosition"
+        label-width="auto"
+        :model="formLabelAlign"
+        style="max-width: 600px"
+        ref="ruleFormRef"
+      >
+        <el-form-item
+          label="所需仪器类型"
+          :label-position="itemLabelPosition"
+          prop="instrumentType"
+        >
+          <el-input v-model="formLabelAlign.instrumentType" />
+        </el-form-item>
+        <el-form-item
+          label="名称"
+          :label-position="itemLabelPosition"
+          prop="configName"
+        >
+          <el-input v-model="formLabelAlign.configName" />
+        </el-form-item>
+        <el-form-item
+          label="仪器地址"
+          :label-position="itemLabelPosition"
+          prop="configIp"
+        >
+          <el-input v-model="formLabelAlign.configIp" />
+        </el-form-item>
+      </el-form>
+
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button @click="dialogVisible = false">取消</el-button>
+          <el-button type="primary" @click="saveFun"> 保存 </el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { reactive, ref, watch } from "vue";
+
+const dialogVisible = ref(false);
+
+import type { FormItemProps, FormProps } from "element-plus";
+
+const labelPosition = ref<FormProps["labelPosition"]>("right");
+const itemLabelPosition = ref<FormItemProps["labelPosition"]>("");
+
+interface VersionItem {
+  instrumentType: string;
+  configName: string;
+  configIp: string;
+}
+
+const formLabelAlign = ref<VersionItem>({
+  instrumentType: "",
+  configName: "",
+  configIp: "",
+});
+
+const emit = defineEmits(["save"]);
+
+const saveFun = () => {
+  emit("save", formLabelAlign.value, flag.value);
+};
+
+const ruleFormRef = ref();
+const flag = ref("");
+const showDialog = (type: string, data: any) => {
+  dialogVisible.value = true;
+  ruleFormRef.value && ruleFormRef.value.resetFields();
+  flag.value = type;
+  formLabelAlign.value = JSON.parse(JSON.stringify(data));
+};
+const hiddenDialog = () => {
+  dialogVisible.value = false;
+};
+defineExpose({
+  showDialog,
+  hiddenDialog,
+});
+</script>
+<style scoped lang="scss">
+// .add {
+//   // position: fixed;
+//   // width: 100%;
+//   // height: 100%;
+//   // z-index: 10;
+//   // background-color: #000;
+// }
+</style>

+ 87 - 0
src/views/modules/global-config/components/globalDataAdd.vue

@@ -0,0 +1,87 @@
+<template>
+  <div class="add">
+    <el-dialog v-model="dialogVisible" title="新建测试工程" width="500">
+      <el-form
+        :label-position="labelPosition"
+        label-width="auto"
+        :model="formLabelAlign"
+        style="max-width: 600px"
+        ref="ruleFormRef"
+      >
+        <el-form-item
+          label="数据项名称	"
+          :label-position="itemLabelPosition"
+          prop="dataItemName"
+        >
+          <el-input v-model="formLabelAlign.dataItemName" />
+        </el-form-item>
+        <el-form-item
+          label="名称"
+          :label-position="itemLabelPosition"
+          prop="setValue"
+        >
+          <el-input v-model="formLabelAlign.setValue" />
+        </el-form-item>
+      </el-form>
+
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button @click="dialogVisible = false">取消</el-button>
+          <el-button type="primary" @click="saveFun"> 保存 </el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { reactive, ref, watch } from "vue";
+
+const dialogVisible = ref(false);
+
+import type { FormItemProps, FormProps } from "element-plus";
+
+const labelPosition = ref<FormProps["labelPosition"]>("right");
+const itemLabelPosition = ref<FormItemProps["labelPosition"]>("");
+
+interface VersionItem {
+  dataItemName: string;
+  setValue: string;
+}
+
+const formLabelAlign = ref<VersionItem>({
+  dataItemName: "",
+  setValue: "",
+});
+
+const emit = defineEmits(["save"]);
+
+const saveFun = () => {
+  emit("save", formLabelAlign.value, flag.value);
+};
+
+const ruleFormRef = ref();
+const flag = ref("");
+const showDialog = (type: string, data: any) => {
+  dialogVisible.value = true;
+  ruleFormRef.value && ruleFormRef.value.resetFields();
+  flag.value = type;
+  formLabelAlign.value = JSON.parse(JSON.stringify(data));
+};
+const hiddenDialog = () => {
+  dialogVisible.value = false;
+};
+defineExpose({
+  showDialog,
+  hiddenDialog,
+});
+</script>
+<style scoped lang="scss">
+// .add {
+//   // position: fixed;
+//   // width: 100%;
+//   // height: 100%;
+//   // z-index: 10;
+//   // background-color: #000;
+// }
+</style>

+ 240 - 56
src/views/modules/global-config/global-config.vue

@@ -1,56 +1,169 @@
 <script lang="ts" setup>
 <script lang="ts" setup>
 import { computed, ref } from "vue";
 import { computed, ref } from "vue";
 import type { TabsPaneContext } from "element-plus";
 import type { TabsPaneContext } from "element-plus";
+import {
+  instrumentConfigPage,
+  globalDataPage,
+  configUpdate,
+  configAdd,
+  configDel,
+  globalDataAdd,
+  globalDataDel,
+  globalDataUpdate,
+} from "@/api/config";
 
 
 const activeName = ref("仪器配置");
 const activeName = ref("仪器配置");
 
 
+import configAddVue from "./components/ConfigAdd.vue";
+import globalAddVue from "./components/globalDataAdd.vue";
+
 const handleClick = (tab: TabsPaneContext, event: Event) => {
 const handleClick = (tab: TabsPaneContext, event: Event) => {
   // console.log(tab, event);
   // console.log(tab, event);
 };
 };
 
 
-interface User {
-  date: string;
-  name: string;
-  address: string;
-}
+//配置列表请求参数
+const configParams = ref({
+  orders: [
+    {
+      column: "",
+      isAsc: true,
+    },
+  ],
+  pageNo: 1,
+  pageSize: 10,
+});
+//分页
+const configHandleChange = (currentPage: number, pageSize: number) => {
+  console.log(currentPage);
+  configParams.value.pageNo = currentPage;
+  getInstrumentConfig();
+  // console.log(pageSize);
+};
 
 
-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 instrumentConfigList = ref([]);
+//数据total
+const instrumentConfigTotal = ref(1);
+//请求数据
+const getInstrumentConfig = () => {
+  instrumentConfigPage(configParams.value).then((res) => {
+    console.log(res);
+    instrumentConfigList.value = res.data.records;
+    instrumentConfigTotal.value = res.data.totalCount;
+  });
 };
 };
-const handleDelete = (index: number, row: User) => {
-  console.log(index, row);
+
+//全局列表请求参数
+const globalParams = ref({
+  orders: [
+    {
+      column: "",
+      isAsc: true,
+    },
+  ],
+  pageNo: 1,
+  pageSize: 10,
+});
+//分页
+const globalHandleChange = (currentPage: number, pageSize: number) => {
+  console.log(currentPage);
+  globalParams.value.pageNo = currentPage;
+  getglobalData();
 };
 };
 
 
-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",
-  },
-];
+//全局数据数组
+const globalDataList = ref([]);
+//全局数据数据total
+const globalDataTotal = ref(1);
+//请求数据 全局数据
+const getglobalData = () => {
+  globalDataPage(globalParams.value).then((res) => {
+    console.log(res);
+    globalDataList.value = res.data.records;
+    globalDataTotal.value = res.data.totalCount;
+  });
+};
+
+onMounted?.(() => {
+  getInstrumentConfig();
+  getglobalData();
+});
+
+const configChildRef = ref();
+const configHandleEdit = (index: number, row: any) => {
+  configChildRef.value && configChildRef.value.showDialog("change", row);
+};
+
+const addConfigFun = () => {
+  configChildRef.value && configChildRef.value.showDialog("add", {});
+};
+
+/**
+//新增或修改仪器配置
+ *
+ * @param {any} data - 要保存的仪器配置数据
+ * @param {string} flag - 操作标识,"add" 表示新增,其他值表示修改
+ *
+ * 根据 flag 的值调用相应的 API 进行新增或修改操作,
+ * 操作完成后关闭弹框并重新请求仪器配置数据。
+ */
+const configSaveFun = (data: any, flag: string) => {
+  if (flag === "add") {
+    configAdd(data).then((res) => {
+      configChildRef.value && configChildRef.value.hiddenDialog(); //关闭弹框
+      getInstrumentConfig(); //重新请求数据
+    });
+  } else {
+    configUpdate(data).then((res) => {
+      configChildRef.value && configChildRef.value.hiddenDialog(); //关闭弹框
+      getInstrumentConfig(); //重新请求数据
+    });
+  }
+};
+
+/**
+ * 处理删除配置项的函数
+ * @param {number} index - 配置项在列表中的索引
+ * @param {any} row - 当前配置项的数据对象
+ *
+ * 此函数调用 configDel 方法删除指定的配置项,并在成功后重新请求配置数据。
+ */
+const configHandleDelete = (index: number, row: any) => {
+  configDel({ id: row.id }).then((res) => {
+    getInstrumentConfig(); //重新请求数据
+  });
+};
+
+// =======================
+const globalChildRef = ref();
+
+const globalHandleEdit = (index: number, row: any) => {
+  globalChildRef.value && globalChildRef.value.showDialog("change", row);
+};
+
+const addglobalFun = () => {
+  globalChildRef.value && globalChildRef.value.showDialog("add", {});
+};
+
+const globalSaveFun = (data: any, flag: string) => {
+  if (flag === "add") {
+    globalDataAdd(data).then((res) => {
+      globalChildRef.value && globalChildRef.value.hiddenDialog(); //关闭弹框
+      getglobalData(); //重新请求数据
+    });
+  } else {
+    globalDataUpdate(data).then((res) => {
+      globalChildRef.value && globalChildRef.value.hiddenDialog(); //关闭弹框
+      getglobalData(); //重新请求数据
+    });
+  }
+};
+
+const globalHandledel = (index: number, row: any) => {
+  globalDataDel({ id: row.id }).then((res) => {
+    getglobalData(); //重新请求数据
+  });
+};
 </script>
 </script>
 
 
 <template>
 <template>
@@ -58,40 +171,101 @@ const tableData: User[] = [
     <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
     <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
       <el-tab-pane label="仪器配置" name="仪器配置">
       <el-tab-pane label="仪器配置" name="仪器配置">
         <div class="global-config-pane">
         <div class="global-config-pane">
-          <el-button type="primary">
-            <span class="add">+</span>
-            新增
-          </el-button>
+          <div class="btns">
+            <el-button type="primary" @click="addConfigFun">
+              <span class="add">+</span>
+              新增
+            </el-button>
+          </div>
+
+          <div>
+            <el-table :data="instrumentConfigList" style="width: 100%">
+              <el-table-column label="序号" type="index" width="80" />
+              <el-table-column label="所需仪器类型" prop="instrumentType" />
+              <el-table-column label="名称" prop="configName" />
+              <el-table-column label="仪器地址" prop="configIp" />
+              <el-table-column label="操作" prop="操作" fixed="right">
+                <template #default="scope">
+                  <el-button
+                    text
+                    size="small"
+                    type="primary"
+                    @click="configHandleDelete(scope.$index, scope.row)"
+                  >
+                    删除
+                  </el-button>
+                  <el-button
+                    text
+                    size="small"
+                    type="primary"
+                    @click="configHandleEdit(scope.$index, scope.row)"
+                  >
+                    修改
+                  </el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+            <el-pagination
+              class="content-pag"
+              background
+              layout="prev, pager, next"
+              :page-size="10"
+              :total="instrumentConfigTotal"
+              @change="configHandleChange"
+            />
+          </div>
+        </div>
+      </el-tab-pane>
+      <el-tab-pane label="全局数据" name="全局数据">
+        <div class="global-config-pane">
+          <div class="btns">
+            <el-button type="primary" @click="addglobalFun">
+              <span class="add">+</span>
+              新增
+            </el-button>
+          </div>
+
           <div>
           <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="操作">
+            <el-table :data="globalDataList" style="width: 100%">
+              <el-table-column label="序号" type="index" width="80" />
+              <el-table-column label="数据项名称" prop="dataItemName" />
+              <el-table-column label="设定值" prop="setValue" />
+              <el-table-column label="操作" prop="操作" fixed="right">
                 <template #default="scope">
                 <template #default="scope">
                   <el-button
                   <el-button
+                    text
                     size="small"
                     size="small"
-                    @click="handleEdit(scope.$index, scope.row)"
+                    type="primary"
+                    @click="globalHandledel(scope.$index, scope.row)"
                   >
                   >
-                    Edit
+                    删除
                   </el-button>
                   </el-button>
                   <el-button
                   <el-button
+                    text
                     size="small"
                     size="small"
-                    type="danger"
-                    @click="handleDelete(scope.$index, scope.row)"
+                    type="primary"
+                    @click="globalHandleEdit(scope.$index, scope.row)"
                   >
                   >
-                    Delete
+                    修改
                   </el-button>
                   </el-button>
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
             </el-table>
             </el-table>
+            <el-pagination
+              class="content-pag"
+              background
+              layout="prev, pager, next"
+              :page-size="10"
+              :total="globalDataTotal"
+              @change="globalHandleChange"
+            />
           </div>
           </div>
         </div>
         </div>
       </el-tab-pane>
       </el-tab-pane>
-      <el-tab-pane label="全局数据" name="全局数据"> <div></div> </el-tab-pane>
     </el-tabs>
     </el-tabs>
+
+    <configAddVue ref="configChildRef" @save="configSaveFun"></configAddVue>
+    <globalAddVue ref="globalChildRef" @save="globalSaveFun"></globalAddVue>
   </div>
   </div>
 </template>
 </template>
 
 
@@ -105,6 +279,10 @@ const tableData: User[] = [
   }
   }
   .global-config-pane {
   .global-config-pane {
     padding: 0 20px;
     padding: 0 20px;
+    .btns {
+      text-align: right;
+      margin-bottom: 12px;
+    }
   }
   }
   .add {
   .add {
     width: 12px;
     width: 12px;
@@ -117,5 +295,11 @@ const tableData: User[] = [
     margin-right: 10px;
     margin-right: 10px;
     vertical-align: middle;
     vertical-align: middle;
   }
   }
+  .content-pag {
+    float: right;
+    margin-right: 20px;
+    margin-top: 20px;
+    padding-bottom: 30px;
+  }
 }
 }
 </style>
 </style>

+ 11 - 9
src/views/modules/project-config/com/project-message.vue

@@ -51,14 +51,16 @@ const goGlobalConfig = () => {
     </div>
     </div>
 
 
     <div class="project-list-cont">
     <div class="project-list-cont">
-      <div
-        class="project-list-item"
-        v-for="item in 10"
-        :key="index"
-        @click="handleClickItem(item)"
-      >
-        {{ item }}
-      </div>
+      <el-scrollbar>
+        <div
+          class="project-list-item"
+          v-for="item in 20"
+          :key="index"
+          @click="handleClickItem(item)"
+        >
+          {{ item }}
+        </div>
+      </el-scrollbar>
     </div>
     </div>
   </div>
   </div>
 </template>
 </template>
@@ -139,7 +141,7 @@ const goGlobalConfig = () => {
     }
     }
   }
   }
   .project-list-cont {
   .project-list-cont {
-    height: 300px;
+    height: calc(100vh - $main-header-height - 310px);
     overflow-y: auto;
     overflow-y: auto;
     .project-list-item {
     .project-list-item {
       cursor: pointer;
       cursor: pointer;