【自动建表】其他组件复制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,
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({
url: Api.AddTable + '?dbCode=' + params.dbCode,
params,

View File

@ -36,16 +36,15 @@
v-model:value="formConfig.currentItem.mapSetData.layerFields.gidField"
placeholder="请输入GID字段"
/>
</FormItem> -->
<FormItem label="标注字段">
<a-select
v-model:value="formConfig.currentItem.mapSetData.layerFields.labelField"
:options="formConfig.currentItem.mapSetData.layerFields.labelFieldOptions"
size="middle"
placeholder="请选择标注字段"
/>
</FormItem>
<!--
</FormItem>
<FormItem label="标注字段">
<a-select
v-model:value="formConfig.currentItem.mapSetData.layerFields.labelField"
:options="formConfig.currentItem.mapSetData.layerFields.labelFieldOptions"
size="middle"
placeholder="请选择标注字段"
/>
</FormItem>
<FormItem label="geom字段">
<a-input
v-model:value="formConfig.currentItem.mapSetData.layerFields.geomField"
@ -140,7 +139,7 @@
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(
() => formConfig.value,

View File

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

View File

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

View File

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

View File

@ -145,6 +145,14 @@
openModal(true, { saveFormDatas: saveFormDatas.value });
} else if (saveFormDatas.value.info.formType == 2 && isStageClick.value) {
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);
submitSaveClick();
}, 500);

View File

@ -137,12 +137,15 @@
}
//
let scheme = JSON.parse(data.saveFormDatas.scheme.scheme);
tableInfo.value.tableName = scheme.db[0].tableName;
tableInfo.value.description = scheme.db[0].description;
tableInfo.value.dbCode = data.saveFormDatas.info.DbCode;
//
let schemas = scheme.formInfo.schemas;
tableInfo.value.dbColumnInfoList = [];
schemas.forEach((item: any) => {
if (!item.component.includes(componentArray)) {
if (fieldArray.includes(item.field)) {
@ -159,6 +162,23 @@
tableInfo.value.dbColumnInfoList.push(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_list.push(temp.dbColumnName + temp.columnDescription);
@ -199,6 +219,8 @@
// saveFormDatas
function getFromAndTable() {
let schems = JSON.parse(saveFormDatas.scheme.scheme);
console.log(schems);
// db
schems.db[0].tableName = tableInfo.value.tableName;
schems.db[0].description = tableInfo.value.description;