feat(table): editable component text align

使可编辑单元格显示的input中的文字对齐方式与列自身的align属性相匹配
This commit is contained in:
无木 2021-05-26 23:06:07 +08:00
parent d018363ddc
commit 8eaf575626
2 changed files with 41 additions and 19 deletions

View File

@ -13,6 +13,7 @@
:popoverVisible="getRuleVisible" :popoverVisible="getRuleVisible"
:rule="getRule" :rule="getRule"
:ruleMessage="ruleMessage" :ruleMessage="ruleMessage"
:class="getWrapperClass"
size="small" size="small"
ref="elRef" ref="elRef"
@change="handleChange" @change="handleChange"
@ -140,6 +141,11 @@
}; };
}); });
const getWrapperClass = computed(() => {
const { align = 'center' } = props.column;
return `edit-cell-align-${align}`;
});
const getRowEditable = computed(() => { const getRowEditable = computed(() => {
const { editable } = props.record || {}; const { editable } = props.record || {};
return !!editable; return !!editable;
@ -315,6 +321,7 @@
getComponentProps, getComponentProps,
handleOptionsChange, handleOptionsChange,
getWrapperStyle, getWrapperStyle,
getWrapperClass,
getRowEditable, getRowEditable,
getValues, getValues,
handleEnter, handleEnter,
@ -326,6 +333,30 @@
<style lang="less"> <style lang="less">
@prefix-cls: ~'@{namespace}-editable-cell'; @prefix-cls: ~'@{namespace}-editable-cell';
.edit-cell-align-left {
text-align: left;
input:not(.ant-calendar-picker-input, .ant-time-picker-input) {
text-align: left;
}
}
.edit-cell-align-center {
text-align: center;
input:not(.ant-calendar-picker-input, .ant-time-picker-input) {
text-align: center;
}
}
.edit-cell-align-right {
text-align: right;
input:not(.ant-calendar-picker-input, .ant-time-picker-input) {
text-align: right;
}
}
.edit-cell-rule-popover { .edit-cell-rule-popover {
.ant-popover-inner-content { .ant-popover-inner-content {
padding: 4px 8px; padding: 4px 8px;

View File

@ -28,33 +28,34 @@
editComponentProps: { editComponentProps: {
prefix: '$', prefix: '$',
}, },
width: 200, width: 150,
}, },
{ {
title: '默认输入状态', title: '默认输入状态',
dataIndex: 'name7', dataIndex: 'name7',
editRow: true, editRow: true,
width: 200, width: 150,
}, },
{ {
title: '输入框校验', title: '输入框校验',
dataIndex: 'name1', dataIndex: 'name1',
editRow: true, editRow: true,
align: 'left',
// //
editRule: true, editRule: true,
width: 200, width: 150,
}, },
{ {
title: '输入框函数校验', title: '输入框函数校验',
dataIndex: 'name2', dataIndex: 'name2',
editRow: true, editRow: true,
align: 'right',
editRule: async (text) => { editRule: async (text) => {
if (text === '2') { if (text === '2') {
return '不能输入该值'; return '不能输入该值';
} }
return ''; return '';
}, },
width: 200,
}, },
{ {
title: '数字输入框', title: '数字输入框',
@ -62,7 +63,7 @@
editRow: true, editRow: true,
editRule: true, editRule: true,
editComponent: 'InputNumber', editComponent: 'InputNumber',
width: 200, width: 150,
}, },
{ {
title: '下拉框', title: '下拉框',
@ -102,7 +103,7 @@
valueFormat: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD',
format: 'YYYY-MM-DD', format: 'YYYY-MM-DD',
}, },
width: 200, width: 150,
}, },
{ {
title: '时间选择', title: '时间选择',
@ -113,17 +114,7 @@
valueFormat: 'HH:mm', valueFormat: 'HH:mm',
format: 'HH:mm', format: 'HH:mm',
}, },
width: 200, width: 100,
},
{
title: '远程下拉',
dataIndex: 'name4',
editRow: true,
editComponent: 'ApiSelect',
editComponentProps: {
api: optionsListApi,
},
width: 200,
}, },
{ {
title: '勾选框', title: '勾选框',
@ -134,7 +125,7 @@
editValueMap: (value) => { editValueMap: (value) => {
return value ? '是' : '否'; return value ? '是' : '否';
}, },
width: 200, width: 100,
}, },
{ {
title: '开关', title: '开关',
@ -144,7 +135,7 @@
editValueMap: (value) => { editValueMap: (value) => {
return value ? '开' : '关'; return value ? '开' : '关';
}, },
width: 200, width: 100,
}, },
]; ];
export default defineComponent({ export default defineComponent({