1.表格页面树按钮修正、2.设计页面的基础控件和控件设置的bug修正
parent
b8dd060a84
commit
fb218fd354
|
|
@ -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,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>();
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
// info和scheme
|
// info和scheme
|
||||||
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;
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue