perf: perf table
This commit is contained in:
parent
efbde0d57e
commit
cdf0a600e5
|
|
@ -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 @@
|
||||||
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';
|
||||||
|
|
||||||
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 @@
|
||||||
<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 @@
|
||||||
},
|
},
|
||||||
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 @@
|
||||||
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 @@
|
||||||
handleOptionsChange,
|
handleOptionsChange,
|
||||||
getWrapperStyle,
|
getWrapperStyle,
|
||||||
getRowEditable,
|
getRowEditable,
|
||||||
|
// getSize,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
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(
|
||||||
|
|
||||||
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 @@
|
||||||
//
|
//
|
||||||
.ant-table {
|
.ant-table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
overflow-x: auto;
|
overflow-x: hidden;
|
||||||
border: none;
|
border: none;
|
||||||
|
|
||||||
&-title {
|
&-title {
|
||||||
|
|
@ -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 @@
|
||||||
title: '工号',
|
title: '工号',
|
||||||
dataIndex: 'no',
|
dataIndex: 'no',
|
||||||
editRow: true,
|
editRow: true,
|
||||||
|
|
||||||
// customRender: renderEditableRow({ dataIndex: 'no', placeholder: '请输入工号' }),
|
// customRender: renderEditableRow({ dataIndex: 'no', placeholder: '请输入工号' }),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue