原文地址: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樣式,覆蓋即可