|
|
@@ -0,0 +1,135 @@
|
|
|
+<template>
|
|
|
+ <a-card>
|
|
|
+ <a-table
|
|
|
+ style="margin-top: 20px;"
|
|
|
+ :columns="columns"
|
|
|
+ :data-source="state.dataSource"
|
|
|
+ :loading="state.loading"
|
|
|
+ >
|
|
|
+ <template #bodyCell="{column, record}">
|
|
|
+ <template v-if="column.key === 'action'">
|
|
|
+ <a-space>
|
|
|
+ <a @click="goGB28181Records(record.id)">查看录像</a>
|
|
|
+ <a @click="openModal(record.id)" >控制</a>
|
|
|
+ </a-space>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </a-table>
|
|
|
+ </a-card>
|
|
|
+ <a-modal
|
|
|
+ title="控制设备"
|
|
|
+ :visible="state.controlVisible"
|
|
|
+ ok-text="确定"
|
|
|
+ cancel-text="取消"
|
|
|
+ @cancel="closeModel"
|
|
|
+ @ok="controlGB28181Device"
|
|
|
+ >
|
|
|
+ <a-form :label-col="{span: 4}" :wrapper-col="{span: 14}">
|
|
|
+ <a-form-item label="通道" v-bind="controlParamsState.channel">
|
|
|
+ <a-input v-model:value="controlParamsState.channel" />
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item label="命令" v-bind="controlParamsState.ptzcmd">
|
|
|
+ <a-input v-model:value="controlParamsState.ptzcmd" />
|
|
|
+ </a-form-item>
|
|
|
+ </a-form>
|
|
|
+ </a-modal>
|
|
|
+</template>
|
|
|
+<script lang="ts" setup >
|
|
|
+import { RtsController } from '@/controller/rts'
|
|
|
+import { onMounted, reactive } from 'vue'
|
|
|
+
|
|
|
+const columns = [
|
|
|
+ {
|
|
|
+ title: 'ID',
|
|
|
+ dataIndex: 'ID'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '名称',
|
|
|
+ dataIndex: 'Name'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '制造商',
|
|
|
+ dataIndex: 'Manufacturer'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '注册时间',
|
|
|
+ dataIndex: 'RegisterTime'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '状态',
|
|
|
+ dataIndex: 'Status'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '网络地址',
|
|
|
+ dataIndex: 'NetAddr'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: 'Owner',
|
|
|
+ dataIndex: 'Owner'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: 'gps时间',
|
|
|
+ dataIndex: 'GpsTime'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '经度',
|
|
|
+ dataIndex: 'Longitude'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '纬度',
|
|
|
+ dataIndex: 'Latitude'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '操作',
|
|
|
+ dataIndex: 'action',
|
|
|
+ key: 'action'
|
|
|
+ }
|
|
|
+]
|
|
|
+const controlParamsState = reactive({
|
|
|
+ id: '',
|
|
|
+ channel: '',
|
|
|
+ ptzcmd: ''
|
|
|
+})
|
|
|
+
|
|
|
+const state = reactive<{
|
|
|
+ dataSource: RTS.GB2881.Detail[]
|
|
|
+ loading: boolean
|
|
|
+ controlVisible: boolean
|
|
|
+ detail: Partial<RTS.GB2881.Detail>
|
|
|
+}>({
|
|
|
+ loading: false,
|
|
|
+ controlVisible: false,
|
|
|
+ detail: {},
|
|
|
+ dataSource: []
|
|
|
+})
|
|
|
+
|
|
|
+const getGB28181List = async () => {
|
|
|
+ const { data } = await RtsController.listGB28181()
|
|
|
+ state.dataSource = data
|
|
|
+}
|
|
|
+
|
|
|
+const goGB28181Records = async (id :string) => {
|
|
|
+ router.push({ path: '/gb28181/record', query: { id } })
|
|
|
+}
|
|
|
+
|
|
|
+const controlGB28181Device = async () => {
|
|
|
+ const { data } = await RtsController.controlGB28181(controlParamsState)
|
|
|
+ console.log(data)
|
|
|
+}
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ getGB28181List()
|
|
|
+})
|
|
|
+
|
|
|
+const openModal = (id:string) => {
|
|
|
+ state.controlVisible = true
|
|
|
+ controlParamsState.id = id
|
|
|
+}
|
|
|
+
|
|
|
+const closeModel = () => {
|
|
|
+ state.controlVisible = false
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="less" scoped >
|
|
|
+</style>
|