- 将多个组件的props从具体属性名改为统一的value属性 - 为所有组件添加v-model支持,替换原有的具体属性绑定 - 统一实现resetField方法,确保表单重置功能一致性 - 修正组件内部数据绑定逻辑,使用innerValue替代直接修改prop - 更新文档示例,将API参数说明改为value | v-model格式 - 为代码编辑器、富文本编辑器等组件添加input事件发射 - 调整文件上传组件的值类型定义,从Object改为String - 移除废弃的maxLength回调方法,优化编辑器性能 - 重构双向绑定逻辑,确保父子组件数据同步正确性 - 为树形选择器添加ref引用以便操作内部实例 - 调整组件演示页面的导入路径和标签页名称结构
78 lines
2.3 KiB
Vue
78 lines
2.3 KiB
Vue
<template>
|
||
<div>
|
||
<h4>何时使用</h4>
|
||
<ul class="description">
|
||
<li>选择多个用户信息</li>
|
||
<li>支持用户姓名、手机号、邮箱、用户名查询</li>
|
||
<li>在使用过程中有任何问题,咨询 @Odboy(前端)@Odboy(后端)</li>
|
||
</ul>
|
||
<h4>基础用法</h4>
|
||
<cute-user-select v-model="user" @change="onUserSelectChange" />
|
||
<h4>绑定表单</h4>
|
||
<el-form ref="form" :model="form" label-width="80px">
|
||
<el-form-item label="用户" prop="user">
|
||
<!-- v-model 本质上是 :value 和 @input 事件的语法糖 -->
|
||
<cute-user-select v-model="form.user" />
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button type="primary" @click="onSubmit('form')">提 交</el-button>
|
||
<el-button type="danger" @click="onReset('form')">重 置</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
<h4>API</h4>
|
||
<el-table :data="apiData">
|
||
<el-table-column prop="name" label="参数" width="220" />
|
||
<el-table-column prop="remark" label="说明" width="450" />
|
||
<el-table-column prop="type" label="类型" />
|
||
<el-table-column prop="defaultValue" label="默认值" />
|
||
<el-table-column prop="required" label="是否必填" />
|
||
</el-table>
|
||
</div>
|
||
</template>
|
||
<script>
|
||
import CuteUserSelect from '@/views/components/business/CuteUserSelect.vue'
|
||
|
||
export default {
|
||
name: 'CuteUserSelectDemo',
|
||
components: { CuteUserSelect },
|
||
data() {
|
||
return {
|
||
user: [],
|
||
form: {
|
||
user: []
|
||
},
|
||
apiData: [
|
||
{ name: 'value | v-model', remark: '绑定的值', type: 'array', defaultValue: '[]', required: '否' },
|
||
{ name: 'change', remark: '选中用户发生改变的时候触发的回调', type: '(value) => {}', defaultValue: '-', required: '否' }
|
||
]
|
||
}
|
||
},
|
||
methods: {
|
||
onUserSelectChange(data) {
|
||
console.log('onUserSelectChange', data)
|
||
},
|
||
onSubmit(formName) {
|
||
this.$refs[formName].validate((valid) => {
|
||
if (valid) {
|
||
console.log('onSubmit:form', this.form)
|
||
} else {
|
||
console.error('onSubmit:error submit!!')
|
||
return false
|
||
}
|
||
})
|
||
},
|
||
onReset(formName) {
|
||
this.$refs[formName].resetFields()
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
<style lang="scss" scoped>
|
||
ul {
|
||
padding-left: 20px;
|
||
}
|
||
.description > li{
|
||
font-size: 12px;
|
||
}
|
||
</style>
|