—— 阿尔伯特·爱因斯坦

程序员の奇妙冒险

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"/>
 
评论(0)
暂无评论来抢沙发吧~