Vue.js组件(5):表单回显
1 文本框回显
此组件是简单的,只需要使用v-model绑定props的值即可:
1.1 父组件
// 子组件标签与传入的数据
<project-statistics :form="project"></project-statistics>
const project = ref({
id : 1,
name : '测试项目',
})
1.2 子组件
定义props接收父组件传递的参数,并使用v-model与表单进行绑定。
<template>
<div>
<el-form :model="form" label-width="80px">
<el-form-item label="项目ID">
<el-input v-model="form.id" disabled></el-input>
</el-form-item>
<el-form-item label="项目名称">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-form>
</div>
回显的数据:{{ form.name }}
</template>
<script setup>
defineProps({
form: {
id: Number,
name: String,
}
})
</script>
1.3 测试
数据可以回显到表单中并且可以根据表单的内容进行变动。
2 单选按钮回显
也相对简单,只需要绑定对应的value即可。
2.1 父组件
<project-statistics :form="project"></project-statistics>
const project = ref({
id : 1,
name : '测试项目',
status: 1,
})
2.2 子组件
页面显示的内容为label属性的值,value为绑定的值。
<template>
<div>
<el-form :model="form" label-width="80px">
<el-form-item label="状态">
<el-radio-group v-model="form.status">
<el-radio label="启用" :value="1"></el-radio>
<el-radio label="禁用" :value="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</div>
回显的数据:{{ form.status }}
</template>
<script setup>
defineProps({
form: {
status: Number
}
})
</script>
2.3 测试
3 多选框回显
因为是多选注意传入的参数为数组类型。
3.1 父组件
<project-statistics :form="project"></project-statistics>
const project = ref({
label: [1, 3, 4]
})
3.2 子组件
<template>
<div>
<el-form :model="form" label-width="80px">
<el-form-item label="标签">
<el-checkbox-group v-model="form.label">
<el-checkbox-button label="标签1" :value="1"></el-checkbox-button>
<el-checkbox-button label="标签2" :value="2"></el-checkbox-button>
<el-checkbox-button label="标签3" :value="3"></el-checkbox-button>
<el-checkbox-button label="标签4" :value="4"></el-checkbox-button>
<el-checkbox-button label="标签5" :value="5"></el-checkbox-button>
</el-checkbox-group>
</el-form-item>
</el-form>
</div>
回显的数据:{{ form.label }}
</template>
<script setup>
defineProps({
form: {
label: Array
}
})
</script>
3.3 测试
4 选择器回显
4.1 单选
比较简单,传入一个值即可。
4.1.1 父组件
<project-statistics :form="project"></project-statistics>
const project = ref({
audit: 3
})
4.1.2 子组件
<template>
<div>
<el-form :model="form" label-width="80px">
<el-form-item label="审核状态">
<el-select v-model="form.audit" placeholder="请选择">
<el-option label="待审核" :value="1"></el-option>
<el-option label="审核通过" :value="2"></el-option>
<el-option label="审核不通过" :value="3"></el-option>
<el-option label="已删除" :value="4"></el-option>
</el-select>
</el-form-item>
</el-form>
</div>
回显的数据:{{ form.audit }}
</template>
<script setup>
defineProps({
form: {
audit: Number
}
})
</script>
4.1.3 测试
4.2 多选
4.2.1 父组件
<project-statistics :form="project"></project-statistics>
const project = ref({
label: [2,3,5]
})
4.2.2 子组件
<template>
<div>
<el-form :model="form" label-width="80px">
<el-form-item label="标签">
<el-select v-model="form.label" placeholder="请选择" multiple>
<el-option label="标签1" :value="1"></el-option>
<el-option label="标签2" :value="2"></el-option>
<el-option label="标签3" :value="3"></el-option>
<el-option label="标签4" :value="4"></el-option>
<el-option label="标签5" :value="5"></el-option>
</el-select>
</el-form-item>
</el-form>
</div>
回显的数据:{{ form.label }}
</template>
<script setup>
defineProps({
form: {
label: Array
}
})
</script>
4.2.3 测试
4.3 级联
传入的参数为数组结构,对应级联的value值。
4.3.1 父组件
<project-statistics :form="project"></project-statistics>
const project = ref({
area: [1,101,10101]
})
4.3.2 子组件
<template>
<div>
<el-form :model="form" label-width="80px">
<el-form-item label="标签">
<el-cascader
v-model="form.area"
:options="areaList"
:props="areaProps"
/>
</el-form-item>
</el-form>
</div>
回显的数据:{{ form.area }}
</template>
<script setup>
import {ref} from "vue";
defineProps({
form: {
area: Array
}
})
// 级联数据
const areaList = ref([{
name: '北京市',
code: 1,
children: [
{
name: '北京市',
code: 101,
children: [
{
name: '丰台区',
code: 10101,
children: []
}
]
}
]
},
{
name: '天津市',
code: 2,
children: [
{
name: '天津市',
code: 201,
children: [
{
name: '虹桥区',
code: 20101,
children: []
}
]
}
]
}
])
// 属性映射
const areaProps = ref({
value: 'code',
label: 'name',
children: 'children'
});
</script>
4.3.3 测试
5 日期时间
5.1 日期
5.1.1 父组件
<project-statistics :form="project"></project-statistics>
const project = ref({
date: '2024-01-01',
})
5.1.2 子组件
<template>
<div>
<el-form :model="form" label-width="80px">
<el-form-item label="日期">
<el-date-picker
v-model="form.date"
type="date"
placeholder="Pick a day"
:size="'default'"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-form>
</div>
回显的数据:{{ form.date }}
</template>
<script setup>
defineProps({
form: {
date: String
}
})
5.1.3 测试
5.2 日期时间
5.2.1 父组件
传入规范格式的日期时间即可回显。
<project-statistics :form="project"></project-statistics>
const project = ref({
date: '2024-01-01T12:00:00',
})
5.2.2 子组件
<template>
<div>
<el-form :model="form" label-width="80px">
<el-form-item label="日期">
<el-date-picker
v-model="form.date"
type="datetime"
placeholder="Pick a day"
:size="'default'"
value-format="YYYY-MM-DDTHH:mm:ss"
/>
</el-form-item>
</el-form>
</div>
回显的数据:{{ form.date }}
</template>
<script setup>
defineProps({
form: {
date: String
}
})
</script>
5.2.3 测试
原文地址:https://blog.csdn.net/qq_40298351/article/details/144050993
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!