Pre Merge pull request !43 from 尘墨/main

This commit is contained in:
尘墨 2025-06-16 03:17:15 +00:00 committed by Gitee
commit 2db2be594c
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
53 changed files with 335 additions and 78 deletions

View File

@ -12,8 +12,9 @@ setupVbenVxeTable({
configVxeTable: (vxeUI) => { configVxeTable: (vxeUI) => {
vxeUI.setConfig({ vxeUI.setConfig({
grid: { grid: {
align: 'center', align: 'left',
border: false, border: true,
headerAlign: 'center',
minHeight: 180, minHeight: 180,
formConfig: { formConfig: {
// 全局禁用vxe-table的表单配置使用formOptions // 全局禁用vxe-table的表单配置使用formOptions
@ -33,9 +34,9 @@ setupVbenVxeTable({
showOverflow: true, showOverflow: true,
pagerConfig: { pagerConfig: {
// 默认条数 // 默认条数
pageSize: 10, pageSize: 15,
// 分页可选条数 // 分页可选条数
pageSizes: [10, 20, 30, 40, 50], pageSizes: [15, 30, 50, 100, 200],
}, },
rowConfig: { rowConfig: {
// 鼠标移入行显示 hover 样式 // 鼠标移入行显示 hover 样式

View File

@ -25,7 +25,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '主键', title: '主键',
field: 'id', field: 'id',

View File

@ -22,6 +22,7 @@ export const querySchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
options: getDictOptions(DictEnum.SYS_COMMON_STATUS), options: getDictOptions(DictEnum.SYS_COMMON_STATUS),
}, },
fieldName: 'status', fieldName: 'status',
@ -35,10 +36,17 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '用户账号', title: '用户账号',
field: 'userName', field: 'userName',
minWidth: 120,
width: 120,
}, },
{ {
title: '登录平台', title: '登录平台',
@ -47,11 +55,15 @@ export const columns: VxeGridProps['columns'] = [
{ {
title: 'IP地址', title: 'IP地址',
field: 'ipaddr', field: 'ipaddr',
align: 'center',
minWidth: 120,
width: 120,
}, },
{ {
title: 'IP地点', title: 'IP地点',
field: 'loginLocation', field: 'loginLocation',
width: 200, minWidth: 120,
width: 120,
}, },
{ {
title: '浏览器', title: '浏览器',
@ -84,6 +96,9 @@ export const columns: VxeGridProps['columns'] = [
{ {
title: '登录结果', title: '登录结果',
field: 'status', field: 'status',
align: 'center',
minWidth: 100,
width: 100,
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
return renderDict(row.status, DictEnum.SYS_COMMON_STATUS); return renderDict(row.status, DictEnum.SYS_COMMON_STATUS);
@ -97,6 +112,9 @@ export const columns: VxeGridProps['columns'] = [
{ {
title: '日期', title: '日期',
field: 'loginTime', field: 'loginTime',
align: 'center',
minWidth: 160,
width: 160,
}, },
{ {
field: 'action', field: 'action',

View File

@ -30,6 +30,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -21,6 +21,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -20,6 +20,7 @@ export const querySchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
options: getDictOptions(DictEnum.SYS_OPER_TYPE), options: getDictOptions(DictEnum.SYS_OPER_TYPE),
}, },
fieldName: 'businessType', fieldName: 'businessType',
@ -33,6 +34,7 @@ export const querySchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
options: getDictOptions(DictEnum.SYS_COMMON_STATUS), options: getDictOptions(DictEnum.SYS_COMMON_STATUS),
}, },
fieldName: 'status', fieldName: 'status',
@ -49,11 +51,19 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ field: 'title', title: '系统模块' }, { field: 'title', title: '系统模块' },
{ {
title: '操作类型', title: '操作类型',
field: 'businessType', field: 'businessType',
align: 'center',
minWidth: 100,
width: 100,
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
return renderDict(row.businessType, DictEnum.SYS_OPER_TYPE); return renderDict(row.businessType, DictEnum.SYS_OPER_TYPE);
@ -66,6 +76,9 @@ export const columns: VxeGridProps['columns'] = [
{ {
field: 'status', field: 'status',
title: '操作状态', title: '操作状态',
align: 'center',
minWidth: 100,
width: 100,
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
return renderDict(row.status, DictEnum.SYS_COMMON_STATUS); return renderDict(row.status, DictEnum.SYS_COMMON_STATUS);

View File

@ -32,6 +32,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -21,6 +21,7 @@ export const querySchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE), options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE),
}, },
fieldName: 'status', fieldName: 'status',
@ -29,7 +30,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '客户端ID', title: '客户端ID',
field: 'clientId', field: 'clientId',
@ -86,6 +92,9 @@ export const columns: VxeGridProps['columns'] = [
{ {
title: '状态', title: '状态',
field: 'status', field: 'status',
align: 'center',
minWidth: 100,
width: 100,
slots: { slots: {
default: 'status', default: 'status',
}, },
@ -137,9 +146,9 @@ export const drawerSchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
getPopupContainer, getPopupContainer,
mode: 'multiple', mode: 'multiple',
optionFilterProp: 'label',
options: getDictOptions(DictEnum.SYS_GRANT_TYPE), options: getDictOptions(DictEnum.SYS_GRANT_TYPE),
}, },
fieldName: 'grantTypeList', fieldName: 'grantTypeList',
@ -149,6 +158,7 @@ export const drawerSchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
allowClear: false, allowClear: false,
getPopupContainer, getPopupContainer,
options: getDictOptions(DictEnum.SYS_DEVICE_TYPE), options: getDictOptions(DictEnum.SYS_DEVICE_TYPE),

View File

@ -28,6 +28,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -21,6 +21,7 @@ export const querySchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
getPopupContainer, getPopupContainer,
options: getDictOptions(DictEnum.SYS_YES_NO), options: getDictOptions(DictEnum.SYS_YES_NO),
}, },
@ -35,7 +36,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '参数名称', title: '参数名称',
field: 'configName', field: 'configName',
@ -51,7 +57,9 @@ export const columns: VxeGridProps['columns'] = [
{ {
title: '系统内置', title: '系统内置',
field: 'configType', field: 'configType',
width: 120, align: 'center',
minWidth: 90,
width: 90,
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
return renderDict(row.configType, DictEnum.SYS_YES_NO); return renderDict(row.configType, DictEnum.SYS_YES_NO);
@ -63,8 +71,11 @@ export const columns: VxeGridProps['columns'] = [
field: 'remark', field: 'remark',
}, },
{ {
title: '创建时间',
field: 'createTime', field: 'createTime',
title: '创建时间',
align: 'center',
minWidth: 160,
width: 160,
}, },
{ {
field: 'action', field: 'action',

View File

@ -26,6 +26,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -17,6 +17,7 @@ export const querySchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
getPopupContainer, getPopupContainer,
options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE), options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE),
}, },
@ -38,10 +39,16 @@ export const columns: VxeGridProps['columns'] = [
{ {
field: 'orderNum', field: 'orderNum',
title: '排序', title: '排序',
align: 'center',
minWidth: 100,
width: 100,
}, },
{ {
field: 'status', field: 'status',
title: '状态', title: '状态',
align: 'center',
minWidth: 100,
width: 100,
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
return renderDict(row.status, DictEnum.SYS_NORMAL_DISABLE); return renderDict(row.status, DictEnum.SYS_NORMAL_DISABLE);
@ -51,6 +58,9 @@ export const columns: VxeGridProps['columns'] = [
{ {
field: 'createTime', field: 'createTime',
title: '创建时间', title: '创建时间',
align: 'center',
minWidth: 160,
width: 160,
}, },
{ {
field: 'action', field: 'action',
@ -105,6 +115,7 @@ export const drawerSchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
// 选中了就只能修改 不能重置为无负责人 // 选中了就只能修改 不能重置为无负责人
allowClear: false, allowClear: false,
getPopupContainer, getPopupContainer,

View File

@ -22,6 +22,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -13,7 +13,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '字典标签', title: '字典标签',
field: 'cssClass', field: 'cssClass',
@ -31,15 +36,21 @@ export const columns: VxeGridProps['columns'] = [
{ {
title: '字典排序', title: '字典排序',
field: 'dictSort', field: 'dictSort',
align: 'center',
minWidth: 100,
width: 100,
}, },
{ // {
title: '备注', // title: '备注',
field: 'remark', // field: 'remark',
}, // },
{ // {
title: '创建时间', // field: 'createTime',
field: 'createTime', // title: '创建时间',
}, // align: 'center',
// minWidth: 160,
// width: 160,
// },
{ {
field: 'action', field: 'action',
fixed: 'right', fixed: 'right',

View File

@ -31,6 +31,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -17,7 +17,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '字典名称', title: '字典名称',
field: 'dictName', field: 'dictName',
@ -26,14 +31,17 @@ export const columns: VxeGridProps['columns'] = [
title: '字典类型', title: '字典类型',
field: 'dictType', field: 'dictType',
}, },
{ // {
title: '备注', // title: '备注',
field: 'remark', // field: 'remark',
}, // },
{ // {
title: '创建时间', // field: 'createTime',
field: 'createTime', // title: '创建时间',
}, // align: 'center',
// minWidth: 160,
// width: 160,
// },
{ {
field: 'action', field: 'action',
fixed: 'right', fixed: 'right',

View File

@ -29,6 +29,7 @@ const formOptions: VbenFormProps = {
labelWidth: 70, labelWidth: 70,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -21,6 +21,7 @@ export const querySchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
getPopupContainer, getPopupContainer,
options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE), options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE),
}, },
@ -30,6 +31,7 @@ export const querySchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
getPopupContainer, getPopupContainer,
options: getDictOptions(DictEnum.SYS_SHOW_HIDE), options: getDictOptions(DictEnum.SYS_SHOW_HIDE),
}, },
@ -86,8 +88,10 @@ export const columns: VxeGridProps['columns'] = [
}, },
{ {
title: '排序', title: '排序',
align: 'center',
minWidth: 100,
width: 100,
field: 'orderNum', field: 'orderNum',
width: 120,
}, },
{ {
title: '组件类型', title: '组件类型',
@ -119,6 +123,8 @@ export const columns: VxeGridProps['columns'] = [
{ {
title: '状态', title: '状态',
field: 'status', field: 'status',
align: 'center',
minWidth: 100,
width: 100, width: 100,
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
@ -129,6 +135,8 @@ export const columns: VxeGridProps['columns'] = [
{ {
title: '显示', title: '显示',
field: 'visible', field: 'visible',
align: 'center',
minWidth: 100,
width: 100, width: 100,
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
@ -137,8 +145,11 @@ export const columns: VxeGridProps['columns'] = [
}, },
}, },
{ {
title: '创建时间',
field: 'createTime', field: 'createTime',
title: '创建时间',
align: 'center',
minWidth: 160,
width: 160,
}, },
{ {
field: 'action', field: 'action',

View File

@ -28,6 +28,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -21,6 +21,7 @@ export const querySchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
getPopupContainer, getPopupContainer,
options: getDictOptions(DictEnum.SYS_NOTICE_TYPE), options: getDictOptions(DictEnum.SYS_NOTICE_TYPE),
}, },
@ -30,7 +31,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '公告标题', title: '公告标题',
field: 'noticeTitle', field: 'noticeTitle',
@ -38,7 +44,9 @@ export const columns: VxeGridProps['columns'] = [
{ {
title: '公告类型', title: '公告类型',
field: 'noticeType', field: 'noticeType',
width: 120, align: 'center',
minWidth: 100,
width: 100,
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
return renderDict(row.noticeType, DictEnum.SYS_NOTICE_TYPE); return renderDict(row.noticeType, DictEnum.SYS_NOTICE_TYPE);
@ -48,7 +56,9 @@ export const columns: VxeGridProps['columns'] = [
{ {
title: '状态', title: '状态',
field: 'status', field: 'status',
width: 120, align: 'center',
minWidth: 100,
width: 100,
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
return renderDict(row.status, DictEnum.SYS_NOTICE_STATUS); return renderDict(row.status, DictEnum.SYS_NOTICE_STATUS);
@ -61,8 +71,11 @@ export const columns: VxeGridProps['columns'] = [
width: 150, width: 150,
}, },
{ {
title: '创建时间',
field: 'createTime', field: 'createTime',
title: '创建时间',
align: 'center',
minWidth: 160,
width: 160,
}, },
{ {
field: 'action', field: 'action',

View File

@ -20,6 +20,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -28,6 +28,7 @@ export const querySchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
options: [ options: [
{ label: '是', value: '0' }, { label: '是', value: '0' },
{ label: '否', value: '1' }, { label: '否', value: '1' },
@ -39,7 +40,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '配置名称', title: '配置名称',
field: 'configKey', field: 'configKey',

View File

@ -27,6 +27,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4', wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',

View File

@ -30,7 +30,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '文件名', title: '文件名',
field: 'fileName', field: 'fileName',

View File

@ -44,6 +44,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -21,6 +21,7 @@ export const querySchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
getPopupContainer, getPopupContainer,
options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE), options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE),
}, },
@ -30,7 +31,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '岗位编码', title: '岗位编码',
field: 'postCode', field: 'postCode',
@ -45,11 +51,17 @@ export const columns: VxeGridProps['columns'] = [
}, },
{ {
title: '排序', title: '排序',
align: 'center',
minWidth: 100,
width: 100,
field: 'postSort', field: 'postSort',
}, },
{ {
title: '状态', title: '状态',
field: 'status', field: 'status',
align: 'center',
minWidth: 100,
width: 100,
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
return renderDict(row.status, DictEnum.SYS_NORMAL_DISABLE); return renderDict(row.status, DictEnum.SYS_NORMAL_DISABLE);
@ -57,8 +69,11 @@ export const columns: VxeGridProps['columns'] = [
}, },
}, },
{ {
title: '创建时间',
field: 'createTime', field: 'createTime',
title: '创建时间',
align: 'center',
minWidth: 160,
width: 160,
}, },
{ {
field: 'action', field: 'action',

View File

@ -26,6 +26,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -15,7 +15,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '用户账号', title: '用户账号',
field: 'userName', field: 'userName',

View File

@ -29,6 +29,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -34,6 +34,7 @@ export const querySchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE), options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE),
}, },
fieldName: 'status', fieldName: 'status',
@ -47,7 +48,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '角色名称', title: '角色名称',
field: 'roleName', field: 'roleName',
@ -78,16 +84,25 @@ export const columns: VxeGridProps['columns'] = [
}, },
{ {
title: '排序', title: '排序',
align: 'center',
minWidth: 100,
width: 100,
field: 'roleSort', field: 'roleSort',
}, },
{ {
title: '状态',
field: 'status', field: 'status',
title: '状态',
slots: { default: 'status' }, slots: { default: 'status' },
align: 'center',
minWidth: 100,
width: 100,
}, },
{ {
title: '创建时间',
field: 'createTime', field: 'createTime',
title: '创建时间',
align: 'center',
minWidth: 160,
width: 160,
}, },
{ {
field: 'action', field: 'action',
@ -132,6 +147,7 @@ export const drawerSchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
allowClear: false, allowClear: false,
options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE), options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE),
getPopupContainer, getPopupContainer,
@ -205,6 +221,7 @@ export const authModalSchemas: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
allowClear: false, allowClear: false,
getPopupContainer, getPopupContainer,
options: authScopeOptions, options: authScopeOptions,

View File

@ -32,6 +32,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -31,7 +31,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '租户编号', title: '租户编号',
field: 'tenantId', field: 'tenantId',
@ -177,6 +182,7 @@ export const drawerSchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
getPopupContainer, getPopupContainer,
}, },
fieldName: 'packageId', fieldName: 'packageId',

View File

@ -33,6 +33,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -10,7 +10,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '套餐名称', title: '套餐名称',
field: 'packageName', field: 'packageName',

View File

@ -30,6 +30,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -26,6 +26,7 @@ export const querySchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
getPopupContainer, getPopupContainer,
options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE), options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE),
}, },
@ -40,27 +41,34 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 },
{ {
field: 'userName', align: 'center',
title: '名称', type: 'checkbox',
minWidth: 80, width: 45,
}, resizable: false,
{
field: 'nickName',
title: '昵称',
minWidth: 130,
}, },
{ {
field: 'avatar', field: 'avatar',
title: '头像', title: '头像',
slots: { default: 'avatar' }, slots: { default: 'avatar' },
align: 'center',
minWidth: 80, minWidth: 80,
width: 80,
},
{
field: 'userName',
title: '用户账号',
minWidth: 140,
},
{
field: 'nickName',
title: '用户昵称',
minWidth: 140,
}, },
{ {
field: 'deptName', field: 'deptName',
title: '部门', title: '所属部门',
minWidth: 120, minWidth: 140,
}, },
{ {
field: 'phonenumber', field: 'phonenumber',
@ -68,18 +76,24 @@ export const columns: VxeGridProps['columns'] = [
formatter({ cellValue }) { formatter({ cellValue }) {
return cellValue || '暂无'; return cellValue || '暂无';
}, },
align: 'center',
width: 120,
minWidth: 120, minWidth: 120,
}, },
{ {
field: 'status', field: 'status',
title: '状态', title: '状态',
slots: { default: 'status' }, slots: { default: 'status' },
align: 'center',
minWidth: 100, minWidth: 100,
width: 100,
}, },
{ {
field: 'createTime', field: 'createTime',
title: '创建时间', title: '创建时间',
minWidth: 150, align: 'center',
minWidth: 160,
width: 160,
}, },
{ {
field: 'action', field: 'action',
@ -177,9 +191,9 @@ export const drawerSchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
getPopupContainer, getPopupContainer,
mode: 'multiple', mode: 'multiple',
optionFilterProp: 'label',
optionLabelProp: 'label', optionLabelProp: 'label',
placeholder: '请先选择部门', placeholder: '请先选择部门',
}, },

View File

@ -59,6 +59,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4', wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',

View File

@ -29,7 +29,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
field: 'tableName', field: 'tableName',
title: '表名称', title: '表名称',
@ -45,10 +50,16 @@ export const columns: VxeGridProps['columns'] = [
{ {
field: 'createTime', field: 'createTime',
title: '创建时间', title: '创建时间',
align: 'center',
minWidth: 160,
width: 160,
}, },
{ {
field: 'updateTime', field: 'updateTime',
title: '更新时间', title: '更新时间',
align: 'center',
minWidth: 160,
width: 160,
}, },
{ {
field: 'action', field: 'action',

View File

@ -50,6 +50,7 @@ export const formSchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
allowClear: false, allowClear: false,
getPopupContainer, getPopupContainer,
options: [ options: [
@ -65,6 +66,7 @@ export const formSchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
getPopupContainer, getPopupContainer,
}, },
dependencies: { dependencies: {
@ -79,6 +81,7 @@ export const formSchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
allowClear: false, allowClear: false,
}, },
dependencies: { dependencies: {
@ -93,6 +96,7 @@ export const formSchema: FormSchemaGetter = () => [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
allowClear: false, allowClear: false,
}, },
dependencies: { dependencies: {

View File

@ -34,6 +34,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4', wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',

View File

@ -37,7 +37,7 @@ const formOptions: VbenFormProps = {
labelWidth: 60, labelWidth: 60,
}, },
showCollapseButton: false, showCollapseButton: false,
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3', wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-4',
}; };
const gridOptions: VxeGridProps = { const gridOptions: VxeGridProps = {
@ -48,8 +48,10 @@ const gridOptions: VxeGridProps = {
}, },
columns: [ columns: [
{ {
align: 'center',
type: 'checkbox', type: 'checkbox',
width: 60, width: 45,
resizable: false,
}, },
{ {
title: '表名称', title: '表名称',
@ -64,16 +66,27 @@ const gridOptions: VxeGridProps = {
{ {
title: '创建时间', title: '创建时间',
field: 'createTime', field: 'createTime',
align: 'center',
minWidth: 160,
width: 160,
}, },
{ {
title: '更新时间', title: '更新时间',
field: 'updateTime', field: 'updateTime',
align: 'center',
minWidth: 160,
width: 160,
}, },
], ],
keepSource: true, keepSource: true,
size: 'small', size: 'small',
minHeight: 400, minHeight: 400,
pagerConfig: {}, pagerConfig: {
//
pageSize: 10,
//
pageSizes: [10, 20, 30, 40, 50],
},
proxyConfig: { proxyConfig: {
ajax: { ajax: {
query: async ({ page }, formValues = {}) => { query: async ({ page }, formValues = {}) => {
@ -138,7 +151,7 @@ async function handleSubmit() {
</script> </script>
<template> <template>
<BasicModal class="w-[800px]" title="导入表"> <BasicModal class="w-[1000px]" title="导入表">
<BasicTable /> <BasicTable />
</BasicModal> </BasicModal>
</template> </template>

View File

@ -27,6 +27,9 @@ export const columns: VxeGridProps['columns'] = [
{ {
field: 'createTime', field: 'createTime',
title: '创建时间', title: '创建时间',
align: 'center',
minWidth: 160,
width: 160,
}, },
{ {
field: 'action', field: 'action',

View File

@ -19,6 +19,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -76,6 +76,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
wrapperClass: 'grid-cols-2', wrapperClass: 'grid-cols-2',

View File

@ -48,7 +48,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
title: '请假类型', title: '请假类型',
field: 'leaveType', field: 'leaveType',
@ -129,6 +134,7 @@ export const modalSchema: (isEdit: boolean) => VbenFormSchema[] = (
fieldName: 'leaveType', fieldName: 'leaveType',
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
options: leaveTypeOptions, options: leaveTypeOptions,
getPopupContainer, getPopupContainer,
}, },

View File

@ -25,6 +25,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
schema: querySchema(), schema: querySchema(),

View File

@ -19,7 +19,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
field: 'flowName', field: 'flowName',
title: '流程名称', title: '流程名称',

View File

@ -49,6 +49,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4', wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',

View File

@ -27,7 +27,12 @@ export const querySchema: FormSchemaGetter = () => [
]; ];
export const columns: VxeGridProps['columns'] = [ export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 }, {
align: 'center',
type: 'checkbox',
width: 45,
resizable: false,
},
{ {
field: 'flowName', field: 'flowName',
title: '流程名称', title: '流程名称',

View File

@ -36,6 +36,7 @@ const formOptions: VbenFormProps = {
labelWidth: 80, labelWidth: 80,
componentProps: { componentProps: {
allowClear: true, allowClear: true,
showSearch: true,
}, },
}, },
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4', wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',

View File

@ -55,6 +55,8 @@
"@iconify/icons-tabler": "^1.2.95", "@iconify/icons-tabler": "^1.2.95",
"@iconify/icons-uiw": "^1.2.6", "@iconify/icons-uiw": "^1.2.6",
"@iconify/icons-vscode-icons": "^1.2.29", "@iconify/icons-vscode-icons": "^1.2.29",
"@iconify/icons-wpf": "^1.2.3" "@iconify/icons-wpf": "^1.2.3",
"@iconify/icons-tdesign": "^1.2.0",
"@iconify/json": "^2.2.310"
} }
} }

View File

@ -11,7 +11,6 @@ import windowsIcon from '@iconify/icons-devicon/windows8';
import alipayIcon from '@iconify/icons-fa-brands/alipay'; import alipayIcon from '@iconify/icons-fa-brands/alipay';
import androidIcon from '@iconify/icons-flat-color-icons/android-os'; import androidIcon from '@iconify/icons-flat-color-icons/android-os';
import comandLine from '@iconify/icons-flat-color-icons/command-line'; import comandLine from '@iconify/icons-flat-color-icons/command-line';
import folderIcon from '@iconify/icons-flat-color-icons/folder';
import defaultOsIcon from '@iconify/icons-ic/outline-computer'; import defaultOsIcon from '@iconify/icons-ic/outline-computer';
import memoryIcon from '@iconify/icons-la/memory'; import memoryIcon from '@iconify/icons-la/memory';
import chromeIcon from '@iconify/icons-logos/chrome'; import chromeIcon from '@iconify/icons-logos/chrome';
@ -23,8 +22,6 @@ import redisIcon from '@iconify/icons-logos/redis';
import safariIcon from '@iconify/icons-logos/safari'; import safariIcon from '@iconify/icons-logos/safari';
import vueIcon from '@iconify/icons-logos/vue'; import vueIcon from '@iconify/icons-logos/vue';
import iphoneIcon from '@iconify/icons-majesticons/iphone-x-apps-line'; import iphoneIcon from '@iconify/icons-majesticons/iphone-x-apps-line';
import menuIcon from '@iconify/icons-material-symbols/menu';
import okButtonIcon from '@iconify/icons-mdi/button-pointer';
import micromessengerIcon from '@iconify/icons-mdi/wechat'; import micromessengerIcon from '@iconify/icons-mdi/wechat';
import defaultBrowserIcon from '@iconify/icons-ph/browser-duotone'; import defaultBrowserIcon from '@iconify/icons-ph/browser-duotone';
import baiduIcon from '@iconify/icons-ri/baidu-fill'; import baiduIcon from '@iconify/icons-ri/baidu-fill';
@ -36,6 +33,9 @@ import qqIcon from '@iconify/icons-simple-icons/tencentqq';
import javaIcon from '@iconify/icons-skill-icons/java-light'; import javaIcon from '@iconify/icons-skill-icons/java-light';
import tsIcon from '@iconify/icons-skill-icons/typescript'; import tsIcon from '@iconify/icons-skill-icons/typescript';
import xmlIcon from '@iconify/icons-tabler/file-type-xml'; import xmlIcon from '@iconify/icons-tabler/file-type-xml';
import okButtonIcon from '@iconify/icons-tdesign/button';
import folderIcon from '@iconify/icons-tdesign/folder';
import menuIcon from '@iconify/icons-tdesign/menu';
import githubOAuthIcon from '@iconify/icons-uiw/github'; import githubOAuthIcon from '@iconify/icons-uiw/github';
import excelIcon from '@iconify/icons-vscode-icons/file-type-excel'; import excelIcon from '@iconify/icons-vscode-icons/file-type-excel';
import osxIcon from '@iconify/icons-wpf/macos'; import osxIcon from '@iconify/icons-wpf/macos';
@ -154,17 +154,14 @@ export const DefaultBrowserIcon = createIconifyOfflineIcon(
// 菜单类型 目录/按钮/菜单 // 菜单类型 目录/按钮/菜单
export const FolderIcon = createIconifyOfflineIcon( export const FolderIcon = createIconifyOfflineIcon(
'flat-color-icons:folder', 'tdesign:folder',
folderIcon, folderIcon,
); );
export const OkButtonIcon = createIconifyOfflineIcon( export const OkButtonIcon = createIconifyOfflineIcon(
'mdi:button-pointer', 'tdesign:button',
okButtonIcon, okButtonIcon,
); );
export const MenuIcon = createIconifyOfflineIcon( export const MenuIcon = createIconifyOfflineIcon('tdesign:menu', menuIcon);
'material-symbols:menu',
menuIcon,
);
export const JavaIcon = createIconifyOfflineIcon( export const JavaIcon = createIconifyOfflineIcon(
'skill-icons:java-light', 'skill-icons:java-light',

View File

@ -268,6 +268,7 @@ const schema: VbenFormSchema[] = [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
allowClear: true, allowClear: true,
class: 'w-full', class: 'w-full',
options: [ options: [
@ -305,6 +306,7 @@ const schema: VbenFormSchema[] = [
{ {
component: 'Select', component: 'Select',
componentProps: { componentProps: {
optionFilterProp: 'label',
allowClear: true, allowClear: true,
class: 'w-full', class: 'w-full',
options: SystemMenuApi.BadgeVariants.map((v) => ({ options: SystemMenuApi.BadgeVariants.map((v) => ({