原文地址:https://www.npmjs.com/package/vue-layer?activeTab=readme
install
npm install vue-layer
Quick Start
在程序入口添加
Vue
全局参数重置
Vue
调用
this
Attribut
type: 0
title: '信息'
content: ''
area: 'auto'
offset: 'auto'
icon: -1
btn: '确定'
time: 0
shade: true
yes: ''
cancel: ''
tips:
tipsMore: false
shadeClose: true
maxmin: true
scrollbar: true
resize: false //是否允许拉伸,默认是不允许
Method
layer
// options和yes可以省略, 如果您不愿意写options,则可以直接写确定按钮的函数,即yes
// content 可以为html
//yes如果是个function,这会自动添加参数layerid,
this
}
layer
// options,yes和cancel可以省略, 如果您不愿意写options,则可以直接写确定按钮的函数,即yes,或者覆盖默认的cancel方法。PS:yes和cancel方法不能互换
//content 可以为html
//yes,cancel如果是个function,这会自动添加参数layerid,
this
}
layer
// options ={time:3},3秒自动关闭
//options = {content:'请等待'} //可传入文字
layer
// options和end可以省略, 如果您不愿意写options,则可以直接写时间到期的回调即可,即end方法
// 默认msg的关闭时间为1.5秒
// content 可以为html
layer
//content 可以为html
//follow对css选择器,用来定位目标
layer
// data参数可认为是componentName的props,同时 该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接用来关闭该层
// options参数直接写到json里即可,比如title
layer
layer
layer
关于this.$layer.iframe
其实使用iframe层,除了操作方便外,主要的目的是隔离代码, 降低代码复杂度。而在vue中,组件就是功能块的基本单位了,所以vue-layer中并不存在iframe的DOM元素,这里用的都是组件。 这里的content有三个参数:
##### content: 此参数为组件对象, 比如
此处content就为editFrom即可。
##### parent:
此参数其实就是当前调用layer的vue对象, 即this即可。在editForm中可以直接使用, this.$parent来获取调用layer的vue对象,然后父子传值神马的,就很easy,当然也可以直接使用vuex,就不用this.$parent了
##### data: 此参数可认为是editForm的props,传递到iframe后是这个数据的深拷贝,改变数据不会影响来源数据,然后你懂得。
- 该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
- 该方法会自动添加一个key为lydata的值, 该值为data的浅拷贝, 当iframe要更改父窗口传递的数据的时候,可以直接使用lydata来修改,对于表单使用非常方便
结果即为:
methods:
this
}
iframe组件中
return
form:
}
props:
info:
type: Object
return {};
}
layerid:
type: String
default: ""
lydata:
type: Object
return {};
}
methods:
this
}
this
}
this
}
样式调整
该包的css都为vl-notice开头, 需要重写css样式,覆盖即可