1.表格页面树按钮修正、2.设计页面的基础控件和控件设置的bug修正

hc_zhufu
滕嵩 2024-05-16 18:00:29 +08:00
parent b8dd060a84
commit fb218fd354
13 changed files with 123 additions and 81 deletions

View File

@ -88,7 +88,7 @@ export function functionLoadFormSort(params: AccountParams) {
export function functionAddFormSort(params: FromSortModel) { export function functionAddFormSort(params: FromSortModel) {
return defHttp.post({ return defHttp.post({
url: Api.AddFormSort, url: Api.AddFormSort + '?code=FormSort',
params, params,
}); });
} }

View File

@ -171,7 +171,7 @@
}); });
}; };
const handleFieldTableChange = (e) => { const handleFieldTableChange = (e) => {
console.log('cccccc', e); // console.log('cccccc', e);
fieldTableValue.value = e; fieldTableValue.value = e;
fetch(); fetch();
inputOptions.value.forEach((item) => { inputOptions.value.forEach((item) => {
@ -289,6 +289,8 @@
if (func) { if (func) {
func(formConfig.value.currentItem!.componentProps, allOptions.value); func(formConfig.value.currentItem!.componentProps, allOptions.value);
} }
fieldTableValue.value = formConfig.value?.currentItem?.componentProps?.dataTable;
handleFieldTableChange(formConfig.value?.currentItem?.componentProps?.dataTable);
}, },
{ {
immediate: true, immediate: true,

View File

@ -4,13 +4,14 @@
:class="`left ${prefixCls}-sider`" :class="`left ${prefixCls}-sider`"
collapsible collapsible
collapsedWidth="0" collapsedWidth="0"
width="270" width="300"
:zeroWidthTriggerStyle="{ :zeroWidthTriggerStyle="{
'margin-top': '-70px', 'margin-top': '-70px',
'background-color': 'gray', 'background-color': 'gray',
}" }"
breakpoint="md" breakpoint="md"
> >
<div class="collapseItem-box">
<CollapseContainer title="基础控件"> <CollapseContainer title="基础控件">
<CollapseItem <CollapseItem
:list="baseComponents" :list="baseComponents"
@ -35,6 +36,7 @@
@handle-list-push="handleListPush" @handle-list-push="handleListPush"
/> />
</CollapseContainer> </CollapseContainer>
</div>
</LayoutSider> </LayoutSider>
<LayoutContent> <LayoutContent>
<Toolbar <Toolbar
@ -396,4 +398,9 @@
background-color: #fff; background-color: #fff;
} }
} }
.collapseItem-box {
height: calc(100vh - 60px);
overflow: auto;
}
</style> </style>

View File

@ -23,7 +23,6 @@
v-else-if="schema.component == 'Divider' && schema.label && !formItemProps.hiddenLabel" v-else-if="schema.component == 'Divider' && schema.label && !formItemProps.hiddenLabel"
>{{ schema.label }} >{{ schema.label }}
</Divider> </Divider>
<div v-if="schema.component == 'Divider'"> 123 </div>
<!-- 部分控件需要一个空div --> <!-- 部分控件需要一个空div -->
<div> <div>

View File

@ -11,38 +11,37 @@ import { Component } from 'vue';
import { getDeptList, getAccountList, getPosGroupList } from '@/api/demo/system'; import { getDeptList, getAccountList, getPosGroupList } from '@/api/demo/system';
//获取部门列表数据 //获取部门列表数据
const deptTreeData = await Promise.all([getDeptListData()]) const deptTreeData = await Promise.all([getDeptListData()]);
function getDeptListData() { function getDeptListData() {
let param = { let param = {
page: 1, page: 1,
limit: 9999 limit: 9999,
}; };
return getDeptList( param ).then( data => { return getDeptList(param).then((data) => {
return data return data;
}) });
} }
//获取职级列表数据 //获取职级列表数据
const positionTreeData = await Promise.all([getPositionListData()]) const positionTreeData = await Promise.all([getPositionListData()]);
function getPositionListData() { function getPositionListData() {
let param = { let param = {
page: 1, page: 1,
limit: 9999 limit: 9999,
}; };
return getPosGroupList( param ).then( data => { return getPosGroupList(param).then((data) => {
return data return data;
}) });
} }
//获取人员选择列表数据 //获取人员选择列表数据
const userTreeData = await Promise.all([getUserListData()]) const userTreeData = await Promise.all([getUserListData()]);
function getUserListData() { function getUserListData() {
let param = { let param = {
page: 1, page: 1,
limit: 9999 limit: 9999,
}; };
return getAccountList( param ).then( data => { return getAccountList(param).then((data) => {
return data.items return data.items;
}) });
} }
const componentMap = new Map<string, Component>(); const componentMap = new Map<string, Component>();

View File

@ -181,7 +181,6 @@
let sysModuleElement: any = []; let sysModuleElement: any = [];
if (config.table.btns) { if (config.table.btns) {
config.table.btns.forEach((t) => { config.table.btns.forEach((t) => {
console.log(t);
let temp: any = {}; let temp: any = {};
temp.id = ''; temp.id = '';
temp.domId = t.prop; temp.domId = t.prop;

View File

@ -73,7 +73,7 @@
}); });
// config // config
const config = inject('formConfig'); const config: any = inject('formConfig');
const columnsData = ref(config.table.columns); const columnsData = ref(config.table.columns);
// //
const columnsTreeRef = ref<Nullable<TreeActionType>>(null); const columnsTreeRef = ref<Nullable<TreeActionType>>(null);

View File

@ -8,7 +8,8 @@
:searchInfo="searchInfo" :searchInfo="searchInfo"
> >
<template #toolbar> <template #toolbar>
<a-button type="primary" @click="handleAddForm"></a-button> <PermissionBtn @btn-event="onBtnClicked" />
<!-- <a-button type="primary" @click="handleAddForm"></a-button> -->
</template> </template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'pmoduleId'"> <template v-if="column.key === 'pmoduleId'">
@ -45,7 +46,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, nextTick, ref, onMounted } from 'vue'; import { reactive, nextTick, ref, onMounted } from 'vue';
import { PermissionBtn } from '@/components/PermissionBtn/index';
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import { PageWrapper } from '@/components/Page'; import { PageWrapper } from '@/components/Page';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
@ -175,6 +176,16 @@
reload(); reload();
} }
function onBtnClicked(domId) {
switch (domId) {
case 'btnAdd':
handleAddForm();
break;
default:
break;
}
}
onMounted(() => { onMounted(() => {
fetch(); fetch();
}); });

View File

@ -62,22 +62,32 @@
}, },
]); ]);
// Checked // Checked
const columnsCheckedKeys = ref([]); const columnsCheckedKeys: any = ref([]);
// tree // tree
const queryTree = ref([ const queryTree: any = ref([
{ {
label: '全选', label: '全选',
children: [], children: [],
}, },
]); ]);
// Checked // Checked
const queryCheckedKeys = ref([]); const queryCheckedKeys: any = ref([]);
// tree // tree
const btnsTree = ref([]); const btnsTree: any = ref([]);
// Checked // Checked
const btnsCheckedKeys = ref([]); const btnsCheckedKeys: any = ref([]);
const config = ref({ const notInColumns = [
'Divider',
'InputGuid',
'MapGemo',
'Upload',
'slot',
'Grid',
'StrengthMeter',
];
const config: any = ref({
layoutType: 1, layoutType: 1,
queryType: 1, queryType: 1,
left: { left: {
@ -158,7 +168,7 @@
], ],
}); });
const formScheme = ref(''); const formScheme: any = ref('');
// //
async function validateSteps(formVerison) { async function validateSteps(formVerison) {
@ -167,18 +177,19 @@
} }
// //
let keyValue = typeof formVerison === 'string' ? formVerison : formVerison.value; let keyValue = typeof formVerison === 'string' ? formVerison : formVerison.value;
const scheme = await functionGetPreviewForm({ keyValue: keyValue }); let query: any = { keyValue: keyValue };
// const scheme = await functionGetPreviewForm({ keyValue: formVerison }); const scheme: any = await functionGetPreviewForm(query);
// console.log(scheme);
formScheme.value = JSON.parse(scheme.scheme); formScheme.value = JSON.parse(scheme.scheme);
const columns = []; const columns: any = [];
formScheme.value.formInfo.schemas.forEach((tab) => { formScheme.value.formInfo.schemas.forEach((tab: any) => {
if (!(tab.component in ['Gridtable', 'Divider', 'Password', 'Viewtable', 'Card', 'Btn'])) { if (!notInColumns.includes(tab.component)) {
columns.push(tab); columns.push(tab);
} }
}); });
console.log(columns);
const colunmsMap = {}; const colunmsMap = {};
columns.forEach((item) => { columns.forEach((item) => {
colunmsMap[item.field] = item; colunmsMap[item.field] = item;
@ -192,14 +203,15 @@
// - // -
columnsTree.value[0].children = []; columnsTree.value[0].children = [];
columns.map((t) => { columns.map((t) => {
columnsTree.value[0].children.push({ let temp: any = {
key: t.field, key: t.field,
label: t.label, label: t.label,
value: t.label, value: t.label,
width: 120, width: 120,
align: 'left', align: 'left',
isMinWidth: false, isMinWidth: false,
}); };
columnsTree.value[0].children.push(temp);
}); });
// - // -
@ -214,7 +226,8 @@
}); });
// - // -
const schemeInfo = await functionGetSchemeInfoEntity({ id: scheme.schemeInfoId }); let query2: any = { id: scheme.schemeInfoId };
const schemeInfo: any = await functionGetSchemeInfoEntity(query2);
if (schemeInfo.formType === 1) { if (schemeInfo.formType === 1) {
// //
btnsTree.value = config.value.btns.filter((t) => btnsTree.value = config.value.btns.filter((t) =>
@ -251,13 +264,13 @@
} }
// //
config.value.table.columns.forEach((t) => { config.value.table.columns.forEach((t: any) => {
columnsCheckedKeys.value.push(t.key); columnsCheckedKeys.value.push(t.key);
}); });
config.value.table.querys.forEach((t) => { config.value.table.querys.forEach((t: any) => {
queryCheckedKeys.value.push(t.key); queryCheckedKeys.value.push(t.key);
}); });
config.value.table.btns.forEach((t) => { config.value.table.btns.forEach((t: any) => {
btnsCheckedKeys.value.push(t.id); btnsCheckedKeys.value.push(t.id);
}); });
} }

View File

@ -152,7 +152,8 @@
}); });
// //
async function previewModal(record, Modal: IToolbarMethods) { async function previewModal(record, Modal: IToolbarMethods) {
const preview = await functionGetPreviewForm({ keyValue: record.schemeId }); let query: any = { keyValue: record.schemeId };
const preview: any = await functionGetPreviewForm(query);
let scheme = JSON.parse(preview.scheme); let scheme = JSON.parse(preview.scheme);
formConfig.value.schemas = scheme.formInfo.schemas; formConfig.value.schemas = scheme.formInfo.schemas;
Modal?.showModal(cloneDeep(formConfig.value)); Modal?.showModal(cloneDeep(formConfig.value));

View File

@ -190,7 +190,8 @@
formData.value.formCode = row.id; formData.value.formCode = row.id;
formData.value.formCodeName = row.name; formData.value.formCodeName = row.name;
// //
const historyData = await functionGetSchemePageList({ schemeInfoId: row.id }); let query: any = { schemeInfoId: row.id };
const historyData = await functionGetSchemePageList(query);
historyData.items.forEach((t) => { historyData.items.forEach((t) => {
formVerisons_temp.push({ label: t.createDate, value: t.id }); formVerisons_temp.push({ label: t.createDate, value: t.id });
}); });
@ -221,7 +222,7 @@
async function setFormData(record) { async function setFormData(record) {
// infoscheme // infoscheme
let query: any = { id: record.formCode }; let query: any = { id: record.formCode };
const result = await functionGetForm(query); const result: any = await functionGetForm(query);
record.isSys = true; record.isSys = true;
formData.value = record; formData.value = record;
formData.value.formVerison = result.info.schemeId; formData.value.formVerison = result.info.schemeId;

View File

@ -14,8 +14,7 @@
:searchInfo="searchInfo" :searchInfo="searchInfo"
> >
<template #toolbar> <template #toolbar>
<!-- <PermissionBtn @btn-event="onBtnClicked" /> --> <PermissionBtn @btn-event="onBtnClicked" />
<a-button type="primary" @click="handleAddForm"></a-button>
</template> </template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'category'"> <template v-if="column.key === 'category'">
@ -65,7 +64,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, nextTick, ref, onMounted } from 'vue'; import { reactive, nextTick, ref, onMounted } from 'vue';
import { PermissionBtn } from '@/components/PermissionBtn/index';
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import { TreeItem } from '@/components/Tree'; import { TreeItem } from '@/components/Tree';
import { PageWrapper } from '@/components/Page'; import { PageWrapper } from '@/components/Page';
@ -262,6 +261,16 @@
treeData.value = await functionLoadFormSort(); treeData.value = await functionLoadFormSort();
} }
function onBtnClicked(domId) {
switch (domId) {
case 'btnAdd':
handleAddForm();
break;
default:
break;
}
}
onMounted(() => { onMounted(() => {
fetch(); fetch();
}); });

View File

@ -114,7 +114,8 @@
// //
const [automaticModal, { closeModal }] = useModalInner(async (data) => { const [automaticModal, { closeModal }] = useModalInner(async (data) => {
if (!props.isAddVisible) { if (!props.isAddVisible) {
let result = await functionGetForm({ id: data.saveFormDatas.info.id }); let query: any = { id: data.saveFormDatas.info.id };
let result = await functionGetForm(query);
let result_json = JSON.parse(result.scheme.scheme); let result_json = JSON.parse(result.scheme.scheme);
let data_json = JSON.parse(data.saveFormDatas.scheme.scheme); let data_json = JSON.parse(data.saveFormDatas.scheme.scheme);
data_json.db = result_json.db; data_json.db = result_json.db;