ming 3 tahun lalu
induk
melakukan
d815c7b126

+ 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文件访问路径
 

+ 35 - 0
src/api/siteManage/camera.js

@@ -0,0 +1,35 @@
+import request from '@/utils/request'
+
+
+//视频列表
+export function videoMonitoringDeviceList(params) {
+    return request({
+        url: '/device/videoMonitoringDeviceList',
+        method: 'GET',
+        params,
+    })
+}
+
+export function correspondDeviceAdd(params) {
+    return request({
+        url: '/device/correspondDeviceAdd',
+        method: 'POST',
+        data: params,
+    })
+}
+
+export function correspondDeviceUpdate(params) {
+    return request({
+        url: '/device/correspondDeviceUpdate',
+        method: 'POST',
+        data: params,
+    })
+}
+
+export function correspondDeviceDel(params) {
+    return request({
+        url: '/device/correspondDeviceDel',
+        method: 'GET',
+        params,
+    })
+}

+ 1 - 1
src/views/deviceManage/powerEquip/communicateEquip/index.vue

@@ -321,7 +321,7 @@ export default defineComponent({
         floor: row.floor,
         siteId: row.siteId,
         deviceAddress: row.deviceAddress,
-        deviceType: row.deviceType,
+        deviceType: Number(row.deviceType),
         sim: row.sim,
       }
     }

+ 136 - 145
src/views/siteManage/camera/dialogComponent.vue

@@ -1,104 +1,103 @@
 <template>
-    <el-dialog
-      :title="dialogTitle"
-      v-model="dialogVisible"
-      width="640px"
-      @close="closeDialog()"
-      @open="open"
+  <el-dialog
+    :title="dialogTitle"
+    v-model="dialogVisible"
+    width="640px"
+    @close="closeDialog()"
+    @open="open"
+  >
+    <el-form
+      ref="formInfo"
+      :model="form"
+      class="demo-form-inline"
+      label-width="100px"
+      :rules="rules"
     >
-      <el-form
-        ref="formInfo"
-        :model="form"
-        class="demo-form-inline"
-        label-width="100px"
-        :rules="rules"
-      >
-        <el-form-item label="设备名称:" prop="monitorDeviceName">
-          <el-input v-model="form.monitorDeviceName"></el-input>
-        </el-form-item>
-        <el-form-item label="设备编号:" prop="monitorDeviceCode">
-          <el-input v-model="form.monitorDeviceCode"></el-input>
-        </el-form-item>
-        <el-form-item label="回路表记地址:" prop="loopMeterAddress">
-          <!-- <el-select
-            v-model="form.loopMeterAddress"
-            multiple
-            filterable
-            collapse-tags
-            placeholder="请选择"
-          >
-            <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
-            </el-option>
-          </el-select> -->
-           <el-input-number
-              v-model="form.loopMeterAddress"
-              controls-position="right"
-              :min="0"
-              :max="255"
-            ></el-input-number>
+      <el-form-item label="设备名称:" prop="deviceName">
+        <el-input v-model="form.deviceName"></el-input>
+      </el-form-item>
+      <el-form-item label="设备编号:" prop="deviceCode">
+        <el-input v-model="form.deviceCode"></el-input>
+      </el-form-item>
+      <el-form-item label="楼层:" prop="floor">
+        <el-input-number
+          v-model="form.floor"
+          controls-position="right"
+          :min="0"
+          :max="255"
+        ></el-input-number>
+      </el-form-item>
 
-        </el-form-item>
+      <el-form-item label="所属站点:" prop="siteId">
+        <el-select
+          v-model="form.siteId"
+          :disabled="
+            deviceNumDataContent != '' &&
+            form.siteId != null &&
+            form.siteId != ''
+              ? true
+              : false
+          "
+          placeholder="请选择所属站点"
+        >
+          <el-option
+            v-for="item in siteList"
+            :key="item.value"
+            :label="item.siteName"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
 
-        <el-form-item label="所属站点:" prop="siteId">
-            <el-select
-              v-model="form.siteId"
-             :disabled="
-                deviceNumDataContent != '' &&
-                form.siteId != null &&
-                form.siteId != ''
-                  ? true
-                  : false
-              "
-              placeholder="请选择所属站点"
-            >
-              <el-option
-                v-for="item in siteList"
-                :key="item.value"
-                :label="item.siteName"
-                :value="item.id"
-              ></el-option>
-            </el-select>
-          </el-form-item>
+      <el-form-item label="设备安装位置:" prop="deviceAddress">
+        <el-input v-model="form.deviceAddress"></el-input>
+      </el-form-item>
+      <el-form-item label="设备类型:" prop="deviceType">
+        <el-select
+          v-model="form.deviceType"
+          placeholder="请选择设备类型"
+          disabled
+          v-if="dialogTitle == '编辑'"
+        >
+          <el-option
+            v-for="item in deviceType"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          ></el-option>
+        </el-select>
+        <el-select
+          v-model="form.deviceType"
+          placeholder="请选择设备类型"
+          v-else
+        >
+          <el-option
+            v-for="item in deviceType"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="sim卡" prop="sim">
+        <el-input v-model="form.sim"></el-input>
+      </el-form-item>
 
-        <el-form-item label="额定电压(kV):" prop="ratedVoltage">
-          <el-input v-model="form.ratedVoltage"></el-input>
-          <div class="remarksTxt">(数值为线电压)</div>
-        </el-form-item>
-        <el-form-item label="额定电流(A):" prop="ratedCurrent">
-          <el-input v-model="form.ratedCurrent"></el-input>
-        </el-form-item>
-        <el-form-item label="电流负载率门限:" prop="currentLoadRate">
-          <el-input v-model="form.currentLoadRate"></el-input>
-          <div class="remarksTxt">(0-100之间的数字)</div>
-        </el-form-item>
-        <el-form-item label="设备能力:" prop="qualityAnalysis">
-          <el-checkbox v-model="form.qualityAnalysis">电能质量分析</el-checkbox>
-          <div class="remarksTxt">(如果未勾选,该设备不参与电能质量分析)</div>
-        </el-form-item>
-
-      
-        <br />
-        <br />
-        <br />
-        <div style="text-align: right">
-          <el-button @click="closeDialog(0)">取消</el-button>
-          <el-button type="primary" @click="submitForm()"
-            >保存</el-button
-          >
-        </div>
-      </el-form>
-    </el-dialog>
+      <br />
+      <br />
+      <br />
+      <div style="text-align: right">
+        <el-button @click="closeDialog(0)">取消</el-button>
+        <el-button type="primary" @click="submitForm()">保存</el-button>
+      </div>
+    </el-form>
+  </el-dialog>
 </template>
 
 <script>
 import { useStore } from 'vuex'
 import { defineComponent, ref, watchEffect } from 'vue'
-import * as api from '@/api/siteManage/watchDog.js'
+import * as api from '@/api/siteManage/camera.js'
 import { ElMessage } from 'element-plus'
 
 export default defineComponent({
@@ -117,41 +116,18 @@ export default defineComponent({
 
     const form = ref([])
 
-     const siteList = ref([])
+    const siteList = ref([])
 
     // open(): Dialog弹窗打开之前做的事
     const open = () => {
       console.log('')
-      form.value = props.itemInfo.value;
-       siteList.value = store.state.siteList
-        console.log('siteList.value')
+      form.value = props.itemInfo.value
+      siteList.value = store.state.siteList
+      console.log('siteList.value')
       console.log(siteList.value)
-       console.log('siteList.value')
+      console.log('siteList.value')
     }
 
-    const options = [
-      {
-        value: '选项1',
-        label: '站点一',
-      },
-      {
-        value: '选项2',
-        label: '站点二',
-      },
-      {
-        value: '选项3',
-        label: '站点三',
-      },
-      {
-        value: '选项4',
-        label: '站点四',
-      },
-      {
-        value: '选项5',
-        label: '站点五',
-      },
-    ]
-
     // 关闭弹框
     const closeDialog = () => {
       context.emit('closeDialog', false)
@@ -176,14 +152,10 @@ export default defineComponent({
     const submitForm = () => {
       formInfo.value.validate((valid) => {
         if (valid) {
-
-          form.value.qualityAnalysis =
-            form.value.qualityAnalysis == true
-              ? (form.value.qualityAnalysis = '是')
-              : (form.value.qualityAnalysis = '否')
-
+          form.value.siteId =18
+           
           if (props.dialogTitle === '新增') {
-            api.deviceNewsAdd(form.value).then((requset) => {
+            api.correspondDeviceAdd(form.value).then((requset) => {
               if (requset.status === 'SUCCESS') {
                 ElMessage.success({
                   message: '新增成功',
@@ -195,7 +167,7 @@ export default defineComponent({
               }
             })
           } else {
-            api.deviceNewsUpdate(form.value).then((requset) => {
+            api.correspondDeviceUpdate(form.value).then((requset) => {
               if (requset.status === 'SUCCESS') {
                 ElMessage.success({
                   message: '修改成功',
@@ -217,7 +189,6 @@ export default defineComponent({
     return {
       closeDialog,
       dialogVisible,
-      options,
       roleValid,
       formInfo,
       siteList,
@@ -225,34 +196,54 @@ export default defineComponent({
       open,
       submitForm,
       rules: {
-        monitorDeviceName: [
-          { required: true, message: "请输入设备名称", trigger: "blur" },
-        
+        deviceName: [
+          { required: true, message: '请输入设备名称', trigger: 'blur' },
         ],
-        monitorDeviceCode: [
-          { required: true, message: "请输入设备编号", trigger: "blur" },
-          
+        deviceCode: [
+          { required: true, message: '请输入设备编号', trigger: 'blur' },
         ],
-        loopMeterAddress: [
-          { required: true, message: "请选择回路表记地址", trigger: "blur" },
-        ],
-         siteId: [
+        floor: [{ required: true, message: '请选择所属楼层', trigger: 'blur' }],
+        siteId: [
           {
             required: true,
             message: '请选择所属站点',
             trigger: 'blur',
           },
         ],
-        ratedVoltage: [
-          { required: true, message: "请输入额定电压", trigger: "change" },
-        ],
-        ratedCurrent: [
-          { required: true, message: "请输入额定电流", trigger: "blur" },
+        deviceAddress: [
+          { required: true, message: '请输入设备安装位置', trigger: 'blur' },
         ],
-        currentLoadRate: [
-          { required: true, message: "请输入电流负载率门限", trigger: "blur" },
+        deviceType: [
+          { required: true, message: '请选择设备类型', trigger: 'change' },
         ],
+        sim: [{ required: true, message: '请输入sim卡号', trigger: 'blur' }],
       },
+      deviceType: ref([
+        {
+          value: 1,
+          label: '183用电设备',
+        },
+        {
+          value: 2,
+          label: '视频监控设备',
+        },
+        {
+          value: 3,
+          label: '171用电设备',
+        },
+        {
+          value: 4,
+          label: '173用电设备',
+        },
+        {
+          value: 5,
+          label: '158智能网关',
+        },
+        {
+          value: 6,
+          label: '其他',
+        },
+      ]),
     }
   },
 })

+ 114 - 77
src/views/siteManage/camera/index.vue

@@ -2,7 +2,7 @@
   <div class="siteManage-main watchDog">
     <!-- 筛选start -->
     <div class="filter-container mb-20">
-     <div class="left">
+      <div class="left">
         <div>
           <a class="" style="margin-right: 30px">【测试站点1】站点的所有变量</a>
           <el-button icon="el-icon-plus" type="success" @click="addItem()">
@@ -33,47 +33,51 @@
         </template>
       </el-table-column>
       <el-table-column
-        prop="monitorDeviceName"
+        prop="deviceName"
         label="名称"
         align="center"
-        width="200px"
       ></el-table-column>
       <el-table-column
-        prop="monitorDeviceCode"
+        prop="deviceCode"
         label="编号"
         align="center"
         width=""
       ></el-table-column>
-      <!-- <el-table-column
-        prop="loopMeterAddress"
-        label="回路表计地址"
+
+      <el-table-column
+        prop="floor"
+        label="楼层"
         align="center"
-        width=""
-      ></el-table-column> -->
+        width="60"
+      ></el-table-column>
       <el-table-column
-        prop="ratedVoltage"
-        label="额定电压"
+        prop="deviceAddress"
+        label="设备安装位置"
         align="center"
         width=""
       ></el-table-column>
+      <el-table-column prop="deviceType" label="设备类型" align="center">
+        <template #default="scope">
+          {{ scope.row.deviceType == '2' ? '视频监控设备' : '其他' }}
+        </template>
+      </el-table-column>
       <el-table-column
-        prop="ratedCurrent"
-        label="额定电流"
+        prop="installTime"
+        label="安装时间"
         align="center"
-        width=""
+        width="200"
       ></el-table-column>
       <el-table-column
-        prop="currentLoadRate"
-        label="电流负载率门限"
+        prop="creator"
+        label="创建人"
         align="center"
-        width="150"
       ></el-table-column>
-      <!-- <el-table-column
-        prop="qualityAnalysis"
-        label="电能质量分析"
+      <el-table-column
+        prop="sim"
+        label="sim卡号"
         align="center"
-        width=""
-      ></el-table-column> -->
+      ></el-table-column>
+
       <el-table-column fixed="right" label="操作" width="140">
         <template #default="scope">
           <el-button
@@ -84,20 +88,20 @@
             编辑
           </el-button>
           <el-popconfirm
-              confirm-button-text="是"
-              cancel-button-text="否"
-              icon="el-icon-info"
-              icon-color="red"
-              title="确定删除?"
-              @confirm="handleDelete(scope.row)"
-              @cancel="cancelEvent"
-            >
-              <template #reference>
-                <el-button type="text" size="small" class="delete-text">
-                  删除
-                </el-button>
-              </template>
-            </el-popconfirm>
+            confirm-button-text="是"
+            cancel-button-text="否"
+            icon="el-icon-info"
+            icon-color="red"
+            title="确定删除?"
+            @confirm="handleDelete(scope.row)"
+            @cancel="cancelEvent"
+          >
+            <template #reference>
+              <el-button type="text" size="small" class="delete-text">
+                删除
+              </el-button>
+            </template>
+          </el-popconfirm>
         </template>
       </el-table-column>
 
@@ -146,12 +150,15 @@
 
 <script>
 import { defineComponent, ref, reactive, onMounted } from 'vue'
-import * as api from '@/api/siteManage/watchDog.js'
+// import * as api from '@/api/siteManage/watchDog.js'
+import * as api from '@/api/siteManage/camera.js'
 import { ElMessage } from 'element-plus'
 
 import DialogComponent from './dialogComponent'
 import checkVideo from './checkVideo'
 
+import axios from 'axios'
+
 export default defineComponent({
   components: { DialogComponent, checkVideo },
   setup(props, { emit }) {
@@ -178,12 +185,13 @@ export default defineComponent({
     const dialogTitle = ref('')
 
     //监控设备列表
-    function deviceNewsList() {
+    function videoMonitoringDeviceList() {
       api
-        .deviceNewsList({
-          siteId: 1,
+        .videoMonitoringDeviceList({
+          siteId: 18,
           size: pageSize.value,
           current: currentPage.value,
+          // deviceType:2
         })
         .then((requset) => {
           if (requset.status === 'SUCCESS') {
@@ -196,41 +204,40 @@ export default defineComponent({
     }
 
     // 添加操作
-    // const addItem = () => {
-    //   tableItem.value = {
-    //     platformAreaName: '',
-    //     platformAreaCode: '',
-    //     platformAreaAddress: '',
-    //   }
-    //   dialogTitle.value = '新增'
-    //   showDialog.value = true
-    // }
-
-
-
+    const addItem = () => {
+      tableItem.value = {
+        deviceName: '',
+        deviceCode: '',
+        floor: 1,
+        siteId: '',
+        deviceAddress: '',
+        deviceType: '',
+        sim: '',
+      }
+      dialogTitle.value = '新增'
+      showDialog.value = true
+    }
 
     // 编辑操作
     const editRow = (row) => {
+      console.log
       tableItem.value = {
         id: row.id,
-        monitorDeviceCode: row.monitorDeviceCode,
-        monitorDeviceName: row.monitorDeviceName,
-        loopMeterAddress: row.loopMeterAddress,
-        ratedVoltage: row.ratedVoltage,
-        ratedCurrent: row.ratedCurrent,
-        currentLoadRate: row.currentLoadRate,
+        deviceCode: row.deviceCode,
+        deviceName: row.deviceName,
+        floor: row.floor,
+
         siteId: row.siteId,
-        variableListId: row.variableListId,
-        qualityAnalysis: row.qualityAnalysis === '是' ? true : false,
+        deviceAddress: row.deviceAddress,
+        deviceType: Number(row.deviceType),
+        sim: row.sim,
       }
       dialogTitle.value = '编辑'
       showDialog.value = true
     }
 
-
-
     // 查看视频
-    const checkVideo=()=> {
+    const checkVideo = () => {
       alert(1)
       tableItem.value = {
         id: '',
@@ -247,23 +254,21 @@ export default defineComponent({
       showDialog2.value = true
     }
 
-
     // 关闭操作
     const closeDialog = () => {
-      showDialog.value = false,
-      showDialog2.value = false
-      deviceNewsList()
+      ;(showDialog.value = false), (showDialog2.value = false)
+      videoMonitoringDeviceList()
     }
 
     //删除 是否删除  ---- 是
     const handleDelete = (row) => {
-      api.deviceNewsDel({ id: row.id }).then((requset) => {
+      api.correspondDeviceDel({ id: row.id }).then((requset) => {
         if (requset.status === 'SUCCESS') {
           ElMessage.success({
             message: '删除成功',
             type: 'success',
           })
-          deviceNewsList()
+          videoMonitoringDeviceList()
         } else {
           ElMessage.error(requset.msg)
         }
@@ -275,10 +280,6 @@ export default defineComponent({
       console.log('cancel!')
     }
 
-    onMounted(() => {
-      deviceNewsList()
-    })
-
     function goVariableList() {
       emit('func')
     }
@@ -289,12 +290,47 @@ export default defineComponent({
     }
     const handleSizeChange = (val) => {
       pageSize.value = val
-      deviceNewsList()
+      videoMonitoringDeviceList()
     }
     const handleCurrentChange = (val) => {
       currentPage.value = val
-      deviceNewsList()
+      videoMonitoringDeviceList()
     }
+
+    const chk_video = () => {
+   
+      axios
+        .post(
+          'https://fire.usky.cn:8443/YtIoT/cgi-bin/demo2.cgi',
+          'queryJson:' +
+            JSON.stringify({
+              CMD: 1,
+            }),
+          {
+            headers: {
+              'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
+            },
+          }
+        )
+        .then((response) => {
+          console.log('response')
+          console.log(response.data.RESULT.LIST)
+        })
+        .catch((error) => {
+          console.log(error)
+        })
+    }
+
+    window.setInterval(() => {
+      setTimeout(() => {
+        chk_video()
+      }, 0)
+    }, 10000)
+
+    onMounted(() => {
+      videoMonitoringDeviceList()
+    })
+
     return {
       tableData,
       showDialog,
@@ -311,14 +347,15 @@ export default defineComponent({
       total,
       pageSize,
       currentPage,
+      chk_video,
 
       goVariableList,
 
-      deviceNewsList,
+      videoMonitoringDeviceList,
       goSiteList,
       getMsgFormSon,
       headClass,
-      // addItem,
+      addItem,
 
       checkVideo,
       editRow,

+ 4 - 5
src/views/systemManage/userManage/dialogComponent.vue

@@ -46,10 +46,10 @@
         ></el-date-picker>
       </el-form-item>
 
-      <el-form-item label="角色名称:" prop="roleName">
+      <el-form-item label="角色名称:" prop="roleName" v-if="dialogTitle=='新增'">
         <!-- <el-input v-model="form.roleName"></el-input> -->
 
-        <el-select v-model="form.roleId" placeholder="请选择">
+        <el-select v-model="form.roleId" placeholder="请选择" >
           <el-option
             v-for="(item, index) in roleSelectData"
             :key="index"
@@ -98,8 +98,8 @@ export default defineComponent({
     // open(): Dialog弹窗打开之前做的事
     const open = () => {
       form.value = props.itemInfo.value
-      // console.log('form.value')
-      // console.log(form.value)
+      console.log('form.value')
+      console.log(form.value)
     }
 
     const options = [
@@ -180,7 +180,6 @@ export default defineComponent({
             //     }
             //   })
             // } 
-            form.value.roleIds=[form.value.roleId];
             api.userUpdate(form.value).then((requset) => {
               if (requset.status === 'SUCCESS') {
                 ElMessage.success({

+ 4 - 4
src/views/systemManage/userManage/index.vue

@@ -221,21 +221,21 @@ export default defineComponent({
     // 编辑操作
     const editRow = (row) => {
       console.log(row)
-      
 
       api.authRole({}, row.userId).then((requset) => {
         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 = []
         } else {
           ElMessage.error(requset.msg)
         }
       })
-       tableItem.value = row
 
      
+      tableItem.value = row
+
       dialogTitle.value = '编辑'
       showDialog.value = true
     }