针对移动端的前端工作流(7)—WeUI样式的loading和dialog组件

有这个需求

因为移动端项目多用于微信端,所以我们用微信官方团队提供的WeUI样式简单封装了两个常用的插件,一个是loading组件,另一个是dialog组件

dialog组件

首先介绍的dialog组件,包含alertconfirm两种样式,下面是它的使用方法:

在html文件中引入对应的css和js

  1. <link rel="stylesheet" href="widget/dialog/dialog.css">
  2. <script src="widget/dialog/dialog.js"></script>

js文件中调用

  1. lnv.alert({
  2. title: '提示',
  3. content: 'content',
  4. alertBtnText: '确定',
  5. alertHandler: function(){
  6. // 点击确定按钮的回调
  7. }
  8. })

效果如下:

alert

js文件中调用

  1. lnv.confirm({
  2. title: '提示',
  3. content: 'content',
  4. confirmBtnText: '确定选择',
  5. confirmHandler: function(){
  6. // 点击确定按钮的回调
  7. },
  8. cancelBtnText: '取消',
  9. cancelHandler: function(){
  10. // 点击取消按钮的回调
  11. }
  12. })

效果如下:

confirm

loading组件

接下来介绍loading组件,具有pageloadingiconloading两种样式。

在html文件中引入对应的css和js

  1. <link rel="stylesheet" href="widget/loading/loading.css">
  2. <script src="widget/loading/loading.js"></script>

js文件中调用:

  1. $.ajax({
  2. url: url,
  3. type: 'POST',
  4. data: sendData,
  5. beforeSend: function () {
  6. //页面loading, 不能再进行其他操作,适合比如提交按钮
  7. lnv.pageloading();
  8. }
  9. })
  10. .done(function (res) {
  11. })
  12. .fail(function (jqXHR, textStatus, errorThrown) {
  13. })
  14. .always(function () {
  15. //在这里删除页面loading
  16. lnv.destroyloading();
  17. });

效果如下:

loading

js文件中调用:

  1. $.ajax({
  2. url: url,
  3. type: 'POST',
  4. data: sendData,
  5. beforeSend: function () {
  6. //按钮内调用,需要传入按钮的jquery对象
  7. lnv.iconloading("#submit_btn");
  8. }
  9. })
  10. .done(function (res) {
  11. })
  12. .fail(function (jqXHR, textStatus, errorThrown) {
  13. })
  14. .always(function () {
  15. //在这里删除按钮loading
  16. lnv.destroyloading("#submit_btn");
  17. });

效果如下:

loading2

util.js

除了两个组件之外,我们也提供了一个帮助项目开发的util.js。

关于util.js,我们提供了两个常用的功能函数:

1.检测手机号码是否符合格式(匹配规则是第一位为1,其余有10位)

  1. var phone = '189888888889';
  2. console.log(lnv.checkPhone(phone)) // false

2.取出网址参数

  1. // 假设当前的URL为 http://localhost:3000/index.html?phone=189888888889
  2. console.log(lnv.getQueryString(phone)) // 189888888889