- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章vue+elementui通用弹窗的实现(新增+编辑)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文主要介绍了vue+elementui通用弹窗的实现(新增+编辑),分享给大家,具体如下:
组件模板 。
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
|
<el-dialog :title=
"title"
:visible.sync=
"dialogShow"
:close-on-click-modal=
"false"
>
<div class=
"ym-common-dialog"
:class=
"customClass"
>
<div v-
for
=
"(col,index) in cols"
>
<span><em v-
if
=
"!!col.isRequire"
>*</em>{{col.name}}</span>
<template v-
if
=
"col.type === 'text'"
>
<div>{{submitData[col.key]}}</div>
</template>
<template v-
if
=
"col.type === 'input'"
>
<input type=
"text"
v-model=
"submitData[col.key]"
:placeholder=
"'请输入' + col.name"
>
</template>
<template v-
if
=
"col.type === 'radio'"
>
<div class=
"flexX"
>
<el-radio v-
for
=
"radio in col.data"
v-model=
"submitData[col.key]"
:label=
"radio.label"
>{{radio.name}}</el-radio>
</div>
</template>
<template v-
if
=
"col.type === 'select'"
>
<el-select v-model=
"submitData[col.key]"
placeholder=
"请选择"
>
<el-option
v-
for
=
"option in col.data"
:key=
"option.value"
:label=
"option.label"
:value=
"option.value"
>
</el-option>
</el-select>
</template>
</div>
</div>
<span slot=
"footer"
class=
"dialog-footer"
>
<el-button @click=
"dialogShow = false"
>取 消</el-button>
<el-button type=
"primary"
@click=
"confirm"
>确 定</el-button>
</span>
</el-dialog>
|
弹窗的内容根据传入的数据去渲染,数据格式如下 。
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
|
cols: [{
name:
'输入框'
,
key:
'ccc'
,
// 提交时对应的字段
type:
'input'
,
// 类型
isRequire:
true
// 是否必填
}, {
name:
'单选框'
,
key:
'aaa'
,
type:
'radio'
,
data: [{
label:
'1'
,
name:
'长城'
}, {
label:
'2'
,
name:
'长安'
}],
isRequire:
true
}, {
name:
'下拉框'
,
key:
'bbb'
,
type:
'select'
,
data: [{
value:
'选项1'
,
label:
'黄金糕'
}, {
value:
'选项2'
,
label:
'双皮奶'
}],
isRequire:
true
}],
|
组件data和props 。
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
|
data() {
return
{
submitData: {},
// 提交数据集合
dialogShow:
false
}
},
props: {
// 弹窗显示/隐藏
dialogVisible: {
type: Number,
default
: 0
},
// 弹窗Title
title: String,
// 自定义样式
customClass: String,
// 数据列
cols: {
type: Array,
default
: () => []
},
// 编辑时传入初始值
data: {
type: Object,
default
: () => {}
}
},
|
组件数据的监听 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
watch: {
dialogVisible(val) {
if
(val > 0) {
this
.dialogShow =
true
}
},
data: {
handler(val) {
this
.submitData = val
},
immediate:
true
},
submitData: {
// 应对 切换单选框隐藏其他元素的问题
// 父组件监听到单选框的值变化时,修改cols的值,即可实现元素的隐藏与显示
handler() {
this
.$emit(
'change'
,
this
.submitData)
},
deep:
true
}
}
|
数据提交以及验证 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
confirm() {
// 验证必填项
let isMust =
this
.cols.filter(item => item.isRequire).map(item => item.key)
Object.keys(
this
.submitData).forEach(key => {
let index = isMust.indexOf(key)
if
((index > -1) &&
this
.submitData[key] !==
''
&& !!
this
.submitData[key]) {
isMust.splice(index, 1)
}
})
if
(isMust.length > 0) {
showDefaultTips(
'请注意必填项!'
,
''
, 3)
return
}
this
.$emit(
'complete'
,
this
.submitData)
this
.dialogShow =
false
}
|
代码在此 。
到此这篇关于vue+elementui通用弹窗的实现(新增+编辑)的文章就介绍到这了,更多相关vue elementui 弹窗内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://segmentfault.com/a/1190000038853581 。
最后此篇关于vue+elementui通用弹窗的实现(新增+编辑)的文章就讲到这里了,如果你想了解更多关于vue+elementui通用弹窗的实现(新增+编辑)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我在用户控件内有一个带有“边框”500x500 的弹出窗口...当用户单击按钮打开此弹出窗口时,我希望边框显示在应用程序的中心(水平/垂直)而不是用户控件。 我该怎么做? 最佳答案 您可以获取根视觉对
我生成的代码有什么问题?我试图让 UIPickerView 在点击文本字段时弹出,然后在做出选择后消失。文本字段应该显示之后选择的内容。 import UIKit class CreateAJob_V
我目前正在开发一个网站。 让我叙述一下我面临的问题: 当用户打开网站时,他们会在一个小弹出窗口中看到两个选项。 弹出窗口中的第一个选项将指向子域 1 弹出窗口中的第二个选项将指向子域 2 现在我的问题
JavaScript 有三种弹窗 Alert (只有确定按钮), Confirmation (确定,取消等按钮), Prompt (有输入对话框),而且弹出的窗口是不能通过前端工具对其进行定位的,这
我希望能够在弹出窗口外单击以使其消失。 此代码运行良好 - 在打开另一个弹出窗口时关闭一个弹出窗口,当然当您再次单击该按钮时它会消失。 var $visiblePopover; $('body').o
我想看看 stackoverflow 是否使用单独的插件来执行那些亮黄色的弹出窗口,上面写着“请考虑将此答案标记为已接受 或“请考虑添加评论以说明您为什么投了反对票” 这是为此使用了一个 jquery
以下样式定义以某种方式破坏了我的屏幕并使 R 类变为红色。看截图here和 here ?android:attr/ratingB
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 4 年前。 Improve this qu
有没有办法绕过下面的IE弹框: The webapge you are viewing is trying to close the window. Do you want to close this
我的 iOS 应用程序出现问题:当我触摸“购买”按钮购买 IAP 产品时,弹出窗口显示此消息: This In-App purchase has already been bought. It wil
我正在 Windows 上学习 OpenCV,我正在使用 Code::bloks。当我调用 imshow() 的函数时,它会显示一个弹出窗口,其中有图像。问题是我无法缩放此窗口,因此看不到像素值。 最
我使用以下前端代码导出 .csv 文档。 HTML {% csrf_token %} DOWNLOAD JS $('#export-link').click(function(e
我是一名优秀的程序员,十分优秀!