|
<template>
<div class="form-demo">
<h4>搜索组件</h4>
<common-search
:search-params="forms2"
:form-values="formValues2"
@do-search="dosearch"
@clear-search="clearSearch"
></common-search>
<h4>表单组件</h4>
<el-row :gutter="20">
<el-col :span="12">
<common-form :form-values="formValues" :forms="forms1"></common-form>
</el-col>
<el-col :span="12">
<!-- <common-form :forms="forms2"></common-form> -->
<common-radio-group
v-model="radio"
:options="options"
></common-radio-group>
</el-col>
</el-row>
</div>
</template>
<script setup lang="ts">
import { ref, watch } from 'vue';
// input/textarea/select/input-num/radio/cascader/switch/check-group
const forms1 = ref<any>([
{ label: '姓名', name: 'name', type: 'input', value: '' },
{ label: '年龄', name: 'age', type: 'input-num', value: '' },
{
label: '性别',
name: 'sex',
type: 'select',
value: 'man',
attrs: {
options: [
{ label: '男', value: 'man' },
{ label: '女', value: 'woman' }
]
}
},
{
label: '爱好',
name: 'like',
type: 'cascader',
attrs: {
options: [
{
value: 'guide',
label: 'Guide',
children: [{ value: 'guide', label: 'Guide' }]
}
]
}
},
{
label: '婚否',
name: 'marray',
type: 'switch',
value: true,
attrs: {
'active-text': '是',
'inactive-text': '否'
}
},
{
label: '学历',
name: 'record',
type: 'radio-group',
attrs: {
options: [
{ label: '小学', value: '1' },
{ label: '初中', value: '2' },
{ label: '高中', value: '3' },
{ label: '大学', value: '4' },
{ label: '研究生', value: '5' }
]
}
},
{
label: '兴趣',
name: 'xq',
type: 'check-group',
attrs: {
options: [
{ label: '篮球', value: '1' },
{ label: '足球', value: '2' },
{ label: '乒乓球', value: '3' },
{ label: '羽毛球', value: '4' }
]
}
},
{ label: '出生年月', name: 'birthday', type: 'date-picker' },
{ label: '描述', name: 'desc', type: 'textarea' }
]);
const radio = ref('');
const options = ref<any>([
{ label: '小学', value: '1' },
{ label: '初中', value: '2' },
{ label: '高中', value: '3' },
{ label: '大学', value: '4' },
{ label: '研究生', value: '5' }
]);
const formValues = ref<any>({
name: '',
age: '',
sex: 'man',
like: '',
marray: '',
record: '',
xq: [],
birthday: '',
desc: ''
});
const formValues2 = ref<any>({
name: '',
age: ''
});
const forms2 = ref<any>([
{ label: '姓名', name: 'name', type: 'input', value: '' },
{ label: '年龄', name: 'age', type: 'input-num', value: '' }
]);
function dosearch(val: any) {
console.log(val);
}
function clearSearch(val: any) {
console.log(val);
}
watch(
formValues.value,
(val) => {
console.log(val);
},
{ deep: true }
);
</script>
<style scoped lang="scss">
.form-demo {
padding: 20px;
background: #fff;
}
</style>
|