diff --git a/src/views/iot/tplink/camera/components/CameraPictureConfig.vue b/src/views/iot/tplink/camera/components/CameraPictureConfig.vue index 866b6d2..55ae8bc 100644 --- a/src/views/iot/tplink/camera/components/CameraPictureConfig.vue +++ b/src/views/iot/tplink/camera/components/CameraPictureConfig.vue @@ -203,6 +203,7 @@ cameraData.value.regionId = formData.regionId; cameraData.value.multitrans = formData.multitrans; cameraData.value.scale = formData.scale; + cameraData.value.parentId = formData.parentId; }) diff --git a/src/views/iot/tplink/camera/components/CameraPreviewForm.vue b/src/views/iot/tplink/camera/components/CameraPreviewForm.vue index e42a6e8..fd3567d 100644 --- a/src/views/iot/tplink/camera/components/CameraPreviewForm.vue +++ b/src/views/iot/tplink/camera/components/CameraPreviewForm.vue @@ -14,9 +14,9 @@ {{ resolution }} - + 电话 diff --git a/src/views/iot/tplink/camera/components/CameraUploadForm.vue b/src/views/iot/tplink/camera/components/CameraUploadForm.vue index 40ff55b..108ac7a 100644 --- a/src/views/iot/tplink/camera/components/CameraUploadForm.vue +++ b/src/views/iot/tplink/camera/components/CameraUploadForm.vue @@ -196,6 +196,7 @@ import { formData.regionId = props.data.regionId; formData.multitrans = props.data.multitrans; formData.scale = props.data.scale; + formData.parentId = props.data.parentId; }, { deep: true, immediate: true } ); diff --git a/src/views/iot/tplink/plan/components/PlanAdd.vue b/src/views/iot/tplink/plan/components/PlanAdd.vue new file mode 100644 index 0000000..0c354b5 --- /dev/null +++ b/src/views/iot/tplink/plan/components/PlanAdd.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/src/views/iot/tplink/plan/components/PlanAddForm.vue b/src/views/iot/tplink/plan/components/PlanAddForm.vue new file mode 100644 index 0000000..401941b --- /dev/null +++ b/src/views/iot/tplink/plan/components/PlanAddForm.vue @@ -0,0 +1,160 @@ + + + + diff --git a/src/views/iot/tplink/plan/components/PlanAddTree.vue b/src/views/iot/tplink/plan/components/PlanAddTree.vue new file mode 100644 index 0000000..056c164 --- /dev/null +++ b/src/views/iot/tplink/plan/components/PlanAddTree.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/src/views/iot/tplink/plan/components/PlanLeftTree.vue b/src/views/iot/tplink/plan/components/PlanLeftTree.vue new file mode 100644 index 0000000..1b9f263 --- /dev/null +++ b/src/views/iot/tplink/plan/components/PlanLeftTree.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/src/views/iot/tplink/plan/components/PlanList.vue b/src/views/iot/tplink/plan/components/PlanList.vue new file mode 100644 index 0000000..2495139 --- /dev/null +++ b/src/views/iot/tplink/plan/components/PlanList.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/iot/tplink/plan/components/PlanModal.vue b/src/views/iot/tplink/plan/components/PlanModal.vue new file mode 100644 index 0000000..4045aed --- /dev/null +++ b/src/views/iot/tplink/plan/components/PlanModal.vue @@ -0,0 +1,67 @@ + + + + + + diff --git a/src/views/iot/tplink/plan/index.vue b/src/views/iot/tplink/plan/index.vue new file mode 100644 index 0000000..a42473d --- /dev/null +++ b/src/views/iot/tplink/plan/index.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/views/iot/tplink/plan/plan.api.ts b/src/views/iot/tplink/plan/plan.api.ts new file mode 100644 index 0000000..1567ff9 --- /dev/null +++ b/src/views/iot/tplink/plan/plan.api.ts @@ -0,0 +1,86 @@ +import { defHttp } from '/@/utils/http/axios'; +import {Modal} from "ant-design-vue"; + +enum Api { + queryProjectTreeSync = '/iot/projectInfo/queryRegionTreeSync', + queryRegionTreeSync = '/iot/regionInfo/queryRegionTreeSync', + queryTreeList = '/iot/cameraInfo/queryTreeList', + getStorageDevice = '/iot/cameraInfo/getStorageDevice', + getAllRecordPlans = '/iot/cameraInfo/getAllRecordPlans', + getRecordCfgs = '/iot/cameraInfo/getRecordCfgs', + addRecordCfgs = '/iot/cameraInfo/addRecordCfgs', + setRecordCfgs = '/iot/cameraInfo/setRecordCfgs', + delRecordCfgs = '/iot/cameraInfo/delRecordCfgs', + getBatchProgress = '/iot/cameraInfo/getBatchProgress', +} + +/** + * 获取项目树列表 + * @param params + */ +export const queryProjectTreeSync = (params?) => defHttp.get({ url: Api.queryProjectTreeSync, params }); + +/** + * 获取区域树列表 + * @param params + */ +export const queryRegionTreeSync = (params?) => defHttp.get({ url: Api.queryRegionTreeSync, params }); + +/** + * 获取树列表 + * @param params + */ +export const queryTreeList = (params?) => defHttp.get({ url: Api.queryTreeList, params }); + +/** + * 列表接口 + * @param params + */ +export const getStorageDevice = (params) => defHttp.get({ url: Api.getStorageDevice, params }); + +/** + * 获取存储设备列表 + * @param params + */ +export const getAllRecordPlans = (params) => defHttp.get({ url: Api.getAllRecordPlans, params }); + +/** + * 获取录像配置 + * @param params + */ +export const list = (params) => defHttp.get({ url: Api.getRecordCfgs, params }); + +/** + * 添加录像计划 + * @param params + */ +export const addRecordCfgs = (params) => defHttp.post({ url: Api.addRecordCfgs, params }); + +/** + * 设置录像计划 + * @param params + */ +export const editRecordCfgs = (params) => defHttp.post({ url: Api.setRecordCfgs, params }); + +/** + * 获取批量操作录像计划进度 + * @param params + */ +export const getBatchProgress = (params) => defHttp.get({ url: Api.getBatchProgress, params }); + + +/** + * 批量删除数据源 + * @param params + */ +export const batchDeleteCfgs = (params) => { + Modal.confirm({ + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + defHttp.get({ url: Api.delRecordCfgs, params }); + }, + }); +}; diff --git a/src/views/iot/tplink/plan/plan.data.ts b/src/views/iot/tplink/plan/plan.data.ts new file mode 100644 index 0000000..aebeaae --- /dev/null +++ b/src/views/iot/tplink/plan/plan.data.ts @@ -0,0 +1,158 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; + +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '设备序号', + align: "center", + dataIndex: 'deviceIndex' + }, + { + title: '设备名称', + align: "center", + dataIndex: 'deviceName' + }, + { + title: 'IP地址', + align: "center", + dataIndex: 'ip' + }, + { + title: '录像开关', + align: "center", + dataIndex: 'recordSwitchBoolean', + }, + { + title: '录像存储位置', + align: "center", + dataIndex: 'storageDevName' + }, + { + title: '录像码流', + align: "center", + dataIndex: 'streamType', + customRender:({record})=>{ + if(record.streamType == 0){ + return '主码流'; + }else if(record.streamType == 1){ + return '子码流'; + }else{ + return ''; + } + }, + }, + { + title: '录像计划', + align: "center", + dataIndex: 'planName' + }, +]; + +export const formSchema: FormSchema[] = [ + { + label: '', + field: 'ids', + component: 'Input', + show: false, + }, + { + label: '设备序号', + field: 'deviceIndex', + component: 'Input', + dynamicDisabled: true + }, + { + label: '设备名称', + field: 'deviceName', + component: 'Input', + dynamicDisabled: true + }, + { + label: '录像开关', + field: 'recordSwitch', + component: 'Select', + componentProps: { + options: [ + {label:'开启' , value: '1'}, + {label:'关闭' , value: '0'}, + ] + }, + defaultValue: '1' + }, + { + label: '存储位置', + field: 'storageDevName', + component: 'Input', + slot: 'storageDevInput', + }, + { + label: '录像码流', + field: 'streamType', + component: 'Select', + componentProps: { + options: [ + {label:'主码流' , value: 0}, + {label:'子码流' , value: 1}, + ] + }, + dynamicDisabled: true + }, + { + label: '录像计划', + field: 'planName', + component: 'Input', + } +]; + +export const addFormSchema: FormSchema[] = [ + { + label: '设备序号', + field: 'deviceIndex', + component: 'Input', + show: false + }, + { + label: '录像开关', + field: 'recordSwitch', + component: 'Select', + componentProps: { + options: [ + {label:'开启' , value: '1'}, + {label:'关闭' , value: '0'}, + ] + }, + defaultValue: '1', + required: true, + }, + { + label: '存储位置', + field: 'storageDevId', + component: 'Input', + slot: 'storageDevInput', + defaultValue: '0', + required: true, + }, + { + label: '录像码流', + field: 'streamType', + component: 'Select', + componentProps: { + options: [ + {label:'主码流' , value: 0}, + {label:'子码流' , value: 1}, + ] + }, + defaultValue: 0, + required: true, + }, + { + label: '录像计划', + field: 'recordPlanId', + component: 'Input', + slot: 'planInput', + defaultValue: '1', + required: true, + } +]; +