diff --git a/apps/web-antd/src/adapter/style.css b/apps/web-antd/src/adapter/style.css deleted file mode 100644 index 01368a9285e8eee05c46ed8a05b34733d7164c59..0000000000000000000000000000000000000000 --- a/apps/web-antd/src/adapter/style.css +++ /dev/null @@ -1,79 +0,0 @@ -/* 来自 @vben/plugins/vxe-table style.css,覆盖 vxe-table 原有的样式定义,使用 vben 的样式主题 */ -:root { - --vxe-ui-font-color: hsl(var(--foreground)); - --vxe-ui-font-primary-color: hsl(var(--primary)); - - /* --vxe-ui-font-lighten-color: #babdc0; - --vxe-ui-font-darken-color: #86898e; */ - --vxe-ui-font-disabled-color: hsl(var(--foreground) / 50%); - - /* base */ - --vxe-ui-base-popup-border-color: hsl(var(--border)); - --vxe-ui-input-disabled-color: hsl(var(--border) / 60%); - - /* --vxe-ui-base-popup-box-shadow: 0px 12px 30px 8px rgb(0 0 0 / 50%); */ - - /* layout */ - --vxe-ui-layout-background-color: hsl(var(--background)); - --vxe-ui-table-resizable-line-color: hsl(var(--heavy)); - - /* --vxe-ui-table-fixed-left-scrolling-box-shadow: 8px 0px 10px -5px hsl(var(--accent)); - --vxe-ui-table-fixed-right-scrolling-box-shadow: -8px 0px 10px -5px hsl(var(--accent)); */ - - /* input */ - --vxe-ui-input-border-color: hsl(var(--border)); - - /* --vxe-ui-input-placeholder-color: #8d9095; */ - - /* --vxe-ui-input-disabled-background-color: #262727; */ - - /* loading */ - --vxe-ui-loading-background-color: hsl(var(--overlay-content)); - - /* table */ - --vxe-ui-table-header-background-color: hsl(var(--accent)); - --vxe-ui-table-border-color: hsl(var(--border)); - --vxe-ui-table-row-hover-background-color: hsl(var(--accent-hover)); - --vxe-ui-table-row-striped-background-color: hsl(var(--accent) / 60%); - --vxe-ui-table-row-hover-striped-background-color: hsl(var(--accent)); - --vxe-ui-table-row-radio-checked-background-color: hsl(var(--accent)); - --vxe-ui-table-row-hover-radio-checked-background-color: hsl( - var(--accent-hover) - ); - --vxe-ui-table-row-checkbox-checked-background-color: hsl(var(--accent)); - --vxe-ui-table-row-hover-checkbox-checked-background-color: hsl( - var(--accent-hover) - ); - --vxe-ui-table-row-current-background-color: hsl(var(--accent)); - --vxe-ui-table-row-hover-current-background-color: hsl(var(--accent-hover)); - --vxe-ui-font-primary-tinge-color: hsl(var(--primary)); - --vxe-ui-font-primary-lighten-color: hsl(var(--primary) / 60%); - --vxe-ui-font-primary-darken-color: hsl(var(--primary)); - - /* height: auto !important; */ - - /* --vxe-ui-table-fixed-scrolling-box-shadow-color: rgb(0 0 0 / 80%); */ -} - -.vxe-tools--operate { - margin-right: 0.25rem; - margin-left: 0.75rem; -} - -.vxe-table-custom--checkbox-option:hover { - background: none !important; -} - -.vxe-toolbar { - padding: 0; -} - -.vxe-buttons--wrapper:not(:empty), -.vxe-tools--operate:not(:empty), -.vxe-tools--wrapper:not(:empty) { - padding: 0.6em 0; -} - -.vxe-tools--operate:not(:has(button)) { - margin-left: 0; -} diff --git a/apps/web-antd/src/adapter/vxe-table.ts b/apps/web-antd/src/adapter/vxe-table.ts index e28a6ae1d4bd75aca875787f28d820ca88b3bda5..96c85d1296e2e4c28dc5d789953fe31b027f7e43 100644 --- a/apps/web-antd/src/adapter/vxe-table.ts +++ b/apps/web-antd/src/adapter/vxe-table.ts @@ -6,7 +6,8 @@ import { h } from 'vue'; import { IconifyIcon } from '@vben/icons'; import { $te } from '@vben/locales'; import { - AsyncComponents, + AsyncVxeColumn, + AsyncVxeTable, createRequiredValidation, setupVbenVxeTable, useVbenVxeGrid, @@ -34,8 +35,6 @@ import { $t } from '#/locales'; import { useVbenForm } from './form'; -import '#/adapter/style.css'; - setupVbenVxeTable({ configVxeTable: (vxeUI) => { vxeUI.setConfig({ @@ -357,16 +356,8 @@ setupVbenVxeTable({ export { createRequiredValidation, useVbenVxeGrid }; -const [VxeTable, VxeColumn, VxeToolbar] = AsyncComponents; -export { VxeColumn, VxeTable, VxeToolbar }; +export const [VxeTable, VxeColumn] = [AsyncVxeTable, AsyncVxeColumn]; -// add by 芋艿:from https://github.com/vbenjs/vue-vben-admin/blob/main/playground/src/adapter/vxe-table.ts#L264-L270 -export type OnActionClickParams> = { - code: string; - row: T; -}; -export type OnActionClickFn> = ( - params: OnActionClickParams, -) => void; export * from '#/components/table-action'; + export type * from '@vben/plugins/vxe-table'; diff --git a/apps/web-antd/src/components/table-toolbar/index.ts b/apps/web-antd/src/components/table-toolbar/index.ts deleted file mode 100644 index 720e3224ba00d2cbecf673da357f08f7aa199e82..0000000000000000000000000000000000000000 --- a/apps/web-antd/src/components/table-toolbar/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as TableToolbar } from './table-toolbar.vue'; diff --git a/apps/web-antd/src/hooks/index.ts b/apps/web-antd/src/hooks/index.ts deleted file mode 100644 index 75f01b531e75ab322f1e04a72c64a7cab0d60dd4..0000000000000000000000000000000000000000 --- a/apps/web-antd/src/hooks/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './use-table-toolbar'; diff --git a/apps/web-antd/src/views/infra/demo/demo03/erp/data.ts b/apps/web-antd/src/views/infra/demo/demo03/erp/data.ts index 31ce2d45edc2c12e3b77ba6c0a6b75a79fcdec57..f8acac72a679acbc92241820e712bec8bc78a278 100644 --- a/apps/web-antd/src/views/infra/demo/demo03/erp/data.ts +++ b/apps/web-antd/src/views/infra/demo/demo03/erp/data.ts @@ -1,15 +1,12 @@ import type { VbenFormSchema } from '#/adapter/form'; -import type { OnActionClickFn, VxeTableGridOptions } from '#/adapter/vxe-table'; +import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { Demo03StudentApi } from '#/api/infra/demo/demo03/erp'; -import { useAccess } from '@vben/access'; import { DICT_TYPE } from '@vben/constants'; import { getDictOptions } from '@vben/hooks'; import { getRangePickerDefaultProps } from '#/utils'; -const { hasAccessByCodes } = useAccess(); - /** 新增/修改的表单 */ export function useFormSchema(): VbenFormSchema[] { return [ @@ -105,9 +102,7 @@ export function useGridFormSchema(): VbenFormSchema[] { } /** 列表的字段 */ -export function useGridColumns( - onActionClick?: OnActionClickFn, -): VxeTableGridOptions['columns'] { +export function useGridColumns(): VxeTableGridOptions['columns'] { return [ { type: 'checkbox', width: 40 }, { @@ -147,30 +142,10 @@ export function useGridColumns( formatter: 'formatDateTime', }, { - field: 'operation', title: '操作', - minWidth: 200, - align: 'center', + width: 280, fixed: 'right', - showOverflow: false, - cellRender: { - attrs: { - nameField: 'id', - nameTitle: '学生', - onClick: onActionClick, - }, - name: 'CellOperation', - options: [ - { - code: 'edit', - show: hasAccessByCodes(['infra:demo03-student:update']), - }, - { - code: 'delete', - show: hasAccessByCodes(['infra:demo03-student:delete']), - }, - ], - }, + slots: { default: 'actions' }, }, ]; } @@ -252,9 +227,7 @@ export function useDemo03CourseGridFormSchema(): VbenFormSchema[] { } /** 列表的字段 */ -export function useDemo03CourseGridColumns( - onActionClick?: OnActionClickFn, -): VxeTableGridOptions['columns'] { +export function useDemo03CourseGridColumns(): VxeTableGridOptions['columns'] { return [ { type: 'checkbox', width: 40 }, { @@ -284,31 +257,10 @@ export function useDemo03CourseGridColumns( formatter: 'formatDateTime', }, { - field: 'operation', title: '操作', - minWidth: 200, - align: 'center', + width: 280, fixed: 'right', - - showOverflow: false, - cellRender: { - attrs: { - nameField: 'id', - nameTitle: '学生课程', - onClick: onActionClick, - }, - name: 'CellOperation', - options: [ - { - code: 'edit', - show: hasAccessByCodes(['infra:demo03-student:update']), - }, - { - code: 'delete', - show: hasAccessByCodes(['infra:demo03-student:delete']), - }, - ], - }, + slots: { default: 'actions' }, }, ]; } @@ -390,9 +342,7 @@ export function useDemo03GradeGridFormSchema(): VbenFormSchema[] { } /** 列表的字段 */ -export function useDemo03GradeGridColumns( - onActionClick?: OnActionClickFn, -): VxeTableGridOptions['columns'] { +export function useDemo03GradeGridColumns(): VxeTableGridOptions['columns'] { return [ { type: 'checkbox', width: 40 }, { @@ -422,31 +372,10 @@ export function useDemo03GradeGridColumns( formatter: 'formatDateTime', }, { - field: 'operation', title: '操作', - minWidth: 200, - align: 'center', + width: 280, fixed: 'right', - - showOverflow: false, - cellRender: { - attrs: { - nameField: 'id', - nameTitle: '学生班级', - onClick: onActionClick, - }, - name: 'CellOperation', - options: [ - { - code: 'edit', - show: hasAccessByCodes(['infra:demo03-student:update']), - }, - { - code: 'delete', - show: hasAccessByCodes(['infra:demo03-student:delete']), - }, - ], - }, + slots: { default: 'actions' }, }, ]; } diff --git a/apps/web-antd/src/views/infra/demo/demo03/erp/index.vue b/apps/web-antd/src/views/infra/demo/demo03/erp/index.vue index 8700e95113e7155e866424bccb1a0eee81f8dbb7..973697494c8126f0f07118b1bc37ad7fa9925721 100644 --- a/apps/web-antd/src/views/infra/demo/demo03/erp/index.vue +++ b/apps/web-antd/src/views/infra/demo/demo03/erp/index.vue @@ -1,8 +1,5 @@