Compare commits

...

11 Commits

11 changed files with 429 additions and 252 deletions

View File

@ -251,17 +251,6 @@ export function LoadFormScheme(params) {
}
function getColumnInfoList(params) {
params.dbColumnInfoList.push({
tableName: params.tableName,
dbColumnName: 'id',
dataType: 'varchar',
length: 200,
columnDescription: '主键ID',
isNullable: 0,
isIdentity: 0,
isPrimarykey: 1,
decimalDigits: 0,
});
params.dbColumnInfoList.push({
tableName: params.tableName,
dbColumnName: 'geom',

View File

@ -20,7 +20,6 @@ import {
TimePicker,
TreeSelect,
Transfer,
Card,
} from 'ant-design-vue';
import ApiRadioGroup from './components/ApiRadioGroup.vue';
import RadioButtonGroup from './components/RadioButtonGroup.vue';
@ -35,8 +34,6 @@ import { IconPicker } from '@/components/Icon';
import { CountdownInput } from '@/components/CountDown';
import { BasicTitle } from '@/components/Basic';
import { CropperAvatar } from '@/components/Cropper';
import CreateOrModifyUser from './components/CreateOrModifyUser.vue'
import CreateOrModifyTime from './components/CreateOrModifyTime.vue'
const componentMap = new Map<ComponentType | string, Component>();
@ -81,11 +78,6 @@ componentMap.set('Divider', Divider);
componentMap.set('CropperAvatar', CropperAvatar);
componentMap.set('BasicTitle', BasicTitle);
// componentMap.set('Card', Card);
// componentMap.set('CreateUser', CreateOrModifyUser);
// componentMap.set('ModifyUser', CreateOrModifyUser);
// componentMap.set('CreateTime', CreateOrModifyTime);
// componentMap.set('ModifyTime', CreateOrModifyTime);
export function add<T extends string, R extends Component>(
compName: ComponentType | T,

View File

@ -1,16 +0,0 @@
<template>
<a-input v-model:value="nowTime" readOnly>
<template #suffix>
<UserOutlined />
</template>
</a-input>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { UserOutlined } from '@ant-design/icons-vue';
import dayjs from 'dayjs';
const nowTime = ref(dayjs().format('YYYY-MM-DD HH:mm:ss'))
</script>
<style lang="scss" scoped></style>

View File

@ -1,15 +0,0 @@
<template>
<a-input v-model:value="userName" readOnly>
<template #suffix>
<user-outlined />
</template>
</a-input>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { UserOutlined } from '@ant-design/icons-vue';
const userName = ref(localStorage.getItem('fireUserLoginName'))
</script>
<style lang="scss" scoped></style>

View File

@ -1,6 +1,30 @@
<template>
<div class="my-form-viewer">
<BasicForm ref="myDataBaseFormRef" @register="registerForm" />
<BasicForm ref="myDataBaseFormRef" @register="registerForm" v-if="formModalVisible"/>
<template v-for="(item, index) in cardLayout" :key="index">
<a-row style="width: 100%">
<a-col :span="item?.colProps?.span || 24" style="padding: 10px">
<a-card
:title="item.label"
:class="
item.shadow === 'always' ? 'card-always' : item.shadow === 'hover' ? 'card-hover' : ''
"
>
<template v-for="(childItem, childIndex) in item.columns[0].children" :key="childIndex">
<a-row style="width: 100%; margin-bottom: 10px">
<a-col :span="childItem?.colProps?.span || 24">
<CallModalCardFormItem
:data="childItem"
:parent="item.field"
:record="cardLayoutData"
/>
</a-col>
</a-row>
</template>
</a-card>
</a-col>
</a-row>
</template>
<a-table
class="sub-table"
:columns="subTableColumns"
@ -27,6 +51,10 @@
</template>
</template>
</a-table>
<!-- todo 创建/修改 /时间 -->
<template v-for="(item, index) in createOrModifyList" :key="index">
<CreateOrModifyComponent :data="item" />
</template>
</div>
</template>
@ -36,6 +64,8 @@
import { functionGetFormDataFormScheme, LoadFormScheme } from '@/api/demo/formScheme';
import { PlusOutlined, DeleteOutlined } from '@ant-design/icons-vue';
import FormItem from '@/views/demo/onlineform/formCall/ShowFormModal/FormItem/index.vue';
import CallModalCardFormItem from '@/views/demo/onlineform/formCall/CallModalFormItem/index.vue';
import CreateOrModifyComponent from '@/views/demo/onlineform/formCall/CreateOrModifyComponent/index.vue';
import { v4 as uuidv4 } from 'uuid';
const formColumns: FormSchema[] = [];
@ -61,50 +91,13 @@
const subTableList: any = ref([]);
const scrollValue = ref();
const masterData = ref([]);
props.formConfig.forEach((element) => {
console.log(element);
if (element.disabled == false) {
var obj = {
...element.componentProps,
disabled: false,
};
obj.disabled = true;
element.componentProps = obj;
}
if (element.rules !== undefined) {
let myString = element.rules[0].pattern;
const lastCharacter = myString.charAt(myString.length - 1);
if (lastCharacter === 'i' || lastCharacter === 's') {
element.rules[0].pattern = new RegExp(element.rules[0].pattern.slice(1, -2), lastCharacter);
} else {
element.rules[0].pattern = new RegExp(element.rules[0].pattern.slice(1, -1));
}
}
formColumns.push(element);
const subTableDB = ref([]);
const cardLayout = ref([]);
const cardLayoutData = ref([]);
const createOrModifyList = ref([]);
const formModalVisible = ref(false);
if (element.type === 'childData' && element.ifShow) {
subTableId.value = element.gridprop;
subTableColumns.value.push({
key: element.field,
title: element.label,
dataIndex: element.field,
...element,
width: 120,
});
subTableData.value.push(element);
} else if (!element.type && element.ifShow) {
masterData.value.push(element);
}
});
console.log(subTableColumns.value);
scrollValue.value = { x: (subTableColumns.value.length - 1) * 140, y: 400 };
formColumns.value = props.formConfig;
const [registerForm, { getFieldsValue, setFieldsValue, resetFields, validate }] = useForm({
labelWidth: 100,
schemas: masterData.value,
showActionButtonGroup: false,
baseColProps: { lg: 24, md: 24 },
});
const keyValue = ref('');
async function getFormHistory() {
@ -113,14 +106,97 @@
});
if (data) {
const scheme = JSON.parse(data.scheme);
scheme.formInfo.schemas.forEach((element) => {
if (element.field == props.formRelationId) {
keyValue.value = element.componentProps.fieldName;
getFormDetail();
}
console.log(scheme);
console.log(props.formConfig);
subTableDB.value = scheme.db;
//
scheme.formInfo.tabList.forEach((tabElement) => {
tabElement.schemas.forEach((element) => {
if (element.field == props.formRelationId) {
keyValue.value = element.componentProps.fieldName;
getFormDetail();
}
props.formConfig.forEach((configElement) => {
if (configElement.field == element.field) {
element.componentProps.disabled = !configElement.disabled;
element.ifShow = configElement.ifShow;
}
if (element.columns) {
element.columns.forEach((child) => {
child.children.forEach((t) => {
if (configElement.field == t.field) {
t.componentProps.disabled = !configElement.disabled;
t.ifShow = configElement.ifShow;
}
});
});
}
});
if (element.rules !== undefined) {
let myString = element.rules[0].pattern;
const lastCharacter = myString.charAt(myString.length - 1);
if (lastCharacter === 'i' || lastCharacter === 's') {
element.rules[0].pattern = new RegExp(
element.rules[0].pattern.slice(1, -2),
lastCharacter,
);
} else {
element.rules[0].pattern = new RegExp(element.rules[0].pattern.slice(1, -1));
}
}
formColumns.push(element);
if (element.component === 'Card') {
cardLayout.value.push(element);
let obj = {};
element.columns[0].children.forEach((data) => {
obj[data.field] = '';
});
cardLayoutData.value[element.field] = obj;
}
if (['createuser', 'createtime', 'modifyuser', 'modifytime'].includes(element.type)) {
createOrModifyList.value.push(element);
}
subTableColumns.value = [
{
dataIndex: 'setting',
key: 'setting',
fixed: 'left',
width: 60,
},
];
if (element.type === 'subTable') {
subTableId.value = element.field;
let tableData = [];
element.columns.forEach((itemColumn) => {
itemColumn.children.forEach((itemColumnChild) => {
tableData.push(itemColumnChild);
subTableColumns.value.push({
key: itemColumnChild.field,
title: itemColumnChild.label,
dataIndex: itemColumnChild.field,
...itemColumnChild,
width: 120,
});
});
});
scrollValue.value = { x: (subTableColumns.value.length - 1) * 140, y: 300 };
subTableData.value = tableData;
}
});
});
console.log(scheme);
formModalVisible.value = true;
resetFields();
scrollValue.value = { x: (subTableColumns.value.length - 1) * 140, y: 400 };
}
}
const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({
labelWidth: 100,
schemas: formColumns,
showActionButtonGroup: false,
baseColProps: { lg: 24, md: 24 },
});
async function getFormDetail() {
var instance = JSON.parse(props.instanceInfo);
const querys = {
@ -129,11 +205,18 @@
keyValue: instance.pkeyValue,
};
const data = await functionGetFormDataFormScheme(querys);
console.log(data);
let obj = new Object();
for (var i in data) {
for (var j in data[i]) {
Object.assign(obj, data[i][j]);
}
subTableDB.value.forEach((element) => {
if (element.type == 'chlid') {
subTableList.value = data[i];
} else {
for (var j in data[i]) {
Object.assign(obj, data[i][j]);
}
}
});
}
setFieldsValue({
...obj,
@ -194,4 +277,8 @@
.my-process-designer {
width: 100%;
}
.my-form-viewer {
overflow: auto;
height: 70vh;
}
</style>

View File

@ -322,6 +322,8 @@
//
async function custmerformVerisonChange(val, isChange) {
let obj;
console.log(val);
console.log(data.formVerisons);
data.formVerisons.forEach((element) => {
if (element.id == val) {
obj = element;
@ -331,76 +333,113 @@
}
function loadFormScheme(strScheme, isChange) {
const scheme = JSON.parse(strScheme);
console.log(scheme.formInfo.schemas)
console.log(scheme);
const fields: any[] = [];
const rfields: {
label?: string;
value?: string;
}[] = [];
scheme.formInfo.schemas.forEach(
(element: { label?: string; field?: string; component: any; itemProps: any }) => {
console.log(element);
if (['InputGuid'].includes(element.component)) {
rfields.push({
label: element.label,
// value:element.prop
value: element.field,
});
}
scheme.formInfo.tabList.forEach((tabElement) => {
tabElement.schemas.forEach(
(element: { label?: string; field?: string; component: any; itemProps: any }) => {
console.log(element);
if (['InputGuid'].includes(element.component)) {
rfields.push({
label: element.label,
// value:element.prop
value: element.field,
});
}
if (!['Divider', 'Grid'].includes(element.component) && !element.itemProps.hidden) {
let obj: any = element;
obj.required = element.itemProps.required;
// obj.componentProps.disabled = false;
obj.disabled = true;
obj.ifShow = true;
obj.fieldName = element.componentProps.fieldName;
fields.push(obj);
} else if (['Grid'].includes(element.component) || element.type == 'subTable') {
console.log('gridtable');
fields.push({
field: `${element.field}_add`,
label: `${element.label || '表格'}-添加按钮`,
required: false,
disabled: true,
ifShow: false,
type: 'grid',
});
fields.push({
field: `${element.field}_remove`,
label: `${element.label || '表格'}-删除按钮`,
required: false,
disabled: true,
ifShow: false,
type: 'grid',
});
if (
![
'Divider',
'Grid',
'Card',
'CreateUser',
'CreateTime',
'ModifyUser',
'ModifyTime',
].includes(element.component) &&
!element.itemProps.hidden
) {
let obj: any = element;
obj.required = element.itemProps.required;
// obj.componentProps.disabled = false;
obj.disabled = true;
obj.ifShow = true;
obj.fieldName = element.componentProps.fieldName;
fields.push(obj);
} else if (['Grid'].includes(element.component) || element.type == 'subTable') {
console.log('gridtable');
fields.push({
field: `${element.field}_add`,
label: `${element.label || '表格'}-添加按钮`,
required: false,
disabled: true,
ifShow: false,
type: 'grid',
});
fields.push({
field: `${element.field}_remove`,
label: `${element.label || '表格'}-删除按钮`,
required: false,
disabled: true,
ifShow: false,
type: 'grid',
});
fields.push({
field: `${element.field}_required`,
label: `${element.label || '表格'}-数据`,
required: element.itemProps.required,
disabled: false,
ifShow: false,
type: 'gridrequired',
});
element.columns.forEach((child) => {
child.children.forEach((t) => {
fields.push({
type: 'childData',
gridprop: element.field,
field: t.field,
label: `${element.label || '表格'}-${t.label}`,
required: t.itemProps.required,
disabled: true,
ifShow: true,
fieldName: t.componentProps.fieldName,
...t,
fields.push({
field: `${element.field}_required`,
label: `${element.label || '表格'}-数据`,
required: element.itemProps.required,
disabled: false,
ifShow: false,
type: 'gridrequired',
});
element.columns.forEach((child) => {
child.children.forEach((t) => {
fields.push({
gridprop: element.field,
field: t.field,
label: `${element.label || '表格'}-${t.label}`,
required: t.itemProps.required,
disabled: true,
ifShow: true,
fieldName: t.componentProps.fieldName,
...t,
});
});
});
});
}
},
);
} else if (['Card'].includes(element.component)) {
element.columns.forEach((child) => {
child.children.forEach((t) => {
fields.push({
gridprop: element.field,
field: t.field,
required: t.itemProps.required,
disabled: true,
ifShow: true,
fieldName: t.componentProps.fieldName,
...t,
});
});
});
} else if (
['CreateUser', 'CreateTime', 'ModifyUser', 'ModifyTime'].includes(element.component) &&
element.display
) {
let obj: any = element;
obj.required = element.itemProps.required;
// obj.componentProps.disabled = false;
obj.disabled = true;
obj.ifShow = true;
obj.fieldName = element.componentProps.fieldName;
fields.push(obj);
}
},
);
});
console.log(fields);
data.formRelations = rfields;
if (isChange) {

View File

@ -858,69 +858,107 @@
label?: string;
value?: string;
}[] = [];
scheme.formInfo.schemas.forEach(
(element: { label?: string; field?: string; component: any; itemProps: any }) => {
if (['InputGuid'].includes(element.component)) {
rfields.push({
label: element.label,
// value:element.prop
value: element.field,
});
}
scheme.formInfo.tabList.forEach((tabElement) => {
tabElement.schemas.forEach(
(element: { label?: string; field?: string; component: any; itemProps: any }) => {
if (['InputGuid'].includes(element.component)) {
rfields.push({
label: element.label,
// value:element.prop
value: element.field,
});
}
if (!['Divider', 'Grid'].includes(element.component) && !element.itemProps.hidden) {
let obj: any = element;
obj.required = element.itemProps.required;
// obj.componentProps.disabled = true;
obj.disabled = true;
obj.ifShow = true;
obj.fieldName = element.componentProps.fieldName;
fields.push(obj);
} else if (['Grid'].includes(element.component) || element.type == 'subTable') {
console.log('gridtable');
fields.push({
field: `${element.field}_add`,
label: `${element.label || '表格'}-添加按钮`,
required: false,
disabled: true,
ifShow: false,
type: 'grid',
});
fields.push({
field: `${element.field}_remove`,
label: `${element.label || '表格'}-删除按钮`,
required: false,
disabled: true,
ifShow: false,
type: 'grid',
});
if (
![
'Divider',
'Grid',
'Card',
'CreateUser',
'CreateTime',
'ModifyUser',
'ModifyTime',
].includes(element.component) &&
!element.itemProps.hidden
) {
let obj: any = element;
obj.required = element.itemProps.required;
// obj.componentProps.disabled = true;
obj.disabled = true;
obj.ifShow = true;
obj.fieldName = element.componentProps.fieldName;
fields.push(obj);
} else if (['Grid'].includes(element.component) || element.type == 'subTable') {
console.log('gridtable');
fields.push({
field: `${element.field}_add`,
label: `${element.label || '表格'}-添加按钮`,
required: false,
disabled: true,
ifShow: false,
type: 'grid',
});
fields.push({
field: `${element.field}_remove`,
label: `${element.label || '表格'}-删除按钮`,
required: false,
disabled: true,
ifShow: false,
type: 'grid',
});
fields.push({
field: `${element.field}_required`,
label: `${element.label || '表格'}-数据`,
required: element.itemProps.required,
disabled: false,
ifShow: false,
type: 'gridrequired',
});
element.columns.forEach((child) => {
child.children.forEach((t) => {
fields.push({
type: 'childData',
gridprop: element.field,
field: t.field,
label: `${element.label || '表格'}-${t.label}`,
required: t.itemProps.required,
disabled: true,
ifShow: true,
fieldName: t.componentProps.fieldName,
...t,
fields.push({
field: `${element.field}_required`,
label: `${element.label || '表格'}-数据`,
required: element.itemProps.required,
disabled: false,
ifShow: false,
type: 'gridrequired',
});
element.columns.forEach((child) => {
child.children.forEach((t) => {
fields.push({
type: 'childData',
gridprop: element.field,
field: t.field,
label: `${element.label || '表格'}-${t.label}`,
required: t.itemProps.required,
disabled: true,
ifShow: true,
fieldName: t.componentProps.fieldName,
...t,
});
});
});
});
}
},
);
} else if (['Card'].includes(element.component)) {
element.columns.forEach((child) => {
child.children.forEach((t) => {
fields.push({
gridprop: element.field,
field: t.field,
required: t.itemProps.required,
disabled: true,
ifShow: true,
fieldName: t.componentProps.fieldName,
...t,
});
});
});
} else if (
['CreateUser', 'CreateTime', 'ModifyUser', 'ModifyTime'].includes(element.component) &&
element.display
) {
let obj: any = element;
obj.required = element.itemProps.required;
// obj.componentProps.disabled = false;
obj.disabled = true;
obj.ifShow = true;
obj.fieldName = element.componentProps.fieldName;
fields.push(obj);
}
},
);
});
data.formRelations = rfields;
if (isChange) {
node.value.authFields = fields;

View File

@ -1,11 +1,18 @@
<template>
<div style="display: flex;">
<div style="display: flex;" v-if="props.data.component !== 'InputGuid'">
<div style="width: 85px;">
{{ props.data.label }}
</div>
<Comp
v-if="props.data.component === 'Switch'"
:options="props.data.componentProps.options"
v-model:checked="props.record[props.parent][props.data.field]"
/>
<Comp
v-else
:style="props.data.component === 'Select' ? 'width:120px' : ''"
:options="props.data.componentProps.options"
v-model:value="props.record[props.parent][props.data.field]"
/>
</div>
@ -14,7 +21,7 @@
<script setup lang="ts">
import { defineProps, defineEmits, ref } from 'vue';
import { componentMap } from '@/components/Form/src/componentMap';
const props = defineProps(['data', 'record']);
const props = defineProps(['data', 'record','parent']);
console.log(props.data,'props.data')
const Comp = componentMap.get(props.data.component);
</script>

View File

@ -1,17 +1,37 @@
<template>
<a-input v-model:value="isTime? nowTime: userName" readOnly>
<template #suffix>
<UserOutlined />
</template>
</a-input>
<a-row v-if="isTime && show" style="width:100%;margin-bottom:10px;">
<a-col flex="100px" style="display: flex;align-items: center;justify-content: right;padding-right: 7px;">{{ props.data.label }}</a-col>
<a-col flex="auto">
<a-input v-model:value="nowTime" readOnly>
<template #suffix>
<FieldTimeOutlined />
</template>
</a-input>
</a-col>
</a-row>
<a-row v-else-if="!isTime && show" style="width:100%;margin-bottom:10px;" >
<a-col flex="100px" style="display: flex;align-items: center;justify-content: right;padding-right: 7px;">{{ props.data.label }}</a-col>
<a-col flex="auto">
<a-input v-model:value="userName" readOnly>
<template #suffix>
<UserOutlined />
</template>
</a-input>
</a-col>
</a-row>
</template>
<script setup lang="ts">
import { ref, defineProps } from 'vue'
import { UserOutlined } from '@ant-design/icons-vue';
import { UserOutlined, FieldTimeOutlined } from '@ant-design/icons-vue';
import dayjs from 'dayjs';
const props = defineProps(['type'])
const isTime = props.type === 'time'
const props = defineProps(['data'])
const show = props.data.display
const isTime = ['createtime', 'modifytime'].includes(props.data.type)
console.log(show)
console.log(isTime)
const nowTime = ref(dayjs().format('YYYY-MM-DD HH:mm:ss'))
const userName = localStorage.getItem('fireUserLoginName')
</script>

View File

@ -59,7 +59,7 @@
<CollapseContainer title="主表">
<BasicTable
@register="dbColumnInfoTable"
:dataSource="tableInfo_main.dbColumnInfoList"
:columns="dbColumnInfoColumns"
:canResize="false"
:bordered="true"
@ -185,13 +185,15 @@
dbColumnInfoList: [],
};
//
let tableInfo_main: any = {
let tableInfo_main: any = ref({
dbCode: '',
tableName: '',
description: '',
type: '',
dbColumnInfoList: [],
};
});
//
let primaryKey = '';
//
let tableInfo_list: any = ref([]);
let scheme_chlid_db: any = [];
@ -225,10 +227,11 @@
{ label: '是否', value: 'bool' },
{ label: '日期', value: 'timestamp' },
];
//
let notComponentArray = ['Divider'];
//
let notComponentArray = ['Divider', 'Button'];
//
let fieldArray = ['MapGeom'];
let gridArray = ['Grid'];
let gridArray = ['Grid', 'Card'];
const [dbMainTable, { getDataSource: dbMain_getDataSource, setTableData: dbMain_setTableData }] =
useTable();
@ -249,14 +252,13 @@
//
let scheme = JSON.parse(data.saveFormDatas.scheme.scheme);
scheme.primaryKey = 'id';
// scheme.primaryKey = 'id';
setDefaultValue(scheme);
//
scheme = getSchemasReturnScheme(scheme, data.saveFormDatas.info.DbCode, 'father', '');
//
dbMain_setTableData(scheme.db.concat(scheme_chlid_db));
dbColumnInfo_setTableData(tableInfo_main.dbColumnInfoList);
saveFormDatas = data.saveFormDatas;
saveFormDatas.scheme.scheme = JSON.stringify(scheme);
});
@ -281,7 +283,7 @@
let chlid_db: any = {};
if (type == 'father') {
//
schemas = scheme.formInfo.schemas;
schemas = scheme.formInfo.tabList[0].schemas;
tableInfo_temp.name = scheme.db[0].name || scheme.db[0].tableName;
tableInfo_temp.tableName = scheme.db[0].tableName || scheme.db[0].name;
tableInfo_temp.description = scheme.db[0].description || '主表';
@ -361,6 +363,9 @@
temp.length = 200;
temp.dataType = 'varchar';
temp.columnDescription = item.label;
if (item.component == 'InputGuid' && temp.tableName === mainTableName) {
temp.isPrimarykey = 1;
}
item.dbColumnInfo = temp;
// -
@ -384,6 +389,9 @@
temp.length = 200;
temp.dataType = 'varchar';
temp.columnDescription = item.label;
if (item.component == 'InputGuid' && item.tableName === mainTableName) {
temp.isPrimarykey = 0;
}
item.dbColumnInfo = temp;
// -
if (type == 'father') {
@ -405,13 +413,13 @@
});
if (type == 'father') {
tableInfo_main = tableInfo_temp;
tableInfo_main.value = tableInfo_temp;
} else if (type == 'chlid') {
tableInfo_list.value.push(tableInfo_temp);
}
if (type == 'father') {
scheme.formInfo.schemas = schemas;
scheme.formInfo.tabList[0].schemas = schemas;
} else if (type == 'chlid') {
scheme.columns[0].children = schemas;
scheme.columns[0].child_db = chlid_db;
@ -422,13 +430,14 @@
//
async function submit() {
getRelationField();
//
if (props.isAddVisible) {
//
await AddTable(tableInfo_main);
} else if (dbColumnInfo_new_list.length == tableInfo_main.dbColumnInfoList.length) {
await AddTable(tableInfo_main.value);
} else if (dbColumnInfo_new_list.length == tableInfo_main.value.dbColumnInfoList.length) {
// -
await AddTable(tableInfo_main);
await AddTable(tableInfo_main.value);
} else if (dbColumnInfo_new) {
//
dbColumnInfo_new?.forEach(async (item) => {
@ -466,11 +475,31 @@
let schems = JSON.parse(saveFormDatas.scheme.scheme);
// db
schems.db = dbMain_getDataSource();
schems.db.forEach((item) => {
if (item.type == 'chlid') {
item.relationField = primaryKey;
}
});
console.log(schems.db);
saveFormDatas.scheme.scheme = JSON.stringify(schems);
emit('automatic-modal-submitsuccess', saveFormDatas);
closeModal();
}
// relationField
function getRelationField() {
if (tableInfo_main.value.dbColumnInfoList.length > 0) {
tableInfo_main.value.dbColumnInfoList.forEach((item) => {
if (item.isPrimarykey == 1) {
primaryKey = item.dbColumnName;
}
});
}
let schems = JSON.parse(saveFormDatas.scheme.scheme);
schems.primaryKey = primaryKey;
saveFormDatas.scheme.scheme = JSON.stringify(schems);
}
// varchar
function isBoolChangeLength(record: Recordable) {
if (record.dataType == 'bool') {

View File

@ -18,7 +18,12 @@
</div>
<a-tabs v-model:activeKey="activeName" @change="changeActive">
<a-tab-pane key="form" tab="表单信息" v-if="formVisble">
<FormViewer ref="formBoxRef" :formConfig="formConfig" v-if="formVisble" />
<FormViewer
ref="formBoxRef"
:formConfig="formConfig"
:formVerison="designerData.formCurrentNode.formVerison"
v-if="formVisble"
/>
</a-tab-pane>
<a-tab-pane key="form" tab="系统表单信息" v-if="formUrlVisble">
<AsyncComponent ref="pcForm" />
@ -165,7 +170,7 @@
// PC
formUrlVisble.value = true;
let url = '../../' + currentNode.formUrl + '.vue';
console.log(url)
console.log(url);
// AsyncComponent.value = defineAsyncComponent(() => import(url));
AsyncComponent.value = defineAsyncComponent({
//
@ -310,10 +315,12 @@
});
if (data) {
const scheme = JSON.parse(data.scheme);
scheme.formInfo.schemas.forEach((element) => {
if (element.field == designerData.formCurrentNode.formRelationId) {
keyValue.value = element.componentProps.fieldName;
}
scheme.formInfo.tabList.forEach((tabElement) => {
tabElement.schemas.forEach((element) => {
if (element.field == designerData.formCurrentNode.formRelationId) {
keyValue.value = element.componentProps.fieldName;
}
});
});
}
}