From a38aff28d7f0b1525456998eef3e637265033fa0 Mon Sep 17 00:00:00 2001
From: 100011797 <2642441182@qq.com>
Date: Thu, 26 Oct 2023 13:38:53 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8C=BA=E5=9F=9F=E7=AE=A1=E7=90=86?=
=?UTF-8?q?=E7=BC=96=E8=BE=91=E5=92=8C=E5=88=A0=E9=99=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/system/Region/LeftTree/index.vue | 5 +-
src/views/system/Region/Save/BuildIn.vue | 75 +++++++++++++++++----
src/views/system/Region/Save/TracePoint.vue | 2 +-
src/views/system/Region/Save/index.vue | 75 +++++++++++++++------
4 files changed, 119 insertions(+), 38 deletions(-)
diff --git a/src/views/system/Region/LeftTree/index.vue b/src/views/system/Region/LeftTree/index.vue
index 0c915e9f..c6c9d2b0 100644
--- a/src/views/system/Region/LeftTree/index.vue
+++ b/src/views/system/Region/LeftTree/index.vue
@@ -106,7 +106,10 @@ const onSearch = debounce((v: string) => {
_treeData.value = filterTreeNodes(treeData.value, v);
});
-const onSave = () => {};
+const onSave = () => {
+ visible.value = false;
+ handleSearch()
+};
const onClose = () => {
visible.value = false;
diff --git a/src/views/system/Region/Save/BuildIn.vue b/src/views/system/Region/Save/BuildIn.vue
index d87ffb7b..b822a9bd 100644
--- a/src/views/system/Region/Save/BuildIn.vue
+++ b/src/views/system/Region/Save/BuildIn.vue
@@ -26,20 +26,27 @@
\ No newline at end of file
diff --git a/src/views/system/Region/Save/TracePoint.vue b/src/views/system/Region/Save/TracePoint.vue
index 8b95bb7b..1049b96b 100644
--- a/src/views/system/Region/Save/TracePoint.vue
+++ b/src/views/system/Region/Save/TracePoint.vue
@@ -1,5 +1,5 @@
- 请在地图上描点
+ 请在地图上描点
已完成描点编辑
diff --git a/src/views/system/Region/Save/index.vue b/src/views/system/Region/Save/index.vue
index 5e881a90..51ecd3a5 100644
--- a/src/views/system/Region/Save/index.vue
+++ b/src/views/system/Region/Save/index.vue
@@ -3,7 +3,7 @@
:maskClosable="false"
width="650px"
:visible="true"
- :title="!!data?.id ? '编辑区域' : '新增区域'"
+ :title="mode === 'edit' ? '编辑区域' : '新增区域'"
@ok="handleSave"
@cancel="handleCancel"
:confirmLoading="loading"
@@ -25,22 +25,26 @@
tree-node-filter-prop="name"
/>
-
+
- 内置行政区内置行政区
- 自定义数据自定义数据
-
-
+
+
(false);
const formRef = ref();
-const modelRef = reactive({
+const init = {
parentId: undefined,
id: undefined,
name: undefined,
code: undefined,
- type: 'builtIn',
features: undefined,
-});
+ children: [],
+ properties: {
+ type: 'builtin',
+ },
+};
+
+const modelRef = reactive(init);
watch(
() => props.data,
() => {
- console.log(props.data);
- Object.assign(modelRef, props.data);
+ Object.assign(modelRef, {});
+ if (props.mode === 'add' && props.data?.id) {
+ // 添加子
+ Object.assign(modelRef, {
+ ...init,
+ parentId: props.data.id,
+ });
+ } else if (props.mode === 'edit') {
+ // 编辑
+ Object.assign(modelRef, props.data);
+ } else {
+ Object.assign(modelRef, init);
+ }
},
{ immediate: true, deep: true },
);
@@ -153,6 +175,16 @@ const handleSave = () => {
.validate()
.then(async (_data: any) => {
loading.value = true;
+ const resp = await updateRegion({
+ ...props.data,
+ ...modelRef,
+ }).finally(() => {
+ loading.value = false;
+ });
+ if (resp.status === 200) {
+ onlyMessage('操作成功!');
+ emit('save');
+ }
})
.catch((err: any) => {
console.log('error', err);
@@ -162,8 +194,8 @@ const handleSave = () => {
const vailName = async (_: Record, value: string) => {
if (!props?.data?.id && value) {
const resp = await validateName(value, props.data.id);
- if (resp.status === 200 && resp.result) {
- return Promise.reject('区域名称重复');
+ if (resp.status === 200 && !resp.result?.passed) {
+ return Promise.reject(resp.result?.reason || '区域名称重复');
} else {
return Promise.resolve();
}
@@ -175,8 +207,8 @@ const vailName = async (_: Record, value: string) => {
const vailCode = async (_: Record, value: string) => {
if (!props?.data?.id && value) {
const resp = await validateCode(value, props.data.id);
- if (resp.status === 200 && resp.result) {
- return Promise.reject('行政区域代码重复');
+ if (resp.status === 200 && !resp.result?.passed) {
+ return Promise.reject(resp.result?.reason || '行政区域代码重复');
} else {
return Promise.resolve();
}
@@ -186,9 +218,8 @@ const vailCode = async (_: Record, value: string) => {
};
const onChange = () => {
- // console.log(e.target.value)
- modelRef.features = undefined
-}
+ modelRef.features = undefined;
+};
const handleSearch = async () => {
const resp = await getRegionTree();