cxs пре 6 месеци
родитељ
комит
e1cdf78176

+ 59 - 0
src/components/SCheckbox/index.vue

@@ -0,0 +1,59 @@
+vue
+<template>
+  <div class="s-checkbox" style="width: 100%; gap: 10px">
+    <template v-for="item in data" :key="item">
+      <el-button
+        v-if="data2.includes(item)"
+        type="primary"
+        style="min-width: 30px"
+        @click="toggleItem(item)"
+      >
+        {{ item }}
+      </el-button>
+      <el-button
+        v-else
+        style="min-width: 30px"
+        @click="toggleItem(item)"
+      >
+        {{ item }}
+      </el-button>
+    </template>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { ref, defineProps, defineEmits } from "vue";
+
+// Define props with default values
+const props = defineProps<{
+  data?: number[];
+  data2?: number[];
+}>();
+
+// Use default values if props are not provided
+const data = ref(props.data || []);
+const data2 = ref(props.data2 || []);
+
+// Define emits to send data back to the parent
+const emit = defineEmits<{
+  (e: 'update:data2', value: number[]): void;
+}>();
+
+function toggleItem(item: number) {
+  if (data2.value.includes(item)) {
+    data2.value = data2.value.filter((i) => i !== item);
+  } else {
+    data2.value.push(item);
+  }
+  // Emit the updated data2 back to the parent
+  emit('update:data2', data2.value);
+}
+</script>
+
+<style scoped>
+.s-checkbox {
+  width: 100%;
+  display: flex;
+  align-items: center;
+}
+</style>

+ 1 - 0
src/languages/modules/zh.ts

@@ -24,6 +24,7 @@ export default {
     exitFullScreen: "退出全屏",
     personalData: "个人信息",
     changePassword: "修改密码",
+    settingsLayout: "布局设置",
     logout: "退出登录"
   }
 };

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

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

+ 8 - 1
src/layouts/components/Header/components/Avatar.vue

@@ -15,6 +15,9 @@
         <el-dropdown-item @click="openDialog('passwordRef')">
           <el-icon><Edit /></el-icon>{{ $t("header.changePassword") }}
         </el-dropdown-item>
+        <el-dropdown-item divided @click="openDrawer">
+          <el-icon><Setting /></el-icon>{{ $t("header.settingsLayout") }}
+        </el-dropdown-item>
         <el-dropdown-item divided @click="logout">
           <el-icon><SwitchButton /></el-icon>{{ $t("header.logout") }}
         </el-dropdown-item>
@@ -36,11 +39,15 @@ import { useUserStore } from "@/stores/modules/user";
 import { ElMessageBox, ElMessage } from "element-plus";
 import InfoDialog from "./InfoDialog.vue";
 import PasswordDialog from "./PasswordDialog.vue";
-
+import mittBus from "@/utils/mittBus";
 const router = useRouter();
 const userStore = useUserStore();
 const username = computed(() => userStore.userInfo.name);
 
+const openDrawer = () => {
+  mittBus.emit("openThemeDrawer");
+};
+
 // 退出登录
 const logout = () => {
   ElMessageBox.confirm("您是否确认退出登录?", "温馨提示", {

+ 46 - 1
src/layouts/components/Header/components/PasswordDialog.vue

@@ -8,10 +8,55 @@
       </span>
     </template>
   </el-dialog>
+
+  <!-- 修改密码对话框 -->
+  <el-dialog v-model="dialogVisible" title="修改密码"  width="700px" append-to-body>
+    <el-form ref="formRef" :model="userForm" :rules="rules" label-width="120px">
+      <el-form-item label="用户账号" >
+        <el-input v-model="userForm.account" disabled placeholder="请输入" clearable />
+      </el-form-item>
+      <el-form-item label="登录密码" prop="password">
+        <el-input v-model="userForm.password" type="password" placeholder="请输入" clearable show-password />
+      </el-form-item>
+      <el-form-item label="确认密码" prop="confirmPassword">
+        <el-input v-model="userForm.confirmPassword" type="password" placeholder="请输入" clearable show-password />
+      </el-form-item>
+    </el-form>
+    <template #footer>
+      <div class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
+      </div>
+    </template>
+  </el-dialog>
 </template>
 
 <script setup lang="ts">
-import { ref } from "vue";
+import {reactive, ref} from "vue";
+
+const formRef = ref<any>();
+const rules = ref<any>(
+  {
+    account: [{ required: true, message: "用户账号不能为空", trigger: "blur" }],
+    password: [{ required: true, message: "登录密码不能为空", trigger: "blur" }],
+    confirmPassword: [{ required: true, message: "确认密码不能为空", trigger: "blur" }],
+    role: [{ required: true, message: "角色不能为空", trigger: "blur" }],
+    stations: [{ required: true, message: "关联台站不能为空", trigger: "blur" }],
+  }
+);
+
+
+const userForm = ref<any>({
+  account: "Admin",
+  password: "",
+  confirmPassword: "",
+  role: "",
+  stations:[],
+  name: "",
+  post: "",
+  affiliation: "",
+  phone: ""
+});
 
 const dialogVisible = ref(false);
 const openDialog = () => {

+ 6 - 2
src/views/maintenance/siteRecords/index.vue

@@ -51,7 +51,9 @@
                   placement="top"
                 >
                   <el-button type="primary" link @click="handleUpdate">
-                    <img class="operation-img" src="@/assets/images/edit.png">
+                    <el-icon >
+                      <Edit />
+                    </el-icon>
                   </el-button>
                 </el-tooltip>
                 <el-tooltip
@@ -61,7 +63,9 @@
                   placement="top"
                 >
                   <el-button type="primary" link  @click="handleDelete(scope.row)">
-                    <img class="operation-img" src="@/assets/images/delete.png">
+                    <el-icon >
+                      <Delete />
+                    </el-icon>
                   </el-button>
                 </el-tooltip>
               </template>

+ 6 - 2
src/views/system/disposition/components/distributionAutomatic.vue

@@ -29,7 +29,9 @@
                   placement="top"
                 >
                   <el-button type="primary" link @click="handleUpdate">
-                    <img class="operation-img" src="@/assets/images/edit.png">
+                    <el-icon >
+                      <Edit />
+                    </el-icon>
                   </el-button>
                 </el-tooltip>
                 <el-tooltip
@@ -39,7 +41,9 @@
                   placement="top"
                 >
                   <el-button type="primary" link  @click="handleDelete(scope.row)">
-                    <img class="operation-img" src="@/assets/images/delete.png">
+                    <el-icon >
+                      <Delete />
+                    </el-icon>
                   </el-button>
                 </el-tooltip>
               </template>

+ 6 - 2
src/views/system/disposition/components/serviceBeidou.vue

@@ -29,7 +29,9 @@
                   placement="top"
                 >
                   <el-button type="primary" link @click="handleUpdate">
-                    <img class="operation-img" src="@/assets/images/edit.png">
+                    <el-icon >
+                      <Edit />
+                    </el-icon>
                   </el-button>
                 </el-tooltip>
                 <el-tooltip
@@ -39,7 +41,9 @@
                   placement="top"
                 >
                   <el-button type="primary" link  @click="handleDelete(scope.row)">
-                    <img class="operation-img" src="@/assets/images/delete.png">
+                    <el-icon >
+                      <Delete />
+                    </el-icon>
                   </el-button>
                 </el-tooltip>
               </template>

+ 6 - 2
src/views/system/role/index.vue

@@ -34,7 +34,9 @@
                   placement="top"
                 >
                   <el-button type="primary" link @click="handleUpdate">
-                    <img class="operation-img" src="@/assets/images/edit.png">
+                    <el-icon >
+                      <Edit />
+                    </el-icon>
                   </el-button>
                 </el-tooltip>
                 <el-tooltip
@@ -44,7 +46,9 @@
                   placement="top"
                 >
                   <el-button type="primary" link  @click="handleDelete(scope.row)">
-                    <img class="operation-img" src="@/assets/images/delete.png">
+                    <el-icon >
+                      <Delete />
+                    </el-icon>
                   </el-button>
                 </el-tooltip>
               </template>

+ 411 - 18
src/views/system/stations/components/parametersBasic.vue

@@ -1,40 +1,352 @@
 <template>
   <el-form :inline="true" :model="formInline" ref="formRef" :rules="rules" class="form-inline" label-position="top">
-    <div style="display: flex;flex-direction: column;height: 71vh">
-      <div style="flex-grow: 1;">
+    <div style="display: flex;flex-direction: column;">
+      <div style="flex-grow: 1;height: 66vh;overflow-y: auto;overflow-x: hidden">
         <div class="disposition-title">基本参数</div>
         <el-row :gutter="20">
           <el-col :span="4">
-            <el-form-item label="部别" prop="user" style="width: 200px">
-              <el-input v-model="formInline.user"></el-input>
+            <el-form-item label="部别" prop="division" style="width: 200px">
+              <el-input v-model="formInline.division"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="4">
-            <el-form-item label="台站名称" prop="user" style="width: 200px">
-              <el-input v-model="formInline.user"></el-input>
+            <el-form-item label="台站名称" prop="name" style="width: 200px">
+              <el-input v-model="formInline.name"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="4">
-            <el-form-item label="站号" prop="user" style="width: 200px">
-              <el-input v-model="formInline.user"></el-input>
+            <el-form-item label="站号" prop="numberStation" style="width: 200px">
+              <el-input v-model="formInline.numberStation"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="4">
-            <el-form-item label="地图级别" prop="user" style="width: 200px">
-              <el-input v-model="formInline.user"></el-input>
+            <el-form-item label="地图级别" prop="level" style="width: 200px">
+              <el-input v-model="formInline.level"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="4">
-            <el-form-item label="所属基地" prop="user" style="width: 200px">
-              <el-input v-model="formInline.user"></el-input>
+            <el-form-item label="所属基地" prop="base" style="width: 200px">
+              <el-input v-model="formInline.base"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="4">
-            <el-form-item label="所属旅" prop="user" style="width: 200px">
-              <el-input v-model="formInline.user"></el-input>
+            <el-form-item label="所属旅" prop="brigade" style="width: 200px">
+              <el-input v-model="formInline.brigade"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row :gutter="20">
+          <el-col :span="4">
+            <el-form-item label="架设方式" prop="methodErection" style="width: 200px">
+              <el-input v-model="formInline.methodErection"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="上传间隔" prop="interval" style="width: 200px">
+              <div  style="display:flex;align-items: center">
+                <el-select v-model="formInline.interval" style="width: 180px">
+                  <el-option label="1" value="1"></el-option>
+                  <el-option label="2" value="2"></el-option>
+                  <el-option label="30" value="30"></el-option>
+                  <el-option label="60" value="60"></el-option>
+                </el-select>
+                <span style="padding-left: 10px">分</span>
+              </div>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="省" prop="provinces" style="width: 200px">
+              <el-input v-model="formInline.provinces"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="市县" prop="cities" style="width: 200px">
+              <el-input v-model="formInline.cities"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="区镇" prop="districts" style="width: 200px">
+              <el-input v-model="formInline.districts"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="乡镇" prop="townships" style="width: 200px">
+              <el-input v-model="formInline.townships"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="4">
+            <el-form-item label="相对县城距离" prop="interval" style="width: 200px">
+              <div  style="display:flex;align-items: center">
+                <el-input v-model="formInline.distance" style="width: 160px"></el-input>
+                <span style="padding-left: 10px">公里</span>
+              </div>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="相对县城方向" prop="direction" style="width: 200px">
+              <el-select v-model="formInline.direction">
+                <el-option label="东方" value="1"></el-option>
+                <el-option label="南方" value="2"></el-option>
+                <el-option label="西方" value="3"></el-option>
+                <el-option label="北方" value="4"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="经度" prop="longitude" style="width: 200px">
+              <div  style="display:flex;align-items: center">
+                <el-input v-model="formInline.longitude" style="width: 130px"></el-input>
+                <el-select v-model="formInline.longitude2" placeholder="" style="width: 60px;margin-left: 10px">
+                  <el-option label="E" value="E"></el-option>
+                  <el-option label="W" value="W"></el-option>
+                </el-select>
+              </div>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="纬度" prop="latitude" style="width: 200px">
+              <div  style="display:flex;align-items: center">
+                <el-input v-model="formInline.latitude" style="width: 130px"></el-input>
+                <el-select v-model="formInline.latitude2" placeholder=""  style="width: 60px;margin-left: 10px">
+                  <el-option label="N" value="N"></el-option>
+                  <el-option label="S" value="S"></el-option>
+                </el-select>
+              </div>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="观测场海拔高度" prop="fieldElevation" style="width: 200px">
+              <div  style="display:flex;align-items: center">
+                <el-input v-model="formInline.fieldElevation" style="width: 180px"></el-input>
+                <span style="padding-left: 10px">米</span>
+              </div>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="气压传感器海拔高度" prop="sensorElevation" style="width: 200px">
+              <div  style="display:flex;align-items: center">
+                <el-input v-model="formInline.sensorElevation" style="width: 180px"></el-input>
+                <span style="padding-left: 10px">米</span>
+              </div>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="4">
+            <el-form-item label="测风器距地高度" prop="heightAnmometers" style="width: 200px">
+              <div  style="display:flex;align-items: center">
+                <el-input v-model="formInline.heightAnmometers" style="width: 180px"></el-input>
+                <span style="padding-left: 10px">米</span>
+              </div>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="建站日期" prop="buildWebsiteTime" style="width: 200px">
+              <el-date-picker
+                v-model="formInline.buildWebsiteTime"
+                type="date"
+                placeholder="请选择"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="观测组长" prop="leader" style="width: 200px">
+              <el-input v-model="formInline.leader" style="width: 180px"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="台长" prop="drector" style="width: 200px">
+              <el-input v-model="formInline.drector" style="width: 180px"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="预审员" prop="preExaminer" style="width: 200px">
+              <el-input v-model="formInline.preExaminer" style="width: 180px"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="授时许可" prop="grantPermission" style="width: 200px">
+              <el-select v-model="formInline.grantPermission">
+                <el-option label="不准授权" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="4">
+            <el-form-item label="观测方式" prop="modeObservation" style="width: 200px">
+              <el-select v-model="formInline.modeObservation">
+                <el-option label="自动" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="观测次数" prop="numberObservation" style="width: 200px">
+              <div  style="display:flex;align-items: center">
+                <el-input v-model="formInline.numberObservation" style="width: 180px"></el-input>
+                <span style="padding-left: 10px">次</span>
+              </div>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="20">
+            <el-form-item label="" prop="modeObservation" style="width: 200px">
+              <div style="display: flex;align-items: center">
+                <span>观测时次</span>
+                <el-checkbox v-model="formInline.allTime" style="margin-left: 10px" label="全选" />
+              </div>
+              <sCheckbox style="margin-top: 5px" :data="selectedItemData" :data2="selectedItems" @update:data2="updateSelectedItems"></sCheckbox>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <div class="disposition-title">通信设置</div>
+        <el-row :gutter="20">
+          <el-col :span="20">
+            <div style="display: flex;align-items: center;margin-bottom: 5px">
+              <span>主通信</span>
+              <el-checkbox v-model="formInline.enableCorrespondence" style="margin-left: 10px" label="启用从通信" />
+            </div>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="4">
+            <el-form-item label="通信方式" prop="methods" style="width: 200px">
+              <el-select v-model="formInline.methods">
+                <el-option label="2G" value="2"></el-option>
+                <el-option label="3G" value="3"></el-option>
+                <el-option label="4G" value="4"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="传输协议" prop="agreement" style="width: 200px">
+              <el-select v-model="formInline.agreement">
+                <el-option label="TCP+DDP" value="2"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="SIM卡号" prop="sim" style="width: 200px">
+              <el-input v-model="formInline.sim"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="通信模块ID" prop="modelId" style="width: 200px">
+              <el-input v-model="formInline.modelId"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="端口号" prop="port" style="width: 200px">
+              <el-input v-model="formInline.port"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="通信模式" prop="communicationMode" style="width: 200px">
+              <el-select v-model="formInline.communicationMode">
+                <el-option label="主动+补发" value="2"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="20">
+            <el-form-item label="" prop="modeObservation" style="width: 200px">
+              <div style="display: flex;align-items: center">
+                <span>命令设置</span>
+                <el-button type="primary" plain style="margin-left: 10px">设置命令</el-button>
+              </div>
+            </el-form-item>
+            <!-- 表格主体 -->
+            <div class="table-box" style="width:920px;">
+            <el-table stripe ref="tableRef" :border="true" :data="processTableData"  size="small">
+              <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">
+                  <template #default="scope"></template>
+                </el-table-column>
+              </template>
+
+              <!-- 无数据 -->
+              <template #empty>
+                <div class="table-empty">
+                  <slot name="empty">
+                    <div>暂无数据</div>
+                  </slot>
+                </div>
+              </template>
+            </el-table>
+            </div>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="20">
+          <el-col :span="20">
+            <div style="display: flex;align-items: center;margin-bottom: 5px;margin-top: 20px">
+              <span>从通信</span>
+            </div>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="4">
+            <el-form-item label="通信方式" prop="methods" style="width: 200px">
+              <el-select v-model="formInline.methods">
+                <el-option label="串口" value="2"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="串口号" prop="agreement" style="width: 200px">
+              <el-select v-model="formInline.agreement">
+                <el-option label="/dev/ttyAMAO" value="2"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="通信参数" prop="agreement" style="width: 200px">
+              <el-select v-model="formInline.agreement">
+                <el-option label="9600,N8,1" value="2"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="通信模式" prop="communicationMode" style="width: 200px">
+              <el-select v-model="formInline.communicationMode">
+                <el-option label="主动+补发" value="2"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="20">
+            <el-form-item label="" prop="modeObservation" style="width: 200px">
+              <div style="display: flex;align-items: center">
+                <span>命令设置</span>
+                <el-button type="primary" plain style="margin-left: 10px">设置命令</el-button>
+              </div>
+            </el-form-item>
+            <!-- 表格主体 -->
+            <div class="table-box" style="width:920px;">
+              <el-table stripe ref="tableRef" :border="true" :data="processTableData"  size="small">
+                <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">
+                    <template #default="scope"></template>
+                  </el-table-column>
+                </template>
+
+                <!-- 无数据 -->
+                <template #empty>
+                  <div class="table-empty">
+                    <slot name="empty">
+                      <div>暂无数据</div>
+                    </slot>
+                  </div>
+                </template>
+              </el-table>
+            </div>
+          </el-col>
+        </el-row>
       </div>
       <div class="disposition-bottom">
         <el-button > 取消 </el-button>
@@ -45,16 +357,67 @@
 </template>
 
 <script setup lang="tsx">
-import {ref} from "vue";
+import sCheckbox from "@/components/SCheckbox/index.vue"
+import {reactive, ref} from "vue";
+import {ColumnProps} from "@/components/ProTable/interface";
 const formRef = ref<any>();
 const formInline = ref<any>({
-  user:"",
-  region:""
+  division:"",
+  name:"",
+  numberStation:"",
+  level:"",
+  base:"",
+  brigade:"",
+  methodErection:"",
+  interval:"",
+  provinces:"",
+  cities:"",
+  districts:"",
+  townships:"",
+  distance:"",
+  direction:"",
+  longitude: "",
+  longitude2: "E",
+  latitude:"",
+  latitude2:"N",
+  fieldElevation:"",
+  sensorElevation:"",
+  modeObservation:"",
+  numberObservation:"",
+  heightAnmometers:"",
+  buildWebsiteTime:"",
+  leader:"",
+  drector:"",
+  preExaminer:"",
+  grantPermission:"",
+  allTime:"",
+  enableCorrespondence:"",
+  methods:"",
+  agreement:"",
+  sim:"",
+  modelId:"",
+  port:"",
+  communicationMode:""
 })
 
 const rules = ref<any>(
   {
-    user: [{ required: true, message: "部别不能为空", trigger: "blur" }],
+    division: [{ required: true, message: "部别不能为空", trigger: "blur" }],
+    name: [{ required: true, message: "台站名称不能为空", trigger: "blur" }],
+    numberStation: [{ required: true, message: "站号不能为空", trigger: "blur" }],
+    base: [{ required: true, message: "所属基地不能为空", trigger: "blur" }],
+    brigade: [{ required: true, message: "所属旅不能为空", trigger: "blur" }],
+    methodErection: [{ required: true, message: "架设方式不能为空", trigger: "blur" }],
+    provinces: [{ required: true, message: "省不能为空", trigger: "blur" }],
+    cities: [{ required: true, message: "市县不能为空", trigger: "blur" }],
+    districts: [{ required: true, message: "区镇不能为空", trigger: "blur" }],
+    townships: [{ required: true, message: "乡镇不能为空", trigger: "blur" }],
+    distance: [{ required: true, message: "相对县城距离不能为空", trigger: "blur" }],
+    longitude: [{ required: true, message: "相对县城方向不能为空", trigger: "blur" }],
+    latitude: [{ required: true, message: "相对县城方向不能为空", trigger: "blur" }],
+    fieldElevation: [{ required: true, message: "观测场海拔高度不能为空", trigger: "blur" }],
+    sensorElevation: [{ required: true, message: "气压传感器海拔高度不能为空", trigger: "blur" }],
+
   }
 );
 
@@ -66,7 +429,37 @@ const submitForm = () => {
     }
   });
 }
+
+const selectedItemData = ref<number[]>([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]);
+const selectedItems = ref<number[]>([]);
+
+function updateSelectedItems(newSelectedItems: number[]) {
+  selectedItems.value = newSelectedItems;
+}
+
+
+
+const processTableData = ref([
+  {
+    id: "681913747276782417",
+    a: "FZSJ",
+    b: "FZSJ",
+    c: "观测数据",
+    d: "1分钟",
+  }
+]);
+
+// 表格配置项
+const columns = reactive<ColumnProps[]>([
+  { prop: "a", label: "命令名称"},
+  { prop: "b", label: "命令标识符"},
+  { prop: "c", label: "命令类型" },
+  { prop: "d", label: "间隔时间(分钟)"}
+]);
 </script>
 
 <style scoped>
+.table-box{
+  height: auto;
+}
 </style>

+ 6 - 2
src/views/system/stations/index.vue

@@ -42,7 +42,9 @@
                   placement="top"
                 >
                   <el-button type="primary" link @click="handleUpdate">
-                    <img class="operation-img" src="@/assets/images/edit.png">
+                    <el-icon >
+                      <Edit />
+                    </el-icon>
                   </el-button>
                 </el-tooltip>
                 <el-tooltip
@@ -52,7 +54,9 @@
                   placement="top"
                 >
                   <el-button type="primary" link  @click="handleDelete(scope.row)">
-                    <img class="operation-img" src="@/assets/images/delete.png">
+                    <el-icon >
+                      <Delete />
+                    </el-icon>
                   </el-button>
                 </el-tooltip>
               </template>

+ 7 - 3
src/views/system/user/index.vue

@@ -37,7 +37,9 @@
                   placement="top"
                 >
                   <el-button type="primary" link @click="handleUpdate">
-                    <img class="operation-img" src="@/assets/images/edit.png">
+                    <el-icon >
+                      <Edit />
+                    </el-icon>
                   </el-button>
                 </el-tooltip>
                 <el-tooltip
@@ -47,7 +49,9 @@
                   placement="top"
                 >
                   <el-button type="primary" link  @click="handleDelete(scope.row)">
-                    <img class="operation-img" src="@/assets/images/delete.png">
+                    <el-icon >
+                      <Delete />
+                    </el-icon>
                   </el-button>
                 </el-tooltip>
 
@@ -58,7 +62,7 @@
                   placement="top"
                 >
                   <el-button type="primary" link  @click="handlePassword(scope.row)">
-                    <img class="operation-img" src="@/assets/images/password.png">
+                    <el-icon style="transform: rotate(45deg);"><Key /></el-icon>
                   </el-button>
                 </el-tooltip>
               </template>