Z1hgq 7 лет назад
Родитель
Сommit
9aaec053d5
100 измененных файлов с 2569 добавлено и 60 удалено
  1. 0 55
      Furniture/README.md
  2. 137 2
      Furniture/app.js
  3. 45 3
      Furniture/app.json
  4. 10 0
      Furniture/app.wxss
  5. 37 0
      Furniture/bower_components/zanui-weapp/.bower.json
  6. 26 0
      Furniture/bower_components/zanui-weapp/bower.json
  7. 42 0
      Furniture/bower_components/zanui-weapp/dist/actionsheet/index.js
  8. 6 0
      Furniture/bower_components/zanui-weapp/dist/actionsheet/index.json
  9. 39 0
      Furniture/bower_components/zanui-weapp/dist/actionsheet/index.wxml
  10. 1 0
      Furniture/bower_components/zanui-weapp/dist/actionsheet/index.wxss
  11. 27 0
      Furniture/bower_components/zanui-weapp/dist/badge/index.js
  12. 3 0
      Furniture/bower_components/zanui-weapp/dist/badge/index.json
  13. 8 0
      Furniture/bower_components/zanui-weapp/dist/badge/index.wxml
  14. 1 0
      Furniture/bower_components/zanui-weapp/dist/badge/index.wxss
  15. 30 0
      Furniture/bower_components/zanui-weapp/dist/btn-group/index.js
  16. 3 0
      Furniture/bower_components/zanui-weapp/dist/btn-group/index.json
  17. 3 0
      Furniture/bower_components/zanui-weapp/dist/btn-group/index.wxml
  18. 3 0
      Furniture/bower_components/zanui-weapp/dist/btn-group/index.wxss
  19. 61 0
      Furniture/bower_components/zanui-weapp/dist/btn/index.js
  20. 3 0
      Furniture/bower_components/zanui-weapp/dist/btn/index.json
  21. 24 0
      Furniture/bower_components/zanui-weapp/dist/btn/index.wxml
  22. 0 0
      Furniture/bower_components/zanui-weapp/dist/btn/index.wxss
  23. 74 0
      Furniture/bower_components/zanui-weapp/dist/btn/native-button-behaviors.js
  24. 31 0
      Furniture/bower_components/zanui-weapp/dist/capsule/index.js
  25. 3 0
      Furniture/bower_components/zanui-weapp/dist/capsule/index.json
  26. 17 0
      Furniture/bower_components/zanui-weapp/dist/capsule/index.wxml
  27. 1 0
      Furniture/bower_components/zanui-weapp/dist/capsule/index.wxss
  28. 26 0
      Furniture/bower_components/zanui-weapp/dist/card/index.js
  29. 3 0
      Furniture/bower_components/zanui-weapp/dist/card/index.json
  30. 33 0
      Furniture/bower_components/zanui-weapp/dist/card/index.wxml
  31. 0 0
      Furniture/bower_components/zanui-weapp/dist/card/index.wxss
  32. 75 0
      Furniture/bower_components/zanui-weapp/dist/cell-group/index.js
  33. 3 0
      Furniture/bower_components/zanui-weapp/dist/cell-group/index.json
  34. 3 0
      Furniture/bower_components/zanui-weapp/dist/cell-group/index.wxml
  35. 1 0
      Furniture/bower_components/zanui-weapp/dist/cell-group/index.wxss
  36. 109 0
      Furniture/bower_components/zanui-weapp/dist/cell/index.js
  37. 3 0
      Furniture/bower_components/zanui-weapp/dist/cell/index.json
  38. 25 0
      Furniture/bower_components/zanui-weapp/dist/cell/index.wxml
  39. 1 0
      Furniture/bower_components/zanui-weapp/dist/cell/index.wxss
  40. 29 0
      Furniture/bower_components/zanui-weapp/dist/checkbox-group/index.js
  41. 3 0
      Furniture/bower_components/zanui-weapp/dist/checkbox-group/index.json
  42. 3 0
      Furniture/bower_components/zanui-weapp/dist/checkbox-group/index.wxml
  43. 1 0
      Furniture/bower_components/zanui-weapp/dist/checkbox-group/index.wxss
  44. 44 0
      Furniture/bower_components/zanui-weapp/dist/checkbox/index.js
  45. 6 0
      Furniture/bower_components/zanui-weapp/dist/checkbox/index.json
  46. 13 0
      Furniture/bower_components/zanui-weapp/dist/checkbox/index.wxml
  47. 1 0
      Furniture/bower_components/zanui-weapp/dist/checkbox/index.wxss
  48. 22 0
      Furniture/bower_components/zanui-weapp/dist/col/index.js
  49. 3 0
      Furniture/bower_components/zanui-weapp/dist/col/index.json
  50. 1 0
      Furniture/bower_components/zanui-weapp/dist/col/index.wxml
  51. 1 0
      Furniture/bower_components/zanui-weapp/dist/col/index.wxss
  52. 1 0
      Furniture/bower_components/zanui-weapp/dist/color/index.wxss
  53. 102 0
      Furniture/bower_components/zanui-weapp/dist/common/helper.js
  54. 31 0
      Furniture/bower_components/zanui-weapp/dist/common/pop-manager/index.js
  55. 3 0
      Furniture/bower_components/zanui-weapp/dist/common/pop-manager/index.json
  56. 12 0
      Furniture/bower_components/zanui-weapp/dist/common/pop-manager/index.wxml
  57. 1 0
      Furniture/bower_components/zanui-weapp/dist/common/pop-manager/index.wxss
  58. 35 0
      Furniture/bower_components/zanui-weapp/dist/datetime-picker/date-picker-view.wxml
  59. 105 0
      Furniture/bower_components/zanui-weapp/dist/datetime-picker/date-picker.js
  60. 216 0
      Furniture/bower_components/zanui-weapp/dist/datetime-picker/index.js
  61. 6 0
      Furniture/bower_components/zanui-weapp/dist/datetime-picker/index.json
  62. 18 0
      Furniture/bower_components/zanui-weapp/dist/datetime-picker/index.wxml
  63. 53 0
      Furniture/bower_components/zanui-weapp/dist/datetime-picker/index.wxss
  64. 6 0
      Furniture/bower_components/zanui-weapp/dist/datetime-picker/picker-view-column.wxml
  65. 124 0
      Furniture/bower_components/zanui-weapp/dist/datetime-picker/utils.js
  66. 26 0
      Furniture/bower_components/zanui-weapp/dist/dialog/data.js
  67. 104 0
      Furniture/bower_components/zanui-weapp/dist/dialog/dialog.js
  68. 133 0
      Furniture/bower_components/zanui-weapp/dist/dialog/index.js
  69. 7 0
      Furniture/bower_components/zanui-weapp/dist/dialog/index.json
  70. 40 0
      Furniture/bower_components/zanui-weapp/dist/dialog/index.wxml
  71. 1 0
      Furniture/bower_components/zanui-weapp/dist/dialog/index.wxss
  72. 77 0
      Furniture/bower_components/zanui-weapp/dist/field/index.js
  73. 6 0
      Furniture/bower_components/zanui-weapp/dist/field/index.json
  74. 39 0
      Furniture/bower_components/zanui-weapp/dist/field/index.wxml
  75. 1 0
      Furniture/bower_components/zanui-weapp/dist/field/index.wxss
  76. 0 0
      Furniture/bower_components/zanui-weapp/dist/helper/index.wxss
  77. 10 0
      Furniture/bower_components/zanui-weapp/dist/icon/index.js
  78. 3 0
      Furniture/bower_components/zanui-weapp/dist/icon/index.json
  79. 1 0
      Furniture/bower_components/zanui-weapp/dist/icon/index.wxml
  80. 0 0
      Furniture/bower_components/zanui-weapp/dist/icon/index.wxss
  81. 5 0
      Furniture/bower_components/zanui-weapp/dist/index.js
  82. 0 0
      Furniture/bower_components/zanui-weapp/dist/index.wxss
  83. 13 0
      Furniture/bower_components/zanui-weapp/dist/loading/index.js
  84. 3 0
      Furniture/bower_components/zanui-weapp/dist/loading/index.json
  85. 18 0
      Furniture/bower_components/zanui-weapp/dist/loading/index.wxml
  86. 0 0
      Furniture/bower_components/zanui-weapp/dist/loading/index.wxss
  87. 14 0
      Furniture/bower_components/zanui-weapp/dist/loadmore/index.js
  88. 3 0
      Furniture/bower_components/zanui-weapp/dist/loadmore/index.json
  89. 12 0
      Furniture/bower_components/zanui-weapp/dist/loadmore/index.wxml
  90. 0 0
      Furniture/bower_components/zanui-weapp/dist/loadmore/index.wxss
  91. 176 0
      Furniture/bower_components/zanui-weapp/dist/noticebar/index.js
  92. 6 0
      Furniture/bower_components/zanui-weapp/dist/noticebar/index.json
  93. 31 0
      Furniture/bower_components/zanui-weapp/dist/noticebar/index.wxml
  94. 1 0
      Furniture/bower_components/zanui-weapp/dist/noticebar/index.wxss
  95. 25 0
      Furniture/bower_components/zanui-weapp/dist/panel/index.js
  96. 3 0
      Furniture/bower_components/zanui-weapp/dist/panel/index.json
  97. 10 0
      Furniture/bower_components/zanui-weapp/dist/panel/index.wxml
  98. 1 0
      Furniture/bower_components/zanui-weapp/dist/panel/index.wxss
  99. 37 0
      Furniture/bower_components/zanui-weapp/dist/popup/index.js
  100. 6 0
      Furniture/bower_components/zanui-weapp/dist/popup/index.json

+ 0 - 55
Furniture/README.md

xqd
@@ -1,55 +0,0 @@
-## 存在的问题
-
-### 主页面
-
-1.程序背景色需要绘制成白色
-
-2.右侧功能栏的品类个数很多时,最下方的按钮可能显示不了,比如现在在模拟器上把手机选成iPhone5,床就看不见了
-
-3.报价的时候点了帮助没地方关闭,并且要是在帮助界面点到了报价按钮,依旧会弹出报价单。
-
-4.搜索的时候有404,搜索出来的结果也应该是可以报价的
-
-5.搜索出来的结果点不进详情界面,报错点击进入详情控制区域没定义
-
-6.一页显示了6个但是没翻页按钮
-
-7.风格品类按钮没作用,品类按钮需要适当调整位置,被挡住了
-
-###详情界面
-
-1.上一个下一个按钮点一次触发了两次
-
-2.点击屏幕中间的时候隐藏所有按钮,我之前做的时候这个功能的点击区域没有包括有其他功能的按钮的点击区域,就是图片中心没东西的那一块。现在好像是整个屏幕点击都有这个功能
-
-3.隐藏按钮的时候出发了下一个功能 
-
-4.尺寸安装图点进去了关闭不掉
-
-5.点分享、详情购买和联系商家会触发下一个功能
-
-6.详情购买和联系商家点击之后闪一下就没了,直接跳到下一个商品了
-
-### 解决方案
-
-主要是选择好点击区域和设置点击状态,在详情界面比如屏幕下方的五个按键就只对应5个功能 ,其他功能把这5个按键所在的区域排除在外。点击某个按键之后进入某个状态,在此状态下,指定的操作有效,其他操作无效,这样可以避免像点击了帮助之后任然可以报价的情况
-
-##源码目录说明
-
-```javascript
-./js
-|——draw
-|  |——base.js. 						//绘制两边的目录栏背景和下一页按钮
-|  |——FirstLevelDirectory.js		//绘制顶级目录
-|  |——SecondLevelDirectory.js  	    //绘制子目录
-|  |——content.js					//绘制商品列表
-|  |——details.js					//绘制商品详情
-|  |——price.js                      //价格设置界面绘制
-|——lib
-|  |——symbol.js                     // ES6 Symbol简易兼容
-|  |——weapp-adapter.js              // 小游戏适配器
-|——main.js							//绘制入口
-```
-
-
-

+ 137 - 2
Furniture/app.js

xqd xqd
@@ -2,6 +2,37 @@ App({
   onLaunch: function () {
     var that = this
     console.log('App Launch')
+    // 展示本地存储能力
+    var logs = wx.getStorageSync('logs') || []
+    logs.unshift(Date.now())
+    wx.setStorageSync('logs', logs)
+
+    // 登录
+    wx.login({
+      success: res => {
+        // 发送 res.code 到后台换取 openId, sessionKey, unionId
+      }
+    })
+    // 获取用户信息
+    wx.getSetting({
+      success: res => {
+        if (res.authSetting['scope.userInfo']) {
+          // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
+          wx.getUserInfo({
+            success: res => {
+              // 可以将 res 发送给后台解码出 unionId
+              this.globalData.userInfo = res.userInfo
+
+              // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
+              // 所以此处加入 callback 以防止这种情况
+              if (this.userInfoReadyCallback) {
+                this.userInfoReadyCallback(res)
+              }
+            }
+          })
+        }
+      }
+    })
   },
   onShow: function () {
     console.log('App Show')
@@ -11,11 +42,115 @@ App({
   },
 
   login: require("utils/login.js"),
-  request: require("utils/request.js"),
+  request1: require("utils/request.js"),
+  request: function (object) {
+    var token = wx.getStorageSync("token");
+    var user = wx.getStorageSync("user");
+    if (token) {
+      if (!object.data) {
+        object.data = {};
+      }
+      // object.data.token = token;
+    };
+    wx.request({
+      url: object.url,
+      header: object.header || {
+        // 'content-type': 'application/x-www-form-urlencoded',
+        'Accept': 'application/json',
+        'Authorization': 'Bearer ' + token
+      },
+      data: object.data || {},
+      method: object.method || "GET",
+      dataType: object.dataType || "json",
+      success: function (res) {
+        if (res.data.status_code == 401) {
+          getApp().login();
+        } else {
+          if (object.success)
+            object.success(res);
+        };
+      },
+      fail: function (res) {
+        if (object.fail)
+          object.fail(res);
+      },
+      complete: function (res) {
+        if (object.complete)
+          object.complete(res);
+      }
+    });
+  },
+  login: function () {
+    // wx.showLoading({
+    //   title: "正在登录",
+    //   mask: true,
+    // });
+    wx.login({
+      success: function (res) {
+        // wx.hideLoading();
+        if (res.code) {
+          var code = res.code;
+          wx.getUserInfo({
+            success: function (res) {
+              //console.log(res);
+              getApp().request({
+                url: server + "/api/auth/login",
+                method: "post",
+                data: {
+                  code: code,
+                  nickname: res.userInfo.nickName,
+                  avatar: res.userInfo.avatarUrl
+                },
+                success: function (res) {
+                  // wx.hideLoading();
+                  if (res.data.status_code == 0) {
+                    wx.setStorageSync("token", res.data.data.token);
+                    wx.setStorageSync("user", {
+                      nickname: res.data.data.user.nickname,
+                      avatar: res.data.data.user.headimgurl,
+                    });
+                  } else {
+                    // wx.showToast({
+                    //   title: res.msg
+                    // });
+                  }
+                },
+                fail: function (res) {
+
+                }
+              });
+            },
+            fail: function (res) {
+              // wx.hideLoading();
+              wx.showModal({
+                title: '用户未授权',
+                content: '如需正常使用功能,请按确定并在授权管理中选中“用户信息”,然后点按确定。最后再重新进入小程序即可正常使用。',
+                success: function (res) {
+                  if (res.confirm) {
+                    wx.openSetting({
+                      success: function success(res) {
+                        console.log('openSetting success', res.authSetting);
+                      }
+                    });
+                  }
+                }
+              })
+            }
+          });
+        } else {
+          //console.log(res);
+        }
+      },
+      fail: function (res) {
+
+      }
+    });
+  },
   utils: require("utils/utils.js"),
   
   globalData: {
     hasLogin: false,
-    store_id: 1
+    store_id: 1,
+    userInfo: null
   }
 });

+ 45 - 3
Furniture/app.json

xqd xqd
@@ -6,8 +6,23 @@
     "page/contact/contact",
     "page/homePage/detail/detail",
     "page/homePage/detail/conment/conment",
-    "page/login/login"
-   
+    "page/login/login",
+    "pages/index/index",
+    "pages/logs/guanggao",
+    "pages/manager/datacount",
+    "pages/manager/thedata/shouhou",
+    "pages/manager/thedata/pingjia",
+    "pages/manager/manage",
+    "pages/manager/mana-detail",
+    "pages/manager/thedata/vorder",
+    "pages/packing/packing",
+    "pages/make/make",
+    "pages/make/make-detail",
+    "pages/infor/assess",
+    "pages/infor/details",
+    "pages/infor/infor",
+    "pages/packing/packing-detail",
+    "pages/infor/detail_head"
   ],
   "window": {
     "navigationBarTextStyle": "black",
@@ -21,5 +36,32 @@
     "uploadFile": 10000,
     "downloadFile": 10000
   },
-  "debug": true
+  "debug": true,
+  "usingComponents": {
+    "zan-icon": "bower_components/zanui-weapp/dist/icon/index",
+    "zan-button": "bower_components/zanui-weapp/dist/btn/index",
+    "zan-button-group": "bower_components/zanui-weapp/dist/btn-group/index",
+    "zan-loading": "bower_components/zanui-weapp/dist/loading/index",
+    "zan-row": "bower_components/zanui-weapp/dist/row/index",
+    "zan-col": "bower_components/zanui-weapp/dist/col/index",
+    "zan-cell": "bower_components/zanui-weapp/dist/cell/index",
+    "zan-cell-group": "bower_components/zanui-weapp/dist/cell-group/index",
+    "zan-card": "bower_components/zanui-weapp/dist/card/index",
+    "zan-field": "bower_components/zanui-weapp/dist/field/index",
+    "zan-switch": "packages/switch/index",
+    "zan-select": "packages/select/index",
+    "zan-stepper": "bower_components/zanui-weapp/dist/stepper/index",
+    "zan-tag": "bower_components/zanui-weapp/dist/tag/index",
+    "zan-badge": "bower_components/zanui-weapp/dist/badge/index",
+    "zan-capsule": "packages/capsule/index",
+    "zan-noticebar": "bower_components/zanui-weapp/dist/noticebar/index",
+    "zan-steps": "bower_components/zanui-weapp/dist/steps/index",
+    "zan-actionsheet": "bower_components/zanui-weapp/dist/actionsheet/index",
+    "zan-date-picker": "bower_components/zanui-weapp/dist/datetime-picker/index",
+    "zan-dialog": "bower_components/zanui-weapp/dist/dialog/index",
+    "zan-popup": "bower_components/zanui-weapp/dist/popup/index",
+    "zan-tab": "bower_components/zanui-weapp/dist/tab/index",
+    "zan-toast": "bower_components/zanui-weapp/dist/toast/index",
+    "zan-toptips": "bower_components/zanui-weapp/dist/toptips/index"
+  }
 }

+ 10 - 0
Furniture/app.wxss

xqd
@@ -1,4 +1,14 @@
+@import "bower_components/zanui-weapp/dist/index.wxss";
 @import 'style/weui.wxss';
+.container {
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: space-between;
+  padding: 200rpx 0;
+  box-sizing: border-box;
+} 
 page{
     background-color: #F8F8F8;
     font-size: 16px;

+ 37 - 0
Furniture/bower_components/zanui-weapp/.bower.json

xqd
@@ -0,0 +1,37 @@
+{
+  "name": "zanui-weapp",
+  "authors": [
+    "Nino <ninofocus@gmail.com>",
+    "Pangxie <pangxie@youzan.com>"
+  ],
+  "directory": "zanui-weapp",
+  "description": "A UI Library for Weapp",
+  "main": "zan",
+  "license": "MIT",
+  "homepage": "https://github.com/youzan/zanui-weapp",
+  "ignore": [
+    "**/.*",
+    ".github",
+    "assets",
+    "example",
+    "node_modules",
+    "packages",
+    "scripts",
+    "website",
+    "postcss.config.js",
+    "package.json",
+    "*.md",
+    "*.log"
+  ],
+  "version": "3.1.1",
+  "_release": "3.1.1",
+  "_resolution": {
+    "type": "version",
+    "tag": "v3.1.1",
+    "commit": "76db2783371d1b92336c8fac6a7fa0de948595d5"
+  },
+  "_source": "https://github.com/youzan/zanui-weapp.git",
+  "_target": "^3.1.1",
+  "_originalSource": "zanui-weapp",
+  "_direct": true
+}

+ 26 - 0
Furniture/bower_components/zanui-weapp/bower.json

xqd
@@ -0,0 +1,26 @@
+{
+  "name": "zanui-weapp",
+  "authors": [
+    "Nino <ninofocus@gmail.com>",
+    "Pangxie <pangxie@youzan.com>"
+  ],
+  "directory": "zanui-weapp",
+  "description": "A UI Library for Weapp",
+  "main": "zan",
+  "license": "MIT",
+  "homepage": "",
+  "ignore": [
+    "**/.*",
+    ".github",
+    "assets",
+    "example",
+    "node_modules",
+    "packages",
+    "scripts",
+    "website",
+    "postcss.config.js",
+    "package.json",
+    "*.md",
+    "*.log"
+  ]
+}

+ 42 - 0
Furniture/bower_components/zanui-weapp/dist/actionsheet/index.js

xqd
@@ -0,0 +1,42 @@
+'use strict';
+
+Component({
+  externalClasses: ['mask-class', 'container-class'],
+  properties: {
+    actions: {
+      type: Array,
+      value: []
+    },
+    show: {
+      type: Boolean,
+      value: false
+    },
+    cancelWithMask: {
+      type: Boolean,
+      value: true
+    },
+    cancelText: {
+      type: String,
+      value: ''
+    }
+  },
+  methods: {
+    onMaskClick: function onMaskClick() {
+      if (this.data.cancelWithMask) {
+        this.cancelClick();
+      }
+    },
+    cancelClick: function cancelClick() {
+      this.triggerEvent('cancel');
+    },
+    handleBtnClick: function handleBtnClick(_ref) {
+      var _ref$currentTarget = _ref.currentTarget,
+          currentTarget = _ref$currentTarget === undefined ? {} : _ref$currentTarget;
+
+      var dataset = currentTarget.dataset || {};
+      var index = dataset.index;
+
+      this.triggerEvent('actionclick', { index: index });
+    }
+  }
+});

+ 6 - 0
Furniture/bower_components/zanui-weapp/dist/actionsheet/index.json

xqd
@@ -0,0 +1,6 @@
+{
+  "component": true,
+  "usingComponents": {
+    "zan-btn": "../btn/index"
+  }
+}

+ 39 - 0
Furniture/bower_components/zanui-weapp/dist/actionsheet/index.wxml

xqd
@@ -0,0 +1,39 @@
+<view class="zan-actionsheet {{ show ? 'zan-actionsheet--show' : '' }}">
+  <view
+    class="mask-class zan-actionsheet__mask"
+    bindtap="onMaskClick"
+  ></view>
+  <view class="container-class zan-actionsheet__container">
+    <!-- 选项按钮 -->
+    <zan-btn
+      wx:for="{{ actions }}"
+      wx:key="{{ index }}-{{ item.name }}"
+      bind:btnclick="handleBtnClick"
+      data-index="{{ index }}"
+      open-type="{{ item.openType }}"
+      custom-class="zan-actionsheet__btn"
+      loading="{{ item.loading }}"
+    >
+      <!-- 自定义组件控制 slot 样式有问题,故在 slot 容器上传入 loading 信息 -->
+      <view class="zan-actionsheet__btn-content {{ item.loading ? 'zan-actionsheet__btn--loading' : '' }}">
+        <view class="zan-actionsheet__name">{{ item.name }}</view>
+        <view
+          wx:if="{{ item.subname }}"
+          class="zan-actionsheet__subname">
+          {{ item.subname }}
+        </view>
+      </view>
+    </zan-btn>
+
+    <!-- 关闭按钮 -->
+    <view
+      wx:if="{{ cancelText }}"
+      class="zan-actionsheet__footer"
+    >
+      <zan-btn
+        custom-class="zan-actionsheet__btn"
+        catchtap="cancelClick"
+      >{{ cancelText }}</zan-btn>
+    </view>
+  </view>
+</view>

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/actionsheet/index.wxss

xqd
@@ -0,0 +1 @@
+.zan-actionsheet{background-color:#f8f8f8}.zan-actionsheet__mask{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10;background:rgba(0,0,0,.7);display:none}.zan-actionsheet__container{position:fixed;left:0;right:0;bottom:0;background:#f8f8f8;-webkit-transform:translate3d(0,50%,0);transform:translate3d(0,50%,0);-webkit-transform-origin:center;transform-origin:center;-webkit-transition:all .2s ease;transition:all .2s ease;z-index:11;opacity:0;visibility:hidden}.zan-actionsheet__btn{margin-bottom:0!important}.zan-actionsheet__footer .zan-actionsheet__btn{background:#fff}.zan-actionsheet__btn-content{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-pack:center;justify-content:center}.zan-actionsheet__subname{color:#999}.zan-actionsheet__name,.zan-actionsheet__subname{height:45px;line-height:45px}.zan-actionsheet__btn.zan-btn:last-child::after{border-bottom-width:0}.zan-actionsheet__subname{margin-left:2px;font-size:12px}.zan-actionsheet__footer{margin-top:10px}.zan-actionsheet__btn--loading .zan-actionsheet__subname{color:transparent}.zan-actionsheet--show .zan-actionsheet__container{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);visibility:visible}.zan-actionsheet--show .zan-actionsheet__mask{display:block}

+ 27 - 0
Furniture/bower_components/zanui-weapp/dist/badge/index.js

xqd
@@ -0,0 +1,27 @@
+'use strict';
+
+var DEFAULT_COLOR = '#fff';
+var DEFAULT_BACKGROUND_COLOR = '#f44';
+var DEFAULT_FONT_SIZE = 10;
+var DEFAULT_BOX_SHADOW = '0 0 0 2px #fff';
+
+Component({
+  properties: {
+    color: {
+      type: String,
+      value: DEFAULT_COLOR
+    },
+    backgroundColor: {
+      type: String,
+      value: DEFAULT_BACKGROUND_COLOR
+    },
+    fontSize: {
+      type: Number,
+      value: DEFAULT_FONT_SIZE
+    },
+    boxShadow: {
+      type: String,
+      value: DEFAULT_BOX_SHADOW
+    }
+  }
+});

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/badge/index.json

xqd
@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 8 - 0
Furniture/bower_components/zanui-weapp/dist/badge/index.wxml

xqd
@@ -0,0 +1,8 @@
+<view class="zan-badge">
+  <view
+    class="zan-badge__text"
+    style="color: {{ color }}; background-color: {{ backgroundColor }};font-size: {{ fontSize * 2 }}px; box-shadow: {{ boxShadow }};"
+  >
+    <slot></slot>
+  </view>
+</view>

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/badge/index.wxss

xqd
@@ -0,0 +1 @@
+.zan-badge{position:relative}.zan-badge__text{position:absolute;top:-.8em;right:0;height:1.6em;min-width:1.6em;line-height:1.6;padding:0 .4em;font-size:20px;border-radius:.8em;background:#f44;color:#fff;text-align:center;white-space:nowrap;-webkit-transform:translateX(50%) scale(.5);transform:translateX(50%) scale(.5);-webkit-transform-origin:center;transform-origin:center;z-index:10;box-shadow:0 0 0 2px #fff;box-sizing:border-box}

+ 30 - 0
Furniture/bower_components/zanui-weapp/dist/btn-group/index.js

xqd
@@ -0,0 +1,30 @@
+'use strict';
+
+Component({
+  relations: {
+    '../btn/index': {
+      type: 'child',
+      linked: function linked() {
+        updateBtnChild.call(this);
+      },
+      linkChange: function linkChange() {
+        updateBtnChild.call(this);
+      },
+      unlinked: function unlinked() {
+        updateBtnChild.call(this);
+      }
+    }
+  }
+});
+
+function updateBtnChild() {
+  var btns = this.getRelationNodes('../btn/index');
+
+  if (btns.length > 0) {
+    var lastIndex = btns.length - 1;
+
+    btns.forEach(function (btn, index) {
+      btn.switchLastButtonStatus(index === lastIndex);
+    });
+  }
+}

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/btn-group/index.json

xqd
@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/btn-group/index.wxml

xqd
@@ -0,0 +1,3 @@
+<view class="btn-group">
+  <slot></slot>
+</view>

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/btn-group/index.wxss

xqd
@@ -0,0 +1,3 @@
+.btn-group {
+  margin: 15px;
+}

+ 61 - 0
Furniture/bower_components/zanui-weapp/dist/btn/index.js

xqd
@@ -0,0 +1,61 @@
+'use strict';
+
+var nativeButtonBehavior = require('./native-button-behaviors');
+
+Component({
+  externalClasses: ['custom-class', 'theme-class'],
+  behaviors: [nativeButtonBehavior],
+  relations: {
+    '../btn-group/index': {
+      type: 'parent',
+      linked: function linked() {
+        this.setData({ inGroup: true });
+      },
+      unlinked: function unlinked() {
+        this.setData({ inGroup: false });
+      }
+    }
+  },
+  properties: {
+    type: {
+      type: String,
+      value: ''
+    },
+    size: {
+      type: String,
+      value: ''
+    },
+    plain: {
+      type: Boolean,
+      value: false
+    },
+    disabled: {
+      type: Boolean,
+      value: false
+    },
+    loading: {
+      type: Boolean,
+      value: false
+    }
+  },
+
+  data: {
+    inGroup: false,
+    isLast: false
+  },
+
+  methods: {
+    handleTap: function handleTap() {
+      if (this.data.disabled) {
+        this.triggerEvent('disabledclick');
+        return;
+      }
+      this.triggerEvent('btnclick');
+    },
+    switchLastButtonStatus: function switchLastButtonStatus() {
+      var isLast = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+
+      this.setData({ isLast: isLast });
+    }
+  }
+});

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/btn/index.json

xqd
@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 24 - 0
Furniture/bower_components/zanui-weapp/dist/btn/index.wxml

xqd
@@ -0,0 +1,24 @@
+<button
+  class="custom-class theme-class zan-btn {{ inGroup ? 'zan-btn--group' : '' }} {{ isLast ? 'zan-btn--last' : '' }} {{size ? 'zan-btn--'+size : ''}} {{size === 'mini' ? 'zan-btn--plain' : ''}} {{plain ? 'zan-btn--plain' : ''}} {{type ? 'zan-btn--'+type : ''}} {{loading ? 'zan-btn--loading' : ''}} {{disabled ? 'zan-btn--disabled' : ''}}"
+  disabled="{{ disabled }}"
+  hover-class="button-hover"
+  open-type="{{ openType }}"
+  app-parameter="{{ appParameter }}"
+  hover-stop-propagation="{{ hoverStopPropagation }}"
+  hover-start-time="{{ hoverStartTime }}"
+  hover-stay-time="{{ hoverStayTime }}"
+  lang="{{ lang }}"
+  session-from="{{ sessionFrom }}"
+  send-message-title="{{ sendMessageTitle }}"
+  send-message-path="{{ sendMessagePath }}"
+  send-message-img="{{ sendMessageImg }}"
+  show-message-card="{{ showMessageCard }}"
+  bindtap="handleTap"
+  bindcontact="bindcontact"
+  bindgetuserinfo="bindgetuserinfo"
+  bindgetphonenumber="bindgetphonenumber"
+  binderror="binderror"
+  bindopensetting="bindopensetting"
+>
+  <slot></slot>
+</button>

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
Furniture/bower_components/zanui-weapp/dist/btn/index.wxss


+ 74 - 0
Furniture/bower_components/zanui-weapp/dist/btn/native-button-behaviors.js

xqd
@@ -0,0 +1,74 @@
+'use strict';
+
+module.exports = Behavior({
+  properties: {
+    loading: Boolean,
+    // 在自定义组件中,无法与外界的 form 组件联动,暂时不开放
+    // formType: String,
+    openType: String,
+    appParameter: String,
+    // 暂时不开放,直接传入无法设置样式
+    // hoverClass: {
+    //   type: String,
+    //   value: 'button-hover'
+    // },
+    hoverStopPropagation: Boolean,
+    hoverStartTime: {
+      type: Number,
+      value: 20
+    },
+    hoverStayTime: {
+      type: Number,
+      value: 70
+    },
+    lang: {
+      type: String,
+      value: 'en'
+    },
+    sessionFrom: {
+      type: String,
+      value: ''
+    },
+    sendMessageTitle: String,
+    sendMessagePath: String,
+    sendMessageImg: String,
+    showMessageCard: String
+  },
+  methods: {
+    bindgetuserinfo: function bindgetuserinfo() {
+      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
+          _ref$detail = _ref.detail,
+          detail = _ref$detail === undefined ? {} : _ref$detail;
+
+      this.triggerEvent('getuserinfo', detail);
+    },
+    bindcontact: function bindcontact() {
+      var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
+          _ref2$detail = _ref2.detail,
+          detail = _ref2$detail === undefined ? {} : _ref2$detail;
+
+      this.triggerEvent('contact', detail);
+    },
+    bindgetphonenumber: function bindgetphonenumber() {
+      var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
+          _ref3$detail = _ref3.detail,
+          detail = _ref3$detail === undefined ? {} : _ref3$detail;
+
+      this.triggerEvent('getphonenumber', detail);
+    },
+    bindopensetting: function bindopensetting() {
+      var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
+          _ref4$detail = _ref4.detail,
+          detail = _ref4$detail === undefined ? {} : _ref4$detail;
+
+      this.triggerEvent('opensetting', detail);
+    },
+    binderror: function binderror() {
+      var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
+          _ref5$detail = _ref5.detail,
+          detail = _ref5$detail === undefined ? {} : _ref5$detail;
+
+      this.triggerEvent('error', detail);
+    }
+  }
+});

+ 31 - 0
Furniture/bower_components/zanui-weapp/dist/capsule/index.js

xqd
@@ -0,0 +1,31 @@
+'use strict';
+
+Component({
+  externalClasses: ['custom-class'],
+  /**
+   * 组件的属性列表
+   * 用于组件自定义设置
+   */
+  properties: {
+    // 颜色状态
+    type: {
+      type: String,
+      value: ''
+    },
+    // 自定义颜色
+    color: {
+      type: String,
+      value: ''
+    },
+    // 左侧内容
+    leftText: {
+      type: String,
+      value: ''
+    },
+    // 右侧内容
+    rightText: {
+      type: String,
+      value: ''
+    }
+  }
+});

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/capsule/index.json

xqd
@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 17 - 0
Furniture/bower_components/zanui-weapp/dist/capsule/index.wxml

xqd
@@ -0,0 +1,17 @@
+<view class="custom-class zan-capsule zan-capsule--{{type}}">
+  <block wx:if="{{color}}">
+    <view
+      class="zan-capsule__left"
+      style="background: {{ color }}; border-color: {{ color }}"
+    >{{ leftText }}</view>
+    <view
+      class="zan-capsule__right"
+      style="color: {{ color }}; border-color: {{ color }}"
+    >{{ rightText }}</view>
+  </block>
+  <block wx:else>
+    <view class="zan-capsule__left">{{ leftText }}</view>
+    <view class="zan-capsule__right">{{ rightText }}</view>
+  </block>
+</view>
+

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/capsule/index.wxss

xqd
@@ -0,0 +1 @@
+.zan-capsule{display:inline-block;font-size:12px;vertical-align:middle;line-height:19px;-webkit-transform:scale(.83);transform:scale(.83)}.zan-capsule__left,.zan-capsule__right{display:inline-block;line-height:17px;height:19px;vertical-align:middle;box-sizing:border-box}.zan-capsule__left{padding:0 2px;color:#fff;background:#999;border-radius:2px 0 0 2px;border:1rpx solid #999}.zan-capsule__right{padding:0 5px;color:#999;border-radius:0 2px 2px 0;border:1rpx solid #999}.zan-capsule--danger .zan-capsule__left{color:#fff;background:#f24544;border-color:#f24544}.zan-capsule--danger .zan-capsule__right{color:#f24544;border-color:#f24544}

+ 26 - 0
Furniture/bower_components/zanui-weapp/dist/card/index.js

xqd
@@ -0,0 +1,26 @@
+'use strict';
+
+Component({
+  options: {
+    multipleSlots: true
+  },
+
+  externalClasses: ['card-class', 'thumb-class'],
+
+  properties: {
+    useThumbSlot: {
+      type: Boolean,
+      value: false
+    },
+    useDetailSlot: {
+      type: Boolean,
+      value: false
+    },
+    thumb: String,
+    price: String,
+    title: String,
+    num: Number,
+    desc: String,
+    status: String
+  }
+});

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/card/index.json

xqd
@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 33 - 0
Furniture/bower_components/zanui-weapp/dist/card/index.wxml

xqd
@@ -0,0 +1,33 @@
+<view class="card-class zan-card">
+  <!-- 左侧图片 -->
+  
+  <view class="thumb-class zan-card__thumb">
+    <image class="zan-card__img"
+      src="{{ thumb }}"
+      mode="aspectFit"
+    ></image>
+  </view>
+  <!-- 右侧详情 -->
+  <view class="zan-card__detail">
+    <slot wx:if="{{ useDetailSlot }}" name="detail-slot"></slot>
+    <block wx:else>
+      <view class="zan-card__detail-row">
+        <view class="zan-card__right-col">¥ {{ price }}</view>
+        <view class="zan-card__left-col zan-ellipsis--l2">
+          {{ title }}
+        </view>
+      </view>
+
+      <view class="zan-card__detail-row zan-c-gray-darker">
+        <view wx:if="{{ num }}" class="zan-card__right-col">x {{ num }}</view>
+        <view wx:if="{{ desc }}" class="zan-card__left-col">
+          {{ desc }}
+        </view>
+      </view>
+
+      <view wx:if="{{ status }}" class="zan-card__detail-row">
+        <view class="zan-card__left-col zan-c-red">{{ status }}</view>
+      </view>
+    </block>
+  </view>
+</view>

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
Furniture/bower_components/zanui-weapp/dist/card/index.wxss


+ 75 - 0
Furniture/bower_components/zanui-weapp/dist/cell-group/index.js

xqd
@@ -0,0 +1,75 @@
+'use strict';
+
+var _relations;
+
+var CELL_PATH = '../cell/index';
+var FIELD_PATH = '../field/index';
+
+Component({
+  properties: {
+    titleWidth: {
+      type: Number,
+      value: null
+    },
+    border: {
+      type: Boolean,
+      value: false
+    }
+  },
+  relations: (_relations = {}, _relations[CELL_PATH] = {
+    type: 'child',
+    linked: function linked() {
+      this._updateIsLastElement(CELL_PATH);
+    },
+    linkChanged: function linkChanged() {
+      this._updateIsLastElement(CELL_PATH);
+    },
+    unlinked: function unlinked() {
+      this._updateIsLastElement(CELL_PATH);
+    }
+  }, _relations[FIELD_PATH] = {
+    type: 'child',
+    linked: function linked() {
+      this._updateIsLastElement(FIELD_PATH);
+    },
+    linkChanged: function linkChanged() {
+      this._updateIsLastElement(FIELD_PATH);
+    },
+    unlinked: function unlinked() {
+      this._updateIsLastElement(FIELD_PATH);
+    }
+  }, _relations),
+
+  data: {
+    elementUpdateTimeout: 0
+  },
+
+  methods: {
+    _updateIsLastElement: function _updateIsLastElement(childPath) {
+      var _this = this;
+
+      // 用 setTimeout 减少计算次数
+      if (this.data.elementUpdateTimeout > 0) {
+        return;
+      }
+
+      var elementUpdateTimeout = setTimeout(function () {
+        _this.setData({ elementUpdateTimeout: 0 });
+        var elements = _this.getRelationNodes(childPath);
+        var titleWidth = _this.properties.titleWidth;
+
+
+        if (elements.length > 0) {
+          var lastIndex = elements.length - 1;
+
+          elements.forEach(function (cell, index) {
+            titleWidth && cell.setTitleWidth(titleWidth);
+            cell.updateIsLastElement(index === lastIndex);
+          });
+        }
+      });
+
+      this.setData({ elementUpdateTimeout: elementUpdateTimeout });
+    }
+  }
+});

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/cell-group/index.json

xqd
@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/cell-group/index.wxml

xqd
@@ -0,0 +1,3 @@
+<view class="cell-group {{ border ? 'cell-group--with-border' : '' }}">
+  <slot></slot>
+</view>

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/cell-group/index.wxss

xqd
@@ -0,0 +1 @@
+.cell-group{position:relative;background-color:#fff;overflow:hidden}.cell-group--with-border::after{content:'';position:absolute;top:0;left:0;width:200%;height:200%;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #e5e5e5;border-top-width:1px;border-bottom-width:1px}

+ 109 - 0
Furniture/bower_components/zanui-weapp/dist/cell/index.js

xqd
@@ -0,0 +1,109 @@
+'use strict';
+
+var warn = function warn(msg, getValue) {
+  console.warn(msg);
+};
+
+Component({
+  externalClasses: ['cell-class', 'title-class'],
+  options: {
+    multipleSlots: true
+  },
+  relations: {
+    '../cell-group/index': {
+      type: 'parent'
+    }
+  },
+  properties: {
+    title: {
+      type: String,
+      description: '左侧标题'
+    },
+    label: {
+      type: String,
+      description: '标题下方的描述信息'
+    },
+    value: {
+      type: String,
+      description: '右侧内容'
+    },
+    onlyTapFooter: {
+      type: Boolean,
+      description: '只有点击 footer 区域才触发 tab 事件'
+    },
+    isLink: {
+      type: null,
+      value: '',
+      description: '是否展示右侧箭头并开启尝试以 url 跳转'
+    },
+    linkType: {
+      type: String,
+      value: 'navigateTo',
+      description: '链接类型,可选值为 navigateTo,redirectTo,switchTab,reLaunch'
+    },
+    url: {
+      type: String,
+      value: ''
+    },
+    noBorder: Boolean
+  },
+  data: {
+    isLastCell: true,
+    titleWidth: 'auto'
+  },
+  methods: {
+    footerTap: function footerTap() {
+      // 如果并没有设置只点击 footer 生效,那就不需要额外处理。cell 上有事件会自动处理
+      if (!this.data.onlyTapFooter) {
+        return;
+      }
+
+      this.triggerEvent('tap', {});
+      doNavigate.call(this);
+    },
+    cellTap: function cellTap() {
+      // 如果只点击 footer 生效,那就不需要在 cell 根节点上处理
+      if (this.data.onlyTapFooter) {
+        return;
+      }
+
+      this.triggerEvent('tap', {});
+      doNavigate.call(this);
+    },
+
+
+    // 用于被 cell-group 更新,标志是否是最后一个 cell
+    updateIsLastElement: function updateIsLastElement(isLastCell) {
+      this.setData({ isLastCell: isLastCell });
+    },
+
+
+    // 设置统一的title区域宽度
+    setTitleWidth: function setTitleWidth(titleWidth) {
+      this.setData({
+        titleWidth: titleWidth + 'px'
+      });
+    }
+  }
+});
+
+// 处理跳转
+function doNavigate() {
+  var _data$url = this.data.url,
+      url = _data$url === undefined ? '' : _data$url;
+
+  var type = typeof this.data.isLink;
+
+  if (!this.data.isLink || !url || url === 'true' || url === 'false') return;
+
+  if (type !== 'boolean' && type !== 'string') {
+    warn('isLink 属性值必须是一个字符串或布尔值', this.data.isLink);
+    return;
+  }
+
+  if (['navigateTo', 'redirectTo', 'switchTab', 'reLaunch'].indexOf(this.data.linkType) === -1) {
+    warn('linkType 属性可选值为 navigateTo,redirectTo,switchTab,reLaunch', this.data.linkType);
+    return;
+  }
+  wx[this.data.linkType].call(wx, { url: url });
+}

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/cell/index.json

xqd
@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 25 - 0
Furniture/bower_components/zanui-weapp/dist/cell/index.wxml

xqd
@@ -0,0 +1,25 @@
+<view 
+  catchtap="cellTap"
+  class="cell-class zan-cell {{ isLastCell ? 'last-cell' : '' }} {{ isLink ? 'zan-cell--access' : '' }} {{  noBorder ? 'no-border' : ''}}"
+>
+
+  <view class="zan-cell__icon">
+    <slot name="icon"></slot>
+  </view>
+
+  <view class="title-class zan-cell__title" style="width: {{ titleWidth }}">
+    <view wx:if="{{ title }}" class="zan-cell__text">{{ title }}</view>
+    <view wx:if="{{ label }}" class="zan-cell__desc">{{ label }}</view>
+  </view>
+
+  <view class="zan-cell__bd">
+    <slot></slot>
+  </view>
+
+  <view bindtap="footerTap" class="zan-cell__ft">
+    <block wx:if="{{value}}">{{ value }}</block>
+    <block wx:else>
+      <slot name="footer"></slot>
+    </block>
+  </view>
+</view>

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/cell/index.wxss

xqd
@@ -0,0 +1 @@
+.zan-cell{position:relative;padding:12px 15px;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;line-height:1.4;background-color:#fff;font-size:14px}.zan-cell::after{content:'';position:absolute;top:0;left:0;width:200%;height:200%;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #e5e5e5;border-bottom-width:1px;left:15px;right:0}.zan-cell__icon{margin-right:5px}.zan-cell__icon:empty{display:none}.zan-cell__title{padding-right:10px}.zan-cell__title:empty{display:none}.zan-cell__bd{-webkit-box-flex:1;flex:1}.zan-cell__text{line-height:24px;font-size:14px}.zan-cell__desc{line-height:1.2;font-size:12px;color:#666}.zan-cell__ft{position:relative;text-align:right;color:#666}.zan-cell__no-pading{padding:0}.zan-cell__no-pading .zan-cell__bd_padding{padding:12px 0 12px 15px}.zan-cell__no-pading .zan-cell__bd_padding .zan-form__input{height:26px}.zan-cell__no-pading .zan-cell__ft_padding{padding:12px 15px 12px 0}.zan-cell.last-cell::after,.zan-cell.no-border::after{display:none}.zan-cell--access .zan-cell__ft{padding-right:13px}.zan-cell--access .zan-cell__ft::after{position:absolute;top:50%;right:2px;content:" ";display:inline-block;height:6px;width:6px;border-width:2px 2px 0 0;border-color:#c8c8c8;border-style:solid;-webkit-transform:translateY(-50%) matrix(.71,.71,-.71,.71,0,0);transform:translateY(-50%) matrix(.71,.71,-.71,.71,0,0)}.zan-cell--switch{padding-top:6px;padding-bottom:6px}

+ 29 - 0
Furniture/bower_components/zanui-weapp/dist/checkbox-group/index.js

xqd
@@ -0,0 +1,29 @@
+'use strict';
+
+var _relations;
+
+var CHECKBOX_PATH = '../checkbox/index';
+
+Component({
+  relations: (_relations = {}, _relations[CHECKBOX_PATH] = {
+    type: 'child',
+    linked: function linked() {
+      this.updateChildren(CHECKBOX_PATH);
+    }
+  }, _relations),
+
+  data: {
+    elementUpdateTimeout: 0
+  },
+
+  methods: {
+    updateChildren: function updateChildren(childPath) {
+      // 把checkbox标记为在group中,设置不同样式
+      var elements = this.getRelationNodes(childPath);
+
+      elements.forEach(function (checkbox, index) {
+        checkbox.updateData({ isInGroup: true });
+      });
+    }
+  }
+});

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/checkbox-group/index.json

xqd
@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/checkbox-group/index.wxml

xqd
@@ -0,0 +1,3 @@
+<view class="checkbox-group">
+  <slot></slot>
+</view>

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/checkbox-group/index.wxss

xqd
@@ -0,0 +1 @@
+.checkbox-group{padding-bottom:10px;background-color:#fff}.checkbox-group .zan-checkbox{margin-top:10px}

+ 44 - 0
Furniture/bower_components/zanui-weapp/dist/checkbox/index.js

xqd
@@ -0,0 +1,44 @@
+'use strict';
+
+var _relations;
+
+var CHECKBOX_GROUP_PATH = '../checkbox-group/index';
+
+Component({
+  externalClasses: ['checkbox-class'],
+  relations: (_relations = {}, _relations[CHECKBOX_GROUP_PATH] = {
+    type: 'parent'
+  }, _relations),
+
+  properties: {
+    checked: Boolean,
+    disabled: Boolean,
+    isInGroup: Boolean,
+    labelDisabled: Boolean,
+    type: String
+  },
+
+  data: function data() {
+    return {
+      isInGroup: false,
+      isInCell: false
+    };
+  },
+
+
+  methods: {
+    handleClick: function handleClick() {
+      if (this.data.disabled) {
+        return;
+      }
+
+      var checked = !this.data.checked;
+
+      this.triggerEvent('change', checked);
+      this.setData({ checked: checked });
+    },
+    updateData: function updateData(data) {
+      this.setData(data);
+    }
+  }
+});

+ 6 - 0
Furniture/bower_components/zanui-weapp/dist/checkbox/index.json

xqd
@@ -0,0 +1,6 @@
+{
+  "component": true,
+  "usingComponents": {
+    "zan-icon": "../icon/index"
+  }
+}

+ 13 - 0
Furniture/bower_components/zanui-weapp/dist/checkbox/index.wxml

xqd
@@ -0,0 +1,13 @@
+<view
+  class="checkbox-class zan-checkbox {{ isInGroup ? 'zan-checkbox__item' : ''}} {{ type === 'list' ? 'zan-checkbox__list-item' : ''}}"
+  bindtap="{{ labelDisabled ? '' : 'handleClick' }}"
+  >
+  <zan-icon
+    type="{{ checked ? 'checked' : 'check'}}"
+    class="zan-checkbox__icon {{ disabled ? 'zan-checkbox--disabled' : '' }} {{ checked ? 'zan-checkbox--checked' : '' }}"
+    bindtap="{{ labelDisabled ? 'handleClick': '' }}"
+  ></zan-icon>
+  <text class="zan-checkbox__label">
+    <slot></slot>
+  </text>
+</view>

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/checkbox/index.wxss

xqd
@@ -0,0 +1 @@
+.zan-checkbox{display:inline-block;padding:0 10px;font-size:14px}.zan-checkbox__item{display:block;margin-top:10px}.zan-checkbox__list-item{display:block;padding:10px 10px 10px 0;margin-left:10px;border-bottom:1px solid #e5e5e5}.zan-checkbox__list-item .zan-checkbox__icon{float:right}.zan-checkbox__icon{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;color:#aaa}.zan-checkbox__icon.zan-checkbox--checked{color:#06bf04}.zan-checkbox__icon.zan-checkbox--disabled{color:#e5e5e5}.zan-checkbox__label{display:inline-block;margin-left:10px}

+ 22 - 0
Furniture/bower_components/zanui-weapp/dist/col/index.js

xqd
@@ -0,0 +1,22 @@
+'use strict';
+
+Component({
+  externalClasses: ['col-class'],
+
+  relations: {
+    '../row/index': {
+      type: 'parent'
+    }
+  },
+
+  properties: {
+    col: {
+      value: 0,
+      type: Number
+    },
+    offset: {
+      value: 0,
+      type: Number
+    }
+  }
+});

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/col/index.json

xqd
@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/col/index.wxml

xqd
@@ -0,0 +1 @@
+  <view class="col-class zan-col {{ col ? 'zan-col-' + col : '' }} {{ offset ? 'zan-col-offset-' + offset : '' }}"><slot></slot></view>

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/col/index.wxss

xqd
@@ -0,0 +1 @@
+.zan-col{float:left;box-sizing:border-box;width:0}.zan-col-1{width:4.16667%}.zan-col-offset-1{margin-left:4.16667%}.zan-col-2{width:8.33333%}.zan-col-offset-2{margin-left:8.33333%}.zan-col-3{width:12.5%}.zan-col-offset-3{margin-left:12.5%}.zan-col-4{width:16.66667%}.zan-col-offset-4{margin-left:16.66667%}.zan-col-5{width:20.83333%}.zan-col-offset-5{margin-left:20.83333%}.zan-col-6{width:25%}.zan-col-offset-6{margin-left:25%}.zan-col-7{width:29.16667%}.zan-col-offset-7{margin-left:29.16667%}.zan-col-8{width:33.33333%}.zan-col-offset-8{margin-left:33.33333%}.zan-col-9{width:37.5%}.zan-col-offset-9{margin-left:37.5%}.zan-col-10{width:41.66667%}.zan-col-offset-10{margin-left:41.66667%}.zan-col-11{width:45.83333%}.zan-col-offset-11{margin-left:45.83333%}.zan-col-12{width:50%}.zan-col-offset-12{margin-left:50%}.zan-col-13{width:54.16667%}.zan-col-offset-13{margin-left:54.16667%}.zan-col-14{width:58.33333%}.zan-col-offset-14{margin-left:58.33333%}.zan-col-15{width:62.5%}.zan-col-offset-15{margin-left:62.5%}.zan-col-16{width:66.66667%}.zan-col-offset-16{margin-left:66.66667%}.zan-col-17{width:70.83333%}.zan-col-offset-17{margin-left:70.83333%}.zan-col-18{width:75%}.zan-col-offset-18{margin-left:75%}.zan-col-19{width:79.16667%}.zan-col-offset-19{margin-left:79.16667%}.zan-col-20{width:83.33333%}.zan-col-offset-20{margin-left:83.33333%}.zan-col-21{width:87.5%}.zan-col-offset-21{margin-left:87.5%}.zan-col-22{width:91.66667%}.zan-col-offset-22{margin-left:91.66667%}.zan-col-23{width:95.83333%}.zan-col-offset-23{margin-left:95.83333%}.zan-col-24{width:100%}.zan-col-offset-24{margin-left:100%}

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/color/index.wxss

xqd
@@ -0,0 +1 @@
+.zan-c-red{color:#f44!important}.zan-c-gray{color:#c9c9c9!important}.zan-c-gray-dark{color:#999!important}.zan-c-gray-darker{color:#666!important}.zan-c-black{color:#333!important}.zan-c-blue{color:#38f!important}.zan-c-green{color:#06bf04!important}

+ 102 - 0
Furniture/bower_components/zanui-weapp/dist/common/helper.js

xqd
@@ -0,0 +1,102 @@
+'use strict';
+
+// 从事件对象中解析得到 componentId
+// 需要在元素上声明 data-component-id
+function extractComponentId() {
+  var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+  var _ref = event.currentTarget || {},
+      componentId = _ref.dataset.componentId;
+
+  return componentId;
+}
+
+/*
+  注:默认合并所有生命周期函数
+  配置合并指定的生命周期 or 忽略指定字段
+  const extend = extendCreator({
+    life: ['onLoad', 'onPullDownRefresh'],
+    exclude: ['binder']
+  });
+
+  Page(extend({}, {
+    onLoad() {},
+    ...
+  }));
+*/
+
+var LIFE_CYCLE = ['onLoad', 'onReady', 'onShow', 'onHide', 'onUnload', 'onPullDownRefresh', 'onReachBottom', 'onShareAppMessage', 'onPageScroll'];
+
+var extendCreator = function extendCreator() {
+  var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  var _config$life = config.life,
+      life = _config$life === undefined ? LIFE_CYCLE : _config$life,
+      _config$exclude = config.exclude,
+      exclude = _config$exclude === undefined ? [] : _config$exclude;
+
+
+  var excludeList = exclude.concat(LIFE_CYCLE.map(getFuncArrayName));
+
+  if (!Array.isArray(life) || !Array.isArray(exclude)) throw new Error('Invalid Extend Config');
+  var lifeCycleList = life.filter(function (item) {
+    return LIFE_CYCLE.indexOf(item) >= 0;
+  });
+  return function extend(target) {
+    for (var _len = arguments.length, objList = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+      objList[_key - 1] = arguments[_key];
+    }
+
+    objList.forEach(function (source) {
+      if (source) {
+        var keys = Object.keys(source);
+        keys.forEach(function (key) {
+          var value = source[key];
+          if (excludeList.indexOf(key) >= 0) return;
+          if (lifeCycleList.indexOf(key) >= 0 && typeof value === 'function') {
+            var funcArrayName = getFuncArrayName(key);
+            if (!target[funcArrayName]) {
+              target[funcArrayName] = [];
+              if (target[key]) {
+                target[funcArrayName].push(target[key]);
+              }
+              target[key] = function () {
+                var _this = this;
+
+                for (var _len2 = arguments.length, rest = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+                  rest[_key2] = arguments[_key2];
+                }
+
+                target[funcArrayName].forEach(function (func) {
+                  return func.apply(_this, rest);
+                });
+              };
+            }
+
+            if (source[funcArrayName]) {
+              var _target$funcArrayName;
+
+              // 经过生命周期合并的组件直接整合函数列表
+              (_target$funcArrayName = target[funcArrayName]).push.apply(_target$funcArrayName, source[funcArrayName]);
+            } else {
+              // 添加生命周期函数进入函数列表
+              target[funcArrayName].push(value);
+            }
+          } else {
+            target[key] = value;
+          }
+        });
+      }
+    });
+    return target;
+  };
+};
+
+var getFuncArrayName = function getFuncArrayName(name) {
+  return '__$' + name;
+};
+
+module.exports = {
+  extractComponentId: extractComponentId,
+  extend: Object.assign,
+  extendCreator: extendCreator
+};

+ 31 - 0
Furniture/bower_components/zanui-weapp/dist/common/pop-manager/index.js

xqd
@@ -0,0 +1,31 @@
+'use strict';
+
+Component({
+  properties: {
+    show: {
+      type: Boolean,
+      value: false
+    },
+    // 是否有遮罩层
+    overlay: {
+      type: Boolean,
+      value: true
+    },
+    // 遮罩层是否会显示
+    showOverlay: {
+      type: Boolean,
+      value: true
+    },
+    // 内容从哪个方向出,可选 center top bottom left right
+    type: {
+      type: String,
+      value: 'center'
+    }
+  },
+
+  methods: {
+    handleMaskClick: function handleMaskClick() {
+      this.triggerEvent('clickmask', {});
+    }
+  }
+});

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/common/pop-manager/index.json

xqd
@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 12 - 0
Furniture/bower_components/zanui-weapp/dist/common/pop-manager/index.wxml

xqd
@@ -0,0 +1,12 @@
+<view
+  class="pop pop--{{ type }} {{ show ? 'pop--show' : '' }}"
+>
+  <view 
+    wx:if="{{ overlay }}"
+    class="pop__mask {{ showOverlay ? '' : 'pop__mask--hide' }}"
+    bindtap="handleMaskClick"
+  ></view>
+  <view class="pop__container">
+    <slot></slot>
+  </view>
+</view>

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/common/pop-manager/index.wxss

xqd
@@ -0,0 +1 @@
+.pop{visibility:hidden}.pop--show{visibility:visible}.pop__mask{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10;background:rgba(0,0,0,.7);display:none}.pop__mask--hide{background:0 0}.pop__container{position:fixed;left:50%;top:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);-webkit-transform-origin:center;transform-origin:center;-webkit-transition:all .4s ease;transition:all .4s ease;z-index:11;opacity:0}.pop--show .pop__container{opacity:1}.pop--show .pop__mask{display:block}.pop--left .pop__container{left:0;top:50%;-webkit-transform:translate3d(-100%,-50%,0);transform:translate3d(-100%,-50%,0)}.pop--show.pop--left .pop__container{-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.pop--right .pop__container{right:0;top:50%;left:auto;-webkit-transform:translate3d(100%,-50%,0);transform:translate3d(100%,-50%,0)}.pop--show.pop--right .pop__container{-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.pop--bottom .pop__container{top:auto;left:50%;bottom:0;-webkit-transform:translate3d(-50%,100%,0);transform:translate3d(-50%,100%,0)}.pop--show.pop--bottom .pop__container{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}.pop--top .pop__container{top:0;left:50%;-webkit-transform:translate3d(-50%,-100%,0);transform:translate3d(-50%,-100%,0)}.pop--show.pop--top .pop__container{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}

+ 35 - 0
Furniture/bower_components/zanui-weapp/dist/datetime-picker/date-picker-view.wxml

xqd
@@ -0,0 +1,35 @@
+<import src="./picker-view-column.wxml" />
+
+<template name="date-picker-view">
+  <picker-view
+    value="{{ selected }}"
+    bindchange="change"
+    indicator-style="height: 50px;"
+    class="picker-visible">
+    
+    <template
+      is="picker-view-column"
+      data="{{ data: dataList[0], className: 'year-view-column', hidden: !use['years'], tip: '年' }}"
+    />
+    <template
+      is="picker-view-column"
+      data="{{ data: dataList[1], hidden: !use['months'], tip: '月' }}"
+    />
+    <template
+      is="picker-view-column"
+      data="{{ data: dataList[2], hidden: !use['days'], tip: '日' }}"
+    />
+    <template
+      is="picker-view-column"
+      data="{{ data: dataList[3], hidden: !use['hours'], tip: '时' }}"
+    />
+    <template
+      is="picker-view-column"
+      data="{{ data: dataList[4], hidden: !use['minutes'], tip: '分' }}"
+    />
+    <template
+      is="picker-view-column"
+      data="{{ data: dataList[5], hidden: !use['seconds'], tip: '秒' }}"
+    />
+  </picker-view>
+</template>

+ 105 - 0
Furniture/bower_components/zanui-weapp/dist/datetime-picker/date-picker.js

xqd
@@ -0,0 +1,105 @@
+'use strict';
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+var LIMIT_YEAR_COUNT = 50;
+
+var _require = require('./utils'),
+    genNumber = _require.genNumber,
+    iso2utc = _require.iso2utc;
+
+module.exports = function () {
+  function DatePicker() {
+    var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date();
+
+    _classCallCheck(this, DatePicker);
+
+    this.types = ['year', 'month', 'day', 'hour', 'minute', 'second'];
+    this.months = genNumber(1, 12, 2);
+    this.hours = genNumber(0, 23, 2);
+    this.seconds = genNumber(0, 59, 2);
+    this.minutes = genNumber(0, 59, 2);
+    this._date = date;
+  }
+
+  DatePicker.prototype.getYears = function getYears(year) {
+    var mid = Math.floor(LIMIT_YEAR_COUNT / 2);
+    var min = year - mid;
+    var max = year + (LIMIT_YEAR_COUNT - mid);
+    return genNumber(min, max, 4);
+  };
+
+  DatePicker.prototype.lastDay = function lastDay(year, month) {
+    return month !== 12 ? new Date(new Date(year + '/' + (month + 1) + '/1').getTime() - 24 * 60 * 60 * 1000).getDate() : 31;
+  };
+
+  DatePicker.prototype.getData = function getData(date) {
+    date = date || this._date || new Date();
+
+    // toUTCString ISO 格式部分 ios 手机会失败
+    if (new Date(date).toString() === 'Invalid Date' && typeof date === 'string' && date.indexOf('-') > 0) {
+      date = iso2utc(date);
+    }
+
+    var d = new Date(date);
+
+    var y = d.getFullYear();
+    var m = d.getMonth() + 1;
+    var years = this.getYears(y);
+    var lastDay = this.lastDay(y, m);
+    var days = genNumber(1, lastDay, 2);
+
+    this._years = years;
+    this._dataList = [years, this.months, days, this.hours, this.minutes, this.seconds];
+    this._indexs = [25, m - 1, d.getDate() - 1, d.getHours(), d.getMinutes(), d.getSeconds()];
+
+    return {
+      dataList: this._dataList,
+      selected: this._indexs
+    };
+  };
+
+  DatePicker.prototype.update = function update(col, index) {
+    var type = this.types[col];
+    switch (type) {
+      case 'year':
+        return this._updateYear(col, index);
+      case 'month':
+        return this._updateMonth(col, index);
+      default:
+        this._indexs[col] = index;
+        return [{ col: col, index: index }];
+    }
+  };
+
+  DatePicker.prototype._updateYear = function _updateYear(col, index, cb) {
+    var years = this._dataList[col];
+    var year = years[index];
+
+    this._dataList[col] = this.getYears(+year);
+
+    this._indexs[col] = Math.floor(LIMIT_YEAR_COUNT / 2);
+
+    return [{ col: 0, index: this._indexs[col], data: this._dataList[col] }];
+  };
+
+  DatePicker.prototype._updateMonth = function _updateMonth(col, index) {
+    var month = this._dataList[col][index];
+    var year = this._dataList[0][this._indexs[0]];
+    var lastDay = this.lastDay(+year, +month);
+    this._indexs[col] = index;
+    this._dataList[2] = genNumber(1, lastDay, 2);
+    this._indexs[2] = this._indexs[2] >= this._dataList[2].length ? this._dataList[2].length - 1 : this._indexs[2];
+
+    return [{
+      col: 1,
+      index: index
+    }, {
+      col: 2,
+      index: this._indexs[2],
+      data: this._dataList[2]
+    }];
+  };
+
+  return DatePicker;
+}();

+ 216 - 0
Furniture/bower_components/zanui-weapp/dist/datetime-picker/index.js

xqd
@@ -0,0 +1,216 @@
+'use strict';
+
+var DatePicker = require('./date-picker');
+
+var _require = require('./utils'),
+    genNumber = _require.genNumber,
+    moment = _require.moment;
+
+Component({
+  properties: {
+    placeholder: {
+      type: String,
+      value: '请选择时间'
+    },
+    format: {
+      type: String,
+      value: 'YYYY-MM-DD HH:mm:ss'
+    },
+    pickerView: {
+      type: Boolean
+    },
+    date: {
+      type: String,
+      observer: function observer(value) {
+        if (value === {}.toString()) {
+          throw new Error('参数必须是一个字符串');
+        }
+        if (/^[0-9]+$/.test(value)) {
+          value = +value;
+        }
+        !this._inited && this._init();
+        this.updateDate(value);
+      }
+    },
+    notUse: {
+      type: Array
+    }
+  },
+  externalClasses: ['placeholder-class'],
+  data: {
+    transPos: [0, 0, 0, 0, 0, 0]
+  },
+  attached: function attached() {
+    !this._inited && this._init();
+  },
+
+
+  methods: {
+    _init: function _init() {
+      var _this = this;
+
+      this._inited = true;
+      this.use = {};
+
+      ['years', 'months', 'days', 'hours', 'minutes', 'seconds'].forEach(function (item) {
+        if ((_this.data.notUse || []).indexOf(item) === -1) {
+          _this.use[item] = true;
+        }
+      });
+
+      this.picker = new DatePicker(this.data.date);
+
+      var _picker$getData = this.picker.getData(this.data.date),
+          dataList = _picker$getData.dataList,
+          selected = _picker$getData.selected;
+
+      // 鬼他么知道为什么 dataList, selected 不能一起 setData
+
+
+      this.setData({
+        use: this.use,
+        dataList: dataList
+      }, function () {
+        _this.setData({
+          selected: selected
+        });
+      });
+
+      this._indexs = selected;
+    },
+    updatePicker: function updatePicker() {
+      var updateData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+
+      var _updateData = {};
+
+      for (var _iterator = updateData, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
+        var _ref2;
+
+        if (_isArray) {
+          if (_i >= _iterator.length) break;
+          _ref2 = _iterator[_i++];
+        } else {
+          _i = _iterator.next();
+          if (_i.done) break;
+          _ref2 = _i.value;
+        }
+
+        var _ref = _ref2;
+        var col = _ref.col,
+            index = _ref.index,
+            data = _ref.data;
+
+        if (~index && this._indexs[col] !== index || col === 0) {
+          _updateData['selected[' + col + ']'] = index; // 更新索引
+          this._indexs[col] = index;
+        }
+
+        if (data) {
+          _updateData['dataList[' + col + ']'] = data;
+        }
+      }
+
+      this.setData(_updateData);
+    },
+    updateDate: function updateDate(date) {
+      var _this2 = this;
+
+      var _picker$getData2 = this.picker.getData(date),
+          dataList = _picker$getData2.dataList,
+          selected = _picker$getData2.selected;
+
+      this._indexs = selected;
+
+      // 好像必须要等到 datalist 完成
+      this.setData({ dataList: dataList }, function () {
+        _this2.setData({
+          selected: selected,
+          text: _this2.getFormatStr()
+        });
+      });
+    },
+    getFormatStr: function getFormatStr() {
+      var _this3 = this;
+
+      var date = new Date();
+      ['FullYear', 'Month', 'Date', 'Hours', 'Minutes', 'Seconds'].forEach(function (key, index) {
+        var value = _this3.data.dataList[index][_this3._indexs[index]];
+        if (key === 'Month') {
+          value = +_this3.data.dataList[index][_this3._indexs[index]] - 1;
+        }
+        date['set' + key](+value);
+      });
+
+      return moment(date, this.data.format);
+    },
+    showPicker: function showPicker() {
+      this.setData({
+        show: true
+      });
+    },
+    hidePicker: function hidePicker(e) {
+      var action = e.currentTarget.dataset.action;
+
+
+      this.setData({
+        show: false
+      });
+
+      if (action === 'cancel') {
+        this.cancel({
+          detail: {}
+        });
+      } else {
+        this.change({
+          detail: {
+            value: this._indexs
+          }
+        });
+      }
+    },
+    columnchange: function columnchange(e) {
+      var _e$detail = e.detail,
+          column = _e$detail.column,
+          value = _e$detail.value;
+
+      var updateData = this.picker.update(column, value);
+      this.updatePicker(updateData);
+    },
+    change: function change(e) {
+      var value = e.detail.value;
+
+
+      var data = this.data.dataList.map(function (item, index) {
+        return +item[value[index]];
+      });
+
+      var day = data.slice(0, 3);
+      var time = data.slice(3, 6);
+      var date = new Date(day.join('/') + ' ' + time.join(':'));
+
+      this.triggerEvent('change', {
+        value: data,
+        date: date
+      });
+
+      // 手动触发 columnchange
+      for (var index = 0; index < value.length; index++) {
+        if (this._indexs[index] !== value[index]) {
+          this.columnchange({
+            detail: {
+              column: index,
+              value: value[index]
+            }
+          });
+        }
+      }
+
+      this.setData({
+        text: this.getFormatStr()
+      });
+    },
+    cancel: function cancel(e) {
+      this.triggerEvent('cancel', e.detail);
+    }
+  }
+});

+ 6 - 0
Furniture/bower_components/zanui-weapp/dist/datetime-picker/index.json

xqd
@@ -0,0 +1,6 @@
+{
+  "component": true,
+  "usingComponents": {
+    "pop-manager": "../common/pop-manager/index"    
+  }
+}

+ 18 - 0
Furniture/bower_components/zanui-weapp/dist/datetime-picker/index.wxml

xqd
@@ -0,0 +1,18 @@
+<import src="./date-picker-view.wxml" />
+
+<view wx:if="{{ !pickerView }}" bindtap="showPicker" class="placeholder-class">{{text || placeholder}}</view>
+
+<view wx:if="{{ pickerView }}" class="picker-view">
+  <template is="date-picker-view" data="{{ dataList, selected, use }}" />
+</view>
+<view wx:else>
+  <pop-manager show="{{ show }}" type="bottom" >
+    <view class="picker">
+      <view class="picker-action">
+        <view data-action="cancel" bindtap="hidePicker">取消</view>
+        <view data-action="change" bindtap="hidePicker">确认</view>
+      </view>
+      <template is="date-picker-view" data="{{ dataList, selected, use }}" />
+    </view>
+  </pop-manager>
+</view>

+ 53 - 0
Furniture/bower_components/zanui-weapp/dist/datetime-picker/index.wxss

xqd
@@ -0,0 +1,53 @@
+.picker-visible {
+  height: 236px;
+  bottom: 0;
+}
+
+picker-view-column.year-view-column {
+  width: 50px;
+  flex: 2;
+}
+picker-view-column {
+  width: 30px;
+  text-align: center;
+}
+.hidden {
+  display: none;
+}
+.view-column-tip {
+  height: 235px;
+  line-height: 235px;
+  margin: 0 5px;
+}
+
+.picker {
+  width: 100vw;
+  height: 100vh;
+  top: 0;
+  left: 0;
+  z-index: 12;
+}
+
+.picker .picker-action {
+  height: 36px;
+  bottom: 235px;
+  padding: 0 15px;
+  width: 100%;
+  display: flex;
+  align-items: center;
+  position: absolute;
+  background: #fff;
+  box-sizing: border-box;
+  border-bottom: 1rpx solid #e5e5e5;
+  justify-content: space-between;
+}
+.picker-action view:last-child {
+  color: #1aad16;
+}
+
+.picker picker-view {
+  position: absolute;
+  bottom: 0;
+  background: #fff;
+  width: 100vw;
+}

+ 6 - 0
Furniture/bower_components/zanui-weapp/dist/datetime-picker/picker-view-column.wxml

xqd
@@ -0,0 +1,6 @@
+<template name="picker-view-column">
+  <picker-view-column class="{{ className }} {{ hidden && 'hidden'}}">
+    <view wx:for="{{ data }}" style="line-height: 50px" wx:key="*this">{{item}}</view>
+  </picker-view-column>
+  <view class="view-column-tip {{ hidden && 'hidden'}}">{{ tip }}</view>
+</template>

+ 124 - 0
Furniture/bower_components/zanui-weapp/dist/datetime-picker/utils.js

xqd
@@ -0,0 +1,124 @@
+'use strict';
+
+function partStartWithZero(num, strlen) {
+  var zeros = '';
+  while (zeros.length < strlen) {
+    zeros += '0';
+  }
+  return (zeros + num).slice(-strlen);
+}
+
+module.exports.genNumber = function genNumber(begin, end, strlen) {
+  var nums = [];
+  while (begin <= end) {
+    nums.push(partStartWithZero(begin, strlen));
+    begin++;
+  }
+  return nums;
+};
+
+module.exports.moment = function moment(date) {
+  var formatStr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'YYYY:MM:DD';
+
+  if (!date && date !== 0) date = new Date();
+
+  date = new Date(date);
+  if (date.toString() === 'Invalid Date') throw new Error('Invalid Date');
+
+  var getDateValue = function getDateValue(method, fn) {
+    return fn ? fn(date['get' + method]()) : date['get' + method]();
+  };
+  var map = new Map();
+
+  map.set(/(Y+)/i, function () {
+    return getDateValue('FullYear', function (year) {
+      return (year + '').substr(4 - RegExp.$1.length);
+    });
+  });
+  map.set(/(M+)/, function () {
+    return getDateValue('Month', function (month) {
+      return partStartWithZero(month + 1, RegExp.$1.length);
+    });
+  });
+  map.set(/(D+)/i, function () {
+    return getDateValue('Date', function (date) {
+      return partStartWithZero(date, RegExp.$1.length);
+    });
+  });
+  map.set(/(H+)/i, function () {
+    return getDateValue('Hours', function (hour) {
+      return partStartWithZero(hour, RegExp.$1.length);
+    });
+  });
+  map.set(/(m+)/, function () {
+    return getDateValue('Minutes', function (minute) {
+      return partStartWithZero(minute, RegExp.$1.length);
+    });
+  });
+  map.set(/(s+)/, function () {
+    return getDateValue('Seconds', function (second) {
+      return partStartWithZero(second, RegExp.$1.length);
+    });
+  });
+
+  for (var _iterator = map, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
+    var _ref2;
+
+    if (_isArray) {
+      if (_i >= _iterator.length) break;
+      _ref2 = _iterator[_i++];
+    } else {
+      _i = _iterator.next();
+      if (_i.done) break;
+      _ref2 = _i.value;
+    }
+
+    var _ref = _ref2;
+    var reg = _ref[0];
+    var fn = _ref[1];
+
+    if (reg.test(formatStr)) {
+      formatStr = formatStr.replace(RegExp.$1, fn.call(null));
+    }
+  }
+
+  return formatStr;
+};
+
+module.exports.iso2utc = function (string) {
+  var regexp = "([0-9]{4})(-([0-9]{2})(-([0-9]{2})(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?";
+  if (string) {
+    var d = string.match(new RegExp(regexp));
+    var offset = 0;
+    var date = new Date(d[1], 0, 1);
+
+    if (d[3]) {
+      date.setMonth(d[3] - 1);
+    }
+    if (d[5]) {
+      date.setDate(+d[5]);
+    }
+    if (d[7]) {
+      date.setHours(d[7]);
+    }
+    if (d[8]) {
+      date.setMinutes(d[8]);
+    }
+    if (d[10]) {
+      date.setSeconds(d[10]);
+    }
+    if (d[12]) {
+      date.setMilliseconds(Number("0." + d[12]) * 1000);
+    }
+    if (d[14]) {
+      offset = Number(d[16]) * 60 + Number(d[17]);
+      offset *= d[15] == '-' ? 1 : -1;
+    }
+
+    offset -= date.getTimezoneOffset();
+
+    return Number(date) + offset * 60 * 1000;
+  } else {
+    return string;
+  }
+};

+ 26 - 0
Furniture/bower_components/zanui-weapp/dist/dialog/data.js

xqd
@@ -0,0 +1,26 @@
+'use strict';
+
+module.exports = {
+  // 标题
+  title: '',
+  // 内容
+  message: ' ',
+  // 选择节点
+  selector: '#zan-dialog',
+  // 按钮是否展示为纵向
+  buttonsShowVertical: false,
+  // 是否展示确定
+  showConfirmButton: true,
+  // 确认按钮文案
+  confirmButtonText: '确定',
+  // 确认按钮颜色
+  confirmButtonColor: '#3CC51F',
+  // 是否展示取消
+  showCancelButton: false,
+  // 取消按钮文案
+  cancelButtonText: '取消',
+  // 取消按钮颜色
+  cancelButtonColor: '#333',
+  // 点击按钮自动关闭 dialog
+  autoClose: true
+};

+ 104 - 0
Furniture/bower_components/zanui-weapp/dist/dialog/dialog.js

xqd
@@ -0,0 +1,104 @@
+'use strict';
+
+var defaultData = require('./data');
+
+function getDialogCtx(_ref) {
+  var selector = _ref.selector,
+      pageCtx = _ref.pageCtx;
+
+  var ctx = pageCtx;
+  if (!ctx) {
+    var pages = getCurrentPages();
+    ctx = pages[pages.length - 1];
+  }
+  return ctx.selectComponent(selector);
+}
+
+function getParsedOptions() {
+  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+  return Object.assign({
+    // 自定义 btn 列表
+    // { type: 按钮类型,回调时以此作为区分依据,text: 按钮文案, color: 按钮文字颜色 }
+    buttons: []
+  }, defaultData, options);
+}
+
+// options 使用参数
+// pageCtx 页面 page 上下文
+function Dialog(options, pageCtx) {
+  var parsedOptions = getParsedOptions(options);
+
+  var dialogCtx = getDialogCtx({
+    selector: parsedOptions.selector,
+    pageCtx: pageCtx
+  });
+
+  if (!dialogCtx) {
+    console.error('无法找到对应的dialog组件,请于页面中注册并在 wxml 中声明 dialog 自定义组件');
+    return Promise.reject({ type: 'component error' });
+  }
+
+  // 处理默认按钮的展示
+  // 纵向排布确认按钮在上方
+  var _parsedOptions$button = parsedOptions.buttons,
+      buttons = _parsedOptions$button === undefined ? [] : _parsedOptions$button;
+
+  var showCustomBtns = false;
+  if (buttons.length === 0) {
+    if (parsedOptions.showConfirmButton) {
+      buttons.push({
+        type: 'confirm',
+        text: parsedOptions.confirmButtonText,
+        color: parsedOptions.confirmButtonColor
+      });
+    }
+
+    if (parsedOptions.showCancelButton) {
+      var cancelButton = {
+        type: 'cancel',
+        text: parsedOptions.cancelButtonText,
+        color: parsedOptions.cancelButtonColor
+      };
+      if (parsedOptions.buttonsShowVertical) {
+        buttons.push(cancelButton);
+      } else {
+        buttons.unshift(cancelButton);
+      }
+    }
+  } else {
+    showCustomBtns = true;
+  }
+
+  return new Promise(function (resolve, reject) {
+    dialogCtx.setData(Object.assign({}, parsedOptions, {
+      buttons: buttons,
+      showCustomBtns: showCustomBtns,
+      key: '' + new Date().getTime(),
+      show: true,
+      promiseFunc: { resolve: resolve, reject: reject },
+      openTypePromiseFunc: null
+    }));
+  });
+}
+
+Dialog.close = function (options, pageCtx) {
+  var parsedOptions = getParsedOptions(options);
+
+  var dialogCtx = getDialogCtx({
+    selector: parsedOptions.selector,
+    pageCtx: pageCtx
+  });
+
+  if (!dialogCtx) {
+    return;
+  }
+
+  dialogCtx.setData({
+    show: false,
+    promiseFunc: null,
+    openTypePromiseFunc: null
+  });
+};
+
+module.exports = Dialog;

+ 133 - 0
Furniture/bower_components/zanui-weapp/dist/dialog/index.js

xqd
@@ -0,0 +1,133 @@
+'use strict';
+
+var _f = function _f() {};
+var needResponseOpenTypes = ['getUserInfo', 'getPhoneNumber', 'openSetting'];
+
+Component({
+  properties: {},
+
+  data: {
+    // 标题
+    title: '',
+    // 自定义 btn 列表
+    // { type: 按钮类型,回调时以此作为区分依据,text: 按钮文案, color: 按钮文字颜色, openType: 微信开放能力 }
+    buttons: [],
+    // 内容
+    message: ' ',
+    // 选择节点
+    selector: '#zan-dialog',
+    // 按钮是否展示为纵向
+    buttonsShowVertical: false,
+    // 是否展示确定
+    showConfirmButton: true,
+    // 确认按钮文案
+    confirmButtonText: '确定',
+    // 确认按钮颜色
+    confirmButtonColor: '#3CC51F',
+    // 是否展示取消
+    showCancelButton: false,
+    // 取消按钮文案
+    cancelButtonText: '取消',
+    // 取消按钮颜色
+    cancelButtonColor: '#333',
+    key: '',
+    autoClose: true,
+    show: false,
+    showCustomBtns: false,
+    promiseFunc: {},
+    openTypePromiseFunc: {}
+  },
+
+  methods: {
+    handleButtonClick: function handleButtonClick(e) {
+      var _this = this;
+
+      var _e$currentTarget = e.currentTarget,
+          currentTarget = _e$currentTarget === undefined ? {} : _e$currentTarget;
+      var _currentTarget$datase = currentTarget.dataset,
+          dataset = _currentTarget$datase === undefined ? {} : _currentTarget$datase;
+
+      // 获取当次弹出框的信息
+
+      var _ref = this.data.promiseFunc || {},
+          _ref$resolve = _ref.resolve,
+          resolve = _ref$resolve === undefined ? _f : _ref$resolve,
+          _ref$reject = _ref.reject,
+          reject = _ref$reject === undefined ? _f : _ref$reject;
+
+      // 重置展示
+
+
+      if (this.data.autoClose) {
+        this.setData({ show: false });
+      }
+
+      // 自定义按钮,全部 resolve 形式返回,根据 type 区分点击按钮
+      if (this.data.showCustomBtns) {
+        var isNeedOpenDataButton = needResponseOpenTypes.indexOf(dataset.openType) > -1;
+        var resolveData = { type: dataset.type };
+        // 如果需要 openData,就额外返回一个 promise,用于后续 open 数据返回
+        if (isNeedOpenDataButton) {
+          resolveData.openDataPromise = new Promise(function (resolve, reject) {
+            _this.setData({ openTypePromiseFunc: { resolve: resolve, reject: reject } });
+          });
+          resolveData.hasOpenDataPromise = true;
+        }
+        resolve(resolveData);
+        return;
+      }
+
+      // 默认按钮,确认为 resolve,取消为 reject
+      if (dataset.type === 'confirm') {
+        resolve({
+          type: 'confirm'
+        });
+      } else {
+        reject({
+          type: 'cancel'
+        });
+      }
+
+      this.setData({ promiseFunc: {} });
+    },
+
+
+    // 以下为处理微信按钮开放能力的逻辑
+    handleUserInfoResponse: function handleUserInfoResponse(_ref2) {
+      var detail = _ref2.detail;
+
+      this.__handleOpenDataResponse({
+        type: detail.errMsg === 'getUserInfo:ok' ? 'resolve' : 'reject',
+        data: detail
+      });
+    },
+    handlePhoneResponse: function handlePhoneResponse(_ref3) {
+      var detail = _ref3.detail;
+
+      this.__handleOpenDataResponse({
+        type: detail.errMsg === 'getPhoneNumber:ok' ? 'resolve' : 'reject',
+        data: detail
+      });
+    },
+    handleOpenSettingResponse: function handleOpenSettingResponse(_ref4) {
+      var detail = _ref4.detail;
+
+      this.__handleOpenDataResponse({
+        type: detail.errMsg === 'openSetting:ok' ? 'resolve' : 'reject',
+        data: detail
+      });
+    },
+    __handleOpenDataResponse: function __handleOpenDataResponse(_ref5) {
+      var _ref5$type = _ref5.type,
+          type = _ref5$type === undefined ? 'resolve' : _ref5$type,
+          _ref5$data = _ref5.data,
+          data = _ref5$data === undefined ? {} : _ref5$data;
+
+      var promiseFuncs = this.data.openTypePromiseFunc || {};
+      var responseFunc = promiseFuncs[type] || _f;
+
+      responseFunc(data);
+      this.setData({ openTypePromiseFunc: null });
+    }
+  }
+});

+ 7 - 0
Furniture/bower_components/zanui-weapp/dist/dialog/index.json

xqd
@@ -0,0 +1,7 @@
+{
+  "component": true,
+  "usingComponents": {
+    "pop-manager": "../common/pop-manager/index",
+    "zan-button": "../btn/index"
+  } 
+}

+ 40 - 0
Furniture/bower_components/zanui-weapp/dist/dialog/index.wxml

xqd
@@ -0,0 +1,40 @@
+<pop-manager
+  show="{{ show }}"
+  type="center"
+>
+  <view class="zan-dialog--container">
+    <view
+      wx:if="{{ title }}"
+      class="zan-dialog__header"
+    >{{ title }}</view>
+    <view
+      class="zan-dialog__content {{ title ? 'zan-dialog__content--title' : '' }}"
+    >
+      <text>{{ message }}</text>
+    </view>
+    <view
+      class="zan-dialog__footer {{ buttonsShowVertical ? 'zan-dialog__footer--vertical' : 'zan-dialog__footer--horizon' }}"
+    >
+      <block
+        wx:for="{{ buttons }}"
+        wx:key="{{ item.text }}-{{ item.type }}"
+      >
+        <zan-button
+          class="zan-dialog__button"
+          custom-class="{{ index === 0 ? 'zan-dialog__button-inside--first' : 'zan-dialog__button-inside' }}"
+          data-type="{{ item.type }}"
+          data-open-type="{{ item.openType }}"
+          open-type="{{ item.openType }}"
+          bind:btnclick="handleButtonClick"
+          bind:getuserinfo="handleUserInfoResponse"
+          bind:getphonenumber="handlePhoneResponse"
+          bind:opensetting="handleOpenSettingResponse"
+        >
+          <view
+            style="color: {{ item.color || '#333' }}"
+          >{{ item.text }}</view>
+        </zan-button>
+      </block>
+    </view>
+  </view>
+</pop-manager>

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/dialog/index.wxss

xqd
@@ -0,0 +1 @@
+.zan-dialog--container{width:80vw;font-size:16px;overflow:hidden;border-radius:4px;background-color:#fff;color:#333}.zan-dialog__header{padding:15px 0 0;text-align:center}.zan-dialog__content{position:relative;padding:15px 20px;line-height:1.5;min-height:40px}.zan-dialog__content::after{content:'';position:absolute;top:0;left:0;width:200%;height:200%;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #e5e5e5;border-bottom-width:1px}.zan-dialog__content--title{color:#999;font-size:14px}.zan-dialog__footer{overflow:hidden}.zan-dialog__button{-webkit-box-flex:1;flex:1}.zan-dialog__button-inside,.zan-dialog__button-inside--first{margin-bottom:0;line-height:50px;height:50px}.zan-dialog__button-inside--first::after,.zan-dialog__button-inside::after{border-width:0;border-radius:0}.zan-dialog__footer--horizon{display:-webkit-box;display:flex}.zan-dialog__footer--horizon .zan-dialog__button-inside::after{border-left-width:1px}.zan-dialog__footer--vertical .zan-dialog__button-inside::after{border-top-width:1px}

+ 77 - 0
Furniture/bower_components/zanui-weapp/dist/field/index.js

xqd
@@ -0,0 +1,77 @@
+'use strict';
+
+Component({
+  behaviors: ['wx://form-field'],
+
+  externalClasses: ['field-class'],
+
+  relations: {
+    '../cell-group/index': {
+      type: 'parent'
+    }
+  },
+
+  properties: {
+    title: String,
+    type: {
+      type: String,
+      value: 'input'
+    },
+    disabled: Boolean,
+    focus: Boolean,
+    inputType: {
+      type: String,
+      value: 'text'
+    },
+    placeholder: String,
+    mode: {
+      type: String,
+      value: 'normal'
+    },
+    right: Boolean,
+    error: Boolean,
+    maxlength: {
+      type: Number,
+      value: 140
+    }
+  },
+
+  data: {
+    showBorder: true
+  },
+
+  methods: {
+    handleFieldChange: function handleFieldChange(event) {
+      var _event$detail = event.detail,
+          detail = _event$detail === undefined ? {} : _event$detail;
+      var _detail$value = detail.value,
+          value = _detail$value === undefined ? '' : _detail$value;
+
+      this.setData({ value: value });
+
+      this.triggerEvent('change', Object.assign({}, detail));
+    },
+    handleFieldFocus: function handleFieldFocus(_ref) {
+      var _ref$detail = _ref.detail,
+          detail = _ref$detail === undefined ? {} : _ref$detail;
+
+      this.triggerEvent('focus', Object.assign({}, detail));
+    },
+    handleFieldBlur: function handleFieldBlur(_ref2) {
+      var _ref2$detail = _ref2.detail,
+          detail = _ref2$detail === undefined ? {} : _ref2$detail;
+
+      this.triggerEvent('blur', Object.assign({}, detail));
+    },
+    updateIsLastElement: function updateIsLastElement(isLastField) {
+      var showBorder = true;
+      if (isLastField && this.data.mode === 'normal') {
+        showBorder = false;
+      }
+
+      this.setData({
+        showBorder: showBorder
+      });
+    }
+  }
+});

+ 6 - 0
Furniture/bower_components/zanui-weapp/dist/field/index.json

xqd
@@ -0,0 +1,6 @@
+{
+  "component": true,
+  "usingComponents": {
+    "zan-cell": "../cell/index"
+  }
+}

+ 39 - 0
Furniture/bower_components/zanui-weapp/dist/field/index.wxml

xqd
@@ -0,0 +1,39 @@
+<zan-cell
+  class="field-class zan-field {{ error ? 'zan-field--error' : '' }} {{ mode === 'wrapped' ? 'zan-field--wrapped' : '' }} {{ !showBorder ? 'zan-field--no-border' : '' }}"
+  cell-class="zan-cell--field"
+>
+  <view
+    slot="icon"
+    wx:if="{{ title }}"
+    class="zan-cell__hd zan-field__title">
+    {{ title }}
+  </view>
+  <textarea
+    wx:if="{{ type === 'textarea' }}"
+    auto-height
+    disabled="{{ disabled }}"
+    focus="{{ focus }}"
+    value="{{ value }}"
+    placeholder="{{ placeholder }}"
+    maxlength="{{ maxlength }}"
+    class="zan-field__input zan-cell__bd {{ right ? 'zan-field__input--right' : '' }}"
+    placeholder-class="zan-field__placeholder"
+    bindinput="handleFieldChange"
+    bindfocus="handleFieldFocus"
+    bindblur="handleFieldBlur"
+  ></textarea>
+  <input
+    wx:else
+    type="{{ inputType || 'text' }}"
+    disabled="{{ disabled }}"
+    focus="{{ focus }}"
+    value="{{ value }}"
+    placeholder="{{ placeholder }}"
+    maxlength="{{ maxlength }}"
+    class="zan-field__input zan-cell__bd {{ right ? 'zan-field__input--right' : '' }}"
+    placeholder-class="zan-field__placeholder"
+    bindinput="handleFieldChange"
+    bindfocus="handleFieldFocus"
+    bindblur="handleFieldBlur"
+  />
+</zan-cell>

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/field/index.wxss

xqd
@@ -0,0 +1 @@
+.zan-field{display:block;position:relative;color:#333}.zan-field::after{content:'';position:absolute;top:0;left:0;width:200%;height:200%;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #e5e5e5;border-bottom-width:1px;left:15px;right:0}.zan-field--no-border::after{border-bottom-width:0}.zan-cell--field{padding:7px 15px}.zan-field--wrapped{margin:10px 15px;background-color:#fff}.zan-field--wrapped::after{left:0;border-width:1px;border-radius:4px}.zan-field--wrapped::after{display:block}.zan-field--error{color:#f40}.zan-field--wrapped.zan-field--error::after{border-color:#f40}.zan-field__title{color:#333;min-width:65px;padding-right:10px}.zan-field__input{-webkit-box-flex:1;flex:1;line-height:1.6;padding:4px 0;min-height:22px;height:auto;font-size:14px}.zan-field__placeholder{font-size:14px}.zan-field__input--right{text-align:right}

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
Furniture/bower_components/zanui-weapp/dist/helper/index.wxss


+ 10 - 0
Furniture/bower_components/zanui-weapp/dist/icon/index.js

xqd
@@ -0,0 +1,10 @@
+'use strict';
+
+Component({
+  properties: {
+    type: {
+      type: String,
+      value: ''
+    }
+  }
+});

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/icon/index.json

xqd
@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/icon/index.wxml

xqd
@@ -0,0 +1 @@
+<view class="zan-icon zan-icon-{{ type }}"></view>

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
Furniture/bower_components/zanui-weapp/dist/icon/index.wxss


+ 5 - 0
Furniture/bower_components/zanui-weapp/dist/index.js

xqd
@@ -0,0 +1,5 @@
+'use strict';
+
+exports.Dialog = require('./dialog/dialog');
+exports.Toast = require('./toast/toast');
+exports.TopTips = require('./toptips/toptips');

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
Furniture/bower_components/zanui-weapp/dist/index.wxss


+ 13 - 0
Furniture/bower_components/zanui-weapp/dist/loading/index.js

xqd
@@ -0,0 +1,13 @@
+'use strict';
+
+Component({
+  properties: {
+    type: {
+      type: String,
+      value: 'circle'
+    },
+    color: {
+      type: String
+    }
+  }
+});

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/loading/index.json

xqd
@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 18 - 0
Furniture/bower_components/zanui-weapp/dist/loading/index.wxml

xqd
@@ -0,0 +1,18 @@
+<view class="loading {{color}} {{type === 'dot' ? 'block' : 'inline'}}">
+  <view wx:if="{{type === 'circle'}}" class="circle"></view>
+  <view wx:if="{{type === 'circular'}}" class="circular"></view>
+  <view wx:if="{{type === 'spinner' || type === 'dot'}}" class="{{ type === 'dot' ? 'dot-spinner' : 'spinner'}}">
+    <view></view>
+    <view></view>
+    <view></view>
+    <view></view>
+    <view></view>
+    <view></view>
+    <view></view>
+    <view></view>
+    <view></view>
+    <view></view>
+    <view></view>
+    <view></view>
+  </view>
+</view>

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
Furniture/bower_components/zanui-weapp/dist/loading/index.wxss


+ 14 - 0
Furniture/bower_components/zanui-weapp/dist/loadmore/index.js

xqd
@@ -0,0 +1,14 @@
+'use strict';
+
+Component({
+  properties: {
+    type: {
+      type: String,
+      value: 'loading'
+    },
+    text: {
+      type: String,
+      value: ''
+    }
+  }
+});

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/loadmore/index.json

xqd
@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 12 - 0
Furniture/bower_components/zanui-weapp/dist/loadmore/index.wxml

xqd
@@ -0,0 +1,12 @@
+<view class="zan-loadmore">
+  <block wx:if="{{ type === 'loading' }}">
+    <view class="zan-loading"></view>
+    <view class="zan-loadmore__tips">加载中...</view>
+  </block>
+  <block wx:elif="{{ type === 'text' }}">
+    <view class="zan-loadmore__line"></view>
+    <text wx:if="{{ text }}" class="zan-loadmore__text">{{ text }}</text>
+    <view wx:else class="zan-loadmore__dot"></view>
+    <view class="zan-loadmore__line"></view>
+  </block>
+</view>

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
Furniture/bower_components/zanui-weapp/dist/loadmore/index.wxss


+ 176 - 0
Furniture/bower_components/zanui-weapp/dist/noticebar/index.js

xqd
@@ -0,0 +1,176 @@
+'use strict';
+
+var VALID_MODE = ['closeable'];
+var FONT_COLOR = '#f60';
+var BG_COLOR = '#fff7cc';
+
+Component({
+  properties: {
+    text: {
+      type: String,
+      value: '',
+      observer: function observer(newVal) {
+        this.setData({}, this._init);
+      }
+    },
+    mode: {
+      type: String,
+      value: ''
+    },
+    url: {
+      type: String,
+      value: ''
+    },
+    openType: {
+      type: String,
+      value: 'navigate'
+    },
+    delay: {
+      type: Number,
+      value: 0
+    },
+    speed: {
+      type: Number,
+      value: 40
+    },
+    scrollable: {
+      type: Boolean,
+      value: false
+    },
+    leftIcon: {
+      type: String,
+      value: ''
+    },
+    color: {
+      type: String,
+      value: FONT_COLOR
+    },
+    backgroundColor: {
+      type: String,
+      value: BG_COLOR
+    }
+  },
+
+  data: {
+    show: true,
+    hasRightIcon: false,
+    width: undefined,
+    wrapWidth: undefined,
+    elapse: undefined,
+    animation: null,
+    resetAnimation: null,
+    timer: null
+  },
+
+  attached: function attached() {
+    var mode = this.data.mode;
+
+    if (mode && this._checkMode(mode)) {
+      this.setData({
+        hasRightIcon: true
+      });
+    }
+  },
+  detached: function detached() {
+    var timer = this.data.timer;
+
+    timer && clearTimeout(timer);
+  },
+
+
+  methods: {
+    _checkMode: function _checkMode(val) {
+      var isValidMode = ~VALID_MODE.indexOf(val);
+      if (!isValidMode) {
+        console.warn('mode only accept value of ' + VALID_MODE + ', now get ' + val + '.');
+      }
+      return isValidMode;
+    },
+    _init: function _init() {
+      var _this = this;
+
+      wx.createSelectorQuery().in(this).select('.zan-noticebar__content').boundingClientRect(function (rect) {
+        if (!rect || !rect.width) {
+          return;
+        }
+        _this.setData({
+          width: rect.width
+        });
+
+        wx.createSelectorQuery().in(_this).select('.zan-noticebar__content-wrap').boundingClientRect(function (rect) {
+          if (!rect || !rect.width) {
+            return;
+          }
+
+          var wrapWidth = rect.width;
+          var _data = _this.data,
+              width = _data.width,
+              speed = _data.speed,
+              scrollable = _data.scrollable,
+              delay = _data.delay;
+
+
+          if (scrollable && wrapWidth < width) {
+            var elapse = width / speed * 1000;
+            var animation = wx.createAnimation({
+              duration: elapse,
+              timeingFunction: 'linear',
+              delay: delay
+            });
+            var resetAnimation = wx.createAnimation({
+              duration: 0,
+              timeingFunction: 'linear'
+            });
+
+            _this.setData({
+              elapse: elapse,
+              wrapWidth: wrapWidth,
+              animation: animation,
+              resetAnimation: resetAnimation
+            }, function () {
+              _this._scroll();
+            });
+          }
+        }).exec();
+      }).exec();
+    },
+    _scroll: function _scroll() {
+      var _this2 = this;
+
+      var _data2 = this.data,
+          animation = _data2.animation,
+          resetAnimation = _data2.resetAnimation,
+          wrapWidth = _data2.wrapWidth,
+          elapse = _data2.elapse,
+          speed = _data2.speed;
+
+      resetAnimation.translateX(wrapWidth).step();
+      var animationData = animation.translateX(-(elapse * speed) / 1000).step();
+      this.setData({
+        animationData: resetAnimation.export()
+      });
+      setTimeout(function () {
+        _this2.setData({
+          animationData: animationData.export()
+        });
+      }, 100);
+
+      var timer = setTimeout(function () {
+        _this2._scroll();
+      }, elapse);
+
+      this.setData({
+        timer: timer
+      });
+    },
+    _handleButtonClick: function _handleButtonClick() {
+      var timer = this.data.timer;
+
+      timer && clearTimeout(timer);
+      this.setData({
+        show: false,
+        timer: null
+      });
+    }
+  }
+});

+ 6 - 0
Furniture/bower_components/zanui-weapp/dist/noticebar/index.json

xqd
@@ -0,0 +1,6 @@
+{
+  "component": true,
+  "usingComponents": {
+    "zan-icon": "../icon/index"
+  }
+}

+ 31 - 0
Furniture/bower_components/zanui-weapp/dist/noticebar/index.wxml

xqd
@@ -0,0 +1,31 @@
+<view
+  wx:if="{{ show }}"
+  class="zan-noticebar {{ hasRightIcon ? 'zan-noticebar--within-icon' : '' }}"
+  style="color: {{ color }};background-color: {{ backgroundColor }}"
+>
+  <view wx:if="{{ leftIcon }}" class="zan-noticebar__left-icon">
+    <image src="{{ leftIcon }}" />
+  </view>
+  <view class="zan-noticebar__content-wrap">
+    <view class="zan-noticebar__content" animation="{{ animationData }}">
+      {{ text }}
+    </view>
+  </view>
+
+  <block wx:if="{{ mode }}">
+    <zan-icon
+      wx:if="{{ mode === 'closeable' }}"
+      class="zan-noticebar__right-icon"
+      type="close"
+      bindtap="_handleButtonClick"
+    />
+    <navigator
+      wx:if="{{ mode === 'link' }}"
+      url="{{ url }}"
+      open-type="{{ openType }}"
+    >
+      <zan-icon class="zan-noticebar__right-icon" type="arrow" />
+    </navigator>
+  </block>
+
+</view>

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/noticebar/index.wxss

xqd
@@ -0,0 +1 @@
+.zan-noticebar{display:-webkit-box;display:flex;padding:9px 10px;font-size:12px;line-height:1.5}.zan-noticebar--within-icon{position:relative;padding-right:30px}.zan-noticebar__left-icon{height:18px;min-width:20px;padding-top:1px;box-sizing:border-box}.zan-noticebar__left-icon>image{width:16px;height:16px}.zan-noticebar__right-icon{position:absolute;top:10px;right:10px;font-size:15px;line-height:1}.zan-noticebar__content-wrap{position:relative;-webkit-box-flex:1;flex:1;height:18px;overflow:hidden}.zan-noticebar__content{position:absolute;white-space:nowrap}

+ 25 - 0
Furniture/bower_components/zanui-weapp/dist/panel/index.js

xqd
@@ -0,0 +1,25 @@
+'use strict';
+
+Component({
+  /**
+   * 组件的属性列表
+   * 用于组件自定义设置
+   */
+  properties: {
+    // 标题
+    title: {
+      type: String,
+      value: ''
+    },
+    // 内容区顶部是否取消10像素的间距
+    hideTop: {
+      type: Boolean,
+      value: false
+    },
+    // 内容区顶部是否取消边框
+    hideBorder: {
+      type: Boolean,
+      value: false
+    }
+  }
+});

+ 3 - 0
Furniture/bower_components/zanui-weapp/dist/panel/index.json

xqd
@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 10 - 0
Furniture/bower_components/zanui-weapp/dist/panel/index.wxml

xqd
@@ -0,0 +1,10 @@
+<view class="zan-panel">
+  <view
+    wx:if="{{ title }}"
+    class="zan-panel__title">{{ title }}</view>
+  <view
+    class="zan-panel__content {{ hideBorder ? 'zan-panel--without-border' : '' }}"
+  >
+    <slot></slot>
+  </view>
+</view>

+ 1 - 0
Furniture/bower_components/zanui-weapp/dist/panel/index.wxss

xqd
@@ -0,0 +1 @@
+.zan-panel{position:relative;overflow:hidden}.zan-panel__title{font-size:14px;line-height:1;color:#999;padding:20px 15px 10px 15px}.zan-panel__content{position:relative;background:#fff;overflow:hidden}.zan-panel__content::after{content:'';position:absolute;top:0;left:0;width:200%;height:200%;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #e5e5e5;border-top-width:1px;border-bottom-width:1px}.zan-panel--without-border::after{border:0 none}

+ 37 - 0
Furniture/bower_components/zanui-weapp/dist/popup/index.js

xqd
@@ -0,0 +1,37 @@
+'use strict';
+
+Component({
+  properties: {
+    show: {
+      type: Boolean,
+      value: false
+    },
+
+    overlay: {
+      type: Boolean,
+      value: true
+    },
+
+    closeOnClickOverlay: {
+      type: Boolean,
+      value: true
+    },
+
+    // 弹出方向
+    type: {
+      type: String,
+      value: 'center'
+    }
+  },
+
+  methods: {
+    handleMaskClick: function handleMaskClick() {
+      this.triggerEvent('click-overlay', {});
+
+      if (!this.data.closeOnClickOverlay) {
+        return;
+      }
+      this.triggerEvent('close', {});
+    }
+  }
+});

+ 6 - 0
Furniture/bower_components/zanui-weapp/dist/popup/index.json

xqd
@@ -0,0 +1,6 @@
+{
+  "component": true,
+  "usingComponents": {
+    "pop-manager": "../common/pop-manager/index"
+  } 
+}

Некоторые файлы не были показаны из-за большого количества измененных файлов