Browse Source

修改相机绑定

tangning 3 years ago
parent
commit
a2bf66095e

+ 1 - 1
.env

@@ -1,2 +1,2 @@
-VUE_APP_DOMAIN=https://www.4dkankan.com
+VUE_APP_DOMAIN=https://xfhd.4dkankan.com
 VUE_APP_PREFIX=

+ 2 - 0
src/request/config.js

@@ -116,6 +116,8 @@ export const getCameraList = '/web/camera/getUserCameraList'
 export const getCameraOptions = '/web/camera/getUserCameraList?pageNum=1&pageSize=100000'
 // 添加相机
 export const insertCamera = '/web/camera/bindNew'
+// 添加相机管理人员
+export const getUserListSelect = '/web/user/getUserListSelect'
 // 修改相机
 export const updateCamera = '/api/scene/camera/update'
 // 删除相机

+ 0 - 1
src/state/tableRef.js

@@ -162,7 +162,6 @@ export default ({operAttr, searchAttr, pagAttr, isSelect = true, getUrl, updateU
         console.log(oper.value.state)
         let item = {}
         Object.keys(operAttr).forEach(key => item[key] = target[key])
-
         await axios.post(insertUrl, data || item)
 
         ret.dataList.value.state.push(item)

+ 0 - 1
src/state/user.js

@@ -99,7 +99,6 @@ export const setInfo = val => {
 }
 
 export const setRoleKey = val => {
-  alert(val)
   user.value.roleKey = val
 }
 

+ 31 - 8
src/view/camera/index.vue

@@ -69,19 +69,30 @@
     v-model:show="oper.state.show"
     enterText="确 定"
     @submit="submit"
-    width="480"
+    width="500"
   >
-    <el-form ref="form" :model="form" label-width="68px" class="camera-from">
+    <el-form ref="form" :model="form" label-width="75px" class="camera-from">
       <el-form-item label="SN码:" class="mandatory">
         <el-input :modelValue="oper.state.snCode" placeholder="请输入相机底部SN码,如214D5RE2G8" @update:modelValue="val => oper.state.snCode = val.trim()"></el-input>
       </el-form-item>
+      <el-form-item label="管理员:" label-width="75px" class="mandatory">
+        <el-select v-model="oper.state.userId" placeholder="请选择">
+          <el-option
+            v-for="item in list"
+            :key="item.id"
+            :label="item.nickName"
+            :value="item.id"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
     </el-form>
   </com-dialog>
 
 </template>
 
 <script>
-import { ref, watch } from "vue";
+import { reactive, ref, watch,onMounted,toRefs } from "vue";
 import getTableState from "@/state/tableRef";
 import auth from "@/state/viewAuth";
 import comDialog from "@/components/dialog";
@@ -94,7 +105,8 @@ import {
   insertCamera,
   deleteCamera,
   unbindCamera,
-  updateCamera
+  updateCamera,
+  getUserListSelect
 } from '@/request/config'
 import axios from 'axios';
 
@@ -107,12 +119,18 @@ export default {
       getUrl: getCameraList,
       delUrl: deleteCamera,
       searchAttr: { deptId: '', snCode: '' },
-      operAttr: { snCode: '', cameraSn: '' },
+      operAttr: { snCode: '', cameraSn: '',userId:'' },
       delMsg: '解绑相机,该相机拍摄的场景也将一并解绑(场景在云端存储,不会删除)确定要解绑吗?'
     });
     const headList = ref([{ name: "相机管理", value: 2 }]);
+    const userList = reactive({
+      list:[]
+    })
     const time = ref(null)
-
+    const getuserlist = async () =>{
+      let res = await axios.get(getUserListSelect, {})
+      userList.list = res.data || []
+    }
     watch(state.oper.value.state, () => {
       state.oper.value.state.cameraSn = state.oper.value.state.snCode
     })
@@ -133,8 +151,10 @@ export default {
         }
       }
     )
-
-    return { ...state, headList, time, auth };
+    onMounted(async ()=>{
+        getuserlist()
+    })
+    return { ...state,...toRefs(userList), headList, time, auth,getuserlist, };
   },
   methods: {
     async unbindCamrea(data) {
@@ -148,6 +168,9 @@ export default {
       if (!this.oper.state.snCode.trim()) {
         return this.$message.error('S/N码不能为空!', '提示')
       }
+      if (!this.oper.state.userId) {
+        return this.$message.error('请选择管理员', '提示')
+      }
 
       this.oper.state.id ? this.oper.update() : this.oper.insert()
     }

+ 1 - 1
src/view/layout/top/index.vue

@@ -2,7 +2,7 @@
   <div class="top" :class="{system: isSystem}">
     <div class="title">
       <img src="@/assets/image/img_login_logo.png">
-      <h2>广东省消防救援总队火场三维数据平台<span>Three-dimensional data platform of fire scene of Guangdong Fire Resue</span></h2>
+      <h2>消防火调三维远程勘验平台<span>Three-dimensional remote prospecting platform of fire scene of Fire Resue</span></h2>
     </div>
     <div class="oper-btns" v-if="!isSystem && info">
         <div class="user-menu">

+ 12 - 6
src/view/organization/list.vue

@@ -15,6 +15,7 @@
             :props="treeProps"
             :data="treedata"
             node-key="id"
+            ref="treeBox"
             default-expand-all
             :expand-on-click-node="false"
           >
@@ -63,7 +64,7 @@
             <el-radio label="3">大队</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="上级组织">
+        <el-form-item label="上级组织" class="mandatory">
           <el-cascader  v-if="detailType == '新增'"
             style="width: 100%"
             v-model="superiorValue"
@@ -131,6 +132,7 @@
 <script>
 import { reactive, toRefs,onMounted } from "vue"; //computed watch ref
 import comDialog from "@/components/dialog";
+import user from '@/state/user'
 import axios from 'axios';
 import {useRoute} from 'vue-router'
 import seeInfo from "./seeInfo.vue";
@@ -178,11 +180,13 @@ export default {
       console.log(data);
     };
     const submit = async () => {
-      const { name, deptType,} = data.detail;
+      const { name, deptType,parentId} = data.detail;
       if (!name) {
         return getApp().$message.error("组织名称不能为空!", "提示");
       } else if (!deptType) {
         return getApp().$message.error("组织类型不能为空!", "提示");
+      } else if (!parentId) {
+        return getApp().$message.error("上级组织不能为空!", "提示");
       }
       //校验成功后温馨提示
       let apidata = {
@@ -195,9 +199,9 @@ export default {
       }
       let res = await axios.post(requestApi, apidata)
       getTreedata()
-    data.detail = {}
-    data.show = false
-    data.superiorValue = []
+      data.detail = {}
+      data.show = false
+      data.superiorValue = []
       console.log('async',res,data);
       getApp().$ref.form.resetFields()
       getApp().$confirm('组织创建成功', '删除')
@@ -211,6 +215,7 @@ export default {
       }
      }else{
       data.detailType = '新增'
+      data.detail = {}
      }
       data.show = true;
     };
@@ -251,6 +256,7 @@ export default {
     const getTreedata = async () =>{
       let res = await axios.get(getTreeselect, {})
       data.treedata = res.data
+      getApp().$ref.treeBox.setCurrentKey(user.info.id)
     }
     onMounted(async ()=>{
         getTreedata()
@@ -259,7 +265,7 @@ export default {
       // treedata,
       ...toRefs(data),
       // ...toRefs(state),
-    //   treeProps,
+      user,
       handleNodeClick,
       loadNode,
       insertProject,

+ 1 - 1
src/view/organization/seeInfo.vue

@@ -13,7 +13,7 @@
         <p class="tip">{{ type }}</p>
       </el-form-item>
       <el-form-item label="上级组织">
-        <p class="tip">{{ detail.superior }}</p>
+        <p class="tip">{{ detail.parentName }}</p>
       </el-form-item>
       <el-form-item label="负责人">
         <p class="tip">{{ detail.leader }}</p>

+ 4 - 3
vue.config.js

@@ -16,12 +16,13 @@ module.exports = {
     liveReload: false,
     // 设置代理proxy
     proxy: {
-      '/__api': {
-        target: 'http://192.168.0.26:8585/',
+      '/fireApi': {
+        // target: 'http://192.168.0.26:8585/',
+        target: 'https://xfhd.4dkankan.com',
         // target: 'https://testhuodiao.4dkankan.com/',
         changeOrigin: true,  
         pathRewrite: {      
-          ['^/__api']: ''
+          ['^/fireApi']: ''
         }
       }
     }