From ea0ea5275f6ea45b99eb83bca24b8923c8e13848 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=BB=95=E5=B5=A9?= <17854119262@163.com>
Date: Sat, 6 Jul 2024 11:06:09 +0800
Subject: [PATCH 1/7] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=BB=BA=E8=A1=A8-?=
=?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=90=8D=E4=BF=AE=E6=94=B9=E5=90=8E=EF=BC=8C?=
=?UTF-8?q?=E7=BC=96=E8=BE=91=E6=97=B6=E8=BF=98=E6=98=AF=E8=87=AA=E5=8A=A8?=
=?UTF-8?q?=E7=94=9F=E6=88=90=E7=9A=84=E5=AD=97=E6=AE=B5=E5=90=8D=E7=9A=84?=
=?UTF-8?q?bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../formdesign/modal/AutomaticModal.vue | 102 ++++++++++++++----
1 file changed, 82 insertions(+), 20 deletions(-)
diff --git a/src/views/demo/onlineform/formdesign/modal/AutomaticModal.vue b/src/views/demo/onlineform/formdesign/modal/AutomaticModal.vue
index a3bef025..6a6e71be 100644
--- a/src/views/demo/onlineform/formdesign/modal/AutomaticModal.vue
+++ b/src/views/demo/onlineform/formdesign/modal/AutomaticModal.vue
@@ -38,7 +38,7 @@
@@ -65,6 +65,8 @@
v-model:value="record.dbColumnName"
:disabled="!isNewFormItem(record)"
@change="record.dbColumnName = record.dbColumnName.toLowerCase()"
+ @focus="focusDbColumnName = record.dbColumnName"
+ @blur="replaceInJsonDbColumnName(record.dbColumnName)"
/>
@@ -152,6 +154,7 @@
let dbColumnInfo = {
tableName: '',
dbColumnName: '',
+ field: '',
dataType: '',
length: 0,
columnDescription: '',
@@ -171,7 +174,7 @@
// 不需要添加的表结构
let notComponentArray = ['Divider', 'Button'];
// 需要特殊处理的表结构
- let fieldArray = ['MapGeom'];
+ let mapGeomArray = 'MapGeom';
let gridArray = ['Grid', 'Card', 'CardGroup', 'Tabs'];
// 异步传参
@@ -297,10 +300,11 @@
// 过滤分割线、按钮
if (item.component && !notComponentArray.includes(item.component)) {
// 图斑组件
- if (fieldArray.includes(item.field)) {
+ if (mapGeomArray == item.component) {
db_temp.dbColumnInfoList.push({
tableName: db_temp.tableName,
dbColumnName: 'gid',
+ field: item.field,
dataType: 'varchar',
length: 200,
columnDescription: '图斑组件id',
@@ -312,6 +316,7 @@
db_temp.dbColumnInfoList.push({
tableName: db_temp.tableName,
dbColumnName: 'geom',
+ field: item.field,
dataType: 'geometry(GEOMETRY)',
length: 0,
columnDescription: '图斑组件',
@@ -366,7 +371,7 @@
ch.csType = 'string';
}
// 选项卡-图斑组件/布局组件
- else if (fieldArray.includes(ch.field) || gridArray.includes(ch.component)) {
+ else if (mapGeomArray == ch.component || gridArray.includes(ch.component)) {
getSchemeByscheme(
ch,
dbCode,
@@ -382,7 +387,10 @@
else {
let temp = cloneDeep(dbColumnInfo);
temp.tableName = db_temp.tableName.toLowerCase();
- temp.dbColumnName = (ch.component + ch.field).toLowerCase();
+ temp.dbColumnName =
+ getDbColumnNameFormOldDb(db_temp.tableName, ch.field) ||
+ (ch.component + ch.field).toLowerCase();
+ temp.field = ch.field;
temp.length = 200;
temp.dataType = 'varchar';
temp.columnDescription = ch.label;
@@ -417,7 +425,10 @@
// 普通组件
let temp = cloneDeep(dbColumnInfo);
temp.tableName = db_temp.tableName.toLowerCase();
- temp.dbColumnName = (item.component + item.field).toLowerCase();
+ temp.dbColumnName =
+ getDbColumnNameFormOldDb(db_temp.tableName, item.field) ||
+ (item.component + item.field).toLowerCase();
+ temp.field = item.field;
temp.length = 200;
temp.dataType = 'varchar';
temp.columnDescription = item.label;
@@ -492,7 +503,7 @@
schemas?.forEach((item: any, index: number) => {
// 过滤分割线、按钮
if (item.component && !notComponentArray.includes(item.component)) {
- if (fieldArray.includes(item.field)) {
+ if (mapGeomArray == item.component) {
// 子表-图斑组件
item.componentProps.dataTable = db_temp.tableName;
item.componentProps.fieldName = 'gid';
@@ -537,7 +548,7 @@
ch.csType = 'string';
}
// 选项卡-图斑组件/布局组件
- else if (fieldArray.includes(ch.field) || gridArray.includes(ch.component)) {
+ else if (mapGeomArray == ch.component || gridArray.includes(ch.component)) {
getSchemeByscheme(
ch,
dbCode,
@@ -553,7 +564,10 @@
else {
let temp = cloneDeep(dbColumnInfo);
temp.tableName = db_temp.tableName.toLowerCase();
- temp.dbColumnName = (ch.component + ch.field).toLowerCase();
+ temp.dbColumnName =
+ getDbColumnNameFormOldDb(db_temp.tableName, ch.field) ||
+ (ch.component + ch.field).toLowerCase();
+ temp.field = ch.field;
temp.length = 200;
temp.dataType = 'varchar';
temp.columnDescription = ch.label;
@@ -590,7 +604,7 @@
ch.csType = 'string';
}
// 卡片布局-图斑组件/布局组件
- else if (fieldArray.includes(ch.field) || gridArray.includes(ch.component)) {
+ else if (mapGeomArray == ch.component || gridArray.includes(ch.component)) {
getSchemeByscheme(
ch,
dbCode,
@@ -606,7 +620,10 @@
else {
let temp = cloneDeep(dbColumnInfo);
temp.tableName = db_temp.tableName.toLowerCase();
- temp.dbColumnName = (ch.component + ch.field).toLowerCase();
+ temp.dbColumnName =
+ getDbColumnNameFormOldDb(db_temp.tableName, ch.field) ||
+ (ch.component + ch.field).toLowerCase();
+ temp.field = ch.field;
temp.length = 200;
temp.dataType = 'varchar';
temp.columnDescription = ch.label;
@@ -643,7 +660,7 @@
ch.csType = 'string';
}
// 栅格布局-图斑组件/布局组件
- else if (fieldArray.includes(ch.field) || gridArray.includes(ch.component)) {
+ else if (mapGeomArray == ch.component || gridArray.includes(ch.component)) {
getSchemeByscheme(
ch,
dbCode,
@@ -659,7 +676,10 @@
else {
let temp = cloneDeep(dbColumnInfo);
temp.tableName = db_temp.tableName.toLowerCase();
- temp.dbColumnName = (ch.component + ch.field).toLowerCase();
+ temp.dbColumnName =
+ getDbColumnNameFormOldDb(db_temp.tableName, ch.field) ||
+ (ch.component + ch.field).toLowerCase();
+ temp.field = ch.field;
temp.length = 200;
temp.dataType = 'varchar';
temp.columnDescription = ch.label;
@@ -697,7 +717,7 @@
ch.csType = 'string';
}
// 卡片组-图斑组件/布局组件
- else if (fieldArray.includes(ch.field) || gridArray.includes(ch.component)) {
+ else if (mapGeomArray == ch.component || gridArray.includes(ch.component)) {
getSchemeByscheme(
ch,
dbCode,
@@ -713,7 +733,10 @@
else {
let temp = cloneDeep(dbColumnInfo);
temp.tableName = db_temp.tableName.toLowerCase();
- temp.dbColumnName = (ch.component + ch.field).toLowerCase();
+ temp.dbColumnName =
+ getDbColumnNameFormOldDb(db_temp.tableName, ch.field) ||
+ (ch.component + ch.field).toLowerCase();
+ temp.field = ch.field;
temp.length = 200;
temp.dataType = 'varchar';
temp.columnDescription = ch.label;
@@ -733,7 +756,10 @@
else {
let temp = cloneDeep(dbColumnInfo);
temp.tableName = db_temp.tableName.toLowerCase();
- temp.dbColumnName = (item.component + item.field).toLowerCase();
+ temp.dbColumnName =
+ getDbColumnNameFormOldDb(db_temp.tableName, item.field) ||
+ (item.component + item.field).toLowerCase();
+ temp.field = item.field;
temp.length = 200;
temp.dataType = 'varchar';
temp.columnDescription = item.label;
@@ -792,6 +818,20 @@
}
});
}
+ // 获取上一次保存的字段名
+ function getDbColumnNameFormOldDb(tableName, field) {
+ let dbColumnNameFromOldDb = '';
+ oldDb.forEach((old) => {
+ if (old.tableName == tableName) {
+ old.dbColumnInfoList.forEach((dbColumnInfo) => {
+ if (dbColumnInfo.field == field) {
+ dbColumnNameFromOldDb = dbColumnInfo.dbColumnName;
+ }
+ });
+ }
+ });
+ return dbColumnNameFromOldDb;
+ }
// 提交
async function submit() {
@@ -807,7 +847,7 @@
if (db.name != db.tableName) {
// scheme
let scheme_replace = saveFormDatas.scheme.scheme;
- scheme_replace = replaceInJson(scheme_replace, db.name, db.tableName);
+ scheme_replace = replaceInJsonTableName(scheme_replace, db.name, db.tableName);
saveFormDatas.scheme.scheme = scheme_replace;
// db
@@ -934,15 +974,33 @@
}
// 表名变化后修改表单里的表名
- function replaceInJson(jsonString, itemToReplace, newItem) {
+ function replaceInJsonTableName(jsonString, itemToReplace, newItem) {
// 使用动态生成的正则表达式进行全局替换
// 注意需要对itemToReplace中的特殊字符进行转义
- let escapedItem = itemToReplace.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
+ let escapedItem = ('"dataTable":"' + itemToReplace + '"').replace(
+ /[-/\\^$*+?.()|[\]{}]/g,
+ '\\$&',
+ );
let regex = new RegExp(escapedItem, 'g');
- let replacedJsonString = jsonString.replace(regex, newItem);
+ let replacedJsonString = jsonString.replace(regex, '"dataTable":"' + newItem + '"');
return replacedJsonString;
}
+ // 当前获取焦点的字段名
+ let focusDbColumnName = '';
+ // 字段名变化后修改表单里的字段名
+ function replaceInJsonDbColumnName(newItem) {
+ // 使用动态生成的正则表达式进行全局替换
+ // 注意需要对focusDbColumnName中的特殊字符进行转义
+ let scheme_replace = saveFormDatas.scheme.scheme;
+ let escapedItem = ('"fieldName":"' + focusDbColumnName + '"').replace(
+ /[-/\\^$*+?.()|[\]{}]/g,
+ '\\$&',
+ );
+ let regex = new RegExp(escapedItem, 'g');
+ saveFormDatas.scheme.scheme = scheme_replace.replace(regex, '"fieldName":"' + newItem + '"');
+ }
+
// 设置子表的relationField
function getRelationField() {
// 确定primaryKey
@@ -1041,6 +1099,10 @@
}
});
});
+ // 图斑组件特殊处理
+ if (['gid', 'geom'].includes(item.dbColumnName)) {
+ flag = false;
+ }
return flag;
}
From 03eae8877b190c802e1dc096278f37ca47e830fe Mon Sep 17 00:00:00 2001
From: Zhufu <1176354795@qq.com>
Date: Sat, 6 Jul 2024 11:14:07 +0800
Subject: [PATCH 2/7] =?UTF-8?q?#2=20=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?=
=?UTF-8?q?=E6=9D=A1-=E4=B8=8B=E4=B8=80=E6=9D=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../bootstraps/auditinfo/MapList/index.vue | 32 ++++++++++++++-----
1 file changed, 24 insertions(+), 8 deletions(-)
diff --git a/src/views/demo/bootstraps/auditinfo/MapList/index.vue b/src/views/demo/bootstraps/auditinfo/MapList/index.vue
index 92c78740..7504099e 100644
--- a/src/views/demo/bootstraps/auditinfo/MapList/index.vue
+++ b/src/views/demo/bootstraps/auditinfo/MapList/index.vue
@@ -118,6 +118,8 @@