【自动建表】其他组件复制bug,【地图组件】标注字段

hc_zhufu
滕嵩 2024-05-21 16:18:12 +08:00
parent 6613137a83
commit 6e7a671ec0
7 changed files with 104 additions and 28 deletions

View File

@ -258,6 +258,17 @@ export function AddTable(params) {
isPrimarykey: 0, isPrimarykey: 0,
decimalDigits: 0, decimalDigits: 0,
}); });
params.dbColumnInfoList.push({
tableName: params.tableName,
dbColumnName: 'geomLabelField',
dataType: 'varchar',
length: 200,
columnDescription: '地图组件-标注字段',
isNullable: 0,
isIdentity: 0,
isPrimarykey: 0,
decimalDigits: 0,
});
return defHttp.post({ return defHttp.post({
url: Api.AddTable + '?dbCode=' + params.dbCode, url: Api.AddTable + '?dbCode=' + params.dbCode,
params, params,

View File

@ -36,16 +36,15 @@
v-model:value="formConfig.currentItem.mapSetData.layerFields.gidField" v-model:value="formConfig.currentItem.mapSetData.layerFields.gidField"
placeholder="请输入GID字段" placeholder="请输入GID字段"
/> />
</FormItem> --> </FormItem>
<FormItem label="标注字段"> <FormItem label="标注字段">
<a-select <a-select
v-model:value="formConfig.currentItem.mapSetData.layerFields.labelField" v-model:value="formConfig.currentItem.mapSetData.layerFields.labelField"
:options="formConfig.currentItem.mapSetData.layerFields.labelFieldOptions" :options="formConfig.currentItem.mapSetData.layerFields.labelFieldOptions"
size="middle" size="middle"
placeholder="请选择标注字段" placeholder="请选择标注字段"
/> />
</FormItem> </FormItem>
<!--
<FormItem label="geom字段"> <FormItem label="geom字段">
<a-input <a-input
v-model:value="formConfig.currentItem.mapSetData.layerFields.geomField" v-model:value="formConfig.currentItem.mapSetData.layerFields.geomField"
@ -140,7 +139,7 @@
const { formConfig } = useFormDesignState(); const { formConfig } = useFormDesignState();
const options = [...Array(25)].map((_, i) => ({ value: (i + 10).toString(36) + (i + 1) })); // const options = [...Array(25)].map((_, i) => ({ value: (i + 10).toString(36) + (i + 1) }));
watch( watch(
() => formConfig.value, () => formConfig.value,

View File

@ -51,6 +51,7 @@
:modalFormVerison="modalFormVerison" :modalFormVerison="modalFormVerison"
:editData="editData" :editData="editData"
:isEdit="isEdit" :isEdit="isEdit"
:formVerison_now="formVerison_now"
/> />
</div> </div>
</div> </div>

View File

@ -145,7 +145,7 @@
const labelCol = { span: 4 }; const labelCol = { span: 4 };
const wrapperCol = { span: 20 }; const wrapperCol = { span: 20 };
// config // config
const config = inject('formConfig'); const config: any = inject('formConfig');
// message // message
const { createMessage } = useMessage(); const { createMessage } = useMessage();
@ -219,7 +219,7 @@
// //
function handleNodeAdd(data) { function handleNodeAdd(data) {
pData = data; pData = data;
dialogTitle = `添加${data.label}】的子选项`; dialogTitle = `添加子选项`;
dialogVisible.value = true; dialogVisible.value = true;
} }
// //

View File

@ -22,6 +22,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref, provide, defineExpose, watch, defineProps } from 'vue'; import { ref, provide, defineExpose, watch, defineProps } from 'vue';
import { cloneDeep } from 'lodash-es';
import WebcodeLayout from './config/layout.vue'; import WebcodeLayout from './config/layout.vue';
import webcodeLefttree from './config/leftTree.vue'; import webcodeLefttree from './config/leftTree.vue';
import webcodeColumns from './config/columns.vue'; import webcodeColumns from './config/columns.vue';
@ -43,6 +44,10 @@
type: Boolean, type: Boolean,
default: () => false, default: () => false,
}, },
formVerison_now: {
type: String,
default: () => '',
},
}); });
watch( watch(
@ -93,7 +98,7 @@
'StrengthMeter', 'StrengthMeter',
]; ];
const config: any = ref({ const config_backups: any = {
layoutType: 1, layoutType: 1,
queryType: 1, queryType: 1,
left: { left: {
@ -172,7 +177,9 @@
sort: 5, sort: 5,
}, },
], ],
}); };
const config: any = ref();
config.value = cloneDeep(config_backups);
const formScheme: any = ref(''); const formScheme: any = ref('');
@ -194,11 +201,6 @@
} }
}); });
const colunmsMap = {};
columns.forEach((item) => {
colunmsMap[item.field] = item;
});
// //
colslist.value = columns.map((t) => { colslist.value = columns.map((t) => {
return { value: t.field, label: t.label }; return { value: t.field, label: t.label };
@ -246,7 +248,7 @@
if ( if (
(typeof props.editData.record.formVerison == 'string' (typeof props.editData.record.formVerison == 'string'
? props.editData.record.formVerison ? props.editData.record.formVerison
: props.editData.record.formVerison.value) === formVerison : props.editData.record.formVerison.value) === props.formVerison_now
) { ) {
const editDataScheme = JSON.parse(props.editData.record.scheme); const editDataScheme = JSON.parse(props.editData.record.scheme);
@ -256,29 +258,62 @@
config.value.queryType = editDataScheme.queryType; config.value.queryType = editDataScheme.queryType;
// //
config.value.left = editDataScheme.left; config.value.left = editDataScheme.left;
// -
btnsTree.value.forEach((tree1, index) => {
editDataScheme.table.btns.forEach((tree2) => {
if (tree1.id === tree2.id) {
btnsTree.value[index] = tree2;
}
});
});
// - // -
config.value.table.columns = editDataScheme.table.columns; config.value.table.columns = editDataScheme.table.columns;
// - // -
config.value.table.querys = editDataScheme.table.querys; config.value.table.querys = editDataScheme.table.querys;
// - // -
config.value.table.btns = editDataScheme.table.btns; config.value.table.btns = editDataScheme.table.btns;
setCheckedKeys();
} else {
defaultConfig();
setCheckedKeys();
} }
} else { } else {
// - defaultConfig();
config.value.table.columns = columnsTree.value[0].children; setCheckedKeys();
// -
config.value.table.querys = queryTree.value[0].children;
// -
config.value.table.btns = btnsTree.value;
} }
// pageActiveName = 'tab01';
}
function defaultConfig() {
//
config.value.layoutType = 1;
// -[]
colslist.value = [];
// -
btnsTree.value = cloneDeep(config_backups).btns;
// -
config.value.table.columns = columnsTree.value[0].children;
// -
config.value.table.querys = queryTree.value[0].children;
// -
config.value.table.btns = btnsTree.value;
}
function setCheckedKeys() {
// --
columnsCheckedKeys.value = [];
config.value.table.columns.forEach((t: any) => { config.value.table.columns.forEach((t: any) => {
columnsCheckedKeys.value.push(t.key); columnsCheckedKeys.value.push(t.key);
}); });
// --
queryCheckedKeys.value = [];
config.value.table.querys.forEach((t: any) => { config.value.table.querys.forEach((t: any) => {
queryCheckedKeys.value.push(t.key); queryCheckedKeys.value.push(t.key);
}); });
// --
btnsCheckedKeys.value = [];
config.value.table.btns.forEach((t: any) => { config.value.table.btns.forEach((t: any) => {
btnsCheckedKeys.value.push(t.id); btnsCheckedKeys.value.push(t.id);
}); });

View File

@ -145,6 +145,14 @@
openModal(true, { saveFormDatas: saveFormDatas.value }); openModal(true, { saveFormDatas: saveFormDatas.value });
} else if (saveFormDatas.value.info.formType == 2 && isStageClick.value) { } else if (saveFormDatas.value.info.formType == 2 && isStageClick.value) {
setTimeout(() => { setTimeout(() => {
if (isAddVisible.value) {
schems.db.push({
name: 'table' + new Date().getTime(),
type: 'main',
tableName: 'table' + new Date().getTime(),
description: '',
});
}
saveFormDatas.value.scheme.scheme = JSON.stringify(schems); saveFormDatas.value.scheme.scheme = JSON.stringify(schems);
submitSaveClick(); submitSaveClick();
}, 500); }, 500);

View File

@ -137,12 +137,15 @@
} }
// //
let scheme = JSON.parse(data.saveFormDatas.scheme.scheme); let scheme = JSON.parse(data.saveFormDatas.scheme.scheme);
tableInfo.value.tableName = scheme.db[0].tableName; tableInfo.value.tableName = scheme.db[0].tableName;
tableInfo.value.description = scheme.db[0].description; tableInfo.value.description = scheme.db[0].description;
tableInfo.value.dbCode = data.saveFormDatas.info.DbCode; tableInfo.value.dbCode = data.saveFormDatas.info.DbCode;
// //
let schemas = scheme.formInfo.schemas; let schemas = scheme.formInfo.schemas;
tableInfo.value.dbColumnInfoList = []; tableInfo.value.dbColumnInfoList = [];
schemas.forEach((item: any) => { schemas.forEach((item: any) => {
if (!item.component.includes(componentArray)) { if (!item.component.includes(componentArray)) {
if (fieldArray.includes(item.field)) { if (fieldArray.includes(item.field)) {
@ -159,6 +162,23 @@
tableInfo.value.dbColumnInfoList.push(temp); tableInfo.value.dbColumnInfoList.push(temp);
item.dbColumnInfo = temp; item.dbColumnInfo = temp;
// -
dbColumnInfo_new.value.push(temp);
dbColumnInfo_new_list.push(temp.dbColumnName + temp.columnDescription);
item.componentProps.dataTable = tableInfo.value.tableName;
item.componentProps.fieldName = temp.dbColumnName;
} else if (item.dbColumnInfo.dbColumnName != item.component + item.field) {
//
//
let temp = cloneDeep(dbColumnInfo);
temp.tableName = tableInfo.value.tableName;
temp.dbColumnName = item.component + item.field;
temp.length = 200;
temp.dataType = 'varchar';
temp.columnDescription = item.label;
tableInfo.value.dbColumnInfoList.push(temp);
item.dbColumnInfo = temp;
// - // -
dbColumnInfo_new.value.push(temp); dbColumnInfo_new.value.push(temp);
dbColumnInfo_new_list.push(temp.dbColumnName + temp.columnDescription); dbColumnInfo_new_list.push(temp.dbColumnName + temp.columnDescription);
@ -199,6 +219,8 @@
// saveFormDatas // saveFormDatas
function getFromAndTable() { function getFromAndTable() {
let schems = JSON.parse(saveFormDatas.scheme.scheme); let schems = JSON.parse(saveFormDatas.scheme.scheme);
console.log(schems);
// db // db
schems.db[0].tableName = tableInfo.value.tableName; schems.db[0].tableName = tableInfo.value.tableName;
schems.db[0].description = tableInfo.value.description; schems.db[0].description = tableInfo.value.description;