CSelect 是一个下拉选择组件,用于在表单中提供选项选择功能。组件支持两种选择模式:下拉选择模式和跳转页面选择模式。
import { CSelect } from '@components/forms/select';
itemRes
(Object,必填):表单数据资源对象,表单组件内部机制专用options
(Array,必填):选择菜单选项数组,每个选项应包含 name 和 value/id 属性placeholder
(String,可选):输入框占位提示文本readOnly
(Boolean,可选):只读模式,默认为 falseselectByPage
(String,可选):开启选择菜单跳转选择页面模式,值为 'on'onOpenSelectorPage
(Function,可选):页面跳转模式下,发起选择的回调函数<template>
<CForm :form="form">
<CFormItem name="gender" label="性别">
<CSelect :options="genderOptions" placeholder="请选择性别" />
</CFormItem>
</CForm>
</template>
<script>
import { CForm, CFormItem } from '@components/forms/form';
import { CSelect } from '@components/forms/select';
export default {
components: {
CForm,
CFormItem,
CSelect
},
data() {
return {
form: {
gender: ''
},
genderOptions: [
{ name: '男', value: 'male' },
{ name: '女', value: 'female' }
]
};
}
};
</script>
<template>
<CForm :form="form">
<CFormItem name="city" label="城市">
<CSelect
selectByPage="on"
:onOpenSelectorPage="handleOpenCitySelector"
placeholder="请选择城市"
/>
</CFormItem>
</CForm>
</template>
<script>
import { CForm, CFormItem } from '@components/forms/form';
import { CSelect } from '@components/forms/select';
export default {
components: {
CForm,
CFormItem,
CSelect
},
data() {
return {
form: {
city: ''
}
};
},
methods: {
handleOpenCitySelector() {
// 跳转到城市选择页面
this.$router.push({
path: '/pages/city-selector/index',
query: {
callback: 'onCitySelected'
}
});
// 在全局注册回调函数,用于接收选择结果
this.$app.onCitySelected = (city) => {
this.form.city = city.value;
};
}
}
};
</script>
<CFormItem name="gender" label="性别">
<CSelect
:options="genderOptions"
placeholder="请选择性别"
:readOnly="true"
/>
</CFormItem>
value
作为选项值:{ name: '选项名', value: '选项值' }
id
作为选项值:{ name: '选项名', id: '选项值' }
selectByPage="on"
)onOpenSelectorPage
回调函数来处理页面跳转逻辑selectByPage
的值