From a1ca3b9cacc9263d444033c383a6526d51814285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Thu, 27 Mar 2025 18:04:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=BA=E6=9E=84=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/institution/InstitutionArea.api.ts | 39 +++ .../admin/institution/InstitutionArea.data.ts | 73 +++++ .../components/InstitutionAreaDrawer.vue | 119 ++++++++ .../components/InstitutionAreaForm.vue | 117 +++++++ .../components/InstitutionAreaLeftTree.vue | 287 ++++++++++++++++++ src/views/admin/institution/index.vue | 63 ++++ .../camera/components/CameraBitrateForm.vue | 2 +- .../camera/components/CameraBlockForm.vue | 2 +- .../camera/components/CameraCommonForm.vue | 2 +- .../camera/components/CameraInfoDrawer.vue | 5 +- .../camera/components/CameraInfoList.vue | 4 +- .../camera/components/CameraLeftTree.vue | 2 +- .../components/CameraLightAlarmForm.vue | 2 +- .../components/CameraMultitransForm.vue | 2 +- .../camera/components/CameraOsdForm.vue | 2 +- .../camera/components/CameraPictureConfig.vue | 4 +- .../camera/components/CameraPlaybackForm.vue | 2 +- .../camera/components/CameraPreviewForm.vue | 2 +- .../camera/components/CameraRecordList.vue | 4 +- .../components/CameraSoundAlarmForm.vue | 2 +- .../camera/components/CameraUploadForm.vue | 2 +- src/views/iot/tplink/camera/index.vue | 2 +- .../tplink/project/components/ProjectForm.vue | 4 +- .../tplink/region/components/RegionForm.vue | 4 +- .../region/components/RegionInfoDrawer.vue | 5 +- .../region/components/RegionLeftTree.vue | 18 +- src/views/iot/tplink/region/index.vue | 6 +- 27 files changed, 736 insertions(+), 40 deletions(-) create mode 100644 src/views/admin/institution/InstitutionArea.api.ts create mode 100644 src/views/admin/institution/InstitutionArea.data.ts create mode 100644 src/views/admin/institution/components/InstitutionAreaDrawer.vue create mode 100644 src/views/admin/institution/components/InstitutionAreaForm.vue create mode 100644 src/views/admin/institution/components/InstitutionAreaLeftTree.vue create mode 100644 src/views/admin/institution/index.vue diff --git a/src/views/admin/institution/InstitutionArea.api.ts b/src/views/admin/institution/InstitutionArea.api.ts new file mode 100644 index 0000000..b46b8f4 --- /dev/null +++ b/src/views/admin/institution/InstitutionArea.api.ts @@ -0,0 +1,39 @@ +import { defHttp } from '/@/utils/http/axios'; + +enum Api { + queryTreeSync = '/admin/institutionArea/queryTreeSync', + searchBy = '/admin/institutionArea/searchBy', + add = '/admin/institutionArea/add', + edit = '/admin/institutionArea/edit', + delete = '/admin/institutionArea/delete', +} + + +/** + * 获取机构树列表 + * @param params + */ +export const queryTreeSync = (params?) => defHttp.get({ url: Api.queryTreeSync, params }); + +/** + * 根据关键字搜索机构 + */ +export const searchByKeywords = (params) => defHttp.get({ url: Api.searchBy, params }); + +/** + * 保存或者更新机构 + * @param params + */ +export const saveOrUpdateInst = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.add; + return defHttp.post({ url: url, params }); +}; + +/** + * 删除机构 + */ +export const deleteInst = (params,handleSuccess) => { + return defHttp.post({ url: Api.delete, params }, { joinParamsToUrl: true }).then(() => { + handleSuccess(); + }); +}; diff --git a/src/views/admin/institution/InstitutionArea.data.ts b/src/views/admin/institution/InstitutionArea.data.ts new file mode 100644 index 0000000..d2e8139 --- /dev/null +++ b/src/views/admin/institution/InstitutionArea.data.ts @@ -0,0 +1,73 @@ +import { FormSchema } from '/@/components/Form'; + +// 部门基础表单 +export function useBasicFormSchema() { + const basicFormSchema: FormSchema[] = [ + { + field: 'instName', + label: '名称', + component: 'Input', + componentProps: { + placeholder: '请输入机构/区域名称', + }, + rules: [{ required: true, message: '名称不能为空' }], + }, + { + field: 'parentId', + label: '上级', + component: 'TreeSelect', + componentProps: { + treeData: [], + placeholder: '无', + dropdownStyle: { maxHeight: '200px', overflow: 'auto' }, + }, + }, + { + field: 'orgCode', + label: '编码', + component: 'Input', + componentProps: { + placeholder: '请输入编码', + }, + }, + { + field: 'orgCategory', + label: '类型', + component: 'RadioButtonGroup', + componentProps: { options: [] }, + }, + { + field: 'instOrder', + label: '排序', + component: 'InputNumber', + componentProps: {}, + }, + { + field: 'mobile', + label: '电话', + component: 'Input', + componentProps: { + placeholder: '请输入电话', + }, + }, + { + field: 'address', + label: '地址', + component: 'Input', + componentProps: { + placeholder: '请输入地址', + }, + }, + ]; + return { basicFormSchema }; +} + +// 机构类型选项 +export const orgCategoryOptions = { + // 一级部门 + root: [{ value: '1', label: '机构' }], + // 子级部门 + child: [ + { value: '2', label: '区域' }, + ], +}; diff --git a/src/views/admin/institution/components/InstitutionAreaDrawer.vue b/src/views/admin/institution/components/InstitutionAreaDrawer.vue new file mode 100644 index 0000000..434e6a4 --- /dev/null +++ b/src/views/admin/institution/components/InstitutionAreaDrawer.vue @@ -0,0 +1,119 @@ + + + diff --git a/src/views/admin/institution/components/InstitutionAreaForm.vue b/src/views/admin/institution/components/InstitutionAreaForm.vue new file mode 100644 index 0000000..3132da3 --- /dev/null +++ b/src/views/admin/institution/components/InstitutionAreaForm.vue @@ -0,0 +1,117 @@ + + + + diff --git a/src/views/admin/institution/components/InstitutionAreaLeftTree.vue b/src/views/admin/institution/components/InstitutionAreaLeftTree.vue new file mode 100644 index 0000000..9547ca7 --- /dev/null +++ b/src/views/admin/institution/components/InstitutionAreaLeftTree.vue @@ -0,0 +1,287 @@ + + + + + diff --git a/src/views/admin/institution/index.vue b/src/views/admin/institution/index.vue new file mode 100644 index 0000000..fd4df38 --- /dev/null +++ b/src/views/admin/institution/index.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/views/iot/tplink/camera/components/CameraBitrateForm.vue b/src/views/iot/tplink/camera/components/CameraBitrateForm.vue index 8264226..2b00141 100644 --- a/src/views/iot/tplink/camera/components/CameraBitrateForm.vue +++ b/src/views/iot/tplink/camera/components/CameraBitrateForm.vue @@ -157,7 +157,7 @@ import { getValueType } from '/@/utils'; import { Form } from 'ant-design-vue'; import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue'; - import { getVideoParams,setVideoParams } from "@/views/iot/tplink/camera/camera.api"; + import { getVideoParams,setVideoParams } from "../camera.api"; const props = defineProps({ data: { type: Object, default: () => ({}) }, diff --git a/src/views/iot/tplink/camera/components/CameraBlockForm.vue b/src/views/iot/tplink/camera/components/CameraBlockForm.vue index b548c2f..d505200 100644 --- a/src/views/iot/tplink/camera/components/CameraBlockForm.vue +++ b/src/views/iot/tplink/camera/components/CameraBlockForm.vue @@ -131,7 +131,7 @@ getTamperNotif, setTamperNotif, testAudio - } from "@/views/iot/tplink/camera/camera.api"; + } from "../camera.api"; const props = defineProps({ data: { type: Object, default: () => ({}) }, diff --git a/src/views/iot/tplink/camera/components/CameraCommonForm.vue b/src/views/iot/tplink/camera/components/CameraCommonForm.vue index e12fb6c..44ecaa0 100644 --- a/src/views/iot/tplink/camera/components/CameraCommonForm.vue +++ b/src/views/iot/tplink/camera/components/CameraCommonForm.vue @@ -216,7 +216,7 @@ import { setImageCommon, configRecovery, getPreviewUrl, - } from "@/views/iot/tplink/camera/camera.api"; + } from "../camera.api"; const props = defineProps({ data: { type: Object, default: () => ({}) }, diff --git a/src/views/iot/tplink/camera/components/CameraInfoDrawer.vue b/src/views/iot/tplink/camera/components/CameraInfoDrawer.vue index f801a70..53d53e9 100644 --- a/src/views/iot/tplink/camera/components/CameraInfoDrawer.vue +++ b/src/views/iot/tplink/camera/components/CameraInfoDrawer.vue @@ -19,13 +19,12 @@