ColorPicker
颜色选择器
Markup Schema 案例
<script lang="ts" setup>
import { createForm } from '@formily/core'
import { ColorPicker, FormItem, Submit } from '@silver-formily/element-plus'
import { createSchemaField, FormProvider } from '@silver-formily/vue'
const form = createForm()
const { SchemaField, SchemaStringField } = createSchemaField({
components: {
FormItem,
ColorPicker,
},
})
const predefineColors = [
'#409EFF',
'#67C23A',
'#E6A23C',
'#F56C6C',
'#909399',
]
async function log(value) {
console.log(value)
}
</script>
<template>
<FormProvider :form="form">
<SchemaField>
<SchemaStringField
name="color"
title="基础用法"
x-decorator="FormItem"
x-component="ColorPicker"
default="#409EFF"
/>
<SchemaStringField
name="color-alpha"
title="透明度"
x-decorator="FormItem"
x-component="ColorPicker"
:x-component-props="{
showAlpha: true,
}"
default="rgba(255, 69, 0, 0.68)"
/>
<SchemaStringField
name="color-predefine"
title="预设色值"
x-decorator="FormItem"
x-component="ColorPicker"
:x-component-props="{
predefine: predefineColors,
}"
default="#E02020"
/>
</SchemaField>
<Submit @submit="log">
提交
</Submit>
</FormProvider>
</template>基础用法:
透明度:
预设色值:
查看源码
JSON Schema 案例
<script lang="ts" setup>
import { createForm } from '@formily/core'
import { ColorPicker, FormItem, Submit } from '@silver-formily/element-plus'
import { createSchemaField, FormProvider } from '@silver-formily/vue'
const predefineColors = [
'#409EFF',
'#67C23A',
'#E6A23C',
'#F56C6C',
'#909399',
]
const schema = {
type: 'object',
properties: {
color: {
'type': 'string',
'title': '基础用法',
'x-decorator': 'FormItem',
'x-component': 'ColorPicker',
'default': '#409EFF',
},
colorAlpha: {
'type': 'string',
'title': '透明度',
'x-decorator': 'FormItem',
'x-component': 'ColorPicker',
'x-component-props': {
showAlpha: true,
},
'default': 'rgba(255, 69, 0, 0.68)',
},
colorPredefine: {
'type': 'string',
'title': '预设色值',
'x-decorator': 'FormItem',
'x-component': 'ColorPicker',
'x-component-props': {
predefine: predefineColors,
},
'default': '#E02020',
},
},
}
const form = createForm()
const { SchemaField } = createSchemaField({
components: {
FormItem,
ColorPicker,
},
})
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 { ColorPicker, FormItem, Submit } from '@silver-formily/element-plus'
import { Field, FormProvider } from '@silver-formily/vue'
const form = createForm()
const predefineColors = [
'#409EFF',
'#67C23A',
'#E6A23C',
'#F56C6C',
'#909399',
]
async function log(value) {
console.log(value)
}
</script>
<template>
<FormProvider :form="form">
<Field
name="color"
title="基础用法"
:decorator="[FormItem]"
:component="[ColorPicker]"
default="#409EFF"
/>
<Field
name="color-alpha"
title="透明度"
:decorator="[FormItem]"
:component="[
ColorPicker,
{
showAlpha: true,
},
]"
default="rgba(255, 69, 0, 0.68)"
/>
<Field
name="color-predefine"
title="预设色值"
:decorator="[FormItem]"
:component="[
ColorPicker,
{
predefine: predefineColors,
},
]"
default="#E02020"
/>
<Submit @submit="log">
提交
</Submit>
</FormProvider>
</template>基础用法:
透明度:
预设色值:
查看源码
API
参考 https://cn.element-plus.org/zh-CN/component/color-picker.html