vue编写messageBox,使用函数调用
2017-08-16 10:16
393 查看
效果如下:
调用:
代码:
messageBox.js
messageBox.vue:
main.js引用:
调用:
this.$messageBox({ text: '123123213', callback:action=>{ console.log(action);//confirm(确定)cancel(确定) } })
代码:
messageBox.js
import messageBoxVue from './messageBox.vue' export default { install(Vue){ let messageBox = Vue.extend(messageBoxVue); let $messageBox = new messageBox(); document.body.appendChild($messageBox.$mount().$el); Vue.prototype.$messageBox = (model => { model.show=true; $messageBox.model=model; }); } }
messageBox.vue:
<template> <div> <transition name="bounce"> <div v-show="model.show" class="messageBox"> <div class="messageBox_header"> <div class="messageBox_header_title"> 提示 </div> </div> <div class="messageBox_content"> {{model.text}} <div v-html="model.html"></div> </div> <div class="messageBox_btns"> <div class="messageBox_btns_default messageBox_btns_primary" @click="close('confirm')">确定</div> <div class="messageBox_btns_default " @click="close('cancel')">取消</div> </div> </div> </transition> <div v-show="model.show" class="messageBox_model"></div> </div> </template> <script> export default { name: 'messageBox', data(){ return { model: { show: '' } } }, methods: { close(state){ this.model.show = false; if(this.model.callback){ this.model.callback(state); } }, } } </script> <style scoped> .messageBox { position: fixed; z-index: 4; left: 50%; transform: translateX(-50%); width: 420px; border-radius: 4px; background-color: #fff; } .messageBox_header { padding: 20px 20px 0; } .messageBox_header_title { padding-left: 0; margin-bottom: 0; font-size: 16px; font-weight: 700; height: 18px; color: #333; } .messageBox_content { padding: 30px 20px; color: #48576a; font-size: 14px; } .messageBox_btns { padding: 10px 20px 15px; text-align: right; overflow: hidden; } .messageBox_btns_default { user-select: none; float: right; padding: 8px 15px; border: 1px solid #bfcbd9; border-radius: 4px; font-size: 14px; cursor: pointer; } .messageBox_btns_default:hover { border-color: #1d90e6; } .messageBox_btns_primary { color: #fff; background-color: #20a0ff; border-color: #20a0ff; margin-left: 10px; } .messageBox_btns_primary:hover { background: #4db3ff; border-color: #4db3ff; } .messageBox_model { position: fixed; left: 0; top: 0; width: 100%; height: 100%; opacity: .5; background: #000; } @keyframes show-messageBox { from { opacity: 0; } to { opacity: 1; } } .bounce-enter-active { animation: bounce-in .5s; } .bounce-leave-active { animation: bounce-in .1s reverse; } @keyframes bounce-in { from { opacity: 0; } to { opacity: 1; } } </style>
main.js引用:
import alert from './components/messageBox/messageBox.js' Vue.use(alert);
相关文章推荐
- 编写一个函数,此函数使用动态存储分配来产生一个字符串的副本。例如函数为strclone,则调用p=strclone(str),将会为一个新的字符串分配和str占内存大小相同的一个字符串,并将字符串st
- effective c++条款5,6(c++默默编写并调用哪些函数,若不想使用,就该明确拒绝)
- 使用ShellExW.dll中的ShellExecWait函数同步调用DOS命令
- 如何在Delphi中调用.Net编写的DLL中的函数(Function)、过程(Procedure)
- [原创]如何在Delphi中调用.Net编写的DLL中的函数(Function)、过程(Procedure)
- 使用.NET2.0编写COM组件供VB调用
- 使用PB调用API自动更新(非FTP模式)(五、复制函数F_CONNECT_COPYFILE)
- 第十四章——调用操作符重载和函数对象的使用
- dll的输出函数使用__stdcall调用约定后,客户端用GetProcAddress出现的问题!
- 使用C#编写可被桌面应用调用的ActiveX控件
- 图文并茂——使用xfire编写webservice,并通过C#调用
- 使用.NE平台调用服务访问非托管 DLL 中的函数
- C++默认编写并调用的函数
- java中如何使用JNI调用C++写的函数
- [原创]如何在Delphi中调用.Net编写的DLL中的函数(Function)、过程(Procedure)
- 使用Lua5.1互相调用函数
- 使用PB调用API自动更新(非FTP模式)(四、统计复制文件数量函数F_CONNECT_COPYCOUNT)
- 从 SQL 进行操作系统调用,DB2自定义函数的使用
- 使用Ajax在客户端调用服务端函数并传值
- 使用动态包导出函数的调用单元完整源代码