Explorar o código

Merge branch 'master' of http://git.xt.wenhq.top:8083/wenhongquan/iotc

liwei19941102 %!s(int64=2) %!d(string=hai) anos
pai
achega
b718d65bcb

+ 14 - 0
ruoyi-ui-vue3/src/router/index.js

@@ -187,7 +187,21 @@ export const constantRoutes = [
         meta: { title: "点表配置新增", activeMenu: "/gateway/pointsetting/add" },
       },
     ],
+  },
+  {
+    path: "/gateway/manager/add",
+    hidden: true,
+    component: Layout,
+    children: [
+      {
+        path: "",
+        component: () => import("@/views/gateway/manager/add"),
+        name: "PointSettingAdd" ,
+        meta: { title: "网关新增", activeMenu: "/gateway/manager/add" },
+      },
+    ],
   }
+
 ];
 
 // 动态路由,基于用户权限动态去加载

+ 155 - 24
ruoyi-ui-vue3/src/views/alarm/faultmanager/index.vue

@@ -1,3 +1,5 @@
+<!--suppress ALL -->
+
 <template>
   <div style="padding: 10px 15px">
     <el-card class="box-card">
@@ -11,9 +13,9 @@
                   align-items: center;
                 "
           >
-            <div style="font-size: 12px; width: 80px">故障名称:</div>
+            <div style="font-size: 12px; width: 80px">告警名称:</div>
             <el-input
-              v-model="searchform.alarmname"
+              v-model="searchform.name"
               placeholder="故障名称"
             ></el-input>
           </div>
@@ -26,12 +28,12 @@
                 "
           >
             <div style="font-size: 12px; width: 80px;text-align: right;margin-right: 15px">故障时间:</div>
-            <el-date-picker type="daterange"></el-date-picker>
+            <el-date-picker type="daterange" v-model="searchform.alarmtime"   placeholder="请选择"></el-date-picker>
           </div>
         </div>
         <div>
-          <el-button type="primary" plain>重置</el-button>
-          <el-button type="primary">搜索</el-button>
+          <el-button type="primary" plain @click="initdata">重置</el-button>
+          <el-button type="primary" @click="searchdata">搜索</el-button>
         </div>
       </div>
     </el-card>
@@ -46,27 +48,24 @@
       <div>
         <el-row>
           <el-col :span="24">
-            <el-table :data="tabledata" border>
-              <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 :data="tabledata" border  :columns="cloumdata" >
+              <el-table-column v-for="item in cloumdata.filter(i=>i.visible)" :prop="item.prop" :label="item.label" >
+                <template #default="scope">
+                  <div v-html=" initcloumdata(scope.row,item.prop) ">
+                  </div>
+                </template>
+              </el-table-column>
               <el-table-column label="操作">
                 <template #default="scope">
                   <div>
-                    <el-button link>
-                      <el-tooltip effect="dark" content="编辑">
+                    <el-button link @click="handleEdit(scope.row)">
+                      <el-tooltip effect="dark" content="处理">
                         <el-icon>
                           <Edit />
                         </el-icon>
                       </el-tooltip>
                     </el-button>
-                    <el-popconfirm title="确定删除该标签?">
+                    <el-popconfirm title="确定删除该记录?" @confirm="handleDelete(scope.row)">
                       <template #reference>
                         <el-button link
                         ><el-tooltip effect="dark" content="删除"
@@ -85,7 +84,10 @@
                            small
                            background
                            layout="prev, pager, next"
-                           :total="50"
+                           :total="pagedata.total"
+                           :page-size="pagedata.size"
+                           :current-page="pagedata.current"
+                           @current-change="onchangepage"
                            class="mt-4"
             />
           </el-col>
@@ -101,23 +103,152 @@
     </el-card>
 
 
+    <el-dialog
+      title="处理"
+      v-model="handleshow"
+      width="50%"
+      @close="handleshow = false"
+    >
+      <el-form ref="form" :model="currentdata" label-width="100px" label-position="left">
+        <el-form-item label="处理人" >
+          <el-input v-model="currentdata.handler" placeholder="请输入"></el-input>
+        </el-form-item>
+        <el-form-item label="处理方式" >
+          <el-input v-model="currentdata.handlerWay" placeholder="请输入"></el-input>
+        </el-form-item>
+        <el-form-item label="处理内容" >
+          <el-input type="textarea" v-model="currentdata.handlerContent" placeholder="请输入"></el-input>
+        </el-form-item>
+      </el-form>
+
+      <div slot="footer" class="dialog-footer" style="text-align: right">
+        <el-button @click="handleshow = false">取 消</el-button>
+        <el-button type="primary" @click="handleSubmit">确 定</el-button>
+      </div>
+    </el-dialog>
+
   </div>
 </template>
 
-<script setup lang="ts" name="Units">
-import {ref} from "vue";
+<script setup lang="ts" >
+import {ref, h, watchEffect, watch} from "vue";
 import {useRoute, useRouter} from "vue-router";
+import {listBreakdown,updateBreakdown,delBreakdown} from "@/api/data/breakdown"
+import { cloneDeep } from "lodash";
+import moment from "moment";
+import {ElMessage} from "element-plus";
 
 
 const route = useRoute();
 const router = useRouter();
 
+const tabledata = ref([])
 const searchform = ref({
-  alarmname: '',
-  alarmtime:['','']
+  name: '',
+  alarmtime:[moment().subtract(1,'month'),moment().add(1,'day')]
 });
 
-const tabledata = ref([1])
+const currentdata = ref({
+  "id": 0,
+  "name": "",
+  "val": 0,
+  "equipmentId": 0,
+  "equipmentName": "",
+  "content": "",
+  "handler": "",
+  "handlerWay": "",
+  "handlerContent": "",
+  "handleTime": "",
+  "alarmTime": "",
+  "status": "",
+  "remark": "",
+})
+
+const handleshow = ref(false);
+
+const handleSubmit = () => {
+  updateBreakdown(currentdata.value).then(res=>{
+    ElMessage.success("处理成功");
+    handleshow.value = false;
+    getalldata();
+  })
+}
+
+const handleEdit = (row) => {
+  currentdata.value = cloneDeep(row);
+  handleshow.value = true;
+}
+const handleDelete = (row) => {
+  delBreakdown(row.id).then(res=>{
+    ElMessage.success("删除成功");
+    getalldata();
+  })
+}
+const initdata = ()=>{
+  searchform.value = {
+    name: '',
+    alarmtime:[moment().subtract(1,'month'),moment().add(1,'day')]
+  }
+  pagedata.value = {
+    total:0,
+    size:10,
+    current:1
+  }
+}
+const initcloumdata = (row,prop)=>{
+  if(prop == ("status")){
+    return  `<span style="color: ${row[prop]=="1"?"green":"red"}"> ${row[prop]=="1"?"已处理":"未理中"} </span>`;
+  }
+
+  return row[prop];
+
+}
+const cloumdata = ref([
+  {label: '故障名称', prop:'name',visible:true},
+  {label: '故障值', prop:'val',visible:true},
+  {label: '故障设备', prop:'equipmentName',visible:true},
+  {label: '故障内容', prop:'content',visible:true},
+  {label: '处理人', prop:'handler',visible:true},
+  {label: '处理方式', prop:'handlerWay',visible:true},
+  {label: '处理时间', prop:'handlerTime',visible:true},
+  {label: '状态', prop:'status',visible:true},
+  {label: '故障时间', prop:'faultTime',visible:true},
+]);
+
+const onchangepage = (page) => {
+  pagedata.value.current = page;
+  getalldata();
+}
+const pagedata = ref({
+  total:0,
+  size:10,
+  current:1
+});
+
+const getalldata = () => {
+
+  //@ts-ignore
+  var p = cloneDeep(searchform.value);
+  p["params"]={
+    "beginTime":moment(p.alarmtime[0]).format("YYYY-MM-DD HH:mm:ss"),
+    "endTime":moment(p.alarmtime[1]).format("YYYY-MM-DD HH:mm:ss")
+  }
+  delete p.alarmtime;
+
+  listBreakdown({...p,pageSize:pagedata.value.size,pageNum:pagedata.value.current}).then(res => {
+    const {rows,total,page} = res;
+    pagedata.value = {total:total,current:page, size:10};
+    tabledata.value = rows
+  })
+}
+getalldata()
+
+
+
+const searchdata= ()=>{
+  pagedata.value = {total:0,size:10,current:1};
+  getalldata();
+}
 
 
 </script>

+ 275 - 0
ruoyi-ui-vue3/src/views/gateway/manager/add.vue

@@ -0,0 +1,275 @@
+<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">
+                  <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> 网关ID
+                  </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 >
+                <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 >
+                <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 >
+                <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 >
+                <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: 550px">
+                  <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>
+
+    <el-card class="box-card" style="margin-top: 20px">
+      <template #header>
+        <div class="card-header">
+          <span>设备台账</span>
+          <div>
+            <el-button type="primary" plain @click="addshow = true">添加</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="关联设备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="安全级别"></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>
+
+
+    <el-dialog
+      title="设备台账"
+      v-model="addshow">
+
+      <el-table height="400px">
+        <el-table-column type="selection" width="55"  fixed="left" />
+        <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="关联设备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="安全级别"></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>
+
+      <div style="text-align: center;display: flex;justify-content: center;margin-top: 10px" >
+
+          <el-pagination
+                         small
+                         background
+                         layout="prev, pager, next"
+                         :total="50"
+                         class="mt-4"
+          />
+
+      </div>
+
+
+    </el-dialog>
+
+
+  </div>
+</template>
+
+<script setup lang="ts" >
+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 addshow = ref(false);
+const tabledata = ref([1]);
+
+
+</script>
+
+<style lang="scss" scoped>
+.card-header {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
+
+.content-w {
+  display: inline-flex;
+  max-width: 180px;
+}
+</style>

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

@@ -95,7 +95,7 @@ const searchform = ref({
 
 const tabledata = ref([1])
 const goadd = ()=>{
-  router.push("/gateway/pointsetting/setting");
+  router.push("/gateway/manager/add");
 }