Rate
评分
Markup Schema 案例
<script lang="ts" setup>
import { createForm } from '@formily/core'
import { FormItem, Rate, Submit } from '@silver-formily/element-plus'
import { createSchemaField, FormProvider } from '@silver-formily/vue'
const form = createForm()
const { SchemaField, SchemaNumberField } = createSchemaField({
components: {
FormItem,
Rate,
},
})
async function log(value) {
console.log(value)
}
</script>
<template>
<FormProvider :form="form">
<SchemaField>
<SchemaNumberField
name="rate"
title="评分"
x-decorator="FormItem"
x-component="Rate"
/>
<SchemaNumberField
name="rate-half"
title="半星评分"
x-decorator="FormItem"
x-component="Rate"
:x-component-props="{
allowHalf: true,
}"
/>
<SchemaNumberField
name="rate-text"
title="显示文字"
x-decorator="FormItem"
x-component="Rate"
:x-component-props="{
showText: true,
}"
/>
</SchemaField>
<Submit @submit="log">
提交
</Submit>
</FormProvider>
</template>评分:
半星评分:
显示文字:
查看源码
JSON Schema 案例
<script lang="ts" setup>
import { createForm } from '@formily/core'
import { FormItem, Rate, Submit } from '@silver-formily/element-plus'
import { createSchemaField, FormProvider } from '@silver-formily/vue'
const schema = {
type: 'object',
properties: {
rate: {
'type': 'number',
'title': '评分',
'x-decorator': 'FormItem',
'x-component': 'Rate',
},
rateHalf: {
'type': 'number',
'title': '半星评分',
'x-decorator': 'FormItem',
'x-component': 'Rate',
'x-component-props': {
allowHalf: true,
},
},
rateText: {
'type': 'number',
'title': '显示文字',
'x-decorator': 'FormItem',
'x-component': 'Rate',
'x-component-props': {
showText: true,
},
},
},
}
const form = createForm()
const { SchemaField } = createSchemaField({
components: {
FormItem,
Rate,
},
})
async function onSubmit(value) {
console.log(value)
}
</script>
<template>
<FormProvider :form="form">
<SchemaField :schema="schema" />
<Submit @submit="onSubmit">
提交
</Submit>
</FormProvider>
</template>评分:
半星评分:
显示文字:
查看源码
Template 案例
<script lang="ts" setup>
import { createForm } from '@formily/core'
import { FormItem, Rate, Submit } from '@silver-formily/element-plus'
import { Field, FormProvider } from '@silver-formily/vue'
const form = createForm()
async function log(value) {
console.log(value)
}
</script>
<template>
<FormProvider :form="form">
<Field
name="rate"
title="评分"
:decorator="[FormItem]"
:component="[Rate]"
/>
<Field
name="rate-half"
title="半星评分"
:decorator="[FormItem]"
:component="[Rate, { allowHalf: true }]"
/>
<Field
name="rate-text"
title="显示文字"
:decorator="[FormItem]"
:component="[Rate, { showText: true }]"
/>
<Submit @submit="log">
提交
</Submit>
</FormProvider>
</template>评分:
半星评分:
显示文字:
查看源码