Переглянути джерело

Merge branch 'master' of http://git.techwx.com/framework/SMO

daiht 1 тиждень тому
батько
коміт
bae9de56c0

BIN
src/assets/images/setting2.png


+ 11 - 11
src/assets/json/authMenuList.json

@@ -30,7 +30,7 @@
                 {
                     "path": "/alarm/allWeather",
                     "name": "allWeather",
-                    "component": "/proTable/useProTable/index",
+                    "component": "/alarm/allWeather/index",
                     "meta": {
                         "title": "全网危险天气监测报警",
                         "isLink": "",
@@ -82,7 +82,7 @@
                 {
                     "path": "/alarm/software",
                     "name": "software",
-                    "component": "/proTable/useProTable/index",
+                    "component": "/alarm/software/index",
                     "meta": {
                         "title": "软件状态监测报警",
                         "isLink": "",
@@ -205,7 +205,7 @@
             "children": [{
                     "path": "/query/queryObservationData",
                     "name": "queryObservationData",
-                    "component": "/proTable/useProTable/index",
+                    "component": "/query/queryObservationData/index",
                     "meta": {
                         "title": "观测数据查询",
                         "isLink": "",
@@ -218,7 +218,7 @@
                 {
                     "path": "/query/deviceHealth",
                     "name": "deviceHealth",
-                    "component": "/proTable/useProTable/index",
+                    "component": "/query/deviceHealth/index",
                     "meta": {
                         "title": "设备健康信息查询",
                         "isLink": "",
@@ -231,7 +231,7 @@
                 {
                     "path": "/query/hazardousWeather",
                     "name": "hazardousWeather",
-                    "component": "/proTable/useProTable/index",
+                    "component": "/query/hazardousWeather/index",
                     "meta": {
                         "title": "危险天气记录查询",
                         "isLink": "",
@@ -244,7 +244,7 @@
                 {
                     "path": "/query/qualityAudits",
                     "name": "qualityAudits",
-                    "component": "/proTable/useProTable/index",
+                    "component": "/query/qualityAudits/index",
                     "meta": {
                         "title": "质量审核记录",
                         "isLink": "",
@@ -257,7 +257,7 @@
                 {
                     "path": "/query/dutyProcess",
                     "name": "dutyProcess",
-                    "component": "/proTable/useProTable/index",
+                    "component": "/query/dutyProcess/index",
                     "meta": {
                         "title": "值班过程管理",
                         "isLink": "",
@@ -270,7 +270,7 @@
                 {
                     "path": "/query/dailyObservations",
                     "name": "dailyObservations",
-                    "component": "/proTable/useProTable/index",
+                    "component": "/query/dailyObservations/index",
                     "meta": {
                         "title": "日观测纪要",
                         "isLink": "",
@@ -283,7 +283,7 @@
                 {
                     "path": "/query/record",
                     "name": "record",
-                    "component": "/proTable/useProTable/index",
+                    "component": "/query/record/index",
                     "meta": {
                         "title": "记录簿",
                         "isLink": "",
@@ -296,7 +296,7 @@
                 {
                     "path": "/query/log",
                     "name": "log",
-                    "component": "/proTable/useProTable/index",
+                    "component": "/query/log/index",
                     "meta": {
                         "title": "天气日志",
                         "isLink": "",
@@ -406,4 +406,4 @@
         }
     ],
     "msg": "成功"
-}
+}

+ 2 - 1
src/components/ProTable/components/Pagination.vue

@@ -4,7 +4,7 @@
     :background="true"
     :current-page="pageable.pageNum"
     :page-size="pageable.pageSize"
-    :page-sizes="[10, 25, 50, 100]"
+    :page-sizes="pageSizes ? pageSizes : [20, 40, 50, 100]"
     :total="pageable.total"
     :size="globalStore?.assemblySize ?? 'default'"
     layout="total, sizes, prev, pager, next, jumper"
@@ -27,6 +27,7 @@ interface PaginationProps {
   pageable: Pageable;
   handleSizeChange: (size: number) => void;
   handleCurrentChange: (currentPage: number) => void;
+  pageSizes: number[];
 }
 
 defineProps<PaginationProps>();

+ 2 - 2
src/layouts/components/Header/ToolBarRight.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="tool-bar-ri">
     <div class="header-icon">
-      <AssemblySize id="assemblySize" />
+<!--      <AssemblySize id="assemblySize" />-->
       <ThemeSetting id="themeSetting" />
       <Message id="message" />
     </div>
@@ -10,7 +10,7 @@
 </template>
 
 <script setup lang="ts">
-import AssemblySize from "./components/AssemblySize.vue";
+// import AssemblySize from "./components/AssemblySize.vue";
 import ThemeSetting from "./components/ThemeSetting.vue";
 import Message from "./components/Message.vue";
 import Avatar from "./components/Avatar.vue";

+ 22 - 1
src/styles/element.scss

@@ -118,7 +118,6 @@
       display: flex;
       flex-wrap: wrap;
       gap: 15px 12px;
-      margin-bottom: 15px;
       .el-button:not(.el-input .el-button) {
         margin-left: 0;
       }
@@ -282,3 +281,25 @@
     padding: 15px 20px;
   }
 }
+
+.setting {
+  height: 20px;
+  width: 20px;
+  margin-top: 10px;
+  margin-right: 5px;
+  cursor: pointer;
+}
+
+.form-item__label {
+  align-items: flex-start;
+  box-sizing: border-box;
+  color: var(--el-text-color-regular);
+  display: inline-flex;
+  flex: 0 0 auto;
+  font-size: var(--el-form-label-font-size);
+  height: 32px;
+  justify-content: flex-end;
+  line-height: 32px;
+  margin-left: 10px;
+  padding: 0 12px 0 0;
+}

+ 313 - 66
src/views/alarm/allData/index.vue

@@ -1,57 +1,70 @@
 <template>
   <div class="table-box">
-    <ProTable
-      ref="proTable"
-      :columns="columns"
-      :request-api="getTableList"
-      :init-param="initParam"
-      :data-callback="dataCallback"
-      @drag-sort="sortTable"
-    >
-      <!-- 表格 搜索 按钮 -->
-      <template #tableHeader="">
-        <el-form :model="queryParams" label-width="auto" :inline="true">
-          <el-form-item label="自动站:">
-            <el-select v-model="queryParams.name" placeholder="请选择自动站" clearable style="width: 200px">
-              <el-option label="站1" value="1" />
-              <el-option label="站2" value="2" />
-            </el-select>
-          </el-form-item>
-          <el-form-item>
-            <el-button type="primary" @click="handleQuery"> 查询 </el-button>
-            <el-button style="margin-left: 10px" @click="resetQuery"> 重置 </el-button>
-          </el-form-item>
-        </el-form>
-      </template>
-    </ProTable>
+    <div class="card table-main">
+      <!-- 表格头部 操作按钮 -->
+      <div class="table-header">
+        <div class="header-button-lf">
+          <el-form :model="queryParams" label-width="auto" :inline="true">
+            <el-form-item label="自动站:">
+              <el-select v-model="queryParams.name" placeholder="请选择自动站" clearable style="width: 200px">
+                <el-option label="站1" value="1" />
+                <el-option label="站2" value="2" />
+              </el-select>
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" @click="handleQuery"> 查询 </el-button>
+              <el-button style="margin-left: 10px" @click="resetQuery"> 重置 </el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+        <div class="header-button-ri">
+          <slot name="toolButton">
+            <img class="setting" src="@/assets/images/setting2.png" />
+          </slot>
+        </div>
+      </div>
+      <!-- 表格主体 -->
+      <el-table stripe ref="tableRef" :border="true" :data="processTableData"  size="small">
+        <el-table-column align="left" label="序号" width="80px" :show-overflow-tooltip="true">
+          <template #default="scope">
+            {{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
+          </template>
+        </el-table-column>
+        <template v-for="item in columns" :key="item">
+          <el-table-column v-bind="item" :align="item.align ?? 'left'" :reserve-selection="item.type == 'selection'" :show-overflow-tooltip="true">
+          </el-table-column>
+        </template>
+        <!-- 无数据 -->
+        <template #empty>
+          <div class="table-empty">
+            <slot name="empty">
+              <img src="@/assets/images/notData.png" alt="notData" />
+              <div>暂无数据</div>
+            </slot>
+          </div>
+        </template>
+      </el-table>
+      <!-- 分页组件 -->
+      <Pagination :pageable="pageable" :handle-size-change="handleSizeChange" :handle-current-change="handleCurrentChange" />
+    </div>
   </div>
 </template>
 
 <script setup lang="ts" name="useProTable">
+import Pagination from "@/components/ProTable/components/Pagination.vue";
 import { ref, reactive } from "vue";
-import { User } from "@/api/interface";
-import { ElMessage } from "element-plus";
-import ProTable from "@/components/ProTable/index.vue";
-import { ProTableInstance, ColumnProps } from "@/components/ProTable/interface";
-import { getUserList } from "@/api/modules/user";
-
-// ProTable 实例
-const proTable = ref<ProTableInstance>();
-
-// 如果表格需要初始化请求参数,直接定义传给 ProTable (之后每次请求都会自动带上该参数,此参数更改之后也会一直带上,改变此参数会自动刷新表格数据)
-const initParam = reactive({ type: 1 });
-// 或者直接去 hooks/useTable.ts 文件中把字段改为你后端对应的就行
-const dataCallback = (data: any) => {
-  return {
-    list: data.list,
-    total: data.total
-  };
-};
+import { ColumnProps } from "@/components/ProTable/interface";
+const pageable = ref<any>({
+  pageNum: 1,
+  pageSize: 20,
+  total: 1
+});
 
 const queryParams = ref({
   name: "",
   pageNum: 1,
-  pageSize: 10
+  pageSize: 20,
+  total: 1
 });
 
 // 查询功能
@@ -64,31 +77,265 @@ const resetQuery = () => {
   queryParams.value.pageNum = 1;
 };
 
-// 翻页
-const getTableList = (params: any) => {
-  let newParams = JSON.parse(JSON.stringify(params));
-  newParams.createTime && (newParams.startTime = newParams.createTime[0]);
-  newParams.createTime && (newParams.endTime = newParams.createTime[1]);
-  delete newParams.createTime;
-  return getUserList(newParams);
+/**
+ * @description 每页条数改变
+ * @param {Number} val 当前条数
+ * @return void
+ * */
+const handleSizeChange = (val: number) => {
+  console.log(val);
 };
 
-// 表格配置项
-const columns = reactive<ColumnProps<User.ResUserList>[]>([
-  { prop: "username", label: "站号" },
-  { prop: "gender", label: "性别" },
-  { prop: "user.detail.age", label: "年龄" },
-  { prop: "idCard", label: "身份证号", search: { el: "input" } },
-  { prop: "email", label: "邮箱" },
-  { prop: "address", label: "居住地址" },
-  { prop: "status", label: "用户状态" },
-  { prop: "createTime", label: "创建时间", width: 180 }
+/**
+ * @description 当前页改变
+ * @param {Number} val 当前页
+ * @return void
+ * */
+const handleCurrentChange = (val: number) => {
+  console.log(val);
+};
+
+const processTableData = ref([
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  },
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    c: "公园",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "17.2"
+  }
 ]);
 
-// 表格拖拽排序
-const sortTable = ({ newIndex, oldIndex }: { newIndex?: number; oldIndex?: number }) => {
-  console.log(newIndex, oldIndex);
-  console.log(proTable.value?.tableData);
-  ElMessage.success("修改列表排序成功");
-};
+// 表格配置项
+const columns = reactive<ColumnProps[]>([
+  { prop: "a", label: "站名" },
+  { prop: "b", label: "站号" },
+  { prop: "c", label: "地址" },
+  { prop: "d", label: "观测时间" },
+  { prop: "e", label: "瞬风风速(m/s)" },
+  { prop: "f", label: "瞬风方向(°)" },
+  { prop: "g", label: "气温(℃)" },
+  { prop: "h", label: "相对湿度(%)" },
+  { prop: "i", label: "漏点温度(℃)" }
+]);
 </script>

+ 151 - 0
src/views/alarm/allWeather/index.vue

@@ -0,0 +1,151 @@
+<template>
+  <div class="table-box">
+    <div class="card table-main">
+      <!-- 表格头部 操作按钮 -->
+      <div class="table-header">
+        <div class="header-button-lf">
+          <el-form :model="queryParams" label-width="auto"  :inline="true">
+            <el-form-item label="站号:">
+              <el-select v-model="queryParams.code" placeholder="请选择" clearable style="width: 200px">
+                <el-option label="RS0001" value="RS0001" />
+                <el-option label="RS0002" value="RS0002" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="告警类型:">
+              <el-select v-model="queryParams.type" placeholder="请选择" clearable style="width: 200px">
+                <el-option label="能见度" value="1" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="告警时间:">
+              <el-date-picker
+                v-model="queryParams.time"
+                type="datetimerange"
+                range-separator="至"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+              />
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" @click="handleQuery"> 查询 </el-button>
+              <el-button style="margin-left: 10px" @click="resetQuery"> 重置 </el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+      </div>
+      <!-- 表格主体 -->
+      <el-table stripe ref="tableRef" :border="true" :data="processTableData"  size="small">
+        <el-table-column align="left" label="序号" width="80px" :show-overflow-tooltip="true">
+          <template #default="scope">
+            {{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
+          </template>
+        </el-table-column>
+        <template v-for="item in columns" :key="item">
+          <el-table-column v-bind="item" :align="item.align ?? 'left'" :reserve-selection="item.type == 'selection'" :show-overflow-tooltip="true">
+          </el-table-column>
+        </template>
+        <!-- 无数据 -->
+        <template #empty>
+          <div class="table-empty">
+            <slot name="empty">
+              <img src="@/assets/images/notData.png" alt="notData" />
+              <div>暂无数据</div>
+            </slot>
+          </div>
+        </template>
+      </el-table>
+      <!-- 分页组件 -->
+      <Pagination :pageable="pageable" :handle-size-change="handleSizeChange" :handle-current-change="handleCurrentChange" />
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts" name="useProTable">
+import Pagination from "@/components/ProTable/components/Pagination.vue";
+import { ref, reactive } from "vue";
+import { ColumnProps } from "@/components/ProTable/interface";
+const pageable = ref<any>({
+  pageNum: 1,
+  pageSize: 20,
+  total: 1
+});
+
+const queryParams = ref({
+  code: '',
+  type:'',
+  time:'',
+  pageNum: 1,
+  pageSize: 20,
+  total: 2
+});
+
+// 查询功能
+const handleQuery = () => {
+  queryParams.value.pageNum = 1;
+};
+
+//搜索功能
+const resetQuery = () => {
+  queryParams.value.pageNum = 1;
+};
+
+/**
+ * @description 每页条数改变
+ * @param {Number} val 当前条数
+ * @return void
+ * */
+const handleSizeChange = (val: number) => {
+  console.log(val);
+};
+
+/**
+ * @description 当前页改变
+ * @param {Number} val 当前页
+ * @return void
+ * */
+const handleCurrentChange = (val: number) => {
+  console.log(val);
+};
+
+const processTableData = ref([
+  {
+    id: "681913747276782417",
+    b: "RS001",
+    a: "测试本地",
+    c: "日常策略",
+    d: "告警中",
+    e: "能见度",
+    f: "143m",
+    g: "2023-06-12 15:00:00",
+    h: "2023-06-12 15:00:00",
+    i: "字幕通知",
+    j: "能见度告警 阈值(1分钟平均能见度 ≤ 500m)观测值(143m)"
+  },
+  {
+    id: "681913747276782417",
+    b: "M1987",
+    a: "固定站2",
+    c: "123",
+    d: "已消警",
+    e: "能见度",
+    f: "143m",
+    g: "2023-06-12 15:00:00",
+    h: "2023-06-12 15:00:00",
+    i: "字幕通知",
+    j: "能见度告警 阈值(1分钟平均能见度 ≤ 500m)观测值(143m)"
+  }
+]);
+
+// 表格配置项
+const columns = reactive<ColumnProps[]>([
+  { prop: "b", label: "站号" },
+  { prop: "a", label: "站名" },
+  { prop: "c", label: "策略名称" },
+  { prop: "d", label: "策略状态" },
+  { prop: "e", label: "告警类型" },
+  { prop: "f", label: "观测值" },
+  { prop: "g", label: "告警时间",width:150 },
+  { prop: "h", label: "消警时间",width:150},
+  { prop: "i", label: "通知方式" },
+  { prop: "j", label: "告警说明",width:400 }
+]);
+</script>

+ 130 - 0
src/views/alarm/software/index.vue

@@ -0,0 +1,130 @@
+<template>
+  <div class="table-box">
+    <div class="card table-main">
+      <!-- 表格头部 操作按钮 -->
+      <div class="table-header">
+        <div class="header-button-lf">
+          <el-form :model="queryParams" label-width="auto"  :inline="true">
+            <el-form-item label="应用:">
+               <el-input v-model="queryParams.app" style="width: 200px" placeholder="请输入应用" />
+            </el-form-item>
+            <el-form-item label="名称:">
+              <el-input v-model="queryParams.name" style="width: 200px" placeholder="请输入名称" />
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" @click="handleQuery"> 查询 </el-button>
+              <el-button style="margin-left: 10px" @click="resetQuery"> 重置 </el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+      </div>
+      <!-- 表格主体 -->
+      <el-table stripe ref="tableRef" :border="true" :data="processTableData"  size="small">
+        <el-table-column align="left" label="序号" width="80px" :show-overflow-tooltip="true" >
+          <template #default="scope">
+            {{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
+          </template>
+        </el-table-column>
+        <template v-for="item in columns" :key="item">
+          <el-table-column v-bind="item" :align="item.align ?? 'left'" :reserve-selection="item.type == 'selection'" :show-overflow-tooltip="true" >
+          </el-table-column>
+        </template>
+        <!-- 无数据 -->
+        <template #empty>
+          <div class="table-empty">
+            <slot name="empty">
+              <img src="@/assets/images/notData.png" alt="notData" />
+              <div>暂无数据</div>
+            </slot>
+          </div>
+        </template>
+      </el-table>
+      <!-- 分页组件 -->
+      <Pagination :pageable="pageable" :handle-size-change="handleSizeChange" :handle-current-change="handleCurrentChange" />
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts" name="useProTable">
+import Pagination from "@/components/ProTable/components/Pagination.vue";
+import { ref, reactive } from "vue";
+import { ColumnProps } from "@/components/ProTable/interface";
+const pageable = ref<any>({
+  pageNum: 1,
+  pageSize: 20,
+  total: 1
+});
+
+const queryParams = ref({
+  app:'',
+  name:'',
+  pageNum: 1,
+  pageSize: 20,
+  total: 2
+});
+
+// 查询功能
+const handleQuery = () => {
+  queryParams.value.pageNum = 1;
+};
+
+//搜索功能
+const resetQuery = () => {
+  queryParams.value.pageNum = 1;
+};
+
+/**
+ * @description 每页条数改变
+ * @param {Number} val 当前条数
+ * @return void
+ * */
+const handleSizeChange = (val: number) => {
+  console.log(val);
+};
+
+/**
+ * @description 当前页改变
+ * @param {Number} val 当前页
+ * @return void
+ * */
+const handleCurrentChange = (val: number) => {
+  console.log(val);
+};
+
+const processTableData = ref([
+  {
+    id: "681913747276782417",
+    a: "Redis 4.0.9",
+    b: "Redis 4.0.9",
+    c: "334221",
+    d: "1.17M",
+    e: "0%",
+    f: "/usr/local/redis/redis-4.0.9",
+    g: "5118.01G",
+    h: "正常"
+  },
+  {
+    id: "681913747276782417",
+    a: "jeecg-boot",
+    b: "jeecg-boot",
+    c: "334221",
+    d: "1.17M",
+    e: "0%",
+    f: "/usr/local/redis/redis-4.0.9",
+    g: "7118.01G",
+    h: "正常"
+  }
+]);
+
+// 表格配置项
+const columns = reactive<ColumnProps[]>([
+  { prop: "a", label: "名称" },
+  { prop: "b", label: "应用" },
+  { prop: "c", label: "PID" },
+  { prop: "d", label: "内存" },
+  { prop: "e", label: "CPU" },
+  { prop: "f", label: "所在盘符" },
+  { prop: "g", label: "硬盘空间"},
+  { prop: "h", label: "状态",width:100},
+]);
+</script>

+ 47 - 0
src/views/query/dailyObservations/index.vue

@@ -0,0 +1,47 @@
+<template>
+  <div class="table-box">
+    <div class="card table-main">
+      <!-- 表格头部 操作按钮 -->
+      <div class="table-header">
+        <div class="header-button-lf">
+          <el-form :model="queryParams" label-width="auto" :inline="true">
+            <el-form-item label="自动站:">
+              <el-select v-model="queryParams.name" placeholder="请选择" clearable style="width: 200px;margin-left: 10px">
+                <el-option label="站1" value="1" />
+                <el-option label="站2" value="2" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="观测时间:">
+              <el-date-picker
+                v-model="queryParams.time"
+                type="date"
+                placeholder="请选择"
+              />
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" @click="handleQuery"> 查询 </el-button>
+              <el-button style="margin-left: 10px" @click="resetQuery"> 重置 </el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts" name="useProTable">
+import { ref} from "vue";
+const queryParams = ref({
+  name: '',
+  time:''
+});
+
+// 查询功能
+const handleQuery = () => {
+};
+
+//搜索功能
+const resetQuery = () => {
+};
+
+</script>

+ 172 - 0
src/views/query/deviceHealth/index.vue

@@ -0,0 +1,172 @@
+<template>
+  <div class="table-box">
+    <div class="card table-main">
+      <!-- 表格头部 操作按钮 -->
+      <div class="table-header">
+        <div class="header-button-lf">
+          <el-form :model="queryParams" label-width="auto" :inline="true">
+            <el-form-item label="自动站:">
+              <el-checkbox v-model="queryParams.isStand" label="多站"/>
+              <el-select v-model="queryParams.name" placeholder="请选择" clearable style="width: 200px;margin-left: 10px">
+                <el-option label="站1" value="1" />
+                <el-option label="站2" value="2" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="观测时间:" v-if="queryParams.isStand">
+              <el-date-picker
+                v-model="queryParams.time"
+                type="datetime"
+                placeholder="请选择"
+                format="YYYY-MM-DD HH:mm"
+              />
+            </el-form-item>
+            <el-form-item label="观测时间:" v-if="!queryParams.isStand">
+              <el-switch
+                v-model="queryParams.hot"
+                inline-prompt
+                active-text="正点"
+                size="default"
+                inactive-text="分钟"
+              />
+
+              <span class="form-item__label">日界:</span>
+              <el-switch
+                v-model="queryParams.points"
+                inline-prompt
+                active-text="0点"
+                size="default"
+                inactive-text="18点"
+              />
+
+              <el-date-picker
+                v-if="queryParams.hot"
+                style="margin-left: 10px"
+                v-model="queryParams.time"
+                type="date"
+                placeholder="请选择"
+              />
+              <el-date-picker
+                v-if="!queryParams.hot"
+                style="margin-left: 10px"
+                v-model="queryParams.time"
+                type="datetime"
+                placeholder="请选择"
+                format="YYYY-MM-DD HH:mm"
+              />
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" @click="handleQuery"> 查询 </el-button>
+              <el-button style="margin-left: 10px" @click="resetQuery"> 重置 </el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+        <div class="header-button-ri">
+          <slot name="toolButton">
+            <img class="setting" src="@/assets/images/setting.png" />
+          </slot>
+        </div>
+      </div>
+      <!-- 表格主体 -->
+      <el-table stripe ref="tableRef" :border="true" :data="processTableData"  size="small">
+        <el-table-column align="left" label="序号" width="80px" :show-overflow-tooltip="true" >
+          <template #default="scope">
+            {{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
+          </template>
+        </el-table-column>
+        <template v-for="item in columns" :key="item">
+          <el-table-column v-bind="item" :align="item.align ?? 'left'" :reserve-selection="item.type == 'selection'" :show-overflow-tooltip="true" >
+          </el-table-column>
+        </template>
+        <!-- 无数据 -->
+        <template #empty>
+          <div class="table-empty">
+            <slot name="empty">
+              <img src="@/assets/images/notData.png" alt="notData" />
+              <div>暂无数据</div>
+            </slot>
+          </div>
+        </template>
+      </el-table>
+      <!-- 分页组件 -->
+      <Pagination :pageable="pageable" :page-sizes="[24]" :handle-size-change="handleSizeChange" :handle-current-change="handleCurrentChange" />
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts" name="useProTable">
+import Pagination from "@/components/ProTable/components/Pagination.vue";
+import { ref, reactive } from "vue";
+import { ColumnProps } from "@/components/ProTable/interface";
+const pageable = ref<any>({
+  pageNum: 1,
+  pageSize: 24,
+  total: 1
+});
+
+const queryParams = ref({
+  isStand:true,
+  points: true,
+  name: '',
+  time:'',
+  hot:true,
+  pageNum: 1,
+  pageSize: 20,
+  total: 1
+});
+
+// 查询功能
+const handleQuery = () => {
+  queryParams.value.pageNum = 1;
+};
+
+//搜索功能
+const resetQuery = () => {
+  queryParams.value.pageNum = 1;
+};
+
+/**
+ * @description 每页条数改变
+ * @param {Number} val 当前条数
+ * @return void
+ * */
+const handleSizeChange = (val: number) => {
+  console.log(val);
+};
+
+/**
+ * @description 当前页改变
+ * @param {Number} val 当前页
+ * @return void
+ * */
+const handleCurrentChange = (val: number) => {
+  console.log(val);
+};
+
+const processTableData = ref([
+  {
+    id: "681913747276782417",
+    a: "固定站2",
+    b: "M1001",
+    d: "2024-09-02",
+    e: "0.2",
+    f: "150",
+    g: "不确定",
+    h: "",
+    i: "",
+    j: "不确定"
+  }
+]);
+
+// 表格配置项
+const columns = reactive<ColumnProps[]>([
+  { prop: "a", label: "站名" },
+  { prop: "b", label: "站号" },
+  { prop: "d", label: "观测时间" },
+  { prop: "e", label: "超声风传感器" },
+  { prop: "f", label: "气温传感器" },
+  { prop: "g", label: "湿度传感器" },
+  { prop: "h", label: "气压传感器" },
+  { prop: "i", label: "称重式降水传感器" },
+  { prop: "j", label: "翻斗雨量传感器" }
+]);
+</script>

+ 147 - 0
src/views/query/dutyProcess/index.vue

@@ -0,0 +1,147 @@
+<template>
+  <div class="table-box">
+    <div class="card table-main">
+      <!-- 表格头部 操作按钮 -->
+      <div class="table-header">
+        <div class="header-button-lf">
+          <el-form :model="queryParams" label-width="auto"  :inline="true">
+            <el-form-item label="自动站:">
+              <el-select v-model="queryParams.code" placeholder="请选择" clearable style="width: 200px">
+                <el-option label="M1994" value="M1994" />
+                <el-option label="M1995" value="M1995" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="数据类型:">
+              <el-select v-model="queryParams.type" placeholder="请选择" clearable style="width: 200px">
+                <el-option label="时段统计" value="1" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="观测时间:">
+              <el-date-picker
+                v-model="queryParams.time"
+                type="daterange"
+                range-separator="至"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+              />
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" @click="handleQuery"> 查询 </el-button>
+              <el-button style="margin-left: 10px" @click="resetQuery"> 重置 </el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+        <div class="header-button-ri">
+          <slot name="toolButton">
+            <img class="setting" src="@/assets/images/setting.png" />
+          </slot>
+        </div>
+      </div>
+      <!-- 表格主体 -->
+      <el-table stripe ref="tableRef" :border="true" :data="processTableData"  size="small">
+        <el-table-column align="left" label="序号" width="80px" :show-overflow-tooltip="true">
+          <template #default="scope">
+            {{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
+          </template>
+        </el-table-column>
+        <template v-for="item in columns" :key="item">
+          <el-table-column v-bind="item" :align="item.align ?? 'left'" :reserve-selection="item.type == 'selection'" :show-overflow-tooltip="true">
+          </el-table-column>
+        </template>
+        <!-- 无数据 -->
+        <template #empty>
+          <div class="table-empty">
+            <slot name="empty">
+              <img src="@/assets/images/notData.png" alt="notData" />
+              <div>暂无数据</div>
+            </slot>
+          </div>
+        </template>
+      </el-table>
+      <!-- 分页组件 -->
+      <Pagination :pageable="pageable" :handle-size-change="handleSizeChange" :handle-current-change="handleCurrentChange" />
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts" name="useProTable">
+import Pagination from "@/components/ProTable/components/Pagination.vue";
+import { ref, reactive } from "vue";
+import { ColumnProps } from "@/components/ProTable/interface";
+const pageable = ref<any>({
+  pageNum: 1,
+  pageSize: 20,
+  total: 1
+});
+
+const queryParams = ref({
+  code: '',
+  type:'',
+  time:'',
+  pageNum: 1,
+  pageSize: 20,
+  total: 2
+});
+
+// 查询功能
+const handleQuery = () => {
+  queryParams.value.pageNum = 1;
+};
+
+//搜索功能
+const resetQuery = () => {
+  queryParams.value.pageNum = 1;
+};
+
+/**
+ * @description 每页条数改变
+ * @param {Number} val 当前条数
+ * @return void
+ * */
+const handleSizeChange = (val: number) => {
+  console.log(val);
+};
+
+/**
+ * @description 当前页改变
+ * @param {Number} val 当前页
+ * @return void
+ * */
+const handleCurrentChange = (val: number) => {
+  console.log(val);
+};
+
+const processTableData = ref([
+  {
+    id: "681913747276782417",
+    a: "统计数据",
+    b: "0",
+    c: "0",
+    d: "2",
+    e: "2",
+    f: "25",
+    g: "无"
+  },
+  {
+    id: "681913747276782417",
+    a: "2024-09-13 14-56",
+    b: "否",
+    c: "否",
+    d: "否",
+    e: "否",
+    f: "是",
+    g: "无"
+  }
+]);
+
+// 表格配置项
+const columns = reactive<ColumnProps[]>([
+  { prop: "a", label: "观测时间" },
+  { prop: "b", label: "早报" },
+  { prop: "c", label: "缺报" },
+  { prop: "d", label: "迟报" },
+  { prop: "e", label: "非实时修改数据" },
+  { prop: "f", label: "设备故障" },
+  { prop: "g", label: "其他" }
+]);
+</script>

+ 151 - 0
src/views/query/hazardousWeather/index.vue

@@ -0,0 +1,151 @@
+<template>
+  <div class="table-box">
+    <div class="card table-main">
+      <!-- 表格头部 操作按钮 -->
+      <div class="table-header">
+        <div class="header-button-lf">
+          <el-form :model="queryParams" label-width="auto"  :inline="true">
+            <el-form-item label="站号:">
+              <el-select v-model="queryParams.code" placeholder="请选择" clearable style="width: 200px">
+                <el-option label="RS0001" value="RS0001" />
+                <el-option label="RS0002" value="RS0002" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="告警类型:">
+              <el-select v-model="queryParams.type" placeholder="请选择" clearable style="width: 200px">
+                <el-option label="能见度" value="1" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="告警时间:">
+              <el-date-picker
+                v-model="queryParams.time"
+                type="datetimerange"
+                range-separator="至"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+              />
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" @click="handleQuery"> 查询 </el-button>
+              <el-button style="margin-left: 10px" @click="resetQuery"> 重置 </el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+      </div>
+      <!-- 表格主体 -->
+      <el-table stripe ref="tableRef" :border="true" :data="processTableData"  size="small">
+        <el-table-column align="left" label="序号" width="80px" :show-overflow-tooltip="true" >
+          <template #default="scope">
+            {{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
+          </template>
+        </el-table-column>
+        <template v-for="item in columns" :key="item">
+          <el-table-column v-bind="item" :align="item.align ?? 'left'" :reserve-selection="item.type == 'selection'" :show-overflow-tooltip="true" >
+          </el-table-column>
+        </template>
+        <!-- 无数据 -->
+        <template #empty>
+          <div class="table-empty">
+            <slot name="empty">
+              <img src="@/assets/images/notData.png" alt="notData" />
+              <div>暂无数据</div>
+            </slot>
+          </div>
+        </template>
+      </el-table>
+      <!-- 分页组件 -->
+      <Pagination :pageable="pageable" :handle-size-change="handleSizeChange" :handle-current-change="handleCurrentChange" />
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts" name="useProTable">
+import Pagination from "@/components/ProTable/components/Pagination.vue";
+import { ref, reactive } from "vue";
+import { ColumnProps } from "@/components/ProTable/interface";
+const pageable = ref<any>({
+  pageNum: 1,
+  pageSize: 20,
+  total: 1
+});
+
+const queryParams = ref({
+  code: '',
+  type:'',
+  time:'',
+  pageNum: 1,
+  pageSize: 20,
+  total: 2
+});
+
+// 查询功能
+const handleQuery = () => {
+  queryParams.value.pageNum = 1;
+};
+
+//搜索功能
+const resetQuery = () => {
+  queryParams.value.pageNum = 1;
+};
+
+/**
+ * @description 每页条数改变
+ * @param {Number} val 当前条数
+ * @return void
+ * */
+const handleSizeChange = (val: number) => {
+  console.log(val);
+};
+
+/**
+ * @description 当前页改变
+ * @param {Number} val 当前页
+ * @return void
+ * */
+const handleCurrentChange = (val: number) => {
+  console.log(val);
+};
+
+const processTableData = ref([
+  {
+    id: "681913747276782417",
+    b: "RS001",
+    a: "测试本地",
+    c: "日常策略",
+    d: "告警中",
+    e: "能见度",
+    f: "143m",
+    g: "2023-06-12 15:00:00",
+    h: "2023-06-12 15:00:00",
+    i: "字幕通知",
+    j: "能见度告警 阈值(1分钟平均能见度 ≤ 500m)观测值(143m)"
+  },
+  {
+    id: "681913747276782417",
+    b: "M1987",
+    a: "固定站2",
+    c: "123",
+    d: "已消警",
+    e: "能见度",
+    f: "143m",
+    g: "2023-06-12 15:00:00",
+    h: "2023-06-12 15:00:00",
+    i: "字幕通知",
+    j: "能见度告警 阈值(1分钟平均能见度 ≤ 500m)观测值(143m)"
+  }
+]);
+
+// 表格配置项
+const columns = reactive<ColumnProps[]>([
+  { prop: "b", label: "站号" },
+  { prop: "a", label: "站名" },
+  { prop: "c", label: "策略名称" },
+  { prop: "d", label: "策略状态" },
+  { prop: "e", label: "告警类型" },
+  { prop: "f", label: "观测值" },
+  { prop: "g", label: "告警时间",width:150 },
+  { prop: "h", label: "消警时间",width:150},
+  { prop: "i", label: "通知方式" },
+  { prop: "j", label: "告警说明",width:400 }
+]);
+</script>

+ 13 - 0
src/views/query/log/index.vue

@@ -0,0 +1,13 @@
+<template>
+<div></div>
+</template>
+
+<script>
+export default {
+  name: "index"
+}
+</script>
+
+<style scoped>
+
+</style>

+ 13 - 0
src/views/query/qualityAudits/index.vue

@@ -0,0 +1,13 @@
+<template>
+<div></div>
+</template>
+
+<script>
+export default {
+  name: "index"
+}
+</script>
+
+<style scoped>
+
+</style>

+ 170 - 0
src/views/query/queryObservationData/index.vue

@@ -0,0 +1,170 @@
+<template>
+  <div class="table-box">
+    <div class="card table-main">
+      <!-- 表格头部 操作按钮 -->
+      <div class="table-header">
+        <div class="header-button-lf">
+          <el-form :model="queryParams" label-width="auto" :inline="true">
+            <el-form-item label="自动站:">
+              <el-checkbox v-model="queryParams.isStand" label="多站"/>
+              <el-select v-model="queryParams.name" placeholder="请选择" clearable style="width: 200px;margin-left: 10px">
+                <el-option label="站1" value="1" />
+                <el-option label="站2" value="2" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="观测时间:" v-if="queryParams.isStand">
+              <el-date-picker
+                v-model="queryParams.time"
+                type="datetime"
+                placeholder="请选择"
+                format="YYYY-MM-DD HH:mm"
+              />
+            </el-form-item>
+            <el-form-item label="观测时间:" v-if="!queryParams.isStand">
+              <el-switch
+                v-model="queryParams.hot"
+                inline-prompt
+                active-text="正点"
+                size="default"
+                inactive-text="分钟"
+              />
+
+              <span class="form-item__label">日界:</span>
+              <el-switch
+                v-model="queryParams.points"
+                inline-prompt
+                active-text="0点"
+                size="default"
+                inactive-text="18点"
+              />
+
+              <el-date-picker
+                v-if="queryParams.hot"
+                style="margin-left: 10px"
+                v-model="queryParams.time"
+                type="date"
+                placeholder="请选择"
+              />
+              <el-date-picker
+                v-if="!queryParams.hot"
+                style="margin-left: 10px"
+                v-model="queryParams.time"
+                type="datetime"
+                placeholder="请选择"
+                format="YYYY-MM-DD HH:mm"
+              />
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" @click="handleQuery"> 查询 </el-button>
+              <el-button style="margin-left: 10px" @click="resetQuery"> 重置 </el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+        <div class="header-button-ri">
+          <slot name="toolButton">
+            <img class="setting" src="@/assets/images/setting2.png" />
+          </slot>
+        </div>
+      </div>
+      <!-- 表格主体 -->
+      <el-table stripe ref="tableRef" :border="true" :data="processTableData"  size="small">
+        <el-table-column align="left" label="序号" width="80px" :show-overflow-tooltip="true" >
+          <template #default="scope">
+            {{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
+          </template>
+        </el-table-column>
+        <template v-for="item in columns" :key="item">
+          <el-table-column v-bind="item" :align="item.align ?? 'left'" :reserve-selection="item.type == 'selection'" :show-overflow-tooltip="true" >
+          </el-table-column>
+        </template>
+        <!-- 无数据 -->
+        <template #empty>
+          <div class="table-empty">
+            <slot name="empty">
+              <img src="@/assets/images/notData.png" alt="notData" />
+              <div>暂无数据</div>
+            </slot>
+          </div>
+        </template>
+      </el-table>
+      <!-- 分页组件 -->
+      <Pagination :pageable="pageable" :handle-size-change="handleSizeChange" :handle-current-change="handleCurrentChange" />
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts" name="useProTable">
+import Pagination from "@/components/ProTable/components/Pagination.vue";
+import { ref, reactive } from "vue";
+import { ColumnProps } from "@/components/ProTable/interface";
+const pageable = ref<any>({
+  pageNum: 1,
+  pageSize: 20,
+  total: 1
+});
+
+const queryParams = ref({
+  isStand:true,
+  points: true,
+  name: '',
+  time:'',
+  hot:true,
+  pageNum: 1,
+  pageSize: 20,
+  total: 1
+});
+
+// 查询功能
+const handleQuery = () => {
+  queryParams.value.pageNum = 1;
+};
+
+//搜索功能
+const resetQuery = () => {
+  queryParams.value.pageNum = 1;
+};
+
+/**
+ * @description 每页条数改变
+ * @param {Number} val 当前条数
+ * @return void
+ * */
+const handleSizeChange = (val: number) => {
+  console.log(val);
+};
+
+/**
+ * @description 当前页改变
+ * @param {Number} val 当前页
+ * @return void
+ * */
+const handleCurrentChange = (val: number) => {
+  console.log(val);
+};
+
+const processTableData = ref([
+  {
+    id: "681913747276782417",
+    a: "测试本地",
+    b: "RS001",
+    d: "2024-09-02 22:57",
+    e: "0.2",
+    f: "150",
+    g: "25.3",
+    h: "61",
+    i: "/"
+  }
+]);
+
+// 表格配置项
+const columns = reactive<ColumnProps[]>([
+  { prop: "a", label: "站名" },
+  { prop: "b", label: "站号" },
+  { prop: "d", label: "观测时间" },
+  { prop: "e", label: "瞬风风速(m/s)" },
+  { prop: "f", label: "瞬风方向(°)" },
+  { prop: "g", label: "气温(℃)" },
+  { prop: "h", label: "相对湿度(%)" },
+  { prop: "i", label: "垂直能见度(m)" }
+]);
+</script>

+ 13 - 0
src/views/query/record/index.vue

@@ -0,0 +1,13 @@
+<template>
+<div></div>
+</template>
+
+<script>
+export default {
+  name: "index"
+}
+</script>
+
+<style scoped>
+
+</style>