diff --git a/src/views/iot/tplink/project/ProjectInfo.api.ts b/src/views/iot/tplink/project/ProjectInfo.api.ts index ba88b78..ace8090 100644 --- a/src/views/iot/tplink/project/ProjectInfo.api.ts +++ b/src/views/iot/tplink/project/ProjectInfo.api.ts @@ -24,7 +24,7 @@ export const sync = (params) => defHttp.get({ url: Api.sync, params }); * 保存或者更新项目 * @param params */ -export const saveOrUpdatePrject = (params, isUpdate) => { +export const saveOrUpdateProject = (params, isUpdate) => { let url = isUpdate ? Api.edit : Api.add; return defHttp.post({ url: url, params }); }; diff --git a/src/views/iot/tplink/project/components/ProjectForm.vue b/src/views/iot/tplink/project/components/ProjectForm.vue new file mode 100644 index 0000000..df6599f --- /dev/null +++ b/src/views/iot/tplink/project/components/ProjectForm.vue @@ -0,0 +1,79 @@ + + + + diff --git a/src/views/iot/tplink/project/components/ProjectInfoDrawer.vue b/src/views/iot/tplink/project/components/ProjectInfoDrawer.vue index c9f0ea5..ebaadcd 100644 --- a/src/views/iot/tplink/project/components/ProjectInfoDrawer.vue +++ b/src/views/iot/tplink/project/components/ProjectInfoDrawer.vue @@ -19,7 +19,7 @@ import { formSchema } from "@/views/iot/tplink/project/ProjectInfo.data"; import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; import { useDrawerAdaptiveWidth } from '/@/hooks/jeecg/useAdaptiveWidth'; import { getTenantId } from "/@/utils/auth"; -import { saveOrUpdatePrject } from "@/views/iot/tplink/project/ProjectInfo.api"; +import { saveOrUpdateProject } from "@/views/iot/tplink/project/ProjectInfo.api"; // 声明Emits const emit = defineEmits(['success', 'register']); @@ -67,7 +67,7 @@ async function handleSubmit() { setDrawerProps({ confirmLoading: true }); let params = values; let isUpdateVal = unref(isUpdate); - await saveOrUpdatePrject(params,isUpdateVal); + await saveOrUpdateProject(params,isUpdateVal); //关闭弹窗 closeDrawer(); //刷新列表 diff --git a/src/views/iot/tplink/region/RegionInfo.api.ts b/src/views/iot/tplink/region/RegionInfo.api.ts index 7b6193b..86465eb 100644 --- a/src/views/iot/tplink/region/RegionInfo.api.ts +++ b/src/views/iot/tplink/region/RegionInfo.api.ts @@ -1,6 +1,11 @@ import { defHttp } from '/@/utils/http/axios'; enum Api { + queryProjectTreeSync = '/iot/projectInfo/queryRegionTreeSync', + queryRegionTreeSync = '/iot/regionInfo/queryRegionTreeSync', + syncProject = '/iot/projectInfo/sync', + syncRegion = '/iot/regionInfo/sync', + syncRegionChildren = '/iot/regionInfo/syncChildren', list = '/iot/regionInfo/list', sync = '/iot/regionInfo/sync', add = '/iot/regionInfo/add', @@ -8,6 +13,32 @@ enum Api { delete = '/iot/regionInfo/delete', } + +/** + * 获取项目树列表 + * @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 syncProject = (params?) => defHttp.get({ url: Api.syncProject, params }); + +/** + * 同步区域 + * @param params + */ +export const syncRegion = (params?) => defHttp.get({ url: Api.syncRegion, params }); + + /** * 列表接口 * @param params diff --git a/src/views/iot/tplink/region/RegionInfo.data.ts b/src/views/iot/tplink/region/RegionInfo.data.ts index f7789bb..dea876c 100644 --- a/src/views/iot/tplink/region/RegionInfo.data.ts +++ b/src/views/iot/tplink/region/RegionInfo.data.ts @@ -127,8 +127,3 @@ export const formSchema: FormSchema[] = [ dynamicDisabled: true }, ]; - -// 项目基础表单 -export const projectFormSchema: FormSchema[] = [ - -]; diff --git a/src/views/iot/tplink/region/components/RegionForm.vue b/src/views/iot/tplink/region/components/RegionForm.vue index 16fbf34..f64f2c0 100644 --- a/src/views/iot/tplink/region/components/RegionForm.vue +++ b/src/views/iot/tplink/region/components/RegionForm.vue @@ -34,20 +34,7 @@ showActionButtonGroup: false }); - // const categoryOptions = computed(() => { - // if (!!props?.data?.parentId) { - // return orgCategoryOptions.child; - // } else { - // return orgCategoryOptions.root; - // } - // }); - onMounted(() => { - // 禁用字段 - updateSchema([ - { field: 'parentId', componentProps: { disabled: true } }, - { field: 'orgCode', componentProps: { disabled: true } }, - ]); // data 变化,重填表单 watch( () => props.data, diff --git a/src/views/iot/tplink/region/components/RegionLeftTree.vue b/src/views/iot/tplink/region/components/RegionLeftTree.vue index 6a8e545..a9c01fb 100644 --- a/src/views/iot/tplink/region/components/RegionLeftTree.vue +++ b/src/views/iot/tplink/region/components/RegionLeftTree.vue @@ -2,10 +2,10 @@
- - 新增 + 刷新 + 新增 同步 - 新增下级 + 新增下级 @@ -39,7 +39,7 @@ import { useMessage } from '/@/hooks/web/useMessage'; import { useMethods } from '/@/hooks/system/useMethods'; const { createMessage } = useMessage(); - import { queryProjectTreeSync, queryRegionTreeSync, syncProject, syncRegion } from '@/views/iot/tplink/camera/camera.api'; + import { queryProjectTreeSync, queryRegionTreeSync, syncProject, syncRegion, syncRegionChildren } from '@/views/iot/tplink/region/RegionInfo.api'; const emit = defineEmits(['select', 'rootTreeData']); const syncoading = ref(false); @@ -179,11 +179,11 @@ /** * 同步项目 */ - // async function syncProjectInfo(){ - // syncoading.value = true; - // await syncProject(); - // await loadRootTreeData(); - // } + async function syncProjectInfo(){ + syncoading.value = true; + await syncProject(); + await loadRootTreeData(); + } /** * 同步区域 @@ -198,8 +198,13 @@ projectId: data.projectId, regionId: data.regionId }; + if(data.regionId == null){ + await syncRegion(record); + }else{ + await syncRegionChildren(record); + } syncoading.value = true; - await syncRegion(record); + await loadRootTreeData(); } diff --git a/src/views/iot/tplink/region/index.vue b/src/views/iot/tplink/region/index.vue index 57a6f35..4670313 100644 --- a/src/views/iot/tplink/region/index.vue +++ b/src/views/iot/tplink/region/index.vue @@ -5,14 +5,17 @@
- + -
- +
+ +
+
+
-
+
@@ -25,22 +28,27 @@ import { useDesign } from '/@/hooks/web/useDesign'; import RegionLeftTree from './components/RegionLeftTree.vue' import RegionForm from "@/views/iot/tplink/region/components/RegionForm.vue"; + import ProjectForm from "@/views/iot/tplink/project/components/ProjectForm.vue"; // 给子组件定义一个ref变量 const leftTree = ref(); // 当前选中的区域信息 - const regionData = ref({}); + const nodeData = ref({}); const rootTreeData = ref([]); // 左侧树选择后触发 function onTreeSelect(data) { console.log('onTreeSelect: ', data); - regionData.value = data; + nodeData.value = data; } // 左侧树rootTreeData触发 function onRootTreeData(data) { rootTreeData.value = data; } + function onSuccess() { + leftTree.value.loadRootTreeData(); + } +