1
0
mirror of synced 2026-04-03 14:38:37 +08:00

feat(editor,schema): 支持组件显示条件配置

This commit is contained in:
roymondchen
2023-08-04 15:52:55 +08:00
parent 0d3cd11ade
commit 35862078b3
12 changed files with 537 additions and 267 deletions

View File

@@ -0,0 +1,56 @@
<template>
<m-form-container
:config="{
...config,
...cascaderConfig,
}"
:model="model"
@change="onChangeHandler"
></m-form-container>
</template>
<script setup lang="ts">
import { computed, inject } from 'vue';
import { DataSourceFieldSelectConfig, Services } from '@editor/type';
const services = inject<Services>('services');
const emit = defineEmits(['change']);
const props = withDefaults(
defineProps<{
config: DataSourceFieldSelectConfig;
model: any;
lastValues?: any;
prop: string;
name: string;
disabled?: boolean;
size: 'small' | 'default' | 'large';
}>(),
{
disabled: false,
},
);
const dataSources = computed(() => services?.dataSourceService.get('dataSources'));
const cascaderConfig = {
type: 'cascader',
name: props.name,
options: () =>
dataSources.value
?.filter((ds) => ds.fields?.length)
?.map((ds) => ({
label: ds.title || ds.id,
value: ds.id,
children: ds.fields?.map((field) => ({
label: field.title,
value: field.name,
})),
})) || [],
};
const onChangeHandler = (value: any) => {
emit('change', value);
};
</script>