feat(api-component): api-component组件的options支持指定disabled值 (#6991)
This commit is contained in:
parent
c76db7d8d1
commit
9105d4d14a
@ -36,6 +36,8 @@ interface Props {
|
|||||||
childrenField?: string;
|
childrenField?: string;
|
||||||
/** value字段名 */
|
/** value字段名 */
|
||||||
valueField?: string;
|
valueField?: string;
|
||||||
|
/** disabled字段名 */
|
||||||
|
disabledField?: string;
|
||||||
/** 组件接收options数据的属性名 */
|
/** 组件接收options数据的属性名 */
|
||||||
optionsPropName?: string;
|
optionsPropName?: string;
|
||||||
/** 是否立即调用api */
|
/** 是否立即调用api */
|
||||||
@ -75,6 +77,7 @@ defineOptions({ name: 'ApiComponent', inheritAttrs: false });
|
|||||||
const props = withDefaults(defineProps<Props>(), {
|
const props = withDefaults(defineProps<Props>(), {
|
||||||
labelField: 'label',
|
labelField: 'label',
|
||||||
valueField: 'value',
|
valueField: 'value',
|
||||||
|
disabledField: 'disabled',
|
||||||
childrenField: '',
|
childrenField: '',
|
||||||
optionsPropName: 'options',
|
optionsPropName: 'options',
|
||||||
resultField: '',
|
resultField: '',
|
||||||
@ -108,17 +111,25 @@ const isFirstLoaded = ref(false);
|
|||||||
const hasPendingRequest = ref(false);
|
const hasPendingRequest = ref(false);
|
||||||
|
|
||||||
const getOptions = computed(() => {
|
const getOptions = computed(() => {
|
||||||
const { labelField, valueField, childrenField, numberToString } = props;
|
const {
|
||||||
|
labelField,
|
||||||
|
valueField,
|
||||||
|
disabledField,
|
||||||
|
childrenField,
|
||||||
|
numberToString,
|
||||||
|
} = props;
|
||||||
|
|
||||||
const refOptionsData = unref(refOptions);
|
const refOptionsData = unref(refOptions);
|
||||||
|
|
||||||
function transformData(data: OptionsItem[]): OptionsItem[] {
|
function transformData(data: OptionsItem[]): OptionsItem[] {
|
||||||
return data.map((item) => {
|
return data.map((item) => {
|
||||||
const value = get(item, valueField);
|
const value = get(item, valueField);
|
||||||
|
const disabled = get(item, disabledField);
|
||||||
return {
|
return {
|
||||||
...objectOmit(item, [labelField, valueField, childrenField]),
|
...objectOmit(item, [labelField, valueField, disabled, childrenField]),
|
||||||
label: get(item, labelField),
|
label: get(item, labelField),
|
||||||
value: numberToString ? `${value}` : value,
|
value: numberToString ? `${value}` : value,
|
||||||
|
disabled: get(item, disabledField),
|
||||||
...(childrenField && item[childrenField]
|
...(childrenField && item[childrenField]
|
||||||
? { children: transformData(item[childrenField]) }
|
? { children: transformData(item[childrenField]) }
|
||||||
: {}),
|
: {}),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user