wenhongquan 2 лет назад
Родитель
Сommit
9b52a9eb56

+ 53 - 1
ruoyi-ui-vue3/src/router/index.js

@@ -132,7 +132,59 @@ export const constantRoutes = [
         path: "",
         component: () => import("@/views/rules/add"),
         name: "RulesAdd" ,
-        meta: { title: "新增规则", activeMenu: "/rules/add" },
+        meta: { title: "新增规则", activeMenu: "/rules" },
+      },
+    ],
+  },
+  {
+    path: "/gateway/modbustcp/add",
+    hidden: true,
+    component: Layout,
+    children: [
+      {
+        path: "",
+        component: () => import("@/views/gateway/modbustcp/add"),
+        name: "ModbustcpAdd" ,
+        meta: { title: "新增ModbusTcp协议", activeMenu: "/gateway/modbustcp" },
+      },
+    ],
+  },
+  {
+    path: "/gateway/modbusrtu/add",
+    hidden: true,
+    component: Layout,
+    children: [
+      {
+        path: "",
+        component: () => import("@/views/gateway/modbusrtu/add"),
+        name: "ModbusrtuAdd" ,
+        meta: { title: "新增ModbusRtu协议", activeMenu: "/gateway/modbusrtu" },
+      },
+    ],
+  },
+  {
+    path: "/gateway/pointsetting/setting",
+    hidden: true,
+    component: Layout,
+    children: [
+      {
+        path: "",
+        component: () => import("@/views/gateway/pointsetting/setting"),
+        name: "PointSetting" ,
+        meta: { title: "点表配置", activeMenu: "/gateway/pointsetting/setting" },
+      },
+    ],
+  },
+  {
+    path: "/gateway/pointsetting/add",
+    hidden: true,
+    component: Layout,
+    children: [
+      {
+        path: "",
+        component: () => import("@/views/gateway/pointsetting/add"),
+        name: "PointSettingAdd" ,
+        meta: { title: "点表配置新增", activeMenu: "/gateway/pointsetting/add" },
       },
     ],
   }

+ 33 - 0
ruoyi-ui-vue3/src/views/alarm/alarmmanager/index.vue

@@ -0,0 +1,33 @@
+<template>
+  <div style="padding: 10px 15px">
+    <el-card class="box-card">
+      <template #header>
+        <div class="card-header">
+          <span>东门立柱摄像-详情</span>
+        </div>
+      </template>
+
+    </el-card>
+
+
+  </div>
+</template>
+
+<script setup lang="ts" name="Units">
+import {ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+
+
+const route = useRoute();
+const router = useRouter();
+
+
+</script>
+
+<style lang="scss" scoped>
+.card-header {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
+</style>

+ 33 - 0
ruoyi-ui-vue3/src/views/alarm/faultmanager/index.vue

@@ -0,0 +1,33 @@
+<template>
+  <div style="padding: 10px 15px">
+    <el-card class="box-card">
+      <template #header>
+        <div class="card-header">
+          <span>东门立柱摄像-详情</span>
+        </div>
+      </template>
+
+    </el-card>
+
+
+  </div>
+</template>
+
+<script setup lang="ts" name="Units">
+import {ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+
+
+const route = useRoute();
+const router = useRouter();
+
+
+</script>
+
+<style lang="scss" scoped>
+.card-header {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
+</style>

+ 2 - 2
ruoyi-ui-vue3/src/views/device/sensordash/add.vue

@@ -126,7 +126,7 @@
                 </div>
               </template>
               <div class="content-w" style="min-width: 400px">
-                <el-input type="textarea" :line-count="5" maxlength="200" placeholder="请输入描述"/>
+                <el-input type="textarea" :line-count="5"  show-word-limit maxlength="200" placeholder="请输入描述"/>
               </div>
             </el-descriptions-item>
             <el-descriptions-item :span="2">
@@ -136,7 +136,7 @@
                 </div>
               </template>
               <div class="content-w" style="min-width: 400px">
-                <el-input type="textarea" :line-count="5" maxlength="200" placeholder="请输入备注"/>
+                <el-input type="textarea" :line-count="5"  show-word-limit maxlength="200" placeholder="请输入备注"/>
               </div>
             </el-descriptions-item>
 

+ 110 - 0
ruoyi-ui-vue3/src/views/gateway/manager/index.vue

@@ -0,0 +1,110 @@
+<template>
+  <div style="padding: 10px 15px">
+    <el-card class="box-card">
+      <div style="display: flex; flex-direction: row; justify-content: space-between">
+        <div style="display: flex">
+          <div
+            style="
+                  display: flex;
+                  flex-direction: row;
+                  flex-wrap: nowrap;
+                  align-items: center;
+                "
+          >
+            <div style="font-size: 12px; width: 80px">名称:</div>
+            <el-input
+              v-model="searchform.protocolname"
+              placeholder="名称"
+            ></el-input>
+          </div>
+
+
+        </div>
+        <div>
+          <el-button type="primary" plain>重置</el-button>
+          <el-button type="primary">搜索</el-button>
+        </div>
+      </div>
+
+
+    </el-card>
+
+    <el-card class="box-card" style="margin-top: 15px">
+      <template #header>
+        <div class="card-header">
+          <span>网关管理</span>
+          <div>
+            <el-button type="primary" @click="goadd">添加</el-button>
+            <el-button type="danger">批量删除</el-button>
+            <el-button type="primary" plain>显示字段</el-button>
+          </div>
+        </div>
+
+      </template>
+
+
+      <div>
+        <el-row>
+          <el-col :span="24">
+            <el-table :data="tabledata" border>
+              <el-table-column type="selection" width="55" />
+              <el-table-column label="名称"></el-table-column>
+              <el-table-column label="序列号"></el-table-column>
+              <el-table-column label="网关ID"></el-table-column>
+              <el-table-column label="状态"></el-table-column>
+              <el-table-column label="远程控制"></el-table-column>
+              <el-table-column label="流量控制"></el-table-column>
+              <el-table-column label="流量控制类型"></el-table-column>
+              <el-table-column label="所属服务"></el-table-column>
+              <el-table-column label="版本"></el-table-column>
+              <el-table-column label="描述"></el-table-column>
+              <el-table-column label="操作" fixed="right" ></el-table-column>
+
+            </el-table>
+          </el-col>
+          <el-col :span="24" style="margin-top: 10px;">
+            <el-pagination style="float: right;"
+                           small
+                           background
+                           layout="prev, pager, next"
+                           :total="50"
+                           class="mt-4"
+            />
+          </el-col>
+
+        </el-row>
+
+      </div>
+    </el-card>
+
+
+  </div>
+</template>
+
+<script setup lang="ts" >
+import {ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+
+
+const route = useRoute();
+const router = useRouter();
+
+const searchform = ref({
+  protocolname: '',
+})
+
+const tabledata = ref([1])
+const goadd = ()=>{
+  router.push("/gateway/pointsetting/setting");
+}
+
+
+</script>
+
+<style lang="scss" scoped>
+.card-header {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
+</style>

+ 190 - 0
ruoyi-ui-vue3/src/views/gateway/modbusrtu/add.vue

@@ -0,0 +1,190 @@
+<template>
+  <div style="padding: 10px 15px">
+    <el-card class="box-card">
+      <template #header>
+        <div class="card-header">
+          <span>Modbus Rtu 协议配置-新增</span>
+          <div>
+            <el-button type="warning" @click="">复位</el-button>
+            <el-button type="primary" @click="">保存</el-button>
+            <el-button type="primary" plain @click="router.back();">返回</el-button>
+          </div>
+        </div>
+      </template>
+      <el-row>
+        <el-col :span="24">
+
+
+            <el-descriptions :column="4">
+              <el-descriptions-item>
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 协议名称
+                  </div>
+
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+
+              <el-descriptions-item >
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> Api接口地址
+                  </div>
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item>
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> Modbus串口
+                  </div>
+
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item>
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 串口类型
+                  </div>
+
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item>
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 波特率
+                  </div>
+
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item>
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 数据位
+                  </div>
+
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item>
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 奇偶校验
+                  </div>
+
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item>
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 停止位
+                  </div>
+
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+
+              <el-descriptions-item >
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    轮询间隔时间(毫秒)
+                  </div>
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+
+              <el-descriptions-item :span="3">
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    UUID
+                  </div>
+                </template>
+                <div class="content-w">
+                  -
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item :span="2">
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right;    vertical-align: top;">
+                    描述
+                  </div>
+                </template>
+                <div class="content-w" style="min-width: 400px">
+                  <el-input type="textarea" :line-count="5"  show-word-limit maxlength="200" placeholder="请输入描述"/>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item :span="2">
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right;    vertical-align: top;">
+                    备注
+                  </div>
+                </template>
+                <div class="content-w" style="min-width: 400px">
+                  <el-input type="textarea" :line-count="5"  show-word-limit maxlength="200" placeholder="请输入备注"/>
+                </div>
+              </el-descriptions-item>
+            </el-descriptions>
+
+        </el-col>
+
+      </el-row>
+
+
+
+
+    </el-card>
+
+
+  </div>
+</template>
+
+<script setup lang="ts" name="Units">
+import {ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+import ModbusTcp from "@/views/data/modbusTcp/index.vue";
+
+
+const route = useRoute();
+const router = useRouter();
+
+const tjdata = ref([]);
+const zxdata = ref([]);
+
+
+</script>
+
+<style lang="scss" scoped>
+.card-header {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
+
+.content-w {
+  display: inline-flex;
+  max-width: 160px;
+}
+</style>

+ 109 - 0
ruoyi-ui-vue3/src/views/gateway/modbusrtu/index.vue

@@ -0,0 +1,109 @@
+<template>
+  <div style="padding: 10px 15px">
+    <el-card class="box-card">
+      <div style="display: flex; flex-direction: row; justify-content: space-between">
+        <div>
+          <div
+            style="
+                  display: flex;
+                  flex-direction: row;
+                  flex-wrap: nowrap;
+                  align-items: center;
+                "
+          >
+            <div style="font-size: 12px; width: 80px">协议名称:</div>
+            <el-input
+              v-model="searchform.protocolname"
+              placeholder="协议名称"
+            ></el-input>
+          </div>
+        </div>
+        <div>
+          <el-button type="primary" plain>重置</el-button>
+          <el-button type="primary">搜索</el-button>
+        </div>
+      </div>
+
+
+    </el-card>
+
+    <el-card class="box-card" style="margin-top: 15px">
+      <template #header>
+        <div class="card-header">
+          <span>Modbus RTU 协议配置</span>
+          <div>
+            <el-button type="primary" @click="goadd">添加</el-button>
+            <el-button type="danger">批量删除</el-button>
+            <el-button type="primary" plain>显示字段</el-button>
+          </div>
+        </div>
+
+      </template>
+
+
+      <div>
+        <el-row>
+          <el-col :span="24">
+            <el-table :data="tabledata" border>
+              <el-table-column type="selection" width="55" />
+              <el-table-column label="协议名称"></el-table-column>
+              <el-table-column label="Modbus串口"></el-table-column>
+              <el-table-column label="串口类型"></el-table-column>
+              <el-table-column label="波特率"></el-table-column>
+              <el-table-column label="数据位"></el-table-column>
+              <el-table-column label="奇偶校验"></el-table-column>
+              <el-table-column label="停止位"></el-table-column>
+              <el-table-column label="API接口地址"></el-table-column>
+              <el-table-column label="UUID"></el-table-column>
+              <el-table-column label="轮询时间(毫秒)"></el-table-column>
+              <el-table-column label="描述"></el-table-column>
+              <el-table-column label="操作" fixed="right"></el-table-column>
+
+            </el-table>
+          </el-col>
+          <el-col :span="24" style="margin-top: 10px;">
+            <el-pagination style="float: right;"
+                           small
+                           background
+                           layout="prev, pager, next"
+                           :total="50"
+                           class="mt-4"
+            />
+          </el-col>
+
+        </el-row>
+
+      </div>
+    </el-card>
+
+
+  </div>
+</template>
+
+<script setup lang="ts" name="Units">
+import {ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+
+
+const route = useRoute();
+const router = useRouter();
+
+const searchform = ref({
+  protocolname: '',
+})
+
+const tabledata = ref([1])
+const goadd = ()=>{
+  router.push("/gateway/modbusrtu/add");
+}
+
+
+</script>
+
+<style lang="scss" scoped>
+.card-header {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
+</style>

+ 144 - 0
ruoyi-ui-vue3/src/views/gateway/modbustcp/add.vue

@@ -0,0 +1,144 @@
+<template>
+  <div style="padding: 10px 15px">
+    <el-card class="box-card">
+      <template #header>
+        <div class="card-header">
+          <span>Modbus Tcp 协议配置-新增</span>
+          <div>
+            <el-button type="warning" @click="">复位</el-button>
+            <el-button type="primary" @click="">保存</el-button>
+            <el-button type="primary" plain @click="router.back();">返回</el-button>
+          </div>
+        </div>
+      </template>
+      <el-row>
+        <el-col :span="24">
+
+
+            <el-descriptions :column="4">
+              <el-descriptions-item>
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 协议名称
+                  </div>
+
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item>
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> IP地址
+                  </div>
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+
+              <el-descriptions-item>
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 端口
+                  </div>
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item >
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> Api接口地址
+                  </div>
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+
+              <el-descriptions-item >
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    轮询间隔时间(毫秒)
+                  </div>
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+
+              <el-descriptions-item :span="3">
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    UUID
+                  </div>
+                </template>
+                <div class="content-w">
+                  -
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item :span="2">
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right;    vertical-align: top;">
+                    描述
+                  </div>
+                </template>
+                <div class="content-w" style="min-width: 400px">
+                  <el-input type="textarea" :line-count="5"  show-word-limit maxlength="200" placeholder="请输入描述"/>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item :span="2">
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right;    vertical-align: top;">
+                    备注
+                  </div>
+                </template>
+                <div class="content-w" style="min-width: 400px">
+                  <el-input type="textarea" :line-count="5"  show-word-limit maxlength="200" placeholder="请输入备注"/>
+                </div>
+              </el-descriptions-item>
+            </el-descriptions>
+
+        </el-col>
+
+      </el-row>
+
+
+
+
+    </el-card>
+
+
+  </div>
+</template>
+
+<script setup lang="ts" name="Units">
+import {ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+import ModbusTcp from "@/views/data/modbusTcp/index.vue";
+
+
+const route = useRoute();
+const router = useRouter();
+
+const tjdata = ref([]);
+const zxdata = ref([]);
+
+
+</script>
+
+<style lang="scss" scoped>
+.card-header {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
+
+.content-w {
+  display: inline-flex;
+  max-width: 160px;
+}
+</style>

+ 105 - 0
ruoyi-ui-vue3/src/views/gateway/modbustcp/index.vue

@@ -0,0 +1,105 @@
+<template>
+  <div style="padding: 10px 15px">
+    <el-card class="box-card">
+      <div style="display: flex; flex-direction: row; justify-content: space-between">
+        <div>
+          <div
+            style="
+                  display: flex;
+                  flex-direction: row;
+                  flex-wrap: nowrap;
+                  align-items: center;
+                "
+          >
+            <div style="font-size: 12px; width: 80px">协议名称:</div>
+            <el-input
+              v-model="searchform.protocolname"
+              placeholder="协议名称"
+            ></el-input>
+          </div>
+        </div>
+        <div>
+          <el-button type="primary" plain>重置</el-button>
+          <el-button type="primary">搜索</el-button>
+        </div>
+      </div>
+
+
+    </el-card>
+
+    <el-card class="box-card" style="margin-top: 15px">
+      <template #header>
+        <div class="card-header">
+          <span>Modbus TCP 协议配置</span>
+          <div>
+            <el-button type="primary" @click="goadd">添加</el-button>
+            <el-button type="danger">批量删除</el-button>
+            <el-button type="primary" plain>显示字段</el-button>
+          </div>
+        </div>
+
+      </template>
+
+
+      <div>
+        <el-row>
+          <el-col :span="24">
+            <el-table :data="tabledata" border>
+              <el-table-column type="selection" width="55" />
+              <el-table-column label="协议名称"></el-table-column>
+              <el-table-column label="IP地址"></el-table-column>
+              <el-table-column label="端口"></el-table-column>
+              <el-table-column label="API接口地址"></el-table-column>
+              <el-table-column label="UUID"></el-table-column>
+              <el-table-column label="轮询时间(毫秒)"></el-table-column>
+              <el-table-column label="描述"></el-table-column>
+              <el-table-column label="操作"></el-table-column>
+
+            </el-table>
+          </el-col>
+          <el-col :span="24" style="margin-top: 10px;">
+            <el-pagination style="float: right;"
+                           small
+                           background
+                           layout="prev, pager, next"
+                           :total="50"
+                           class="mt-4"
+            />
+          </el-col>
+
+        </el-row>
+
+      </div>
+    </el-card>
+
+
+  </div>
+</template>
+
+<script setup lang="ts" name="Units">
+import {ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+
+
+const route = useRoute();
+const router = useRouter();
+
+const searchform = ref({
+  protocolname: '',
+})
+
+const tabledata = ref([1])
+const goadd = ()=>{
+   router.push("/gateway/modbustcp/add");
+}
+
+
+</script>
+
+<style lang="scss" scoped>
+.card-header {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
+</style>

+ 167 - 0
ruoyi-ui-vue3/src/views/gateway/pointsetting/add.vue

@@ -0,0 +1,167 @@
+<template>
+  <div style="padding: 10px 15px">
+    <el-card class="box-card">
+      <template #header>
+        <div class="card-header">
+          <span>点表配置-新增</span>
+          <div>
+            <el-button type="warning" @click="">复位</el-button>
+            <el-button type="primary" @click="">保存</el-button>
+            <el-button type="primary" plain @click="router.back();">返回</el-button>
+          </div>
+        </div>
+      </template>
+      <el-row>
+        <el-col :span="24">
+
+
+            <el-descriptions :column="4">
+              <el-descriptions-item>
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 点名称
+                  </div>
+
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item>
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 设备
+                  </div>
+                </template>
+                <div class="content-w">
+                  XXX
+                </div>
+              </el-descriptions-item>
+
+              <el-descriptions-item>
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 数据类型
+                  </div>
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item >
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 变量类型
+                  </div>
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+
+              <el-descriptions-item >
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 起始地址
+                  </div>
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+
+              <el-descriptions-item >
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 起始地址的偏移量
+                  </div>
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+
+              <el-descriptions-item >
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    <span style="color: red">*</span> 待读寄存器的个数
+                  </div>
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item >
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right">
+                    从设备号
+                  </div>
+                </template>
+                <div class="content-w">
+                  <el-input placeholder="请输入"/>
+                </div>
+              </el-descriptions-item>
+
+
+              <el-descriptions-item :span="2">
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right;    vertical-align: top;">
+                    描述
+                  </div>
+                </template>
+                <div class="content-w" style="min-width: 400px">
+                  <el-input type="textarea" :line-count="5"  show-word-limit maxlength="200" placeholder="请输入描述"/>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item :span="2">
+                <template #label>
+                  <div style="display: inline-block;min-width: 100px;text-align: right;    vertical-align: top;">
+                    备注
+                  </div>
+                </template>
+                <div class="content-w" style="min-width: 400px">
+                  <el-input type="textarea" :line-count="5"  show-word-limit maxlength="200" placeholder="请输入备注"/>
+                </div>
+              </el-descriptions-item>
+            </el-descriptions>
+
+        </el-col>
+
+      </el-row>
+
+
+
+
+    </el-card>
+
+
+  </div>
+</template>
+
+<script setup lang="ts" name="Units">
+import {ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+import ModbusTcp from "@/views/data/modbusTcp/index.vue";
+
+
+const route = useRoute();
+const router = useRouter();
+
+const tjdata = ref([]);
+const zxdata = ref([]);
+
+
+</script>
+
+<style lang="scss" scoped>
+.card-header {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
+
+.content-w {
+  display: inline-flex;
+  max-width: 160px;
+}
+</style>

+ 128 - 0
ruoyi-ui-vue3/src/views/gateway/pointsetting/index.vue

@@ -0,0 +1,128 @@
+<template>
+  <div style="padding: 10px 15px">
+    <el-card class="box-card">
+      <div style="display: flex; flex-direction: row; justify-content: space-between">
+        <div style="display: flex">
+          <div
+            style="
+                  display: flex;
+                  flex-direction: row;
+                  flex-wrap: nowrap;
+                  align-items: center;
+                "
+          >
+            <div style="font-size: 12px; width: 80px">设备编码:</div>
+            <el-input
+              v-model="searchform.protocolname"
+              placeholder="设备编码"
+            ></el-input>
+          </div>
+
+          <div
+            style="
+                  display: flex;
+                  flex-direction: row;
+                  flex-wrap: nowrap;
+                  align-items: center;
+                  margin-left: 10px;
+                "
+          >
+            <div style="font-size: 12px; width: 80px">设备名称:</div>
+            <el-input
+              v-model="searchform.protocolname"
+              placeholder="设备名称"
+            ></el-input>
+          </div>
+        </div>
+        <div>
+          <el-button type="primary" plain>重置</el-button>
+          <el-button type="primary">搜索</el-button>
+        </div>
+      </div>
+
+
+    </el-card>
+
+    <el-card class="box-card" style="margin-top: 15px">
+      <template #header>
+        <div class="card-header">
+          <span>点表管理</span>
+          <div>
+            <el-button type="primary" @click="goadd">添加</el-button>
+            <el-button type="danger">批量删除</el-button>
+            <el-button type="primary" plain>显示字段</el-button>
+          </div>
+        </div>
+
+      </template>
+
+
+      <div>
+        <el-row>
+          <el-col :span="24">
+            <el-table :data="tabledata" border>
+              <el-table-column type="selection" width="55" />
+              <el-table-column label="设备编码"></el-table-column>
+              <el-table-column label="设备名称"></el-table-column>
+              <el-table-column label="备用编码"></el-table-column>
+              <el-table-column label="点表数"></el-table-column>
+              <el-table-column label="上层位置"></el-table-column>
+              <el-table-column label="设备型号"></el-table-column>
+              <el-table-column label="设备模板"></el-table-column>
+              <el-table-column label="所属类型"></el-table-column>
+              <el-table-column label="负责人"></el-table-column>
+              <el-table-column label="设备用途"></el-table-column>
+              <el-table-column label="安装日期"></el-table-column>
+              <el-table-column label="安装地点地址"></el-table-column>
+              <el-table-column label="经纬度"></el-table-column>
+              <el-table-column label="状态"></el-table-column>
+              <el-table-column label="操作" fixed="right" ></el-table-column>
+
+            </el-table>
+          </el-col>
+          <el-col :span="24" style="margin-top: 10px;">
+            <el-pagination style="float: right;"
+                           small
+                           background
+                           layout="prev, pager, next"
+                           :total="50"
+                           class="mt-4"
+            />
+          </el-col>
+
+        </el-row>
+
+      </div>
+    </el-card>
+
+
+  </div>
+</template>
+
+<script setup lang="ts" >
+import {ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+
+
+const route = useRoute();
+const router = useRouter();
+
+const searchform = ref({
+  protocolname: '',
+})
+
+const tabledata = ref([1])
+const goadd = ()=>{
+  router.push("/gateway/pointsetting/setting");
+}
+
+
+</script>
+
+<style lang="scss" scoped>
+.card-header {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
+</style>

+ 110 - 0
ruoyi-ui-vue3/src/views/gateway/pointsetting/setting.vue

@@ -0,0 +1,110 @@
+<template>
+  <div style="padding: 10px 15px">
+    <el-card class="box-card">
+      <div style="display: flex; flex-direction: row; justify-content: space-between">
+        <div style="display: flex">
+          <div
+            style="
+                  display: flex;
+                  flex-direction: row;
+                  flex-wrap: nowrap;
+                  align-items: center;
+                "
+          >
+            <div style="font-size: 12px; width: 80px">点名称:</div>
+            <el-input
+              v-model="searchform.protocolname"
+              placeholder="点名称"
+            ></el-input>
+          </div>
+
+
+        </div>
+        <div>
+          <el-button type="primary" plain>重置</el-button>
+          <el-button type="primary">搜索</el-button>
+          <el-button type="primary" plain @click="router.back()">返回</el-button>
+        </div>
+      </div>
+
+
+    </el-card>
+
+    <el-card class="box-card" style="margin-top: 15px">
+      <template #header>
+        <div class="card-header">
+          <span>点表配置:xx设备</span>
+          <div>
+            <el-button type="primary" @click="goadd">添加</el-button>
+            <el-button type="primary" plain>导入</el-button>
+            <el-button type="primary" plain>导出</el-button>
+            <el-button type="danger">批量删除</el-button>
+            <el-button type="primary" plain>显示字段</el-button>
+          </div>
+        </div>
+
+      </template>
+
+
+      <div>
+        <el-row>
+          <el-col :span="24">
+            <el-table :data="tabledata" border>
+              <el-table-column type="selection" width="55" />
+              <el-table-column label="点名称"></el-table-column>
+              <el-table-column label="数据类型"></el-table-column>
+              <el-table-column label="从设备号"></el-table-column>
+              <el-table-column label="起始地址"></el-table-column>
+              <el-table-column label="起始地址偏移量"></el-table-column>
+              <el-table-column label="待读寄存器的个数"></el-table-column>
+              <el-table-column label="变量类型"></el-table-column>
+              <el-table-column label="操作" fixed="right" ></el-table-column>
+
+            </el-table>
+          </el-col>
+          <el-col :span="24" style="margin-top: 10px;">
+            <el-pagination style="float: right;"
+                           small
+                           background
+                           layout="prev, pager, next"
+                           :total="50"
+                           class="mt-4"
+            />
+          </el-col>
+
+        </el-row>
+
+      </div>
+    </el-card>
+
+
+  </div>
+</template>
+
+<script setup lang="ts" name="Units">
+import {ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+
+
+const route = useRoute();
+const router = useRouter();
+
+const searchform = ref({
+  protocolname: '',
+})
+
+const tabledata = ref([1])
+const goadd = ()=>{
+  router.push("/gateway/pointsetting/add");
+}
+
+
+</script>
+
+<style lang="scss" scoped>
+.card-header {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
+</style>

+ 29 - 12
ruoyi-ui-vue3/src/views/rules/index.vue

@@ -37,18 +37,35 @@
         </div>
       </template>
       <div>
-        <el-table :data="tabledata" border>
-          <el-table-column type="selection" width="55" />
-          <el-table-column label="规则编号"></el-table-column>
-          <el-table-column label="规则名称"></el-table-column>
-          <el-table-column label="触发类型"></el-table-column>
-          <el-table-column label="设备"></el-table-column>
-          <el-table-column label="传感器"></el-table-column>
-          <el-table-column label="触发条件值"></el-table-column>
-          <el-table-column label="描述"></el-table-column>
-          <el-table-column label="操作"></el-table-column>
-
-        </el-table>
+        <el-row>
+          <el-col :span="24">
+            <el-table :data="tabledata" border>
+              <el-table-column type="selection" width="55" />
+              <el-table-column label="规则编号"></el-table-column>
+              <el-table-column label="规则名称"></el-table-column>
+              <el-table-column label="触发类型"></el-table-column>
+              <el-table-column label="设备"></el-table-column>
+              <el-table-column label="传感器"></el-table-column>
+              <el-table-column label="触发条件值"></el-table-column>
+              <el-table-column label="描述"></el-table-column>
+              <el-table-column label="操作"></el-table-column>
+
+            </el-table>
+          </el-col>
+          <el-col :span="24" style="margin-top: 10px;">
+            <el-pagination style="float: right;"
+                           small
+                           background
+                           layout="prev, pager, next"
+                           :total="50"
+                           class="mt-4"
+            />
+          </el-col>
+
+        </el-row>
+
+
+
 
       </div>