vueVue
2025-04-09 11:12阅读:38评论:0
vue 自定义组件v-model
自定义batchImportGoods.vue组件 组件使用
_PROTECTED0__
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<template><span> <el-button type="success" size="mini" @click="batchImport"> 批量导入 </el-button> <el-dialog title="批量导入" append-to-body :visible.sync="batchImportDialogVisible" :before-close="handleImportDialogClose"> <el-input type="textarea" :rows="6" placeholder="请输入商品条码,多个以英文逗号隔开" v-model="batchImportGoodsSn"> <!-- @change="changeGoodsSnFun"> --> </el-input> <span slot="footer" class="dialog-footer"> <el-button @click="handleImportDialogClose">取 消</el-button> <el-button type="primary" @click="batchImportFun">确 定</el-button> </span> </el-dialog></span></template> <script>export default { name: 'BatchImportGoods', components: { }, props: { value: { type: String } }, computed: { batchImportGoodsSn: { get() { return this.value; }, set(val) { //这里多用于子组件间没有input元素中,通过在computed属性中监听值变化事emit input事件 // $emit 方法可以触发当前实例上的事件,这里触发的事input事件,附加参数都会传给监听器回调 // input 事件在用户输入时触发,它是在元素值发生变化时立即触发 this.$emit('input', val); } } }, data() { return { batchImportDialogVisible: false, } }, methods: { handleImportDialogClose() { this.batchImportDialogVisible = false; }, batchImportFun() { }, batchImport() { this.batchImportDialogVisible = true; }, // changeGoodsSnFun(value) { // this.$emit('input', value); // } } } </script> _PROTECTED0__
1
2
<batchImportGoods v-model="batchImportGoodsSn"/>