فهرست منبع

站点分组等对接

ming 3 سال پیش
والد
کامیت
74b98187e7

+ 3 - 3
public/static/config.js

@@ -1,9 +1,9 @@
 // api 请求路径
 var PLATFROM_CONFIG = {};
-PLATFROM_CONFIG.baseUrl = "http://172.16.120.104:8010/" //杨强本地
-    // PLATFROM_CONFIG.baseUrl = "http://172.16.1.196:8010/"  //超博本地
+// PLATFROM_CONFIG.baseUrl = "http://172.16.120.104:8010/" //杨强本地
+// PLATFROM_CONFIG.baseUrl = "http://172.16.1.196:8010/"  //超博本地
 
-// PLATFROM_CONFIG.baseUrl = "https://qhome.usky.cn/fivapi/" //线上
+PLATFROM_CONFIG.baseUrl = "https://qhome.usky.cn/fivapi/" //线上
 PLATFROM_CONFIG.images = "https://qhome.usky.cn/file/" //线上图片
 PLATFROM_CONFIG.fileUrl = "https://qhome.usky.cn/file/" //xlsx文件访问路径
 

+ 28 - 0
src/api/powerQuality/realScore.js

@@ -0,0 +1,28 @@
+import request from '@/utils/request'
+
+//历史电流电压评分
+export function rtRealScore(params) {
+    return request({
+        url: '/htAnalogData/rtRealScore',
+        method: 'GET',
+        params,
+    })
+}
+
+//通信设备列表查询-无分页
+export function deviceListOne(params) {
+    return request({
+        url: '/device/deviceListOne',
+        method: 'GET',
+        params,
+    })
+}
+
+// 实时评分表格筛选
+export function realScore(params) {
+    return request({
+        url: '/rtAnalogData/realScore',
+        method: 'GET',
+        params,
+    })
+}

+ 18 - 0
src/api/siteManage/index.js

@@ -16,4 +16,22 @@ export function list(params) {
         method: 'GET',
         data: params,
     })
+}
+
+// 新建分组
+export function siteGroupingAdd(params) {
+    return request({
+        url: '/siteGrouping/siteGroupingAdd',
+        method: 'GET',
+        params,
+    })
+}
+
+// 修改分组
+export function siteGroupingUpdate(params) {
+    return request({
+        url: '/siteGrouping/siteGroupingUpdate',
+        method: 'GET',
+        params,
+    })
 }

+ 82 - 25
src/views/powerQuality/realTimeMonitoring/realScore.vue

@@ -3,7 +3,25 @@
     <!-- 筛选start -->
     <div class="filter-container">
       <div class="left">
+        
         <div>
+
+          <div class="filter-item" style="margin-right: 20px">
+          选择设备:
+          <el-select
+            v-model="deviceCode"
+            placeholder="请选择"
+            style="width: 150px"
+          >
+            <el-option
+              v-for="device in deviceList"
+              :key="device"
+              :label="device.deviceName"
+              :value="device.deviceCode"
+            ></el-option>
+            <el-option label="设备1" value="DA00021026"></el-option>
+          </el-select>
+        </div>
           数据刷新时间:2021-10-11 15:00:00
 
           <el-button
@@ -23,7 +41,7 @@
     <!-- 筛选end -->
 
     <el-row :gutter="20" class="mt-20">
-      <el-col  :md="24" :lg="7" >
+      <el-col :md="24" :lg="7">
         <!-- 评分 -->
         <div class="grid-content bg-purple">
           <div class="blanceChartTit">
@@ -159,43 +177,82 @@
 <script>
 import radarChart from './realScoreComponent/radarChart.vue'
 import pieChart from './realScoreComponent/pieChart.vue'
-// import scoreReport from "./scoreReport";
-export default {
+import { useStore } from 'vuex'
+import { defineComponent, onMounted, ref } from 'vue'
+import * as api from '@/api/powerQuality/realScore.js'
+import { ElMessage } from 'element-plus'
+
+export default defineComponent({
   name: 'RealScore',
   components: {
     radarChart,
     pieChart,
   },
+  setup() {
+    const store = useStore()
+    const num = ref(0)
+    const value4 = ref('')
+    const tableData = ref([
+      {
+        huilv: '/HZ183',
+        gongLv: '2%',
+        dianLiu: '100%',
+        dianYa: '0.67%',
+        name: '5%',
+        city: '7%',
+        score: '60',
+      },
+    ])
+    const deviceList = ref([])
+    const deviceCode = ref('DA00021026')
 
-  data() {
-    return {
-      num: 0,
-      value4: '',
-      tableData: [
-        {
-          huilv: '/HZ183',
-          gongLv: '2%',
-          dianLiu: '100%',
-          dianYa: '0.67%',
-          name: '5%',
-          city: '7%',
-          score: '60',
-        },
-      ],
-    }
-  },
-  methods: {
-    // 表头行的 style 的回调方法
-    headCellStyle({ row, column, rowIndex, columnIndex }) {
+    function headCellStyle({ row, column, rowIndex, columnIndex }) {
       row, column
       if (columnIndex !== 0 && columnIndex !== 1 && rowIndex === 0) {
         return `text-align:center`
       } else {
         return ''
       }
-    },
+    }
+
+    function deviceSelect() {
+      api.deviceListOne({ siteId: store.state.siteId }).then((requset) => {
+        if (requset.status === 'SUCCESS') {
+          deviceList.value = requset.data
+        } else {
+          ElMessage.error(requset.msg)
+        }
+      })
+    }
+
+    function realScore() {
+      api.realScore({ deviceCode: deviceCode.value }).then((requset) => {
+        if (requset.status === 'SUCCESS') {
+           console.log('requset')
+          console.log(requset.data)
+          // tableData.value = requset.data
+        } else {
+          ElMessage.error(requset.msg)
+        }
+      })
+    }
+
+    onMounted(() => {
+      deviceSelect()
+      realScore()
+    })
+    return {
+      store,
+      num,
+      value4,
+      tableData,
+      headCellStyle,
+      deviceSelect,
+      deviceList,
+      deviceCode,
+    }
   },
-}
+})
 </script>
  
 <style scoped lang="scss">

+ 16 - 10
src/views/siteManage/addGroupCom.vue

@@ -13,8 +13,8 @@
         label-width="100px"
         :rules="rules"
       >
-        <el-form-item label="分组名称:" prop="name">
-          <el-input v-model="form.name"  ></el-input>
+        <el-form-item label="分组名称:" prop="groupingName">
+          <el-input v-model="form.groupingName"  ></el-input>
         </el-form-item>
       
         <div style="text-align: right">
@@ -27,6 +27,8 @@
 </template>
 <script>
 import { defineComponent, ref, watchEffect } from 'vue'
+import * as api from '@/api/siteManage/index'
+import { ElMessage } from 'element-plus'
 
 export default defineComponent({
   name: 'AddGroupCom',
@@ -50,7 +52,6 @@ export default defineComponent({
       form.value = props.itemInfo.value
 
     }
-
     
 
     // 关闭弹框
@@ -78,12 +79,17 @@ export default defineComponent({
       console.log(formInfo)
       formInfo.value.validate((valid) => {
         if (valid) {
-          // 走保存请求
-          this.$message({
-            message: '操作成功!',
-            type: 'success',
-          })
-          this.closeDialog(1)
+          api.siteGroupingAdd(form.value).then((requset) => {
+              if (requset.status === 'SUCCESS') {
+                ElMessage.success({
+                  message: '新增成功',
+                  type: 'success',
+                })
+                closeDialog()
+              } else {
+                ElMessage.error(requset.msg)
+              }
+            })
         } else {
           console.log('error submit!!')
           return false
@@ -100,7 +106,7 @@ export default defineComponent({
       open,
       submitForm,
       rules: {
-        name: [
+        groupingName: [
           // required  是否为必填项, trigger:表单验证的触发时机,失去焦点进行验证
           { required: true, message: "请输入分组名称", trigger: "blur" },
           {

+ 1 - 1
src/views/siteManage/camera/index.vue

@@ -325,7 +325,7 @@ export default defineComponent({
       setTimeout(() => {
         chk_video()
       }, 0)
-    }, 10000)
+    }, 10000000)
 
     onMounted(() => {
       videoMonitoringDeviceList()

+ 66 - 0
src/views/siteManage/groupInfoCom-ora.vue

@@ -0,0 +1,66 @@
+<template>
+  <div class="siteManage-main groupInfo">
+    <el-form
+      :model="form"
+      :rules="rules"
+      ref="form"
+      label-width="100px"
+    >
+          <div class="grid-content bg-purple">
+            <div class="el-form-item blockTitle">
+               分组信息
+             </div>
+            <div></div>
+            <el-form-item label="分组名称" prop="name" label-width="130px">
+              <el-input v-model="name"></el-input>
+            </el-form-item>
+
+          
+            <el-form-item>
+              <el-button type="primary" @click="submitForm('form')"
+                >保存</el-button>
+            
+            </el-form-item>
+
+          </div>
+       
+    </el-form>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "GroupInfoCom",
+  data() {
+    return {
+    
+        groupingName: "分组1",
+      
+      rules: {
+        groupingName: [
+          { required: true, message: "请输入分组名称", trigger: "blur" },
+          { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" },
+        ],
+      },
+    };
+  },
+  methods: {
+    handleRemove(file) {
+      console.log(file);
+    },
+  
+    submitForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          alert("submit!");
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+  },
+};
+</script>
+<style scoped lang="scss">
+</style>

+ 90 - 59
src/views/siteManage/groupInfoCom.vue

@@ -1,75 +1,106 @@
 <template>
   <div class="siteManage-main groupInfo">
-    <el-form
-      :model="ruleForm"
-      :rules="rules"
-      ref="ruleForm"
-      label-width="100px"
-      class="demo-ruleForm"
-    >
-          <div class="grid-content bg-purple">
-            <div class="el-form-item blockTitle">
-               分组信息
-             </div>
-            <div></div>
-            <el-form-item label="分组名称" prop="name" label-width="130px">
-              <el-input v-model="ruleForm.name"></el-input>
-            </el-form-item>
+    <el-form :model="form" :rules="rules" ref="formInfo" label-width="100px">
+      <div class="grid-content bg-purple">
+        <div class="el-form-item blockTitle">分组信息</div>
+        <div></div>
+        <el-form-item label="分组名称" prop="groupingName" label-width="130px">
+          <el-input v-model="form.groupingName"></el-input>
+        </el-form-item>
 
-          
-            <el-form-item>
-              <el-button type="primary" @click="submitForm('ruleForm')"
-                >保存</el-button>
-            
-            </el-form-item>
-
-          </div>
-       
+        <el-form-item>
+          <el-button type="primary" @click="submitForm('formInfo')">
+            保存
+          </el-button>
+        </el-form-item>
+      </div>
     </el-form>
   </div>
 </template>
 
 <script>
-export default {
-  name: "GroupInfoCom",
-  data() {
-    return {
-      dialogImageUrl: "",
-      dialogVisible: false,
-      disabled: false,
-      ruleForm: {
-        name: "分组1",
-       
-      },
-      rules: {
-       
-        name: [
-          { required: true, message: "请输入站点名称", trigger: "blur" },
-          { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" },
-        ],
-      },
-    };
+import { defineComponent, ref, onMounted, watch } from 'vue'
+import * as api from '@/api/siteManage/index'
+import { ElMessage } from 'element-plus'
+
+export default defineComponent({
+  name: 'GroupInfoCom',
+  props: {
+    groupingId: Number,
+    label: String,
   },
-  methods: {
-    handleRemove(file) {
-      console.log(file);
-    },
-    handlePictureCardPreview(file) {
-      this.dialogImageUrl = file.url;
-      this.dialogVisible = true;
-    },
-    submitForm(formName) {
-      this.$refs[formName].validate((valid) => {
+  setup(props, context) {
+    context
+
+    const formInfo = ref(null)
+
+    const form = ref([])
+
+    const roleValid = (rule, value, callback) => {
+      rule
+      if (value.length === 0) {
+        callback(new Error('角色不能为空'))
+      } else {
+        callback()
+      }
+    }
+
+    // 保存-修改操作
+    const submitForm = () => {
+      formInfo.value.validate((valid) => {
         if (valid) {
-          alert("submit!");
+          form.value.groupingId = props.groupingId
+          console.log(form.value)
+
+          api
+            .siteGroupingUpdate({
+              id: props.groupingId,
+              groupingName: form.value.groupingName,
+            })
+            .then((requset) => {
+              if (requset.status === 'SUCCESS') {
+                ElMessage.success({
+                  message: '修改成功',
+                  type: 'success',
+                })
+
+                context.emit('func')
+              } else {
+                ElMessage.error(requset.msg)
+              }
+            })
         } else {
-          console.log("error submit!!");
-          return false;
+          console.log('error submit!!')
+          return false
         }
-      });
-    },
+      })
+    }
+
+
+    //监听变化
+    watch(
+      () => props.label,
+      (newVal) => {
+         form.value.groupingName = newVal
+      }
+    )
+    onMounted(() => {
+      console.log(props.label)
+      form.value.groupingName = props.label
+    })
+    return {
+      roleValid,
+      formInfo,
+      form,
+      submitForm,
+      rules: {
+        groupingName: [
+          { required: true, message: '请输入分组名称', trigger: 'blur' },
+        ],
+      },
+    }
   },
-};
+})
 </script>
 <style scoped lang="scss">
 </style>

+ 30 - 20
src/views/siteManage/index.vue

@@ -3,16 +3,16 @@
     <!-- 树形组件start -->
     <div class="grid-content treeDom">
       <div style="text-align: center" class="mb-20">
-        <el-button v-if="this.treeLevel == 3" disabled @click="addGroup()">
+        <el-button v-if="treeLevel == 3||groupingId==0"  disabled>
           添加分组
         </el-button>
-        <el-button type="primary" v-else @click="addGroup()">
+        <el-button  v-else  type="primary"  @click="addGroup()" >
           添加分组
         </el-button>
-        <el-button v-if="this.treeLevel == 3" disabled @click="addSite()">
+        <el-button v-if="treeLevel == 3||groupingId==0"  disabled >
           添加站点
         </el-button>
-        <el-button type="primary" v-else @click="addSite()">添加站点</el-button>
+        <el-button v-else type="primary" @click="addSite()">添加站点</el-button>
       </div>
       <el-input
         placeholder="输入关键字进行过滤"
@@ -72,7 +72,7 @@
 
     <!-- 站点主题start -->
     <div class="grid-content nestingDom" style="width: calc(100% - 300px)">
-      <el-tabs v-if="this.treeLevel == 3" v-model="activeName" type="card">
+      <el-tabs v-if="treeLevel == 3||groupingId==0" v-model="activeName" type="card">
         <el-tab-pane label="基本信息" name="first">
           <basic-info class="basicInfo"></basic-info>
         </el-tab-pane>
@@ -95,8 +95,8 @@
       </el-tabs>
 
       <!-- 分组信息start -->
-      <group-info-com
-        v-if="this.treeLevel == 2 || this.treeLevel == 1"
+      <group-info-com :groupingId="groupingId" :label="label"   @func="getMsgFormSon2"
+       v-else
       ></group-info-com>
       <!-- 分组信息end -->
 
@@ -117,6 +117,8 @@
         :flag="showDialog2"
       ></add-site-com>
       <!-- 新建站点end -->
+
+
     </div>
     <!-- 站点主题end -->
   </div>
@@ -138,9 +140,6 @@ import addSiteCom from './addSiteCom'
 import * as api from '@/api/siteManage/index'
 import { ElMessage } from 'element-plus'
 
-
-
-
 export default defineComponent({
   components: {
     basicInfo,
@@ -158,6 +157,8 @@ export default defineComponent({
     const showDialog2 = ref(false)
     const dialogTitle = ref('')
     const treeLevel = ref(3)
+    const groupingId=ref(0);
+    const label=ref('')
     const activeName = ref('five')
     const filterText = ref('')
     const data = ref([
@@ -174,6 +175,9 @@ export default defineComponent({
     const getMsgFormSon = () => {
       activeName.value = 'third'
     }
+    const getMsgFormSon2=()=>{
+      siteTreeList()
+    }
     function mouseenter(data) {
       data.show = true
     }
@@ -186,9 +190,13 @@ export default defineComponent({
     }
     const handleNodeClick = (data, obj, node) => {
       data, node
-      treeLevel.value = obj.level
+      console.log(obj.data)
+      treeLevel.value = obj.level;
+      groupingId.value=obj.data.grouping_id
+      label.value=obj.data.label
+      console.log(groupingId.value)
+      console.log(label.value)
     }
-
     const tree = ref(null)
 
     watch(filterText, (val) => {
@@ -202,20 +210,18 @@ export default defineComponent({
     const closeDialog = () => {
       showDialog.value = false
       showDialog2.value = false
+       siteTreeList()
+
+
       treeLevel.value = 3
     }
+
+    
     //新建分组
     const tableItem = reactive([])
     const addGroup = () => {
       tableItem.value = {
-        id: '',
-        stationName: '',
-        xh: '',
-        userName: '',
-        list: [],
-        done: '',
-        guaZai: '',
-        checked: true,
+        groupingName: '',
       }
       dialogTitle.value = '新建分组'
       showDialog.value = true
@@ -260,6 +266,7 @@ export default defineComponent({
       })
     }
     onMounted(() => {
+      // console.log(groupingId.value)
       siteTreeList()
     })
 
@@ -273,9 +280,12 @@ export default defineComponent({
       data,
       defaultProps,
       tableItem,
+      groupingId,
+      label,
 
       showTree,
       getMsgFormSon,
+      getMsgFormSon2,
       mouseenter,
       mouseleave,
       filterNode,

+ 2 - 1
src/views/stationManage/dialogComponent.vue

@@ -99,8 +99,9 @@ export default defineComponent({
 
     // open(): Dialog弹窗打开之前做的事
     const open = () => {
-      console.log('')
+      console.log(form.value)
       form.value = props.itemInfo.value
+       console.log(form.value)
     }
 
     const options = [

+ 9 - 16
src/views/systemManage/userManage/dialogComponent.vue

@@ -46,16 +46,22 @@
         ></el-date-picker>
       </el-form-item>
 
-      <el-form-item label="角色名称:" prop="roleName" v-if="dialogTitle=='新增'">
+      <el-form-item label="角色名称:" prop="roleName" >
         <!-- <el-input v-model="form.roleName"></el-input> -->
 
-        <el-select v-model="form.roleId" placeholder="请选择" >
+        <el-select v-model="form.roleId" placeholder="请选择"  clearable >
+
+
           <el-option
+         
             v-for="(item, index) in roleSelectData"
             :key="index"
             :label="item.roleName"
             :value="item.roleId"
           ></el-option>
+
+
+
         </el-select>
       </el-form-item>
 
@@ -154,6 +160,7 @@ export default defineComponent({
       formInfo.value.validate((valid) => {
         if (valid) {
           if (props.dialogTitle === '新增') {
+             form.value.roleIds=[form.value.roleId];
             api.userAdd(form.value).then((requset) => {
               if (requset.status === 'SUCCESS') {
                 ElMessage.success({
@@ -166,20 +173,6 @@ export default defineComponent({
               }
             })
           } else {
-            alert('修改')
-
-            //  如果选了角色调用绑定接口
-            // if (form.value.roleId) {
-            //   alert(1)
-            //   api.authRoleDetail({userId: form.value.userId,roleIds:[form.value.roleId]}).then((requset) => {
-            //     if (requset.status === 'SUCCESS') {
-             
-            //       closeDialog()
-            //     } else {
-            //       ElMessage.error(requset.msg)
-            //     }
-            //   })
-            // } 
             api.userUpdate(form.value).then((requset) => {
               if (requset.status === 'SUCCESS') {
                 ElMessage.success({

+ 1 - 2
src/views/systemManage/userManage/index.vue

@@ -226,8 +226,7 @@ export default defineComponent({
         if (requset.status === 'SUCCESS') {
           console.log(requset.data.user.roles[0].roleId)
           tableItem.value.roleId= requset.data.user.roles[0].roleId
-          // row.roleId = []
-          row.roleIds = []
+          // row.roleIds = []
         } else {
           ElMessage.error(requset.msg)
         }