|
|
@@ -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 >
|