Przeglądaj źródła

fix: 新增设备

lvkun996 2 lat temu
rodzic
commit
59492440c9
2 zmienionych plików z 57 dodań i 27 usunięć
  1. 2 2
      config/proxy.ts
  2. 55 25
      src/pages/cvs/video/device.vue

+ 2 - 2
config/proxy.ts

@@ -12,8 +12,8 @@ module.exports = {
       pathRewrite: { '^/user': '' }
     },
     '/cvss': {
-      // target: 'http://120.223.238.91:6666',
-      target: 'http://172.28.0.3:18082',
+      target: 'http://120.223.238.91:6666',
+      // target: 'http://172.28.0.3:18082',
       changeOrigin: true,
       pathRewrite: { '^/cvss': '' }
     },

+ 55 - 25
src/pages/cvs/video/device.vue

@@ -5,9 +5,11 @@
       <a-col style="font-size: 20px;margin-right: 10px;" >设备管理</a-col>
       <a-col >
         <a-select
-          :value="spaceId"
+          :value="deviceState.spaceId"
           style="width: 170px;"
           @change="onChangeSpace"
+          placeholder="请选择空间"
+          allowClear
         >
           <a-select-option
             :key="index"
@@ -23,7 +25,7 @@
   <table-pro
     ref="tableProDom"
     :service="SpaceController.devicePage"
-    :serviceParams="{deviceName}"
+    :serviceParams="{deviceName, spaceId: deviceState.spaceId}"
     :columns="columns"
     @add="openModal"
   >
@@ -79,30 +81,56 @@
       <a-form-item  label="stream" v-bind="validateInfos.stream"  >
         <InputTsx allowClear placeholder="请输入英文、数字组成的stream" v-model:value="deviceState.stream" />
       </a-form-item>
+      <a-form-item  label="空间名称" v-bind="validateInfos.stream"  >
+        <a-select
+          :value="spaceId"
+          style="width: 170px;"
+          @change="onChangeSpace"
+          placeholder="请选择空间"
+        >
+          <a-select-option
+            :key="index"
+            :value="item.spaceId"
+            v-for="(item, index) in state.spaceList"
+          >
+            {{item.spaceName}}
+          </a-select-option>
+        </a-select>
+      </a-form-item>
       <a-form-item  label="设备类型"  >
-        {{deviceState.type}}
+        <a-radio-group v-model:value="deviceState.type" button-style="solid">
+          <a-radio-button
+            v-for="item in SpaceController.type"
+            :key="item.key"
+            :value="item.value"
+          >
+            {{item.label}}
+          </a-radio-button>
+        </a-radio-group>
       </a-form-item>
       <a-form-item  label="设备地址"  >
         <InputTsx allowClear placeholder="请输入设备地址" v-model:value="deviceState.gisName" />
       </a-form-item>
-      <a-form-item  label="拉流地址"  >
+      <a-form-item  label="拉流地址" v-if="['PULL_RTMP', 'PULL_RTSP'].includes(deviceState.type)" >
         <InputTsx v-model:value="deviceState.pullPath" placeholder="请输入拉流地址" />
       </a-form-item>
-      <a-form-item  label="国标Id"  >
-        <InputTsx v-model:value="deviceState.gbConfig.gbId" placeholder="请输入拉流地址" />
-      </a-form-item>
-      <a-form-item  label="用户名"  >
-        <InputTsx v-model:value="deviceState.gbConfig.username" placeholder="请输入用户名"/>
-      </a-form-item>
-      <a-form-item  label="用户密码"  >
-        <InputTsx v-model:value="deviceState.gbConfig.password" placeholder="请输入用户密码" />
-      </a-form-item>
-      <a-form-item  label="国标平台"  >
-        <a-radio-group v-model:value="deviceState.gbConfig.platform" button-style="solid">
-        <a-radio-button value="IPC">IPC</a-radio-button>
-        <a-radio-button value="NVR">NVR</a-radio-button>
-        </a-radio-group>
-      </a-form-item>
+      <span v-if="deviceState.type === 'GB28181'">
+        <a-form-item  label="国标Id"  >
+          <InputTsx v-model:value="deviceState.gbConfig.gbId" placeholder="请输入拉流地址" />
+        </a-form-item>
+        <a-form-item  label="用户名"  >
+          <InputTsx v-model:value="deviceState.gbConfig.username" placeholder="请输入用户名"/>
+        </a-form-item>
+        <a-form-item  label="用户密码"  >
+          <InputTsx v-model:value="deviceState.gbConfig.password" placeholder="请输入用户密码" />
+        </a-form-item>
+        <a-form-item  label="国标平台"  >
+          <a-radio-group v-model:value="deviceState.gbConfig.platform" button-style="solid">
+          <a-radio-button value="IPC">IPC</a-radio-button>
+          <a-radio-button value="NVR">NVR</a-radio-button>
+          </a-radio-group>
+        </a-form-item>
+      </span>
       <a-form-item  label="设备描述"  >
         <a-textarea v-model:value="deviceState.description" placeholder="请输入设备描述" :rows="4" />
       </a-form-item>
@@ -283,7 +311,7 @@ const _spaceId = useRoute().query.spaceId
 
 const useForm = Form.useForm
 
-const spaceId = ref('')
+const spaceId = ref(null)
 
 const deviceName = ref(null)
 
@@ -394,7 +422,7 @@ const deviceActionParams = reactive({
 
 const deviceState = reactive({
   deviceId: '',
-  spaceId: undefined,
+  spaceId: null,
   deviceName: '',
   app: '',
   stream: '',
@@ -403,7 +431,7 @@ const deviceState = reactive({
   gisLongitude: '',
   gisLatitude: '',
   gisName: '',
-  type: 'RTSP',
+  type: 'RTMP',
   pullPath: '',
   gbConfig: {
     gbId: '',
@@ -520,7 +548,10 @@ const arAnalysis = (record: CVS.device) => {
 
 const onChangeSpace = (spaceId: string) => {
   deviceState.spaceId = spaceId as any
-  tableProDom.value.reload({ page: 1 })
+  deviceState.type = spaceId ? state.spaceList.find(item => item.spaceId === spaceId)!.type : 'RTSP'
+  nextTick(() => {
+    tableProDom.value.reload({ page: 1 })
+  })
 }
 
 const closeModal = () => state.visible = false
@@ -544,8 +575,7 @@ const search = () => tableProDom.value.reload()
 onMounted(async () => {
   getAiList()
   await getSpaceList()
-  spaceId.value = Number(_spaceId)
-  console.log('useRoute():', useRoute())
+  if (_spaceId) deviceState.spaceId = Number(_spaceId)
 })
 </script>
 <style lang='less' scoped >