From f5f5167f694e303b7236b6cfc1d8dfea85cd5c81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BA=A2=E4=B8=BD?= <1181930680@qq.com> Date: Mon, 22 Jul 2024 14:32:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=8C=E6=94=BF=E5=8C=BA=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/data/city/edit.vue | 2 +- src/views/data/city/index.vue | 47 +++++++++++++-------------- src/views/system/user/querySchemas.ts | 1 + 3 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/views/data/city/edit.vue b/src/views/data/city/edit.vue index c547d78..9d087f2 100644 --- a/src/views/data/city/edit.vue +++ b/src/views/data/city/edit.vue @@ -157,7 +157,7 @@ const handleSubmit = async () => { props.cityId ? await cityUpdate(formData) : await cityAdd(formData); message("操作成功"); emit("update:visible", false); - emit("success"); + emit("success",formData.parentCode); }; const { isLock: subLoading, lockFn: submit } = useLockFn(handleSubmit); diff --git a/src/views/data/city/index.vue b/src/views/data/city/index.vue index 022200b..a1d2a92 100644 --- a/src/views/data/city/index.vue +++ b/src/views/data/city/index.vue @@ -10,7 +10,6 @@ 新增 - @@ -39,7 +38,7 @@ 编辑 - + 删除 @@ -52,7 +51,7 @@ :cityId="cityId" :parentData="parentData" v-model:visible="editVisible" - @success="getDataList(0)" + @success="refreshDataList" > @@ -63,24 +62,25 @@ import {defineAsyncComponent, nextTick, onMounted, ref, shallowRef} from "vue"; import {cityDelete} from "@/api/data/city"; import {getCityByList} from "@/api/system/user"; import type {ElTable} from "element-plus"; -const tableRef = shallowRef>(); +// const tableRef = shallowRef>(); + const tableRef = ref() import {confirm, message} from "@/utils/auth"; const editDialog = defineAsyncComponent(() => import('./edit.vue') ) -const isExpand = ref(false); const loading = ref(false); const editVisible=ref(false); const cityId=ref(0); const parentData=ref() const lists = ref([]); +const maps = ref(new Map()) -const getDataList = async (typeId: any, resolve?: any) => { +const getDataList = async (code: any, resolve?: any) => { try { loading.value = true; - let res = await getCityByList(typeId); + let res = await getCityByList(code); let data = res.length>0 ?res: []; data.map(item => { if (item.level <=3) { @@ -105,7 +105,18 @@ const getDataList = async (typeId: any, resolve?: any) => { } }; +const refreshDataList=(code)=>{ + if(code==0) { + getDataList(0); + } else if( maps.value.get(code)) { + const { tree, treeNode, resolve } = maps.value.get(code) + if (tree) { + loadTree(tree, treeNode, resolve); + } + } +} const loadTree = (tree: any, treeNode: any, resolve: any) => { + maps.value.set(tree.areaCode, { tree, treeNode, resolve }) getDataList(tree.areaCode, resolve); }; const handleAdd = async (data:any) => { @@ -121,32 +132,18 @@ const handleEdit = async (data: any) => { editVisible.value=true }; -const handleDelete = async (cityId: number) => { +const handleDelete = async (row: any) => { await confirm("确定要删除?"); try { loading.value = true; - await cityDelete(cityId); + await cityDelete(row.id); message("删除成功"); - getDataList(0); + loading.value = false; + refreshDataList(row.parentCode); } catch (e) { loading.value = false; } }; - -const handleExpand = () => { - isExpand.value = !isExpand.value; - toggleExpand(lists.value, isExpand.value); -}; - -const toggleExpand = (children: any[], unfold = true) => { - for (const key in children) { - tableRef.value?.toggleRowExpansion(children[key], unfold); - if (children[key].children) { - toggleExpand(children[key].children!, unfold); - } - } -}; - onMounted(() => { getDataList(0) }); diff --git a/src/views/system/user/querySchemas.ts b/src/views/system/user/querySchemas.ts index 8ce4ae3..ac6a67a 100644 --- a/src/views/system/user/querySchemas.ts +++ b/src/views/system/user/querySchemas.ts @@ -40,6 +40,7 @@ export const schemas: FormSchema[] = [ label: '状态', componentProps: { placeholder: '请选择状态', + clearable: true, options: [ { label: '正常',