提交 cdf0a600 作者: vben

perf: perf table

上级 efbde0d5
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
inheritAttrs: false, inheritAttrs: false,
components: { Popconfirm, BasicButton }, components: { Popconfirm, BasicButton },
props: { props: {
size: propTypes.oneOf(['large', 'default', 'small']).def(),
enable: propTypes.bool.def(true), enable: propTypes.bool.def(true),
okText: propTypes.string, okText: propTypes.string,
cancelText: propTypes.string, cancelText: propTypes.string,
...@@ -31,7 +32,7 @@ ...@@ -31,7 +32,7 @@
return popValues; return popValues;
}); });
return () => { return () => {
const Button = h(BasicButton, omit(unref(attrs), 'icon'), extendSlots(slots)); const Button = h(BasicButton, unref(getBindValues), extendSlots(slots));
if (!props.enable) { if (!props.enable) {
return Button; return Button;
} }
......
...@@ -2,11 +2,9 @@ import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; ...@@ -2,11 +2,9 @@ import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
export { default as BasicTable } from './src/BasicTable.vue'; export { default as BasicTable } from './src/BasicTable.vue';
export { default as TableAction } from './src/components/TableAction.vue'; export { default as TableAction } from './src/components/TableAction.vue';
// export { default as TableImg } from './src/components/TableImg.vue';
export { default as EditTableHeaderIcon } from './src/components/EditTableHeaderIcon.vue'; export { default as EditTableHeaderIcon } from './src/components/EditTableHeaderIcon.vue';
export const TableImg = createAsyncComponent(() => import('./src/components/TableImg.vue')); export const TableImg = createAsyncComponent(() => import('./src/components/TableImg.vue'));
// export const TableAction = createAsyncComponent(() => import('./src/components/TableAction.vue'));
export * from './src/types/table'; export * from './src/types/table';
export * from './src/types/pagination'; export * from './src/types/pagination';
......
...@@ -5,7 +5,10 @@ ...@@ -5,7 +5,10 @@
<Icon :icon="action.icon" class="mr-1" v-if="action.icon" /> <Icon :icon="action.icon" class="mr-1" v-if="action.icon" />
{{ action.label }} {{ action.label }}
</PopConfirmButton> </PopConfirmButton>
<Divider type="vertical" v-if="divider && index < getActions.length" /> <Divider
type="vertical"
v-if="divider && index < getActions.length - (dropDownActions ? 0 : 1)"
/>
</template> </template>
<Dropdown :trigger="['hover']" :dropMenuList="getDropList" v-if="dropDownActions"> <Dropdown :trigger="['hover']" :dropMenuList="getDropList" v-if="dropDownActions">
<slot name="more" /> <slot name="more" />
...@@ -44,17 +47,31 @@ ...@@ -44,17 +47,31 @@
}, },
setup(props) { setup(props) {
const { prefixCls } = useDesign('basic-table-action'); const { prefixCls } = useDesign('basic-table-action');
let table = {}; let table: Partial<TableActionType> = {};
if (!props.outside) { if (!props.outside) {
table = useTableContext(); table = useTableContext();
} }
// const getSize = computed(() => {
// const size = table?.getSize?.();
// if (size === 'middle' || !size) {
// return;
// }
// if (size === 'default') {
// return 'large';
// }
// return size;
// });
const getActions = computed(() => { const getActions = computed(() => {
return (props.actions || []).map((action) => { return (props.actions || []).map((action) => {
const { popConfirm } = action; const { popConfirm } = action;
// const size = unref(getSize);
return { return {
type: 'link', type: 'link',
size: 'small', size: 'small',
// ...(size ? { size } : {}),
...action, ...action,
...(popConfirm || {}), ...(popConfirm || {}),
onConfirm: popConfirm?.confirm, onConfirm: popConfirm?.confirm,
......
...@@ -85,6 +85,18 @@ ...@@ -85,6 +85,18 @@
return unref(ruleMessage) && unref(ruleVisible); return unref(ruleMessage) && unref(ruleVisible);
}); });
// const getSize = computed(() => {
// const size = table?.getSize?.();
// if (size === 'middle' || !size) {
// return;
// }
// if (size === 'default') {
// return 'large';
// }
// return size;
// });
const getIsCheckComp = computed(() => { const getIsCheckComp = computed(() => {
const component = unref(getComponent); const component = unref(getComponent);
return ['Checkbox', 'Switch'].includes(component); return ['Checkbox', 'Switch'].includes(component);
...@@ -300,6 +312,7 @@ ...@@ -300,6 +312,7 @@
handleOptionsChange, handleOptionsChange,
getWrapperStyle, getWrapperStyle,
getRowEditable, getRowEditable,
// getSize,
}; };
}, },
}); });
......
...@@ -8,10 +8,10 @@ const { t } = useI18n(); ...@@ -8,10 +8,10 @@ const { t } = useI18n();
*/ */
export function createPlaceholderMessage(component: ComponentType) { export function createPlaceholderMessage(component: ComponentType) {
if (component.includes('Input')) { if (component.includes('Input')) {
return t('component.form.input'); return t('common.inputText');
} }
if (component.includes('Picker')) { if (component.includes('Picker')) {
return t('component.form.choose'); return t('common.chooseText');
} }
if ( if (
...@@ -20,7 +20,7 @@ export function createPlaceholderMessage(component: ComponentType) { ...@@ -20,7 +20,7 @@ export function createPlaceholderMessage(component: ComponentType) {
component.includes('Radio') || component.includes('Radio') ||
component.includes('Switch') component.includes('Switch')
) { ) {
return t('component.form.choose'); return t('common.chooseText');
} }
return ''; return '';
} }
...@@ -143,7 +143,7 @@ export function useTableScroll( ...@@ -143,7 +143,7 @@ export function useTableScroll(
const table = unref(tableElRef); const table = unref(tableElRef);
const tableWidth = table?.$el?.offsetWidth ?? 0; const tableWidth = table?.$el?.offsetWidth ?? 0;
return tableWidth > width ? tableWidth - 24 : width; return tableWidth > width ? '100%' : width;
}); });
const getScrollRef = computed(() => { const getScrollRef = computed(() => {
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
// //
.ant-table { .ant-table {
width: 100%; width: 100%;
overflow-x: auto; overflow-x: hidden;
border: none; border: none;
&-title { &-title {
...@@ -107,22 +107,11 @@ ...@@ -107,22 +107,11 @@
border: 1px solid @border-color !important; border: 1px solid @border-color !important;
} }
.ant-table td {
white-space: nowrap;
}
.ant-table-tbody > tr > td, .ant-table-tbody > tr > td,
.ant-table-tbody > tr > th, .ant-table-tbody > tr > th,
.ant-table-thead > tr > td, .ant-table-thead > tr > td,
.ant-table-thead > tr > th { .ant-table-thead > tr > th {
white-space: pre; white-space: nowrap;
}
.ant-table-tbody > tr > td > span,
.ant-table-tbody > tr > th > span,
.ant-table-thead > tr > td > span,
.ant-table-thead > tr > th > span {
display: block;
} }
.ant-table-row-cell-last { .ant-table-row-cell-last {
......
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
title: '工号', title: '工号',
dataIndex: 'no', dataIndex: 'no',
editRow: true, editRow: true,
// customRender: renderEditableRow({ dataIndex: 'no', placeholder: '请输入工号' }), // customRender: renderEditableRow({ dataIndex: 'no', placeholder: '请输入工号' }),
}, },
{ {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论