From 7bfd53851effed96d2e716045df271e623ac93fa Mon Sep 17 00:00:00 2001 From: Drawfans <13729154527@qq.com> Date: Tue, 9 Jun 2020 16:17:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BF=E4=BA=92=E7=AB=99=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __wuBaseWxss__/0.wxss | 2006 +++++++++++++++++++++++++++ __wuBaseWxss__/1.wxss | 868 ++++++++++++ app.js | 8 + app.json | 51 + app.wxss | 21 + common/WxValidate.js | 290 ++++ common/common.js | 1058 ++++++++++++++ pages/index/article.js | 63 + pages/index/article.json | 18 + pages/index/article.wxml | 4 + pages/index/article.wxss | 260 ++++ pages/index/index.js | 89 ++ pages/index/index.json | 12 + pages/index/index.wxml | 13 + pages/index/index.wxss | 214 +++ pages/index/list.js | 182 +++ pages/index/list.json | 22 + pages/index/list.wxml | 256 ++++ pages/index/list.wxss | 962 +++++++++++++ pages/index/shop.js | 106 ++ pages/index/shop.json | 15 + pages/index/shop.wxml | 117 ++ pages/index/shop.wxss | 287 ++++ pages/index/show.js | 131 ++ pages/index/show.json | 25 + pages/index/show.wxml | 238 ++++ pages/index/show.wxss | 630 +++++++++ pages/member/cart.js | 223 +++ pages/member/cart.json | 15 + pages/member/cart.wxml | 111 ++ pages/member/cart.wxss | 294 ++++ pages/member/html.js | 115 ++ pages/member/html.json | 25 + pages/member/html.wxml | 4 + pages/member/html.wxss | 5 + pages/member/list/detail.js | 123 ++ pages/member/list/detail.json | 16 + pages/member/list/detail.wxml | 27 + pages/member/list/detail.wxss | 5 + pages/member/list/fav.js | 144 ++ pages/member/list/fav.json | 12 + pages/member/list/fav.wxml | 125 ++ pages/member/list/fav.wxss | 114 ++ pages/member/list/manage.js | 209 +++ pages/member/list/manage.json | 26 + pages/member/list/manage.wxml | 90 ++ pages/member/list/manage.wxss | 233 ++++ pages/member/list/message.js | 134 ++ pages/member/list/message.json | 13 + pages/member/list/message.wxml | 20 + pages/member/list/message.wxss | 45 + pages/member/list/order.js | 217 +++ pages/member/list/order.json | 23 + pages/member/list/order.wxml | 57 + pages/member/list/order.wxss | 169 +++ pages/member/login.js | 167 +++ pages/member/login.json | 14 + pages/member/login.wxml | 60 + pages/member/login.wxss | 67 + pages/member/member.js | 72 + pages/member/member.json | 16 + pages/member/member.wxml | 5 + pages/member/member.wxss | 361 +++++ pages/member/myorder.js | 179 +++ pages/member/myorder.json | 25 + pages/member/myorder.wxml | 111 ++ pages/member/myorder.wxss | 652 +++++++++ project.config.json | 53 + sitemap.json | 9 + sitemap96.json | 7 + static/images/cart.png | Bin 0 -> 1550 bytes static/images/cart_hover.png | Bin 0 -> 1441 bytes static/images/home.png | Bin 0 -> 1354 bytes static/images/home_hover.png | Bin 0 -> 1241 bytes static/images/my.png | Bin 0 -> 1742 bytes static/images/my_hover.png | Bin 0 -> 1348 bytes template/member.wxml | 7 + template/member.wxss | 0 template/template.wxml | 492 +++++++ template/template.wxss | 0 utils/count-down/index.js | 107 ++ utils/count-down/index.json | 13 + utils/count-down/index.wxml | 2 + utils/count-down/index.wxss | 0 utils/forview/index.js | 15 + utils/forview/index.json | 13 + utils/forview/index.wxml | 8 + utils/forview/index.wxss | 0 utils/tools.wxs | 41 + vant/action-sheet/index.js | 38 + vant/action-sheet/index.json | 13 + vant/action-sheet/index.wxml | 20 + vant/action-sheet/index.wxss | 60 + vant/area/index.js | 155 +++ vant/area/index.json | 14 + vant/area/index.wxml | 1 + vant/area/index.wxss | 68 + vant/badge-group/index.js | 34 + vant/badge-group/index.json | 13 + vant/badge-group/index.wxml | 3 + vant/badge-group/index.wxss | 5 + vant/badge/index.js | 29 + vant/badge/index.json | 14 + vant/badge/index.wxml | 7 + vant/badge/index.wxss | 41 + vant/button/index.js | 54 + vant/button/index.json | 13 + vant/button/index.wxml | 15 + vant/button/index.wxss | 219 +++ vant/card/index.js | 31 + vant/card/index.json | 14 + vant/card/index.wxml | 27 + vant/card/index.wxss | 89 ++ vant/cell-group/index.js | 9 + vant/cell-group/index.json | 13 + vant/cell-group/index.wxml | 6 + vant/cell-group/index.wxss | 8 + vant/cell/index.js | 34 + vant/cell/index.json | 13 + vant/cell/index.wxml | 22 + vant/cell/index.wxss | 127 ++ vant/checkbox-group/index.js | 35 + vant/checkbox-group/index.json | 13 + vant/checkbox-group/index.wxml | 1 + vant/checkbox-group/index.wxss | 1 + vant/checkbox/index.js | 47 + vant/checkbox/index.json | 13 + vant/checkbox/index.wxml | 10 + vant/checkbox/index.wxss | 65 + vant/col/index.js | 21 + vant/col/index.json | 13 + vant/col/index.wxml | 4 + vant/col/index.wxss | 198 +++ vant/collapse-item/index.js | 85 ++ vant/collapse-item/index.json | 14 + vant/collapse-item/index.wxml | 14 + vant/collapse-item/index.wxss | 34 + vant/collapse/index.js | 44 + vant/collapse/index.json | 13 + vant/collapse/index.wxml | 3 + vant/collapse/index.wxss | 1 + vant/common/color.js | 5 + vant/common/component.js | 44 + vant/common/utils.js | 34 + vant/datetime-picker/index.js | 238 ++++ vant/datetime-picker/index.json | 14 + vant/datetime-picker/index.wxml | 1 + vant/datetime-picker/index.wxss | 1 + vant/dialog/dialog.js | 54 + vant/dialog/index.js | 99 ++ vant/dialog/index.json | 13 + vant/dialog/index.wxml | 18 + vant/dialog/index.wxss | 68 + vant/field/index.js | 150 ++ vant/field/index.json | 14 + vant/field/index.wxml | 29 + vant/field/index.wxss | 104 ++ vant/goods-action-button/index.js | 37 + vant/goods-action-button/index.json | 13 + vant/goods-action-button/index.wxml | 4 + vant/goods-action-button/index.wxss | 45 + vant/goods-action-icon/index.js | 19 + vant/goods-action-icon/index.json | 13 + vant/goods-action-icon/index.wxml | 7 + vant/goods-action-icon/index.wxss | 23 + vant/goods-action/index.js | 23 + vant/goods-action/index.json | 13 + vant/goods-action/index.wxml | 4 + vant/goods-action/index.wxss | 17 + vant/icon/index.js | 18 + vant/icon/index.json | 14 + vant/icon/index.wxml | 5 + vant/icon/index.wxss | 1279 +++++++++++++++++ vant/info/index.js | 6 + vant/info/index.json | 13 + vant/info/index.wxml | 1 + vant/info/index.wxss | 22 + vant/loading/index.js | 16 + vant/loading/index.json | 13 + vant/loading/index.wxml | 5 + vant/loading/index.wxss | 128 ++ vant/mixins/basic.js | 19 + vant/mixins/button.js | 22 + vant/mixins/link.js | 21 + vant/mixins/observer/behavior.js | 37 + vant/mixins/observer/index.js | 21 + vant/mixins/observer/props.js | 14 + vant/mixins/open-type.js | 29 + vant/mixins/safe-area.js | 46 + vant/mixins/touch.js | 18 + vant/mixins/transition.js | 91 ++ vant/nav-bar/index.js | 31 + vant/nav-bar/index.json | 13 + vant/nav-bar/index.wxml | 18 + vant/nav-bar/index.wxss | 60 + vant/notice-bar/index.js | 127 ++ vant/notice-bar/index.json | 13 + vant/notice-bar/index.wxml | 12 + vant/notice-bar/index.wxss | 56 + vant/notify/index.js | 39 + vant/notify/index.json | 14 + vant/notify/index.wxml | 4 + vant/notify/index.wxss | 17 + vant/notify/notify.js | 22 + vant/overlay/index.js | 21 + vant/overlay/index.json | 14 + vant/overlay/index.wxml | 1 + vant/overlay/index.wxss | 9 + vant/panel/index.js | 9 + vant/panel/index.json | 14 + vant/panel/index.wxml | 10 + vant/panel/index.wxss | 13 + vant/picker-column/index.js | 113 ++ vant/picker-column/index.json | 13 + vant/picker-column/index.wxml | 14 + vant/picker-column/index.wxss | 21 + vant/picker/index.js | 110 ++ vant/picker/index.json | 15 + vant/picker/index.wxml | 24 + vant/picker/index.wxss | 66 + vant/picker/shared.js | 25 + vant/popup/index.js | 66 + vant/popup/index.json | 14 + vant/popup/index.wxml | 14 + vant/popup/index.wxss | 136 ++ vant/progress/index.js | 61 + vant/progress/index.json | 13 + vant/progress/index.wxml | 7 + vant/progress/index.wxss | 36 + vant/radio-group/index.js | 43 + vant/radio-group/index.json | 13 + vant/radio-group/index.wxml | 1 + vant/radio-group/index.wxss | 1 + vant/radio/index.js | 37 + vant/radio/index.json | 13 + vant/radio/index.wxml | 12 + vant/radio/index.wxss | 64 + vant/rate/index.js | 79 ++ vant/rate/index.json | 13 + vant/rate/index.wxml | 3 + vant/rate/index.wxss | 11 + vant/row/index.js | 28 + vant/row/index.json | 13 + vant/row/index.wxml | 3 + vant/row/index.wxss | 7 + vant/search/index.js | 56 + vant/search/index.json | 14 + vant/search/index.wxml | 12 + vant/search/index.wxss | 52 + vant/slider/index.js | 73 + vant/slider/index.json | 13 + vant/slider/index.wxml | 9 + vant/slider/index.wxss | 41 + vant/stepper/index.js | 142 ++ vant/stepper/index.json | 13 + vant/stepper/index.wxml | 7 + vant/stepper/index.wxss | 112 ++ vant/steps/index.js | 17 + vant/steps/index.json | 13 + vant/steps/index.wxml | 27 + vant/steps/index.wxss | 153 ++ vant/submit-bar/index.js | 55 + vant/submit-bar/index.json | 13 + vant/submit-bar/index.wxml | 25 + vant/submit-bar/index.wxss | 94 ++ vant/swipe-cell/index.js | 68 + vant/swipe-cell/index.json | 13 + vant/swipe-cell/index.wxml | 11 + vant/swipe-cell/index.wxss | 22 + vant/switch-cell/index.js | 42 + vant/switch-cell/index.json | 15 + vant/switch-cell/index.wxml | 3 + vant/switch-cell/index.wxss | 10 + vant/switch/index.js | 44 + vant/switch/index.json | 13 + vant/switch/index.wxml | 6 + vant/switch/index.wxss | 45 + vant/tab/index.js | 35 + vant/tab/index.json | 13 + vant/tab/index.wxml | 4 + vant/tab/index.wxss | 15 + vant/tabbar-item/index.js | 29 + vant/tabbar-item/index.json | 14 + vant/tabbar-item/index.wxml | 14 + vant/tabbar-item/index.wxss | 39 + vant/tabbar/index.js | 54 + vant/tabbar/index.json | 13 + vant/tabbar/index.wxml | 4 + vant/tabbar/index.wxss | 18 + vant/tabs/index.js | 261 ++++ vant/tabs/index.json | 14 + vant/tabs/index.wxml | 31 + vant/tabs/index.wxss | 135 ++ vant/tag/index.js | 34 + vant/tag/index.json | 13 + vant/tag/index.wxml | 4 + vant/tag/index.wxss | 40 + vant/toast/index.js | 27 + vant/toast/index.json | 15 + vant/toast/index.wxml | 12 + vant/toast/index.wxss | 56 + vant/toast/toast.js | 57 + vant/transition/index.js | 6 + vant/transition/index.json | 13 + vant/transition/index.wxml | 3 + vant/transition/index.wxss | 61 + vant/tree-select/index.js | 64 + vant/tree-select/index.json | 14 + vant/tree-select/index.wxml | 14 + vant/tree-select/index.wxss | 74 + vant/wxs/array.wxs | 4 + vant/wxs/bem.wxs | 38 + vant/wxs/memoize.wxs | 39 + vant/wxs/object.wxs | 8 + vant/wxs/utils.wxs | 11 + wxParse/html2json.js | 103 ++ wxParse/htmlparser.js | 48 + wxParse/wxDiscode.js | 74 + wxParse/wxParse.js | 75 + wxParse/wxParse.wxml | 386 ++++++ wxParse/wxParse.wxss | 249 ++++ 321 files changed, 22890 insertions(+) create mode 100644 __wuBaseWxss__/0.wxss create mode 100644 __wuBaseWxss__/1.wxss create mode 100644 app.js create mode 100644 app.json create mode 100644 app.wxss create mode 100644 common/WxValidate.js create mode 100644 common/common.js create mode 100644 pages/index/article.js create mode 100644 pages/index/article.json create mode 100644 pages/index/article.wxml create mode 100644 pages/index/article.wxss create mode 100644 pages/index/index.js create mode 100644 pages/index/index.json create mode 100644 pages/index/index.wxml create mode 100644 pages/index/index.wxss create mode 100644 pages/index/list.js create mode 100644 pages/index/list.json create mode 100644 pages/index/list.wxml create mode 100644 pages/index/list.wxss create mode 100644 pages/index/shop.js create mode 100644 pages/index/shop.json create mode 100644 pages/index/shop.wxml create mode 100644 pages/index/shop.wxss create mode 100644 pages/index/show.js create mode 100644 pages/index/show.json create mode 100644 pages/index/show.wxml create mode 100644 pages/index/show.wxss create mode 100644 pages/member/cart.js create mode 100644 pages/member/cart.json create mode 100644 pages/member/cart.wxml create mode 100644 pages/member/cart.wxss create mode 100644 pages/member/html.js create mode 100644 pages/member/html.json create mode 100644 pages/member/html.wxml create mode 100644 pages/member/html.wxss create mode 100644 pages/member/list/detail.js create mode 100644 pages/member/list/detail.json create mode 100644 pages/member/list/detail.wxml create mode 100644 pages/member/list/detail.wxss create mode 100644 pages/member/list/fav.js create mode 100644 pages/member/list/fav.json create mode 100644 pages/member/list/fav.wxml create mode 100644 pages/member/list/fav.wxss create mode 100644 pages/member/list/manage.js create mode 100644 pages/member/list/manage.json create mode 100644 pages/member/list/manage.wxml create mode 100644 pages/member/list/manage.wxss create mode 100644 pages/member/list/message.js create mode 100644 pages/member/list/message.json create mode 100644 pages/member/list/message.wxml create mode 100644 pages/member/list/message.wxss create mode 100644 pages/member/list/order.js create mode 100644 pages/member/list/order.json create mode 100644 pages/member/list/order.wxml create mode 100644 pages/member/list/order.wxss create mode 100644 pages/member/login.js create mode 100644 pages/member/login.json create mode 100644 pages/member/login.wxml create mode 100644 pages/member/login.wxss create mode 100644 pages/member/member.js create mode 100644 pages/member/member.json create mode 100644 pages/member/member.wxml create mode 100644 pages/member/member.wxss create mode 100644 pages/member/myorder.js create mode 100644 pages/member/myorder.json create mode 100644 pages/member/myorder.wxml create mode 100644 pages/member/myorder.wxss create mode 100644 project.config.json create mode 100644 sitemap.json create mode 100644 sitemap96.json create mode 100644 static/images/cart.png create mode 100644 static/images/cart_hover.png create mode 100644 static/images/home.png create mode 100644 static/images/home_hover.png create mode 100644 static/images/my.png create mode 100644 static/images/my_hover.png create mode 100644 template/member.wxml create mode 100644 template/member.wxss create mode 100644 template/template.wxml create mode 100644 template/template.wxss create mode 100644 utils/count-down/index.js create mode 100644 utils/count-down/index.json create mode 100644 utils/count-down/index.wxml create mode 100644 utils/count-down/index.wxss create mode 100644 utils/forview/index.js create mode 100644 utils/forview/index.json create mode 100644 utils/forview/index.wxml create mode 100644 utils/forview/index.wxss create mode 100644 utils/tools.wxs create mode 100644 vant/action-sheet/index.js create mode 100644 vant/action-sheet/index.json create mode 100644 vant/action-sheet/index.wxml create mode 100644 vant/action-sheet/index.wxss create mode 100644 vant/area/index.js create mode 100644 vant/area/index.json create mode 100644 vant/area/index.wxml create mode 100644 vant/area/index.wxss create mode 100644 vant/badge-group/index.js create mode 100644 vant/badge-group/index.json create mode 100644 vant/badge-group/index.wxml create mode 100644 vant/badge-group/index.wxss create mode 100644 vant/badge/index.js create mode 100644 vant/badge/index.json create mode 100644 vant/badge/index.wxml create mode 100644 vant/badge/index.wxss create mode 100644 vant/button/index.js create mode 100644 vant/button/index.json create mode 100644 vant/button/index.wxml create mode 100644 vant/button/index.wxss create mode 100644 vant/card/index.js create mode 100644 vant/card/index.json create mode 100644 vant/card/index.wxml create mode 100644 vant/card/index.wxss create mode 100644 vant/cell-group/index.js create mode 100644 vant/cell-group/index.json create mode 100644 vant/cell-group/index.wxml create mode 100644 vant/cell-group/index.wxss create mode 100644 vant/cell/index.js create mode 100644 vant/cell/index.json create mode 100644 vant/cell/index.wxml create mode 100644 vant/cell/index.wxss create mode 100644 vant/checkbox-group/index.js create mode 100644 vant/checkbox-group/index.json create mode 100644 vant/checkbox-group/index.wxml create mode 100644 vant/checkbox-group/index.wxss create mode 100644 vant/checkbox/index.js create mode 100644 vant/checkbox/index.json create mode 100644 vant/checkbox/index.wxml create mode 100644 vant/checkbox/index.wxss create mode 100644 vant/col/index.js create mode 100644 vant/col/index.json create mode 100644 vant/col/index.wxml create mode 100644 vant/col/index.wxss create mode 100644 vant/collapse-item/index.js create mode 100644 vant/collapse-item/index.json create mode 100644 vant/collapse-item/index.wxml create mode 100644 vant/collapse-item/index.wxss create mode 100644 vant/collapse/index.js create mode 100644 vant/collapse/index.json create mode 100644 vant/collapse/index.wxml create mode 100644 vant/collapse/index.wxss create mode 100644 vant/common/color.js create mode 100644 vant/common/component.js create mode 100644 vant/common/utils.js create mode 100644 vant/datetime-picker/index.js create mode 100644 vant/datetime-picker/index.json create mode 100644 vant/datetime-picker/index.wxml create mode 100644 vant/datetime-picker/index.wxss create mode 100644 vant/dialog/dialog.js create mode 100644 vant/dialog/index.js create mode 100644 vant/dialog/index.json create mode 100644 vant/dialog/index.wxml create mode 100644 vant/dialog/index.wxss create mode 100644 vant/field/index.js create mode 100644 vant/field/index.json create mode 100644 vant/field/index.wxml create mode 100644 vant/field/index.wxss create mode 100644 vant/goods-action-button/index.js create mode 100644 vant/goods-action-button/index.json create mode 100644 vant/goods-action-button/index.wxml create mode 100644 vant/goods-action-button/index.wxss create mode 100644 vant/goods-action-icon/index.js create mode 100644 vant/goods-action-icon/index.json create mode 100644 vant/goods-action-icon/index.wxml create mode 100644 vant/goods-action-icon/index.wxss create mode 100644 vant/goods-action/index.js create mode 100644 vant/goods-action/index.json create mode 100644 vant/goods-action/index.wxml create mode 100644 vant/goods-action/index.wxss create mode 100644 vant/icon/index.js create mode 100644 vant/icon/index.json create mode 100644 vant/icon/index.wxml create mode 100644 vant/icon/index.wxss create mode 100644 vant/info/index.js create mode 100644 vant/info/index.json create mode 100644 vant/info/index.wxml create mode 100644 vant/info/index.wxss create mode 100644 vant/loading/index.js create mode 100644 vant/loading/index.json create mode 100644 vant/loading/index.wxml create mode 100644 vant/loading/index.wxss create mode 100644 vant/mixins/basic.js create mode 100644 vant/mixins/button.js create mode 100644 vant/mixins/link.js create mode 100644 vant/mixins/observer/behavior.js create mode 100644 vant/mixins/observer/index.js create mode 100644 vant/mixins/observer/props.js create mode 100644 vant/mixins/open-type.js create mode 100644 vant/mixins/safe-area.js create mode 100644 vant/mixins/touch.js create mode 100644 vant/mixins/transition.js create mode 100644 vant/nav-bar/index.js create mode 100644 vant/nav-bar/index.json create mode 100644 vant/nav-bar/index.wxml create mode 100644 vant/nav-bar/index.wxss create mode 100644 vant/notice-bar/index.js create mode 100644 vant/notice-bar/index.json create mode 100644 vant/notice-bar/index.wxml create mode 100644 vant/notice-bar/index.wxss create mode 100644 vant/notify/index.js create mode 100644 vant/notify/index.json create mode 100644 vant/notify/index.wxml create mode 100644 vant/notify/index.wxss create mode 100644 vant/notify/notify.js create mode 100644 vant/overlay/index.js create mode 100644 vant/overlay/index.json create mode 100644 vant/overlay/index.wxml create mode 100644 vant/overlay/index.wxss create mode 100644 vant/panel/index.js create mode 100644 vant/panel/index.json create mode 100644 vant/panel/index.wxml create mode 100644 vant/panel/index.wxss create mode 100644 vant/picker-column/index.js create mode 100644 vant/picker-column/index.json create mode 100644 vant/picker-column/index.wxml create mode 100644 vant/picker-column/index.wxss create mode 100644 vant/picker/index.js create mode 100644 vant/picker/index.json create mode 100644 vant/picker/index.wxml create mode 100644 vant/picker/index.wxss create mode 100644 vant/picker/shared.js create mode 100644 vant/popup/index.js create mode 100644 vant/popup/index.json create mode 100644 vant/popup/index.wxml create mode 100644 vant/popup/index.wxss create mode 100644 vant/progress/index.js create mode 100644 vant/progress/index.json create mode 100644 vant/progress/index.wxml create mode 100644 vant/progress/index.wxss create mode 100644 vant/radio-group/index.js create mode 100644 vant/radio-group/index.json create mode 100644 vant/radio-group/index.wxml create mode 100644 vant/radio-group/index.wxss create mode 100644 vant/radio/index.js create mode 100644 vant/radio/index.json create mode 100644 vant/radio/index.wxml create mode 100644 vant/radio/index.wxss create mode 100644 vant/rate/index.js create mode 100644 vant/rate/index.json create mode 100644 vant/rate/index.wxml create mode 100644 vant/rate/index.wxss create mode 100644 vant/row/index.js create mode 100644 vant/row/index.json create mode 100644 vant/row/index.wxml create mode 100644 vant/row/index.wxss create mode 100644 vant/search/index.js create mode 100644 vant/search/index.json create mode 100644 vant/search/index.wxml create mode 100644 vant/search/index.wxss create mode 100644 vant/slider/index.js create mode 100644 vant/slider/index.json create mode 100644 vant/slider/index.wxml create mode 100644 vant/slider/index.wxss create mode 100644 vant/stepper/index.js create mode 100644 vant/stepper/index.json create mode 100644 vant/stepper/index.wxml create mode 100644 vant/stepper/index.wxss create mode 100644 vant/steps/index.js create mode 100644 vant/steps/index.json create mode 100644 vant/steps/index.wxml create mode 100644 vant/steps/index.wxss create mode 100644 vant/submit-bar/index.js create mode 100644 vant/submit-bar/index.json create mode 100644 vant/submit-bar/index.wxml create mode 100644 vant/submit-bar/index.wxss create mode 100644 vant/swipe-cell/index.js create mode 100644 vant/swipe-cell/index.json create mode 100644 vant/swipe-cell/index.wxml create mode 100644 vant/swipe-cell/index.wxss create mode 100644 vant/switch-cell/index.js create mode 100644 vant/switch-cell/index.json create mode 100644 vant/switch-cell/index.wxml create mode 100644 vant/switch-cell/index.wxss create mode 100644 vant/switch/index.js create mode 100644 vant/switch/index.json create mode 100644 vant/switch/index.wxml create mode 100644 vant/switch/index.wxss create mode 100644 vant/tab/index.js create mode 100644 vant/tab/index.json create mode 100644 vant/tab/index.wxml create mode 100644 vant/tab/index.wxss create mode 100644 vant/tabbar-item/index.js create mode 100644 vant/tabbar-item/index.json create mode 100644 vant/tabbar-item/index.wxml create mode 100644 vant/tabbar-item/index.wxss create mode 100644 vant/tabbar/index.js create mode 100644 vant/tabbar/index.json create mode 100644 vant/tabbar/index.wxml create mode 100644 vant/tabbar/index.wxss create mode 100644 vant/tabs/index.js create mode 100644 vant/tabs/index.json create mode 100644 vant/tabs/index.wxml create mode 100644 vant/tabs/index.wxss create mode 100644 vant/tag/index.js create mode 100644 vant/tag/index.json create mode 100644 vant/tag/index.wxml create mode 100644 vant/tag/index.wxss create mode 100644 vant/toast/index.js create mode 100644 vant/toast/index.json create mode 100644 vant/toast/index.wxml create mode 100644 vant/toast/index.wxss create mode 100644 vant/toast/toast.js create mode 100644 vant/transition/index.js create mode 100644 vant/transition/index.json create mode 100644 vant/transition/index.wxml create mode 100644 vant/transition/index.wxss create mode 100644 vant/tree-select/index.js create mode 100644 vant/tree-select/index.json create mode 100644 vant/tree-select/index.wxml create mode 100644 vant/tree-select/index.wxss create mode 100644 vant/wxs/array.wxs create mode 100644 vant/wxs/bem.wxs create mode 100644 vant/wxs/memoize.wxs create mode 100644 vant/wxs/object.wxs create mode 100644 vant/wxs/utils.wxs create mode 100644 wxParse/html2json.js create mode 100644 wxParse/htmlparser.js create mode 100644 wxParse/wxDiscode.js create mode 100644 wxParse/wxParse.js create mode 100644 wxParse/wxParse.wxml create mode 100644 wxParse/wxParse.wxss diff --git a/__wuBaseWxss__/0.wxss b/__wuBaseWxss__/0.wxss new file mode 100644 index 0000000..125d4b7 --- /dev/null +++ b/__wuBaseWxss__/0.wxss @@ -0,0 +1,2006 @@ +.icons { + background-image: url(https://statics.huzhan.com/h5/icons.png); +} + +.u { + text-decoration: underline; +} + +.gray { + color: #999; +} + +.red { + color: red; +} + +.blue { + color: #00f; +} + +.orange { + color: #f60; +} + +.green { + color: #3a933a; +} + +.yellow { + color: orange; +} + +.black { + color: #000; +} + +.white { + color: #fff; +} + +.left { + float: left; +} + +.right { + float: right; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.center { + text-align: center; +} + +.tleft { + text-align: left; +} + +.tright { + text-align: right; +} + +.middle { + vertical-align: middle; +} + +.middle2 { + margin-top: -2px; + vertical-align: middle; +} + +.b { + font-weight: 700; +} + +.fz14 { + font-size: 14px; +} + +image { + border: 0; +} + +.m-10 { + margin: 10px; +} + +.ml-10 { + margin-left: 10px; +} + +.mr-10 { + margin-right: 10px; +} + +.mt-10 { + margin-top: 10px; +} + +.mb-10 { + margin-bottom: 10px; +} + +.p-10 { + padding: 10px; +} + +.pl-10 { + padding-left: 10px; +} + +.pr-10 { + padding-right: 10px; +} + +.pt-10 { + padding-top: 10px; +} + +.pb-10 { + padding-bottom: 10px; +} + +.m-5 { + margin: 5px; +} + +.ml-5 { + margin-left: 5px; +} + +.mr-5 { + margin-right: 5px; +} + +.mt-5 { + margin-top: 5px; +} + +.mb-5 { + margin-bottom: 5px; +} + +.p-5 { + padding: 5px; +} + +.pl-5 { + padding-left: 5px; +} + +.pr-5 { + padding-right: 5px; +} + +.pt-5 { + padding-top: 5px; +} + +.pb-5 { + padding-bottom: 5px; +} + +.wxParse view { + display: inline; +} + +.inline { + display: inline; +} + +.wxParse .wxParse-p { + display: block; +} + +.row-flex { + display: flex; + flex-direction: row; +} + +.wrap-flex { + display: flex; + flex-wrap: wrap; +} + +.flex-item { + flex: 1; +} + +.hover { + opacity: .8; +} + +.fixed { + position: fixed; + top: 0; + left: 0; + z-index: 99; + width: 100%; +} + +.formLoad { + position: fixed; + top: 0; + left: 0; + z-index: 10000; + width: 100%; + height: 100%; + background: rgba(0,0,0,0); +} + +.MoneyMark:before { + content: '¥'; + font-size: 0.8em; + padding-right: 0.2em; +} + +.rightArrow { + position: relative; + font-size: 6px; + padding-left: 10px; +} + +.rightArrow:after { + margin-right: 0; + position: absolute; + top: 50%; + right: 0; + margin-top: -0.65em; + content: " "; + display: inline-block; + height: 1em; + width: 1em; + border-width: 2px 2px 0 0; + border-color: #ccc; + border-style: solid; + transform: matrix(.71,.71,-.71,.71,0,0); + border-radius: 2px; +} + +.line { + position: relative; +} + +.line:after { + content: ''; + position: absolute; + z-index: 2; + bottom: 0; + left: 0; + width: 100%; + height: 1px; + border-bottom: 1px solid #e2e2e2; + transform: scaleY(.5); + transform-origin: 0 100%; +} + +.line.T:after { + top: 0; + left: 0; +} + +.c-icon { + display: inline-block; + margin: 0 1px; + width: 16px; + height: 16px; + background-size: contain; + background-repeat: repeat-x; + vertical-align: -3px; +} + +.c-i-s1 { + background-image: url(https://statics.huzhan.com/app/images/s-1.png); +} + +.c-i-s2 { + background-image: url(https://statics.huzhan.com/app/images/s-2.png); +} + +.c-i-s3 { + background-image: url(https://statics.huzhan.com/app/images/s-3.png); +} + +.c-i-s4 { + background-image: url(https://statics.huzhan.com/app/images/s-4.png); +} + +.c-i-b1 { + background-image: url(https://statics.huzhan.com/app/images/b-1.png); +} + +.c-i-b2 { + background-image: url(https://statics.huzhan.com/app/images/b-2.png); +} + +.c-i-b3 { + background-image: url(https://statics.huzhan.com/app/images/b-3.png); +} + +.c-i-b4 { + background-image: url(https://statics.huzhan.com/app/images/b-3.png); +} + +.c-i-t2 { + vertical-align: -2px; +} + +.c-i-t1 { + vertical-align: -1px; +} + +.c-i-t0 { + vertical-align: 0; +} + +.c-i-lw2 { + width: 31px; +} + +.c-i-lw3 { + width: 47px; +} + +.c-i-lw4 { + width: 63px; +} + +.c-i-lw5 { + width: 79px; +} + +.review { + display: inline-block; + width: 78px; + height: 16px; + background: url(https://fw.jd.com/images/comment_star.png) no-repeat 0 -84px; + vertical-align: -4px; +} + +.star { + display: inline-block; + height: 16px; + background: url(https://fw.jd.com/images/iconStar.png) no-repeat 0 0; +} + +.loadImage { + background: url(https://statics.huzhan.com/h5/loading.svg) center center no-repeat; +} + +.bfiles image { + margin: 3px 6px 3px 0; + padding: 3px; + width: 80px; + height: 60px; + border: 1px solid #eee; + border-radius: 2px; + background: #fff; +} + +.certification>view:not(.tit) { + margin: 0 4px -4px 0; + width: 18px; + height: 18px; + background: url(https://statics.huzhan.com/app/images/rev-ico.png); + background-repeat: no-repeat; + display: inline-block; + background-size: auto 18px; +} + +.certification.big>view:not(.tit) { + width: 40px; + height: 40px; + background-size: auto 40px; + margin-right: 10px; +} + +.certification>view.email { + BACKGROUND-POSITION: 66.9% 0; +} + +.certification>view.company { + BACKGROUND-POSITION: 100% 0; +} + +.certification>view.idcard { + BACKGROUND-POSITION: 33.5% 0; +} + +.certification>view.phone { + BACKGROUND-POSITION: 0 0; +} + +.gicon { + position: absolute; + top: 0; + right: 0; + padding-left: 3px; + background: #fff; +} + +.gicon view,.goods_handle view { + display: inline-block; + margin-left: 5px; + width: 16px; + height: 16px; + border: 1px #c5c5c5 solid; + border-radius: 0; + color: #666; + text-align: center; + font-size: 12px; + line-height: 16px; +} + +.gicon .cBtn { + border: 1px #f60 solid; + background: #fffbfa; + color: #f60; +} + +.gicon .score { + border-color: #ff7e00; + background: #fff5ee; + color: #f60; +} + +.gicon .install0,.gicon a.bsuc { + border-color: #71a3f5; + background: #eef9ff; + color: #498bf8; +} + +.gicon .send { + border-color: #e3c8bd; + background: #fffbf6; + color: #b68571; +} + +.gicon .protect { + border-color: #6a4; + background: #eff; + color: #6a4; +} + +.gicon .not { + border-color: #e3c8bd; + background: #fff; + color: #999; +} + +.gicon .installi { + border-color: #f5717d; + background: #ffeef3; + color: #f84976; +} + +.eva .van-icon { + overflow: hidden; + margin: -3px 1px 0 0; + height: 18px; + vertical-align: middle; + font-size: 18px; + line-height: 18px; +} + +.eva.good { + color: #f50; +} + +.eva.good:after { + content: "好评"; +} + +.eva.normal { + color: orange; +} + +.eva.normal:after { + content: "中评"; +} + +.eva.bad { + color: #000; +} + +.eva.bad:after { + content: "差评"; +} + +.alipay { + color: #00aaef; +} + +.bank { + color: #082f67; +} + +.tenpay { + color: #ff8500; +} + +.wechat { + color: #1ea838; +} + +.contact view { + display: inline-block; +} + +.contact view:before { + content: ""; + background-image: url(https://statics.huzhan.com/h5/icons.png); + display: block; + width: 19px; + height: 20px; +} + +.contact .qq:before { + background-position: -117.5px -67px; +} + +.contact .phone:before { + background-position: -136px -67.5px; +} + +.PageCount { + position: fixed; + bottom: 30px; + left: 0; + width: 100%; + text-align: center; +} + +.PageCount .box { + display: inline-block; + padding: 3px 10px; + border-radius: .6rem; + background: rgba(0,0,0,.4); +} + +.PageCount .box view { + position: relative; + color: #fff; +} + +.loading { + margin: 10px auto; + height: 20px; + color: rgba(69,90,100,.6); + text-align: center; +} + +.listfailview { + padding: 10px 0; + text-align: center; +} + +.gotop { + transition: transform .4s ease-out; + transition: transform .4s ease-out,-webkit-transform .4s ease-out; + position: fixed; + right: 25px; + bottom: 25px; + z-index: 9999; + overflow: hidden; + height: 30px; + border-radius: 50%; + background: rgba(255,255,255,.4); + color: #bbb; +} + +.gotop.gobottom { + transform: rotate(180deg); +} + +.formbutton { + position: relative; + clear: both; + box-sizing: border-box; + margin: 20rpx 0; + padding: 0 24rpx; + min-width: 104rpx; + min-height: 88rpx; + border: none; + border-radius: 8rpx; + background: #33cd5f; + color: #fff; + vertical-align: middle; + text-overflow: ellipsis; + font-size: 32rpx; + line-height: 84rpx; +} + +.formbutton.primary { + color: #555; + background: #fff; + border-color: #ebedf0; +} + +.loadingFull { + position: fixed; + top: 0; + left: 0; + z-index: 100000; + display: -webkit-box; + width: 100%; + height: 100%; + background: rgba(255,255,255,.1); + font-size: 16px; + -webkit-box-align: center; + -webkit-box-pack: center; +} + +.loadingFull .content { + text-align: center; +} + +.btn { + overflow: hidden; + margin: 40rpx 10%; + padding: 20rpx 0; + width: 80%; + border-radius: 10rpx; + background: #000; + color: #fff; + text-align: center; +} + +.ly_bg { + position: fixed; + top: 0; + left: 0; + z-index: 1000; + display: table; + overflow: hidden; + width: 100%; + height: 100%; + background: #000; + opacity: .5; +} + +.ly { + position: fixed; + top: 0; + left: 0; + z-index: 1001; + overflow: hidden; + width: 100%; + height: 100%; + border-radius: 3px; + text-align: center; +} + +.ly.hide,.ly_bg.hide { + display: none; +} + +.ly:before { + display: inline-block; + margin-right: -.25em; + height: 100%; + content: ''; + vertical-align: middle; +} + +.ly .content { + display: inline-block; + overflow: hidden; + overflow-y: auto; + max-width: 100%; + max-height: 100%; + min-width: 50%; + border-radius: 3px; + background: #fff; + vertical-align: middle; +} + +.ly.show .content { + animation-duration: .3s; + animation-name: bounceIn; +} + +@-webkit-keyframes bounceIn { + 0% { + opacity: 0; + transform: scale(.5); + } + + 100% { + opacity: 1; + transform: scale(1); + } +} + +@keyframes bounceIn { + 0% { + opacity: 0; + transform: scale(.5); + } + + 100% { + opacity: 1; + transform: scale(1); + } +} + +.ly .btn { + display: inline-block; + padding: 10px; + border-top: 1px solid #e8e8ea; + color: #3cc51f; + text-align: center; + font: 20px "microsoft yahei"; +} + +.ly_install { + border: 1px solid #dadada; + border-right: 0; + border-bottom: 0; + background: #fff; + color: #666; + text-align: center; + font-size: 12px; +} + +.ly_install .name,.ly_install .td { + padding: 10px; + border-right: 1px solid #dadada; + border-bottom: 1px solid #dadada; +} + +.ly_install .money { + color: red; +} + +.ly_install .free { + color: green; +} + +.ly_install .add { + display: inline; +} + +.ly_install .td:first-child { + width: 55px; +} + +.ly_install .td:last-child { + text-align: left; + flex: 1; +} + +.ly_install .name { + width: auto; + text-align: center; + font-weight: 700; +} + +.ly_install .tr { + display: flex; + flex-direction: row; +} + +.ly_contact { + font-size: 14px; +} + +.ly_contact .list { + display: flex; + padding: 0 15px 10px 15px; + flex-direction: row; +} + +.ly_contact .list view { + text-align: left; + line-height: 30px; +} + +.ly_contact .list .value { + flex: 1; +} + +.ly_contact .list .type { + width: 75px; + color: #000; +} + +.ly_contact .bottom { + margin: 0 15px; + padding: 6px 5px 7px 5px; + border-top: #bcccee 1px dotted; + text-align: center; +} + +.ly_contact .bottom view { + overflow: hidden; + height: 20px; + color: #999; + font-size: 12px; + line-height: 20px; +} + +.ly_contact .header { + overflow: hidden; + margin-bottom: 10px; + padding: 0 40px 0 10px; + height: 37px; + border-bottom: 1px solid #eee; + background: #f6f9ff; + color: #333; + font-size: 14px; + line-height: 37px; +} + +.ly_contact .header image { + margin: -2px 7px 0 0; + padding: 1px; + width: 20px; + height: 20px; + border: 1px solid #ddd; + vertical-align: middle; +} + +.ly_contact .header view { + display: inline-block; + color: #f60; +} + +.store-top { + position: relative; + overflow: hidden; + padding: 15px; + background: #d8e7fa; +} + +.store-top .avatar { + width: 40px; + height: 40px; +} + +.store-top .avatar image { + width: 100%; + height: 100%; + border-radius: 5px; +} + +.store-top .info { + margin-left: 10px; +} + +.store-top .name { + font-size: 14px; + line-height: 1.5; +} + +.store-top .bond.van-icon { + position: absolute; + top: 50%; + right: 10px; + margin-top: -14px; + height: 24px; + color: #999; + font-size: 24px; + line-height: 24px; +} + +.store-top .bond.van-icon.suc { + color: #2e8a11; +} + +.store-score { + padding: 5px 0 0 0; + font-size: 12px; + line-height: 12px; +} + +.store-score text { + padding-right: 3px; + color: #666; + vertical-align: 0; +} + +.store-score>view:first-child { + padding: 0; + border: 0; +} + +.store-score>view { + margin: 0; + padding-left: 5px; + border-left: #ccc 1px solid; +} + +.store-score view { + display: inline-block; +} + +.store-score .down { + color: #479313; +} + +.store-score .up { + color: #e0241b; +} + +.store-score .van-icon { + margin: -2px 0 0 -7px; + width: 18px; + height: 12px; + vertical-align: middle; + line-height: 12px; +} + +.shopList .item { + overflow: hidden; + color: #999; + position: relative; + margin: 10px 10px 0 10px; + background: #fff; + padding: 10px; + border-radius: 2px; +} + +.shopList .avatar { + height: 40px; + width: 40px; + padding: 2px; + border-radius: 2px; + margin-right: 10px; + border: 1px solid #eee; + overflow: hidden; +} + +.shopList .avatar image { + width: 40px; + height: 40px; + border-radius: 2px; +} + +.shopList .shop { + padding: 3px 0; + position: relative; + line-height: 20px; +} + +.shopList .shop .info { + text-align: right; + position: absolute; + right: 0; + top: 0; + height: 40px; +} + +.shopList .shop .van-icon { + font-size: 18px; + padding: 0 0 5px 15px; + line-height: 25px; + color: #999; +} + +.shopList .action { + line-height: 20px; + text-align: center; + background-color: rgba(255,255,255,.9); + position: absolute; + right: 0; + top: 0; + height: 100%; + width: 60%; + transform: translateY(100%); +} + +.shopList .action .van-icon { + line-height: 28px; + width: 100%; + font-size: 20px; + color: #fff; +} + +.shopList .action .flex-item .icon { + margin-top: 10px; + background: #498bf8; + border-radius: 50%; + width: 30px; + height: 30px; + display: inline-block; +} + +.shopList .action .flex-item:first-child .icon { + background: #3eabc3; +} + +.shopList .action .flex-item:last-child .icon { + background: #c1c1c1; +} + +.revList { + background-color: #fafafa; + color: #4d4d4d; + color: #4d4d4d; +} + +.revList .item { + margin-left: 15px; + padding: 15px 0; + border-bottom: 1px #eee solid; +} + +.revList .flex-item { + min-width: 0; +} + +.revList .avatar { + margin-top: 5px; + width: 13%; + max-width: 106px; + min-width: 56px; +} + +.revList .avatar>view { + overflow: hidden; + margin: 10px 0 0 0; + padding: 2px; + max-width: 100px; + min-width: 50px; + border: 1px #eee solid; + border-radius: 50px; + background: #fff; +} + +.revList .avatar>view>view { + padding-bottom: 100%; + width: 100%; + height: 0; +} + +.revList .avatar image { + width: 100%; + border-radius: 50px; +} + +.revList .goods { + overflow: hidden; + padding: 5px 0; + border: 1px #f1f1f1 solid; + border-bottom-left-radius: 50px; + border-top-left-radius: 50px; + background: #f7f7f7; + color: #247fbd; + text-overflow: ellipsis; + white-space: nowrap; +} + +.revList .goods text { + color: red; +} + +.revList .goods text:before { + padding-left: 5px; + content: "¥"; + font-size: 10px; +} + +.revList .info { + padding: 8px 13px 0 10px; + line-height: 1.4; +} + +.revList .name text { + font-weight: 700; +} + +.revList .append { + padding-top: 10px; + color: #36c; +} + +.revList .time { + color: #999; + font-size: 12px; +} + +.revList .reply { + position: relative; + margin-top: 12px; + padding: 6px 10px; + border: 1px solid #dee4e9; + border-radius: 3px; + background: #f8f8f8; + box-shadow: 0 1px 2px #dee4e9; +} + +.revList .reply .j-br { + border-color: transparent transparent #d9d9d9 transparent; + TOP: -20px; +} + +.revList .reply .j-bg { + border-color: transparent transparent #f8f8f8 transparent; + TOP: -19px; +} + +.revList .reply .j-bg,.revList .reply .j-br { + position: absolute; + left: 20px; + overflow: hidden; + width: 0; + height: 0; + border-style: solid dashed dashed dashed; + border-width: 10px; +} + +.revList .text { + padding: 2px 0 5px 0; +} + +.revList .name { + position: relative; +} + +.revList .name .eva { + position: absolute; + top: 50%; + right: 0; + margin-top: -10px; +} + +.revList .name.buy { + padding-bottom: 3px; +} + +.revList .reply .name { + color: #dd2727; +} + +.revList .van-radio { + padding: 0 4px; +} + +.revList .van-radio__label { + color: #4d4d4d; +} + +.revList .radio-group { + margin: 0 15px; + padding: 8px 0; + border-bottom: 1px #eee solid; + text-align: center; +} + +.ListAction { + text-align: right; + padding: 10px 0; +} + +.ListAction .van-button { + margin: 0 0 0 8px; + line-height: 25px; + font-size: 12px; + padding: 0 5px; + border: 1px solid #e1e1e1; + color: #555; + height: 26px; + min-width: auto; +} + +.ListAction .van-button .van-icon { + vertical-align: middle; + margin-top: -2px; + margin-right: 2px; +} + +.ListAction .van-button.green { + color: #3a933a; + border-color: #3a933a; +} + +.ListAction .van-button.orange { + color: #f60; + border-color: #f60; +} + +.ListAction .van-button.gray { + color: #999; +} + +.formSubmit { + position: relative; +} + +.formSubmit .default { + position: absolute; + height: 44px; + top: 0; + left: 0; + border-radius: 0; + padding: 0; + opacity: .01; + width: 100%; + background: #000; +} + +.formSubmit #send { + height: 30px; +} + +.formSubmit .default.click { + opacity: .2; +} + +.bfile { + display: flex; + padding: 0 0 8px 0; + flex-flow: row wrap; + align-content: flex-start; +} + +.bfile>view { + margin: 8px 0 0 0; + flex: 1 49%; +} + +.bfile>view>view { + overflow: hidden; + border: 1px #ccc solid; + border-radius: 2px; + background: #fff; +} + +.bfile>view:nth-child(even) { + margin-left: 2%; +} + +.bfile>view>view>view { + position: relative; + padding-bottom: 80%; + width: 100%; + height: 0; +} + +.bfile>view image { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + width: 100%; +} + +.form { + overflow: hidden; + padding: 0 12px; + background: #fff; +} + +.form .van-cell { + background: 0 0; +} + +.form .van-cell__title { + max-width: 78px; + min-width: 78px; + color: #666; +} + +.form .van-radio { + margin-left: 5px; +} + +.form .textarea { + line-height: 20px; + padding: 2px 0; + height: auto; + min-height: 160px; + max-height: 300px; +} + +.form .textarea.height200 { + min-height: 200px; +} + +.form .textarea.height100 { + min-height: 100px; +} + +.form .textarea.height60 { + min-height: 60px; +} + +.form .textarea.dashed { + border: 2px dashed #e6e6e6; + padding: 3px; +} + +.form .black { + color: #333; +} + +.form .radioTabs { + margin-bottom: -1px; + padding-bottom: 0; +} + +.form .radioTabs:before { + content: ''; + position: absolute; + left: 0; + bottom: 0; + height: 1px; + width: 100%; + background: #eee; +} + +.form .radioTabs .van-cell__title { + line-height: 30px; +} + +.form .radioTabs .van-radio { + margin: 0; + padding: 5px 10px 4px 8px; + border: #fff solid 1px; + position: relative; + border-bottom-color: #eee; +} + +.form .radioTabs .van-radio.checked:before { + content: ''; + position: absolute; + left: 0; + bottom: 0; + height: 1px; + width: 100%; + background: #fafafa; + z-index: 1; +} + +.form .radioTabs .van-radio.checked { + background: #fafafa; + border-radius: 1px; + border: #f0f0f0 solid 1px; + padding-bottom: 5px; + margin-bottom: -1px; + border-bottom-color: #fafafa; +} + +.form .radioBox .box { + font-size: 12px; + padding: 5px 8px; + background: #fafafa; + border-radius: 1px; + border: #eee solid 1px; + line-height: 18px; +} + +.form .radioBox .van-cell__title { + text-align: left; +} + +.form .radioLeft .van-cell__value { + text-align: left; +} + +.form .van-field__error-message { + text-align: right; +} + +.form .toggleCheckbox .van-checkbox__icon-wrap { + padding-left: calc(100% - 19px); +} + +.form .checkboxInline .van-checkbox__label { + margin-left: 3px; +} + +.form .checkboxInline .van-checkbox { + display: inline-block; + margin-left: 5px; +} + +.form .van-field__input.gray { + color: #999; +} + +.form .van-field__input.red { + color: red; +} + +.form .van-field__input.blue { + color: #00f; +} + +.form .van-field__input.orange { + color: #f60; +} + +.form .van-field__input.green { + color: #3a933a; +} + +.form .picker .van-cell__right-icon-wrap { + width: 24px; + margin: 0; +} + +.form .picker .van-icon-arrow-down { + width: 24px; + text-align: center; + transform: rotate(0); + transition: .3s; +} + +.form .picker.Show .van-icon-arrow-down { + transform: rotate(-180deg); +} + +.form .van-rate { + display: inline-block; + vertical-align: middle; + margin-top: -1px; + line-height: 1; +} + +.nativeInput { + height: 22px; + line-height: 22px; + border: 1px solid #eee; + background: #fff; + border-radius: 2px; + padding: 0 5px; + display: block; +} + +.notes { + counter-reset: number 0; + font-size: 12px; + padding: 7px 8px 10px 8px; + background: #f6f9ff; +} + +.notes .item { + padding-left: 19px; + position: relative; + line-height: 1.3; + padding-bottom: 4px; + text-align: left; +} + +.notes .item:not(.notmark):after { + content: ";"; +} + +.notes .item:last-child:after { + content: "。"; +} + +.notes .item view { + display: inline; +} + +.notes .item .u { + padding: 0 1.5px; +} + +.notes .item:not(.notnumber) .number { + position: absolute; + top: 0; + left: -5px; + counter-increment: number; + font-weight: 700; + padding-right: 6px; + color: #666; + font-size: 14px; + text-align: right; + width: 20px; +} + +.notes .item:not(.notnumber) .number:before { + content: counter(number) "."; +} + +.notes .title { + padding-left: 0; + line-height: 18px; + margin: 3px 0; + position: relative; + text-align: left; +} + +.notes .title text { + font-size: 13px; + padding: 0 0 0 16px; + font-weight: 700; +} + +.notes .title .icons { + height: 17px; + width: 13px; + background-position: -105px -68px; + display: inline-block; + position: absolute; + left: 0; + top: 50%; + margin-top: -9px; +} + +.notice { + height: auto; + padding: 10px; + line-height: 18px; + color: #ed6a0c; + background-color: #fffbe8; +} + +.notice.blue { + color: #1989fa; + background: #ecf9ff; +} + +.claimsInfo { + background: #fff; +} + +.claimsInfo .row-flex.top:first-child { + background: #f1f9fe; +} + +.claimsInfo .top .label { + border-right: 1px solid #f1f1f1; + padding: 15px 10px 15px 0; +} + +.claimsInfo .top .label view { + font-size: 17px; + font-weight: 700; +} + +.claimsInfo .top .flex-item { + padding: 15px; +} + +.claimsInfo .flex-item { + padding: 10px; +} + +.claimsInfo .flex-item>view>view { + display: inline; +} + +.claimsInfo .row-flex { + border-bottom: 1px solid #f1f1f1; + line-height: 18px; +} + +.claimsInfo .row-flex:nth-child(odd) { + background: #f5f8fa; +} + +.claimsInfo .label { + text-align: right; + width: 80px; + padding: 10px 10px 10px 0; + color: #999; + border-right: 1px solid #f1f1f1; +} + +.claimsInfo .suc { + color: #51863c; +} + +.claimsInfo .ing { + color: #f60; +} + +.claimsInfo .no { + color: #97731f; +} + +.editionChoose { + background: #fafafa; + margin: 10px 0 2px 0; + padding: 8px 12px 3px 12px; +} + +.editionChoose .price { + font-weight: 700; + color: #ff5000; + font-size: 18px; + line-height: 26px; +} + +.editionChoose .price:before { + content: "¥"; + font-size: 14px; +} + +.editionChoose .row-flex { + padding: 2px 0; +} + +.editionChoose .name { + line-height: 26px; + display: inline-block; + min-width: 60px; + text-align: right; +} + +.editionList .item { + position: relative; + display: inline-block; + text-align: center; + border: 1px solid #ddd; + color: #666; + padding: 0 8px; + line-height: 24px; + margin: 0 8px 5px 0; +} + +.editionList .item:last-child { + margin-right: 0; +} + +.editionList .on { + color: #222; + border-color: #ff7f02; +} + +.editionList .van-icon { + position: absolute; + bottom: 0; + right: 0; + font-size: 14px; + overflow: hidden; + display: none; + width: 14px; + line-height: 14px; + color: #ff7f02; +} + +.editionList .on .van-icon { + display: inline-block; +} + +.editionRadio { + position: relative; + display: inline-block; + border: 1px solid #ddd; + color: #666; + margin: 0 3px 5px 0; +} + +.editionRadio.checked { + color: #222; + border-color: #ff7f02; +} + +.editionRadio .van-radio__label { + padding: 0 8px; + line-height: 24px; + text-align: center; +} + +.editionRadio .van-radio__input { + position: absolute; + bottom: 0; + right: 0; +} + +.editionRadio .van-icon { + display: none; + color: #ff7f02; +} + +.editionRadio .van-radio__icon--checked .van-icon { + display: inline-block; +} + +.lyTop { + background: #f2f2f2; + padding: 18px 10px 18px 18px; + border-top: 2px solid #f60; + border-bottom: 1px solid #e5e5e5; + display: flex; + flex-direction: row; +} + +.lyTop .good { + color: #36c; + text-align: center; + font-size: 14px; + width: 74px; + margin-right: 15px; + border: 1px solid #ddd; + padding: 2px; + background: #fff; + overflow: hidden; + line-height: 74px; + height: 74px; +} + +.lyTop .good image { + width: 100%; + vertical-align: top; +} + +.lyTop .tit { + font-size: 14px; + font-weight: 700; + color: #555; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.lyTop .money { + color: #f60; + font-weight: 700; + padding-right: 2px; +} + +.lyTop .info { + flex: 1; + min-width: 0; +} + +.lyTop .info>view { + margin-top: 6px; +} + +.table { + width: 100%; + display: table; + word-wrap: break-word; + word-break: break-all; + text-align: center; + border-collapse: collapse; +} + +.table .thead { + display: table-header-group; +} + +.table .thead .tr { + background: #f0f0f0; + font-size: 14px; +} + +.table .tbody { + display: table-row-group; +} + +.table .tr { + display: flex; + width: 100%; +} + +.table .OE .tr:nth-child(odd) { + background: #f5f8fa; +} + +.table .td { + padding: 10px 0 10px 10px; + vertical-align: middle; + text-align: center; +} + +.table .td:last-child { + padding-right: 10px; +} + +.table .td.tleft { + text-align: left; +} + +.table .td.tright { + text-align: right; +} + +.table .flex { + flex: 1; +} + +.upload { + padding: 6px; + border: 2px dashed #e8e8e8; +} + +.upload .top { + position: relative; +} + +.upload .top .button { + position: absolute; + right: 0; + top: 50%; + margin-top: -15px; +} + +.upload .top .tips { + text-align: right; + padding-right: 90px; +} + +.upload .top .tips view { + line-height: 14px; + min-height: 30px; + display: flex; + align-items: center; + color: #ccc; +} + +.upload .title { + padding: 7px 5px 0 5px; + color: #999; +} + +.upload .title text { + font-weight: 700; + color: #333; + padding-right: 10px; +} + +.upload .single { + text-align: center; + border: #eee solid 1px; + padding: 5px; + margin-top: 5px; +} + +.upload.autoright { + text-align: right; + border: 0; + padding-right: 0; +} + +.upload.autoright .single { + display: inline-block; +} + +.upload .list { + background: #f8f8f8; + border: #ececec solid 1px; + padding: 3px 5px 10px 5px; + margin-top: 5px; +} + +.upload .list .pic { + width: 33.33333333333%; + display: inline-block; + vertical-align: top; +} + +.upload .list .pic>view:first-child { + margin: 10px 5px 0 5px; + overflow: hidden; + border: 1px #eee solid; + border-radius: 2px; + background: #fff; +} + +.upload .list .pic>view>view { + position: relative; + padding-bottom: 80%; + width: 100%; + height: 0; +} + +.upload .list .pic .text { + position: absolute; + height: 100%; + width: 100%; + background: rgba(255,255,255,.9); + z-index: 1; + display: flex; + align-items: center; + text-align: center; +} + +.upload .list .pic .text view { + width: 100%; +} + +.upload .list .pic .err view { + color: red; +} + +.upload .list .pic .file view { + color: #36c; + font-weight: 700; + font-size: 16px; +} + +.upload .list .pic image { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + width: 100%; +} + +.upload .status { + background: #fff; + text-align: center; + margin: 0 5px; + padding: 6px 0; + border: 1px #eee solid; + border-top: 0; +} + +.acticle { + background: #fff; +} + +.acticle { + overflow: hidden; +} + +.acticle .head { + border-bottom: 1px solid #e5e5e5; + overflow: hidden; + margin: 0 10px; + padding: 10px 0; +} + +.acticle .title { + width: 100%; + color: #222; + font-size: 1rem; + font-weight: 700; + line-height: 1.2; +} + +.acticle .head .par { + padding: 5px 0 0 0; + color: #999; +} + +.acticle .head .par text { + color: #666; +} + +.acticle .head .par text:first-child { + padding-right: 5px; +} + +.acticle .body { + overflow: hidden; + padding: 10px; + line-height: 1.5; +} + +.acticle .body .a { + font-weight: 700; +} + +.acticle .body .p { + padding: 5px; +} + +.acticle-list { + padding: 0 15px; + background-color: #fff; +} + +.acticle-list .link { + line-height: 1.2; + padding: 15px 0 15px 0; +} + +.acticle-list .link.line:last-child:after { + display: none; +} + +.acticle-list .icon-q { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA9hJREFUWAnlVz1MVEEQ3nmgUKCGkFhAZYzhx0YJcAeJoaKxUBKtKAmx0sJYqImJjTExFDZ2opWxUgOW0mhA7g5IbJA7YwyF0YKEEBISkJ83zrfvzbIHJ7wDQuM1M29255tvZ3dn54z5339UTgKmpr5f3OSNXmZzSfwamLke/kT0W8QvIjNWQZXD7e3nvsCe5JeIQDZbuB4SPzLMjUlAhdG3gOlBOt30Zq/5uxLI5QpnQsOvZaXpvYBKjUtmsoGhvlSqaa7UOGz/JDAxme8mNm8leJ3nvEiGRgIKRowJZ2tq6pB6s7y8UL9p+DwxXWHDV8VUqz5CYoHJXOvqaP6kNl+WJBAF51HZ62PRZFoNAvO0Mjj+pK3t7JIPsF2fnv5xaiNcuxuG5rYxXI1xORvrTNRTisQOAnHap3TlsuJfAVGvpHF6e7DdvgWnLWQelow0RCRoQbajfft2BNtB4j23aUdwrg5S5QYHJnzgCwx8Y0HAhu7/igjgtG8dOEm7rLzrQqMF8J2S6vAFhmzCKnyAjRi+fxEBe9XiUez5flbug0MHBrDU7seAzRHITM+2evd8EQdOnQ4qY6xFiyO1BAVNMR0BCgnXx/5w1fY67To3iQQWMHUuqqnqjkBcXq09uuc65XAkE79XpKJYahRpr0v0Hc569kNRKwx99YBcLC8D0cOCSVrhPIcDqz6m3Ab7iAHUEThwhD0AVlY2Qp0ildEVQEcgflLtHNR2nXxYcr1i6fQWFs2r7giIwSs4QYtOODS5bloVS8rzT9UdATQTagw5dFdSbUmlVLr+TK7wXPbZpdn6MvcohlTHj05XBZ2M6nhS8arpd1KJ4HLdhpjDgcxkXmREolAonJBy3Kc48jJ+UN1lwLZR0snEA7V4UnVSUinhOjWoYdOvJBaX+I7YT1ocopnO9qbPiukIwIA2SgfwnuNJ1e8kMt3ReEPO90s3NyLxTp6h+85meHBLL9ERZXL5jLC1LRieUjyp5byIyABWjgz4gaDLoRhPp5q75ca5K1mUAUxCD4c2CjqaCVoNc+VkQny5s6N5QKK5MwUsBKWqqn4/OOw7CMjzOYceDm0UJoDEJvNYdjL/OMnBxIHLThYeymovw19/kpkgXPtzDxlSG2TRhz+QtClFhbNFBvfcXjXqkyDRgUMAWTmCO2w5I8gQMgXbPwlgMO4P99+Wy54j7Vh50ZnwSOxKACTwQxtV5h+TGdm8QVnpqzgDOw6mbPGLzlTLQCICEQ1jSv01ix4Wmkd5tRUuCEbTbY3j6qMSe190O4hudaWan+n4kUhLIjc7NJHL3zySgEmC/AX92868En0QqAAAAABJRU5ErkJggg==) no-repeat; + background-size: 16px; + box-sizing: border-box; + width: 16px; + height: 16px; + vertical-align: middle; + margin-top: -1px; + margin-left: 3px; +} + +.acticle-list .icon-l { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAACiElEQVR4Xu3dMU7bYABHcX/qQdoV9QRRh16Fm5DehKOwECN2krU9SOWOJS6phMn2fkwIxZbe+57+BhaP6dXX4/yyH2Pcvf7ZR75fluXHt93X/dZ7HJ6Oy9ZrXfe2gfWZDAG0UhFA67z/oRWAAM4eyx4BsSAsQOzA17gCEMDlR0DcTRL/7HeApIE4tAAEEDcQx7cAAogbiONbAAHEDcTxLYAA4gbi+BZAAHEDcXwLIIC4gTi+BRBA3EAc3wIIIG4gjm8BBBA3EMe3AAKIG4jjWwABxA3E8S2AAOIG4vgWQABxA3F8CyCAuIE4vgUQQNxAHN8CCCBuII5vAQQQNxDHtwACiBuI41sAAcQNxPEtgADiBuL4FkAAcQNxfAsggLiBOL4FEEDcQBzfAgggbiCObwEEEDcQxz9bgHk+fVk+TZ+v5WT8nn7tdjc/t97v8Hz6vvVa171tYH0m3hsYK8Vr42IHvsYVgAC8OrbcgAUon/40TQIQwOVHwDyfbpdpub2WozGN+93u5n7r/Q7z8WHrta678Gfg6kz8JzBeigAEEDcQx7cAAogbiONbAAHEDcTxLYAA4gbi+BZAAHEDcXwLIIC4gTi+BRBA3EAc3wIIIG4gjm8BBBA3EMe3AAKIG4jjWwABxA3E8S2AAOIG4vgWQABxA3F8CyCAuIE4vgUQQNxAHN8CCCBuII5vAQQQNxDHtwACiBuI41sAAcQNxPEtgADiBuL4FkAAcQNxfAsggLiBOL4FEEDcQBzfAgggbiCObwEEEDcQx7cAAogbiONbAAH8NfA4v+zHGHfXcrJ+SeF773t4Oi7vvcbn/2/AiyPjhQhAAF4eXW7AApRP38uj46cvAAGsHwF/AJboWZDGztttAAAAAElFTkSuQmCC) no-repeat; + background-size: 14px; + box-sizing: border-box; + width: 14px; + height: 14px; + vertical-align: middle; + margin-top: 1px; + margin-right: 3px; +} + +.acticle-list .rightArrow { + font-size: 8px; +} \ No newline at end of file diff --git a/__wuBaseWxss__/1.wxss b/__wuBaseWxss__/1.wxss new file mode 100644 index 0000000..605b56b --- /dev/null +++ b/__wuBaseWxss__/1.wxss @@ -0,0 +1,868 @@ +.u-club { + background: #fff; + position: relative; +} + +.u-club .tabs { + position: absolute; + right: 0; + top: -41px; + text-align: center; + overflow: hidden; +} + +.u-club .tabs .van-icon { + font-size: 24px; + color: #888; + width: 45px; + line-height: 43px; + height: 40px; + border: solid 1px #f1f1f1; + border-bottom: 0; + display: inline-block; + background: #f1f1f1; +} + +.u-club .tabs .van-icon.on { + color: #666; + border-color: #eee; + background: #fff; +} + +.u-club .box { + width: 100%; +} + +.u-club .box .row-flex { + position: relative; +} + +.u-club .box .item .van-icon { + overflow: hidden; + font-size: 25px; + line-height: 25px; + color: #888; +} + +.u-club .box .item>view { + color: #686868; + text-align: center; + padding: 13px 0 15px 0; +} + +.u-club .box .item text { + display: block; + font-size: 12px; + line-height: 12px; +} + +.u-club .box .item:nth-child(3):before { + position: absolute; + left: 5%; + top: 0; + content: " "; + width: 90%; + height: 1px; + background: #eee; +} + +.u-club .title { + font-size: 12px; + line-height: 32px; + padding: 2px 15px; + border-bottom: dotted 1px #e1e1e1; + color: #686868; +} + +.u-club .title view:last-child { + text-align: right; + color: #a8a9ab; + display: inline-block; +} + +.u-club .title .middle2 { + margin-top: -3px; +} + +.u-icon { + background: #fff; + margin-top: 10px; +} + +.u-icon .box { + width: 100%; +} + +.u-icon .box .item>view { + color: #686868; + padding: 20px 0; + border-top: solid 1px #eee; + border-right: solid 1px #eee; + text-align: center; +} + +.u-icon .box .item>view:last-child { + border-right: 0; +} + +.u-icon .box .item>view .van-icon { + font-size: 30px; + line-height: 30px; + color: #888; +} + +.u-icon .box .item>view text { + display: block; + font-size: 12px; + line-height: 14px; + padding-top: 2px; +} + +.u-header { + background: #f1f1f1; + position: relative; + padding: 18px 0 18px 18px; +} + +.u-header .action { + position: absolute; + right: 0; + top: 0; +} + +.u-header .action>view { + position: relative; + display: inline-block; + height: 40px; + line-height: 40px; + width: 47px; + text-align: center; +} + +.u-header .message .van-icon { + font-size: 22px; + vertical-align: middle; +} + +.u-header .message .unread { + position: absolute; + right: 5px; + top: 2px; + min-width: 12px; + text-align: center; + line-height: 12px; + display: inline-block; + background: red; + color: #fff; + border-radius: 17px; + padding: 4px; + font-size: 16px; + transform: scale(.7); + font-family: Helvetica; + vertical-align: middle; +} + +.u-header .avatar { + position: relative; + height: 55px; + width: 55px; + border-radius: 100%; + border: 4px solid #fff; + overflow: hidden; +} + +.u-header .avatar .van-icon { + position: absolute; + left: 0; + top: -2px; + color: #45a1de; + background: #fff; + font-size: 58px; +} + +.u-header .avatar image { + width: 100%; + height: 100%; +} + +.u-header .info { + padding: 0 0 0 10px; +} + +.u-header .info view { + display: inline-block; +} + +.u-header .info .c-icon { + margin-left: 5px; +} + +.u-header .info .name { + font-size: 14px; + line-height: 25px; + padding-top: 7px; +} + +.u-header .info .assets { + display: block; + line-height: 14px; + padding-top: 4px; +} + +.u-header .info .number { + color: #f60; + margin-right: 5px; +} + +.onpay { + margin: 10px -12px; +} + +.onpay .van-search { + margin: 10px; + padding: 0; + border-radius: 3px; +} + +.onpay .van-icon-balance2 { + color: #999; + font-size: 24px; +} + +.onpay .paylist { + padding: 0 10px; +} + +.onpay .paylist .row-flex { + padding: 5px 10px; + margin-top: 10px; + line-height: 28px; + background: #fff; + border: 1px solid #e5e5e5; + border-radius: 3px; +} + +.onpay .paylist .flex-item { + font-size: 14px; + line-height: 29px; +} + +.onpay .paylist .logo { + font-size: 28px; + margin: -2px 20px 0 0; + vertical-align: middle; +} + +.onpay .paylist .van-icon-passed { + border-radius: 50%; +} + +.appealPost { + border: 1px solid #a7cbff; + padding: 30px 10px; + color: #666; + background: #fff; + margin: 10px; + border-radius: 2px; + text-align: center; +} + +.cartpay { + overflow: hidden; +} + +.cartpay .item { + background: #fafafa; + overflow: hidden; + margin-bottom: 10px; + border-bottom: 1px #e9e9e9 solid; + border-top: 1px #e9e9e9 solid; +} + +.cartpay .shop { + line-height: 20px; + background: #fff; + padding: 10px; + color: #999; + border-bottom: 1px #e5e5e5 solid; + position: relative; +} + +.cartpay .shop .name { + color: #333; + max-width: 40%; + font-size: 14px; + padding-left: 26px; +} + +.cartpay .shop .van-icon { + color: #333; + font-size: 18px; +} + +.cartpay .shop .gicon { + left: 10px; + padding: 0; + right: auto; + top: 50%; + margin-top: -10px; +} + +.cartpay .shop .total { + position: absolute; + right: 10px; + top: 50%; + margin-top: -10px; +} + +.cartpay .good { + padding: 10px 0; + border-bottom: 1px #f1f1f1 solid; + margin: 0 10px; +} + +.cartpay .good:last-child { + border-bottom: 0; +} + +.cartpay .good .pic { + text-align: center; + overflow: hidden; + line-height: 40px; + height: 40px; + width: 50px; + color: #36c; + margin: 0 8px 0 0; + border: 1px solid #eee; + background: #fafafa; +} + +.cartpay .good .pic image { + width: 100%; + display: block; +} + +.cartpay .good .info { + color: #999; + position: relative; + min-width: 0; +} + +.cartpay .good .money { + position: absolute; + bottom: 0; + right: 0; + display: block; + width: 100%; +} + +.cartpay .good .money>text:first-child { + color: #f40; + vertical-align: -1px; +} + +.cartpay .m:before { + content: "¥"; + font-size: .8em; +} + +.cartpay .order { + background: #eef7fe; +} + +.cartpay .order>view { + line-height: 20px; + padding: 8px; + display: flex; + flex-direction: row; + border-bottom: #e5ecf2 solid 1px; +} + +.cartpay .order .gicon { + top: 0; + left: 0; + right: auto; + padding: 0; +} + +.cartpay .order .gicon view { + margin: 0; +} + +.cartpay .order .title { + padding-left: 20px; +} + +.cartpay .order .top { + color: #111; + font-size: 14px; + background: #e5ecf2; + padding: 8px 10px; +} + +.cartpay .order .label { + width: 72px; + text-align: right; +} + +.cartpay .order>view>view:last-child { + flex: 1; + padding-right: 10px; + min-width: 0; + position: relative; +} + +.cashier { + padding: 10px 10px 0 10px; + background: #fff; + overflow: hidden; +} + +.cashier .safe { + line-height: 38px; + height: 38px; + background: #fff; + border: 1px #56aa16 solid; + padding: 0 10px; +} + +.cashier .onpay { + margin: 10px -10px; +} + +.cashier .onpay .row-flex { + border-radius: 0; +} + +.ptips { + font-size: 14px; + line-height: 28px; + margin: 0 0 10px 0; + padding: 5px 10px; + height: 28px; + position: relative; +} + +.ptips .tright { + right: 10px; + top: 50%; + margin-top: -14px; + position: absolute; +} + +.ptips .van-checkbox { + border: #e0e0e0 solid 1px; + height: 38px; +} + +.ptips .van-checkbox .van-checkbox__icon-wrap { + display: block; + height: 40px; + position: relative; +} + +.ptips .van-checkbox { + left: 0; + top: 0; + width: 100%; + position: absolute; + z-index: 1; +} + +.ptips .van-checkbox .van-checkbox__icon { + left: 10px; + top: 50%; + margin-top: -11px; + position: absolute; +} + +.ptips .van-checkbox .van-checkbox__label { + left: 28px; + top: 50%; + margin-top: -10px; + position: absolute; +} + +.pay-checked,.ptips .van-checkbox.pay-checked { + border: #85a1d4 solid 1px; +} + +.ptips .tright .b { + color: #f60; + padding: 0 3px; +} + +.ptips .text { + padding-left: 25px; +} + +.prompt { + background: #eff8e4; + height: 100%; + font-size: 14px; + position: fixed; + width: 100%; +} + +.prompt .body { + padding: 5px 15px; +} + +.prompt.no { + background: #ffeeea; +} + +.prompt.way { + background: #fff3e2; +} + +.prompt.no .text { + color: #ff9393; +} + +.prompt.way .icons { + background-position: -59px -419px; +} + +.prompt .text { + line-height: 20px; + padding: 3px 0; + font-weight: 700; +} + +.prompt .text { + color: #91c26c; +} + +.prompt .text>view { + margin: 10px 0; +} + +.prompt .text>view>view { + display: inline; +} + +.prompt .text .label { + font-size: 14px; + color: #333; +} + +.prompt .text input { + width: 358px; + background: #e2f2ff; + border: #bed3f0 solid 2px; + line-height: 25px; +} + +.prompt .text input:hover { + background: #e2f2ff; + border: #8cb6f0 solid 2px; +} + +.prompt .action navigator { + line-height: 14px; + font-size: 14px; + color: #999; + display: inline-block; + padding: 0 10px; + position: relative; + border-left: #999 solid 1px; +} + +.prompt .action navigator:first-child { + border: 0; + padding-left: 0; +} + +.prompt .action navigator:last-child { + padding-right: 0; +} + +.prompt .trun .item { + display: flex; + flex-direction: row; +} + +.prompt .trun .item>view { + flex: 1; + border-color: #ffeeea; + border: #ff9393 solid 2px; + color: #ff9393; + text-align: center; + margin: 12px 12px 12px 0; + padding: 8px 0; +} + +.prompt .trun .item>view>view { + font-weight: 700; + font-size: 18px; +} + +.prompt .trun .item>view:last-child { + margin-right: 0; +} + +.prompt .trun .item>view.ok { + border-color: #eff8e4; + border: #91c26c solid 2px; + color: #91c26c; +} + +.prompt .trun .top { + text-align: center; + padding: 12px 0 0 0; + font-weight: 700; +} + +.prompt .trun button { + font-size: 13px; + color: #333; + background: #e2f2ff; + border: #bed3f0 solid 2px; + padding: 1px 0; + margin-bottom: 10px; +} + +.prompt .trun button:after { + border: 0; +} + +.prompt button,.prompt button::after { + border-radius: 1px; +} + +.central .item { + overflow: hidden; + position: relative; + margin: 10px 10px 0 10px; + background: #fff; + padding: 5px 10px; + border-radius: 2px; +} + +.central .item:last-child { + margin: 10px; +} + +.central .top { + padding: 10px 5px; + line-height: 18px; +} + +.central .center { + text-align: right; + color: #090; +} + +.central .center .van-icon { + padding-right: 2px; + font-size: 18px; + vertical-align: middle; + margin-top: -3px; +} + +.central .center.not { + color: #999; +} + +.central .center.warn { + color: red; +} + +.central .tright { + min-width: 80px; +} + +.central .tright navigator,.central .tright view { + color: #428bca; + display: inline-block; +} + +.central .tright navigator:nth-child(2) { + margin-left: 5px; +} + +.central .tright navigator:nth-child(2):before { + content: "|"; + padding-right: 5px; + color: #ccc; +} + +.central .bottom { + padding: 10px 5px; + color: #999; +} + +.whiteList { + margin-bottom: 5px; +} + +.whiteList .items { + position: relative; + color: #666; + margin: 0 10px; + padding: 10px 0 10px 40px; +} + +.whiteList .items:nth-child(2) { + border-top: #eee solid 1px; +} + +.whiteList .name { + position: absolute; + left: 0; + top: 50%; + margin-top: -7px; + color: #000; + line-height: 14px; + width: 45px; + text-align: right; +} + +.whiteList .lists.ip view { + line-height: 20px; +} + +.whiteList .lists.region view { + border: 1px solid #eee; + background: #f9f9f9; + line-height: 12px; + font-size: 12px; + text-transform: capitalize; + margin: 3px 6px 3px 0; + padding: 3px 5px 4px 5px; + border-radius: 3px; + display: inline-block; +} + +.detailList { + min-height: 1px; +} + +.detailList .item { + margin: 10px 10px 0 10px; + overflow: hidden; + background: #fff; + padding: 10px; + line-height: 18px; + border-radius: 2px; +} + +.detailList .add:before { + content: '+'; + color: #0b9a00; + vertical-align: 1px; +} + +.detailList .add:before { + content: '+'; + color: #0b9a00; + vertical-align: 1px; +} + +.detailList .green { + color: #87a34d; +} + +.detailList .arrow { + color: #999; + vertical-align: middle; + margin: -2px -3px 0 0; + line-height: 16px; + height: 16px; + padding-left: 10px; +} + +.detailList .tcenter { + flex: 1; + min-width: 0; +} + +.detailList .cashed { + font-size: 28px; + line-height: 28px; + height: 28px; +} + +.detailList .tleft,.detailList .tright { + display: flex; + justify-content: center; + align-items: center; +} + +.detailList .tleft>view,.detailList .tright>view { + width: 100%; +} + +.detailList .sub:before { + content: '-'; + color: red; + vertical-align: 1px; +} + +.detailList .link { + color: #056dae; +} + +.bond { + background-color: #f1f1f1; + overflow: hidden; + width: 100%; +} + +.bond .info { + padding: 15px 0; + background: #fff; +} + +.bond .info:first-child { + font-size: 12px; + background: 0 0; + border-bottom: 2px #e1e1e1 solid; + padding: 11px 0 10px 0; +} + +.bond .info .van-icon { + color: #555; + vertical-align: middle; + font-size: 18px; + margin: -2px 3px 0 0; +} + +.bond .info rich-text { + display: inline-block; +} + +.bond .info .flex-item { + padding: 0 0 0 14px; + border-right: 1px #f1f1f1 solid; +} + +.bond .info .label { + color: #666; +} + +.bond .info .money { + line-height: 30px; + vertical-align: -2px; + font-size: 26px; + color: #6b6b6b; +} + +.mendsign { + background: #f8ffe0; + text-align: center; + padding: 30px 0 50px 0; +} + +.mend_top { + padding: 20px 20px 5px 20px; + font-size: 14px; + font-weight: 400; + color: #707b5b; + line-height: 1.5; +} + +.mend_top span { + font-size: 26px; +} \ No newline at end of file diff --git a/app.js b/app.js new file mode 100644 index 0000000..186eda2 --- /dev/null +++ b/app.js @@ -0,0 +1,8 @@ +App({ + onLaunch: function(n) { + wx.setStorageSync("apiurl", "https://m.huzhan.com/"); + }, + globalData: { + userInfo: null + } +}); \ No newline at end of file diff --git a/app.json b/app.json new file mode 100644 index 0000000..c42eb34 --- /dev/null +++ b/app.json @@ -0,0 +1,51 @@ +{ + "pages": [ + "pages/index/index", + "pages/member/member", + "pages/index/article", + "pages/member/myorder", + "pages/index/show", + "pages/index/list", + "pages/index/shop", + "pages/member/html", + "pages/member/cart", + "pages/member/login", + "pages/member/list/fav", + "pages/member/list/order", + "pages/member/list/detail", + "pages/member/list/manage", + "pages/member/list/message" + ], + "window": { + "backgroundTextStyle": "light", + "navigationBarBackgroundColor": "#fff", + "navigationBarTitleText": "互站网", + "navigationBarTextStyle": "black", + "enablePullDownRefresh": true + }, + "tabBar": { + "color": "#7a7e83", + "selectedColor": "#e93b3d", + "list": [ + { + "pagePath": "pages/index/index", + "text": "首页", + "iconPath": "static/images/home.png", + "selectedIconPath": "static/images/home_hover.png" + }, + { + "pagePath": "pages/member/cart", + "text": "购物车", + "iconPath": "static/images/cart.png", + "selectedIconPath": "static/images/cart_hover.png" + }, + { + "pagePath": "pages/member/member", + "text": "我的", + "iconPath": "static/images/my.png", + "selectedIconPath": "static/images/my_hover.png" + } + ] + }, + "sitemapLocation": "sitemap96.json" +} \ No newline at end of file diff --git a/app.wxss b/app.wxss new file mode 100644 index 0000000..fe71aa1 --- /dev/null +++ b/app.wxss @@ -0,0 +1,21 @@ +[is="utils/forview/index"] { + display: contents; +} + +[is="vant/goods-action-button/index"] { + flex: 1; +} + +[is="vant/tabbar-item/index"] { + flex: 1; +} + +navigator { + color: #333; +} + +page { + font-size: 14px; + color: #333; + background: #f2f2f2; +} \ No newline at end of file diff --git a/common/WxValidate.js b/common/WxValidate.js new file mode 100644 index 0000000..5a386c5 --- /dev/null +++ b/common/WxValidate.js @@ -0,0 +1,290 @@ +function t(t, e) { + if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); +} + +Object.defineProperty(exports, "__esModule", { + value: !0 +}); + +var e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { + return typeof t; +} : function(t) { + return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; +}, n = function() { + function t(t, e) { + for (var n = 0; n < e.length; n++) { + var i = e[n]; + i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), + Object.defineProperty(t, i.key, i); + } + } + return function(e, n, i) { + return n && t(e.prototype, n), i && t(e, i), e; + }; +}(), i = function() { + function i() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + t(this, i), Object.assign(this, { + data: {}, + rules: e, + messages: n + }), this.__init(); + } + return n(i, [ { + key: "__init", + value: function() { + this.__initMethods(), this.__initDefaults(), this.__initData(); + } + }, { + key: "__initData", + value: function() { + this.form = {}, this.errorList = []; + } + }, { + key: "__initDefaults", + value: function() { + this.defaults = { + messages: { + required: "不能为空", + email: "请输入有效的邮箱地址", + phone: "请输入11位的手机号码", + qq: "请输入5~11位的QQ号码", + url: "请输入有效的网址", + nice: "昵称必须为2~7位的数字、字母或汉字", + date: "请输入有效的日期", + dateISO: "请输入有效的日期(ISO),例如:2009-06-23,1998/01/22", + number: "请输入有效的数字", + digits: "只能输入数字", + idcard: "请输入18位的有效身份证", + safe: "不少于6位,且同时包含数字+字母", + pass: "密码长度要求6-20位", + vcode: "验证码错误,请重新输入", + equalTo: this.formatTpl("输入值必须和 {0} 相同"), + contains: this.formatTpl("输入值必须包含 {0}"), + minlength: this.formatTpl("最少需要输入 {0} 个字符"), + maxlength: this.formatTpl("最多允许输入 {0} 个字符"), + rangelength: this.formatTpl("长度要求:{0} 到 {1} 个字符"), + min: this.formatTpl("请输入不小于 {0} 的数字"), + max: this.formatTpl("请输入不大于 {0} 的数字"), + range: this.formatTpl("允许数字范围: {0} 到 {1} 之间") + } + }; + } + }, { + key: "__initMethods", + value: function() { + var t = this; + t.methods = { + required: function(e, n) { + if (!t.depend(n)) return "dependency-mismatch"; + if ("number" == typeof e) e = e.toString(); else if ("boolean" == typeof e) return !0; + return e.length > 0; + }, + email: function(e) { + return t.optional(e) || /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(e); + }, + phone: function(e) { + return t.optional(e) || /^1[345789]\d{9}$/.test(e); + }, + qq: function(e) { + return t.optional(e) || /^[1-9]\d{5,11}$/.test(e); + }, + nice: function(e) { + return t.optional(e) || /^[\u4e00-\u9fa5a_a-zA-Z0-9\-]{2,14}$/.test(e); + }, + pass: function(e) { + return t.optional(e) || /^\S{6,20}$/.test(e); + }, + vcode: function(e) { + return t.optional(e) || /^\S{4,6}$/.test(e); + }, + url: function(e) { + return t.optional(e) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(e); + }, + date: function(e) { + return t.optional(e) || !/Invalid|NaN/.test(new Date(e).toString()); + }, + dateISO: function(e) { + return t.optional(e) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(e); + }, + number: function(e) { + return t.optional(e) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(e); + }, + digits: function(e) { + return t.optional(e) || /^\d+$/.test(e); + }, + idcard: function(e) { + return t.optional(e) || /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test(e); + }, + equalTo: function(e, n) { + return t.optional(e) || e === t.data[n]; + }, + contains: function(e, n) { + return t.optional(e) || e.indexOf(n) >= 0; + }, + minlength: function(e, n) { + return t.optional(e) || e.length >= n; + }, + maxlength: function(e, n) { + return t.optional(e) || e.length <= n; + }, + rangelength: function(e, n) { + return t.optional(e) || e.length >= n[0] && e.length <= n[1]; + }, + min: function(e, n) { + return t.optional(e) || e >= n; + }, + max: function(e, n) { + return t.optional(e) || e <= n; + }, + range: function(e, n) { + return t.optional(e) || e >= n[0] && e <= n[1]; + }, + safe: function(e, n) { + return t.optional(e) || /(?=^.*?\d)(?=^.*?[a-zA-Z])^[0-9a-zA-Z]{6,32}$/.test(e); + } + }; + } + }, { + key: "addMethod", + value: function(t, e, n) { + this.methods[t] = e, this.defaults.messages[t] = void 0 !== n ? n : this.defaults.messages[t]; + } + }, { + key: "isValidMethod", + value: function(t) { + var e = []; + for (var n in this.methods) n && "function" == typeof this.methods[n] && e.push(n); + return -1 !== e.indexOf(t); + } + }, { + key: "formatTpl", + value: function(t, e) { + var n = this; + return 1 === arguments.length ? function() { + var e = Array.from(arguments); + return e.unshift(t), n.formatTpl.apply(this, e); + } : void 0 === e ? t : (arguments.length > 2 && e.constructor !== Array && (e = Array.from(arguments).slice(1)), + e.constructor !== Array && (e = [ e ]), e.forEach(function(e, n) { + t = t.replace(new RegExp("\\{" + n + "\\}", "g"), function() { + return e; + }); + }), t); + } + }, { + key: "depend", + value: function(t) { + switch (void 0 === t ? "undefined" : e(t)) { + case "boolean": + t = t; + break; + + case "string": + t = !!t.length; + break; + + case "function": + t = t(); + + default: + t = !0; + } + return t; + } + }, { + key: "optional", + value: function(t) { + return !this.methods.required(t) && "dependency-mismatch"; + } + }, { + key: "customMessage", + value: function(t, n) { + var i = this.messages[t], r = "object" === (void 0 === i ? "undefined" : e(i)); + if (i && r) return i[n.method]; + } + }, { + key: "defaultMessage", + value: function(t, n) { + var i = this.customMessage(t, n) || this.defaults.messages[n.method], r = void 0 === i ? "undefined" : e(i); + return "undefined" === r ? i = "Warning: No message defined for " + n.method + "." : "function" === r && (i = i.call(this, n.parameters)), + void 0 !== this.messages[t] && this.messages[t].label ? i = "【" + this.messages[t].label + "】" + i : "required" == n.method && "不能为空" == i && (i = "此项" + i), + i; + } + }, { + key: "formatTplAndAdd", + value: function(t, e, n) { + var i = this.defaultMessage(t, e); + this.errorList.push({ + param: t, + msg: i, + value: n + }); + } + }, { + key: "checkParam", + value: function(t, n, i) { + if (this.data = i, void 0 === i[t]) return !0; + if (n.isShow) { + var r = !0; + for (var o in n.isShow) { + var a = n.isShow[o]; + ("object" == e(i[o]) ? i[o].join("") : i[o]) !== a && (r = !1); + } + if (!r) return !0; + } + var s = null !== i[t] ? i[t] : ""; + for (var u in n) if ("isShow" != u && this.isValidMethod(u)) { + var f = { + method: u, + parameters: n[u] + }, l = this.methods[u](s, f.parameters); + if (this.setValue(t, u, l, s), !l || "dependency-mismatch" === l) return this.formatTplAndAdd(t, f, s), + !1; + } + return !0; + } + }, { + key: "setView", + value: function(t) { + this.form[t] = { + $name: t, + $valid: !0, + $invalid: !1, + $error: {}, + $success: {}, + $viewValue: "" + }; + } + }, { + key: "setValue", + value: function(t, e, n, i) { + var r = this.form[t]; + r.$valid = n, r.$invalid = !n, r.$error[e] = !n, r.$success[e] = n, r.$viewValue = i; + } + }, { + key: "checkForm", + value: function(t) { + this.__initData(); + for (var e in this.rules) if (!(t.Send && [ "phone", "email" ].indexOf(e) < 0 || (this.setView(e), + this.checkParam(e, this.rules[e], t)))) return !1; + return this.valid(); + } + }, { + key: "valid", + value: function() { + return 0 === this.size(); + } + }, { + key: "size", + value: function() { + return this.errorList.length; + } + }, { + key: "validationErrors", + value: function() { + return this.errorList; + } + } ]), i; +}(); + +exports.default = i; \ No newline at end of file diff --git a/common/common.js b/common/common.js new file mode 100644 index 0000000..1931bb9 --- /dev/null +++ b/common/common.js @@ -0,0 +1,1058 @@ +function e(e) { + return e && e.__esModule ? e : { + default: e + }; +} + +function t(e, t, a) { + return t in e ? Object.defineProperty(e, t, { + value: a, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = a, e; +} + +function a(e) { + var t = void 0 !== M.data.listIndex ? M.data.getdata[M.data.listIndex] : M.data.getdata, a = void 0 !== M.data.listIndex ? M.data.listdata[M.data.listIndex] : M.data.listdata; + s({ + url: M.data.Form.apiurl, + data: t + }, function(n) { + if ("fail" != n) { + if (0 === n.state) return m(n); + a.list && n.CurPage > 1 && (n.list = a.list.concat(n.list)), void 0 === M.data.listIndex && 1 === t.page && wx.pageScrollTo({ + scrollTop: 0, + duration: 0 + }); + } + e && e(n); + }); +} + +function n(e) { + wx.setClipboardData({ + data: e, + success: function() { + wx.showToast({ + title: "复制成功", + mask: !0 + }); + } + }); +} + +function i() { + M.onPullDownRefresh && (M.onPullDownRefresh(), wx.stopPullDownRefresh()); +} + +function o() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, t = getCurrentPages(), a = t[t.length - 1], n = a.route; + if (1 != e) return n; + var i = a.options, o = n + "?"; + for (var r in i) o += r + "=" + i[r] + "&"; + return o = o.substring(0, o.length - 1); +} + +function r(e, t) { + var a = e.match(new RegExp(t + "=(\\S*);")); + return a && a[1] ? a[1] : ""; +} + +function s(e, t) { + var a = wx.getStorageSync("sessionid"), n = wx.getStorageSync("ci_session"), i = wx.getStorageSync("cid"); + "string" == typeof e && (e = { + url: e + }), "http" != e.url.substring(0, 4) && (e.url = wx.getStorageSync("apiurl") + e.url), + e.header || (e.header = {}), e.header.platform = M.data.SystemInfo.platform, e.header.system = M.data.SystemInfo.system, + e.header.cookie = n ? "ci_session=" + n + "; " : "", e.header.cookie += i ? "cid=" + i + "; " : "cid=aaaaaaaaaaadwd2d22d1; ", + e.header.sessionid = a || null, "GET" != e.method && (e.method = "POST", e.header = Object.assign({ + "content-Type": "application/x-www-form-urlencoded" + }, e.header)), e.success = function(e) { + e.data.title && !e.data.share && wx.hideShareMenu(), !n && wx.setStorageSync("ci_session", r(e.header["Set-Cookie"], "ci_session")), + !i && r(e.header["Set-Cookie"], "cid") && wx.setStorageSync("cid", r(e.header["Set-Cookie"], "cid")), + 200 == e.statusCode && t && t(e.data); + }, e.fail = function(e) { + wx.showToast({ + title: "加载失败", + icon: "none", + duration: 2e3 + }), t("fail"); + }, wx.request(e); +} + +function l(e, a, n) { + var i = x(); + !a.initial && M.data[i] && M.data[i].form && M.data[i].form.upload && M.data[i].form.upload.list.ing.length > 0 ? (M.setData(t({}, i + ".form.upload.being", !0)), + w(Object.assign({ + postUrl: e + }, a), function(t) { + if (t) { + if (a.formToUpload) return u(t, n); + c({ + url: e, + data: a, + method: "POST" + }, function(e) { + u(e, n); + }); + } + })) : c({ + url: e, + data: a, + method: "POST" + }, function(e) { + u(e, n); + }); +} + +function c(e, t) { + "string" == typeof e && (e = { + url: e + }), wx.getStorageSync("sessionid") || null || -1 != e.url.indexOf("islogin=0") ? (e.header || (e.header = {}), + e.header.islogin = -1 != e.url.indexOf("islogin=0") ? 0 : 1, s(e, function(a) { + f(a, t, e); + })) : (wx.setStorageSync("loginback", o()), wx.navigateTo({ + url: "/pages/member/login?action=authorize" + })); +} + +function u(e, t) { + t ? t(e) : e.title && p(e); +} + +function f(e, t, a) { + if (-2 == e.state) b(function(e) { + "success" == e ? a ? s(a, function(e) { + t(e); + }) : i(M) : (wx.setStorageSync("loginback", o()), wx.navigateTo({ + url: "/pages/member/login?action=" + e + })); + }); else { + if (0 === e.state) return m(e); + "authorize" != e.state && "binding" != e.state || !e.sessionid ? u(e, t) : (wx.setStorageSync("loginback", o()), + wx.navigateTo({ + url: "/pages/member/login?action=" + e.state + })); + } +} + +function d(e) { + wx.requestPayment({ + timeStamp: e.timeStamp, + nonceStr: e.nonceStr, + package: e.package, + signType: e.signType, + paySign: e.paySign, + success: function(t) { + if (wx.showLoading({ + title: "请稍等…" + }), e.success) return m(e.success); + }, + fail: function(t) { + if (e.fail) return m(e.success); + k(); + } + }); +} + +function m(e) { + var t = x(); + return e.appPayment ? d(e.appPayment) : (delete e.state, !e.info && e.url ? y({ + action: 301, + info: e.url + }) : (e.info ? (e.btn && (e.confirmtext = e.btn), (e.btn2 || e.url2 || e.action2 || e.back2 || e.backfun2) && (e.canceltext = e.btn2 || "取消"), + (e.url || e.url2 || e.action || e.action2 || e.back || e.back2 || e.backfun || e.backfun2 || e.element || e.fun) && (e.buttons = {}, + (e.url || e.action || e.back || e.backfun || e.element || e.fun) && (e.buttons.confirm = { + info: e.fun || e.url || e.backfun || e.element || "", + data: e.data || null, + action: e.fun ? "fun" : 1 == e.back ? "back" : 1 === e.url ? "refresh" : e.element ? "backfocus" : e.backfun ? "backfun" : e.action ? e.action : "url" + }), (e.url2 || e.action2 || e.back2 || e.backfun2) && (e.buttons.cancel = { + info: e.url2 || e.backfun2 || "", + data: e.data || null, + action: 1 === e.url2 ? "refresh" : 1 == e.back2 ? "back" : e.backfun2 ? "backfun" : e.action2 ? e.action2 : "url" + }))) : M.data[t] && M.data[t].form && M.data[t].form.formLoad && k(), y(e))); +} + +function p(e) { + var a; + wx.setNavigationBarTitle({ + title: e.title + }); + var n = { + form: { + radio: {}, + checkbox: {}, + picker: {}, + rate: {} + } + }, i = x(); + for (var o in e) if ("onloadFun" != o) if ("form" != o) n[o] = e[o]; else for (var r in e[o]) n.form[r] = e[o][r]; + M.setData((a = {}, t(a, i, n), t(a, "spin", !1), a)), n.input && y({ + action: "formValidate", + list: n.input + }), e.onloadFun && y(e.onloadFun), wx.stopPullDownRefresh(); +} + +function g(e, t) { + s({ + url: e, + method: "GET" + }, function(e) { + f(e, function(e) { + t(e); + }); + }); +} + +function b(e) { + wx.login({ + success: function(t) { + wx.request({ + url: wx.getStorageSync("apiurl") + "get/login", + data: { + code: t.code + }, + header: { + platform: M.data.SystemInfo.platform, + system: M.data.SystemInfo.system + }, + success: function(t) { + var a = t.data; + a.sessionid ? (wx.setStorageSync("sessionid", a.sessionid), e(a.state)) : wx.showModal({ + title: "提示", + content: a.info, + showCancel: !1 + }); + } + }); + } + }); +} + +function v() { + var e = getCurrentPages(), t = e[e.length - 1], a = t.route, n = t.options, i = "/" + a + "?"; + for (var o in n) i += o + "=" + n[o] + "&"; + return i = i.substring(0, i.length - 1); +} + +function h() { + var e = x(), a = setInterval(function() { + var n = M.data[e].form.send; + if (!n) return L = !1, clearInterval(a); + var i = n.interval > 0 ? n.interval : 60; + if (!L && n.time > 0 || 0 == n.time && "boolean" != typeof n.Stop) var o = n.time > 0 ? n.time : i, r = { + Stop: !0, + Tips: o + "s后重发", + time: o - 1, + interval: i + }; else { + L = !1, clearInterval(a); + r = { + Stop: !1, + Tips: "发送验证码", + time: 0, + interval: i + }; + } + M.setData(t({}, e + ".form.send", r)); + }.bind(M), 1e3); +} + +function x() { + return M.data.popupForm && M.data.popupForm.show ? "popupForm" : "Form"; +} + +function w(e, a) { + var n = x(), i = M.data[n].form.upload, o = i.list.ing.shift(), r = i.ingFiles.shift(), s = e.formToUpload, l = s ? e.postUrl : i.apiurl, c = wx.getStorageSync("sessionid"), u = wx.getStorageSync("ci_session"); + if (!o || "" == o) return a(!0); + wx.uploadFile({ + url: wx.getStorageSync("apiurl") + l, + filePath: o, + name: "file", + formData: Object.assign({ + osize: r.size, + lastDate: new Date().getTime(), + maxnum: i.max + }, s ? e : {}, i.post ? i.post : {}), + header: { + "Content-Type": "multipart/form-data", + platform: M.data.SystemInfo.platform, + system: M.data.SystemInfo.system, + cookie: u ? "ci_session=" + u : null, + sessionid: c || null + }, + complete: function(r) { + if (s) return f(JSON.parse(r.data), a); + if ("uploadFile:ok" == r.errMsg) { + if (r.data) { + var l = JSON.parse(r.data); + i.number.ing -= 1, "0" == l.state ? (i.list.suc = i.list.suc.concat([ o ]), i.number.suc = (i.number.suc || 0) + 1) : (i.list.err = i.list.err.concat([ o ]), + i.number.err = (i.number.err || 0) + 1, i.msg[o] = l.state); + } + } else i.number.ing -= 1, i.number.err = (i.number.err || 0) + 1, i.list.err = i.list.err.concat([ o ]), + i.msg[o] = r.errMsg; + i.being = i.list.ing.length > 0, M.setData(t({}, n + ".form.upload", i)), i.list.ing.length > 0 ? w(e, a) : a && a(!0); + } + }); +} + +function y(e) { + var a, n = [ "loading", "spin", "popupSpin" ], o = x(); + for (var r in n) { + var s = n[r]; + M.data[s] && M.setData(t({}, s, !1)); + } + var u = e.currentTarget ? e.currentTarget.dataset : e, f = u.action; + switch (-1 !== [ "formSubmit", "checkbox", "picker", "input", "radio", "swiper" ].indexOf(f) && ((u = e).action = f), + u.action) { + case "copy": + wx.setClipboardData({ + data: u.info, + success: function() { + wx.showToast({ + title: u.title || u.data || "复制成功", + mask: !0 + }); + } + }); + break; + + case "go": + wx.pageScrollTo({ + scrollTop: "top" == u.info ? 0 : u.info, + duration: 300 + }); + break; + + case "refresh": + i(M); + break; + + case "geturl": + return v(); + + case "back": + wx.navigateBack({ + delta: u.delta || 1 + }); + break; + + case "backfun": + ve = (be = getCurrentPages())[be.length - 2]; + wx.navigateBack({ + delta: u.delta || 1, + success: function() { + ve[u.info](); + } + }); + break; + + case "fun": + var d = u.name || u.info; + if (d) { + var m = Array.isArray(d) ? d : d.split(","); + for (var r in m) { + var p = m[r]; + -1 != p.indexOf("Commom ") ? M.Commom({ + action: p.replace("Commom ", "") + }) : M[p](u.data); + } + } + break; + + case "swiper": + b = (D = u.currentTarget.dataset).name; + (W = M.data[o].form || {}).picker || (W.picker = {}), W.picker[b] || (W.picker[b] = 0), + W.picker[b] = u.detail.current, M.setData(t({}, o + ".form", W)), D.endbind && y({ + action: "fun", + name: D.endbind, + data: e + }); + break; + + case "picker": + var b = (D = u.currentTarget.dataset).name, h = M.data[o].form.picker[b], w = { + show: !h || !h.show + }; + h && !isNaN(h.index) && (w.index = h.index), "confirm" == u.type && (w.index = u.detail.index), + M.setData((a = {}, t(a, o + ".form.textareaToggle", w.show), t(a, o + ".form.picker." + b, w), + a)), D.endbind && y({ + action: "fun", + name: D.endbind, + data: D.data + }); + break; + + case "input": + case "radio": + case "checkbox": + var D = u.currentTarget.dataset, F = u.action, T = D.name, I = "input" == F ? u.detail.value : D.info || u.detail, z = M.data[o].form; + z[F] && z[F][T] === I || ("input" == F ? z.focus = T : delete z.focus, z[F] || (z[F] = {}), + z[F][T] = I, M.setData(t({}, o + ".form", z))), D.endbind && y({ + action: "fun", + name: D.endbind, + data: D.data + }); + break; + + case "formSubmit": + var L = u.detail.value, V = u.currentTarget.dataset; + if (u.detail.target && "send" == u.detail.target.id) L.Send = !0; else { + var R; + M.setData((R = {}, t(R, o + ".form.formLoad", !0), t(R, o + ".form.textareaToggle", !0), + R)); + } + if (!M.WxValidate.checkForm(L)) { + var H = M.WxValidate.errorList[0]; + return H.action = "focus", H.field = o + ".form", y(H); + } + var B = C(L); + if (u.detail.target && "send" == u.detail.target.id) return _(B); + if (V.url) return l(-1 != V.url.indexOf("/") ? V.url : "post/" + V.url, B); + l(M.data.url, B); + break; + + case "formValidate": + var J = {}, U = {}, W = M.data[o].form, q = !1, G = [ "checkbox", "toggle", "stepper", "rate", "radio" ], E = [], Q = function(e) { + if (e.name && !1 !== e.intoForm && (-1 !== G.indexOf(e.type) || e.intoForm)) { + var t = "input", a = e.name; + -1 !== [ "stepper", "rate", "radio" ].indexOf(e.type) ? t = "radio" : -1 !== [ "checkbox", "toggle" ].indexOf(e.type) && (t = "checkbox"), + W[t] || (W[t] = {}), W[t][a] = e.value, q = !0; + } + if (e.endbind && -1 === E.indexOf(e.endbind) && E.push(e.endbind), e.validateRules) { + var n = e.validateName || e.name; + J[n] = e.validateRules, U[n] = e.validateMessages ? e.validateMessages : { + label: e.label || !1 + }; + } + }; + !function e(t) { + for (var a in t) { + var n = t[a]; + Q(n), n.list && e(n.list); + } + }(u.list), q && M.setData(t({}, o + ".form", W)), E.length > 0 && y({ + action: "fun", + name: E + }), M.WxValidate = new N.default(J, U); + break; + + case "pop": + case "ajax": + var $ = u.method, K = {}, X = [ "action", "method" ]; + for (var r in u) if ("data" == r && u[r] && "object" == P(JSON.parse(u[r]))) { + var Y = JSON.parse(u[r]); + for (var Z in Y) K[Z] = Y[Z]; + } else X.indexOf(r) < 0 && "" !== u[r] && (K[r] = u[r]); + "pop" == u.action ? (M.setData({ + popupSpin: !0 + }), c({ + url: $, + data: K + }, function(e) { + "curr" == e.postUrl && (e.postUrl = $), e.form = Object.assign({ + popupForm: !0, + radio: {}, + checkbox: {}, + picker: {} + }, e.form), e.show = !0, M.setData({ + popupForm: e, + popupSpin: !1 + }), e.input && y({ + action: "formValidate", + list: e.input + }); + })) : ("curr" == $ && ($ = "Form" == o ? M.data.url : M.data[o].postUrl), l($, K)); + break; + + case "phone": + isNaN(u.info) || wx.showModal({ + content: "确定拨打电话【" + u.info + "】?", + success: function(e) { + e.confirm && wx.makePhoneCall({ + phoneNumber: u.info + }); + } + }); + break; + + case "lazyHeight": + O(u.element); + break; + + case "upload": + u.method && !M.data[o].form.upload.being && A[u.method](u); + break; + + case "uploadInit": + var ee = { + list: { + ing: [], + err: [], + suc: [], + del: [] + }, + ingFiles: [], + direct: !1, + number: {}, + msg: {}, + max: 5, + tips: { + ing: "待传列表为点击最后的“确认提交”时开始上传" + }, + apiurl: "upload" + }; + if (u.customOptions) { + var te = JSON.parse(u.customOptions); + if (te.list) { + var ae = te.list; + delete te.list; + } + ee = Object.assign(ee, te), ae && ae.length > 0 && (ee.list.suc = ae, ee.number.suc = ae.length, + ee.number.count = ae.length); + } + ee.note || (ee.note = "非必传,可上传" + ee.max + "张图片附件(含已传)"), M.setData(t({}, o + ".form.upload", ee)); + break; + + case "uploadPreview": + if (u.data && u.method) { + var ne = u.data, ie = M.data[o].form.upload.list[u.method]; + wx.previewImage({ + current: ne + "?v=preview", + urls: ie.map(function(e) { + return e + "?v=preview"; + }) + }); + } + break; + + case "preview": + if (u.src || u.data) { + var oe = (u.src ? u.src : u.data).split("!")[0] + "?v=preview"; + wx.previewImage({ + current: oe, + urls: [ oe ] + }); + } + break; + + case "allPreview": + var re = u.src, se = M.data.previewList[u.field], le = []; + if (se && re) { + for (var ce in se) le.push(se[ce] + "?v=preview"); + wx.previewImage({ + current: re.split("!")[0] + "?v=preview", + urls: le + }); + } + break; + + case "intoPreview": + var ue = u.src, fe = u.field; + if (ue && fe) { + M.data.previewList || M.setData({ + previewList: [] + }); + var de = M.data.previewList[fe] || [], me = ue.split("!")[0]; + if (-1 !== de.indexOf(me)) return !1; + de.push(me.split("!")[0]), M.setData(t({}, "previewList." + fe, de)); + } + break; + + case "contact": + if (M.setData({ + popupSpin: !0 + }), u.data) { + var pe = JSON.parse(u.data); + if (pe.name) return S({ + info: pe, + tempname: "contact", + scroll: !0, + closable: !0, + customstyle: "width:88%;" + }), !1; + } + g("html/contact/" + u.info, function(e) { + S({ + info: e, + tempname: "contact", + scroll: !0, + closable: !0, + customstyle: "width:88%;" + }); + }); + break; + + case "install": + M.setData({ + popupSpin: !0 + }), g("html/install/" + u.info, function(e) { + S({ + info: e, + tempname: "install", + scroll: !0, + closable: !0, + title: !1, + customstyle: "width:80%;max-height:90%;z-index:100000" + }); + }); + break; + + case 301: + case "301": + case "url": + var ge = u.info; + if ("back" == ge) y({ + action: "back" + }); else if (1 === ge) y({ + action: "refresh" + }); else if (-1 != ge.indexOf("alert_")) y({ + info: ge = ge.replace("alert_", "") + }); else if (-1 != ge.indexOf("before_")) { + ge = ge.replace("before_", ""); + var be = getCurrentPages(), ve = be[be.length - 2]; + wx.navigateBack({ + delta: u.delta || 1, + success: function() { + y({ + info: ge, + action: "url" + }); + } + }); + } else -1 != ge.indexOf("self_") ? (ge = ge.replace("self_", ""), wx.redirectTo({ + url: ge, + complete: function(e) { + -1 != e.errMsg.indexOf("tabbar") && y({ + action: "taburl", + info: u.info + }); + } + })) : -1 != ge.indexOf("reLaunch_") ? (ge = ge.replace("reLaunch_", ""), wx.reLaunch({ + url: "/pages/member/member" + })) : wx.navigateTo({ + url: ge, + complete: function(e) { + -1 != e.errMsg.indexOf("tabbar") && y({ + action: "taburl", + info: u.info + }); + } + }); + break; + + case "confirm": + var he = JSON.parse(decodeURIComponent(u.data)), xe = {}, we = [ "info", "title", "align", "zindex", "closable", "masknoclosa" ]; + if (he.cancel || !1 === he.cancel || (he.cancel = { + btn: "取消" + }), he.attrData) { + var ye = he.attrData; + delete u.attrData, delete u.action, delete u.info, delete u.data; + for (var ke in ye) { + var Se = ye[ke]; + he[Se] = Object.assign(u, he[Se]); + } + } + for (var r in u) -1 !== we.indexOf(r) && (xe[r] = u[r]); + y(Object.assign(xe, { + buttons: he + })); + break; + + case "backfocus": + k(u.info); + break; + + case "focus": + j.default.alert({ + title: u.title || "提示", + message: u.msg, + zIndex: 2e4 + }).then(function() { + u.param && k(u.param); + }); + break; + + case "storage": + var De = u.method, Fe = u.data; + "delete" != De ? wx.setStorage({ + key: De, + data: Fe, + success: function(e) { + e && u.callback && y(u.callback); + } + }) : wx.removeStorage({ + key: Fe, + success: function(e) { + e && u.callback && y(u.callback); + } + }); + break; + + case "taburl": + wx.switchTab({ + url: u.info + }); + break; + + default: + if (!u.info) return; + Ie = {}; + if (u.buttons) { + var Oe = "string" == typeof u.buttons ? JSON.parse(u.buttons) : u.buttons, Te = [ "confirm", "cancel" ], Ie = {}; + for (var r in Te) { + var Ce = Te[r]; + Oe[Ce] && (Oe[Ce].btn && (u[Ce + "text"] = Oe[Ce].btn, delete Oe[Ce].btn), Object.keys(Oe[Ce]).length && (Ie[Ce] = Oe[Ce])); + } + } + j.default.alert({ + title: u.title || "信息", + message: -1 != u.info.indexOf("%3C") ? decodeURIComponent(u.info) : u.info, + messageAlign: u.align || "center", + zIndex: u.zindex || 2e4, + overlay: !u.nomask, + transition: u.transition || "scale", + closeOnClickOverlay: !0 === u.masknoclosa, + showCancelButton: !(!u.cancelbutton && !u.canceltext), + cancelButtonText: u.canceltext ? u.canceltext : "取消", + confirmButtonText: u.confirmtext ? u.confirmtext : "确定", + closable: u.closable || !1 + }).then(function() { + Ie.confirm && Ie.confirm.url || k(), Ie.confirm && y(Ie.confirm); + }).catch(function() { + k(), Ie.cancel && y(Ie.cancel); + }); + } +} + +function k() { + var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], a = x(); + M.data[a] && M.data[a].form && M.data[a].form.formLoad && setTimeout(function() { + var n; + M.setData((n = {}, t(n, a + ".form.focus", e || null), t(n, a + ".form.formLoad", !1), + t(n, a + ".form.textareaToggle", !1), n)); + }, 100); +} + +function S(e) { + var a = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + switch (e.action) { + case "close": + M.setData(t({}, "popup[" + e.index + "]", {})); + break; + + case "closeAll": + M.setData({ + popup: {} + }); + break; + + case "closeForm": + var n = x(); + M.setData(t({}, n, { + form: { + radio: {}, + checkbox: {}, + picker: {} + } + })), M.WxValidate = {}; + break; + + default: + var i = D(e); + a && a(i); + } +} + +function D(e, a) { + var n, a = isNaN(a) ? M.data.popup.length : a; + /[<]+/.test(e.info) && /[>]+/.test(e.info) && (z.wxParse("popuphtml[" + a + "]", "html", e.info, M, 10), + e.info = "wxParse"); + var i = { + title: e.title || "", + info: e.info, + show: !0, + zindex: a + 2e4, + overlay: !1 !== e.overlay, + position: e.position || "center", + duration: e.duration || 300, + customstyle: e.customstyle || "", + overlaystyle: e.overlaystyle || "", + closeonclickoverlay: !1 !== e.closeonclickoverlay, + safeareainsetbottom: !1 !== e.safeareainsetbottom, + safeareainsettop: e.safeareainsettop || !1, + tempname: e.tempname || "PopupTem", + closable: !e.noclosa, + scroll: !!e.scroll, + timg: e.timg || !1, + tleft: e.tleft || !1, + tcolor: e.tcolor || !1, + tbg: e.tbg || !1 + }; + return M.setData((n = {}, t(n, "popup[" + a + "]", i), t(n, "popupSpin", !1), n)), + a; +} + +function F(e, t) { + wx.createSelectorQuery().select(e).boundingClientRect(function(e) { + t(e); + }).exec(); +} + +function O(e) { + F(e, function(e) { + var a; + M.setData((a = {}, t(a, "Form.lazy.pos", Math.ceil(M.data.SystemInfo.windowHeight / e.height) * M.data.Form.lazy.add), + t(a, "Form.lazy.height", e.height), t(a, "initialValue.Form.lazy.pos", Math.ceil(M.data.SystemInfo.windowHeight / e.height) * M.data.Form.lazy.add), + t(a, "initialValue.Form.lazy.height", e.height), a)); + }); +} + +function T() { + wx.getSystemInfo({ + success: function(e) { + var t = { + navHeight: e.statusBarHeight, + windowHeight: e.windowHeight % 2 == 0 ? e.windowHeight : e.windowHeight + 1, + windowWidth: e.windowWidth % 2 == 0 ? e.windowWidth : e.windowWidth + 1, + system: e.system.split(" ")[0], + platform: "wechatApp" + }; + if (M.data.CustomNavigation) { + var a = wx.getMenuButtonBoundingClientRect(); + t.CustomBar = a.bottom + a.top - e.statusBarHeight; + } + M.setData({ + SystemInfo: t + }); + } + }); +} + +function I(e, t) { + var a = t.split("-"); + if (t.length <= 0) return e; + if (a.length <= 1) return e[a.join("")]; + for (var n in a) return I(e[a[n]], a.slice(1).join("-")); +} + +function C(e) { + var t = []; + for (var a in e) { + var n = e[a], i = a.split("-"); + if (/^[0-9]+$/.test(a) || /.*[\u4e00-\u9fa5]+.*$/.test(a) || "" == a) delete e[a]; else if (("string" == typeof n || Array.isArray(n)) && n.length <= 0) delete e[a]; else if (i.length > 1) { + var o = i[0]; + e[o] || (e[o] = []), "" == i[1] || null == i[1] || -1 != i[1].indexOf("Auto") ? (e[o].push(n), + -1 === t.indexOf(o) && t.push(o)) : e[o + "[" + i[1] + "]"] = n, delete e[a]; + } else Array.isArray(n) && -1 === t.indexOf(a) && t.push(a); + } + for (var r in t) { + var s = t[r]; + if (Array.isArray(e[s])) { + for (var l = 0; l < e[s].length; l++) e[s + "[" + l + "]"] = e[s][l]; + delete e[s]; + } + } + return e; +} + +function _(e) { + var a = x(); + if (M.data[a].form.send && M.data[a].form.send.Stop) return !1; + M.setData(t({}, a + ".form.send.Stop", "ing")), h(), l("post/sendCode" + (1 == e.noLogin ? "?islogin=0" : ""), e, function(e) { + isNaN(e.time) || (0 == e.time ? L = !0 : M.setData(t({}, a + ".form.send.time", parseInt(e.time))), + y(e)); + }); +} + +var P = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { + return typeof e; +} : function(e) { + return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; +}, N = e(require("../common/WxValidate.js")), j = e(require("../vant/dialog/dialog")), z = require("../wxParse/wxParse.js"), M = (getApp(), +{}), L = !1, A = { + choose: function(e) { + var a = x(), n = M.data[a].form.upload, i = n.max - (n.number.count || 0); + return !n.being && (i <= 0 && n.max > 1 ? wx.showToast({ + title: "图片限传" + n.max + "个", + icon: "none", + duration: 2e3 + }) : void wx.chooseImage({ + count: i, + sizeType: [ "compressed" ], + sourceType: [ "album", "camera" ], + success: function(i) { + var o = i.tempFilePaths; + n.max > 1 ? (n.list.ing = n.list.ing.concat(o), n.ingFiles = n.ingFiles.concat(i.tempFiles), + n.number.ing = o.length + (n.number.ing || 0), n.number.count = o.length + (n.number.count || 0)) : (n.list.ing = o, + n.ingFiles = i.tempFiles, n.number.ing = 1, n.number.count = 1), M.setData(t({}, a + ".form.upload", n)), + n.direct && setTimeout(function() { + w(e.data); + }, 500); + } + })); + }, + delete: function(e) { + var a = x(), n = M.data[a].form.upload, i = e.info, o = e.data; + if (n.being) return !1; + if ("suc" == o) { + var r = n.list[o][i].split("/").slice(-1).join(""), s = r.split(".").slice(-1).join(""), l = [ "jpg", "png", "gif", "svg" ].indexOf(s) >= 0 ? "图片" : "附件"; + wx.showModal({ + title: "提示", + content: "您确定要删除此" + l + "吗?", + success: function(e) { + e.confirm && (n.list.del.push(r), n.list[o].splice(i, 1), n.number[o] -= 1, n.number.count -= 1, + wx.showModal({ + title: "小提示", + content: l + "在最终操作“确认提交”后实际删除", + confirmText: "我知道了", + showCancel: !1, + success: function(e) { + M.setData(t({}, a + ".form.upload", n)); + } + })); + } + }); + } else "ing" == o && n.ingFiles.splice(i, 1), n.list[o].splice(i, 1), n.number[o] -= 1, + n.number.count -= 1, M.setData(t({}, a + ".form.upload", n)); + } +}; + +module.exports = { + lazyHeight: O, + dynamicGet: I, + querySelect: F, + initialFun: function() { + var e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0], a = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : []; + if (a.push("spin", "url", "__proto__", "__webviewId__", "initialValue"), e) { + var n = JSON.parse(JSON.stringify(M.data.initialValue)); + for (var i in n) a.indexOf(i) < 0 && M.setData(t({}, i, n[i])); + } else if (!M.data.initialValue) { + var o = {}, r = JSON.parse(JSON.stringify(M.data)); + for (var i in r) a.indexOf(i) < 0 && (o[i] = r[i]); + M.setData({ + initialValue: o + }); + } + }, + Http: s, + HttpMember: c, + PostMember: l, + formInput: C, + uploadStart: w, + Gethtml: g, + UrlOptions: function(e) { + var t = "", a = ""; + if (e) { + for (var n in e) "url" == n ? t = e[n] : a += "&" + n + "=" + e[n]; + "" != a && (a = "?" + a.substr(1)); + } + return t + a; + }, + ArrayToUrl: function(e) { + var t = "&"; + for (var a in e) t += a + "=" + e[a] + "&"; + return t.substring(0, t.length - 1); + }, + getTableName: x, + initializeRefresh: p, + sendInterval: h, + Wxlogin: b, + Apage: a, + feesTips: function() { + var e = x(), a = M.data[e].form; + if (a.input.money || "" == a.input.money) { + var n = parseFloat(a.input.money || 0), i = parseFloat(a.input.rate), o = a.radio.fees, r = parseFloat((n * i).toFixed(2)); + a.feesData = { + show: !1 + }, n > 0 && (a.feesData.show = !0, "buy" == o ? (a.feesData.buy = parseFloat((1 * n + 1 * r).toFixed(2)), + a.feesData.sell = parseFloat(n)) : "sell" == o ? (a.feesData.buy = parseFloat(n), + a.feesData.sell = parseFloat((n - r).toFixed(2))) : (a.feesData.buy = parseFloat((n + r / 2).toFixed(2)), + a.feesData.sell = parseFloat((n - r / 2).toFixed(2)))), M.setData(t({}, e + ".form", a)); + } + }, + CashierTotal: function() { + var e = x(), a = M.data[e].form, n = a.cashData; + if (a.radio.paytype) { + var i; + if (!a.radio.paytype) return !1; + var o = a.radio.paytype || "j", r = { + j: parseFloat(n.j), + m: parseFloat(n.m) + }, s = { + j: parseFloat(n.mj), + m: parseFloat(n.mm) + }, l = a.radio.piece || 1, c = parseFloat(r[o] * l), u = !0; + c > s[o] ? n.info = "j" == o ? "积分不足 " + c + " 积分,无法兑换" : "余额不足 " + c + " 元,无法兑换" : (n.info = c + ("j" == o ? " 积分" : " 元"), + u = !1), M.setData((i = {}, t(i, e + ".form.cashData", n), t(i, e + ".submit[0].disabled", u), + i)); + } else { + var f = a.radio.editionIndex, d = M.data[e].Mlist[f], m = parseFloat(d.money), p = a.radio.piece || 1, g = parseFloat(m * p); + M.setData(t({}, e + ".form.cashData", { + total: g, + money: m, + edition: d.edition + })); + } + }, + GetList: function(e) { + M.setData({ + loading: !0 + }), a(function(a) { + var n, i = M.data, o = void 0 !== i.listIndex ? "listdata." + i.listIndex : "listdata"; + if (M.setData((n = {}, t(n, o, a), t(n, "loading", !1), n)), i.Form.lazy) { + var r = i.Form.lazy; + r.pos > 0 && r.pos != i.initialValue.Form.lazy.pos && M.setData(t({}, "Form.lazy.pos", r.pos + r.add)); + } + e && e(a); + }); + }, + Alert: function(e, t) { + wx.showModal({ + title: e.title || "提示", + content: e.text, + showCancel: !e.showcancel, + cancelText: e.canceltext || "取消", + cancelColor: e.cancelcolor || "#000000", + confirmText: e.confirmtext || "确定", + confirmColor: e.confirmcolor || "#3cc51f", + success: function(t) { + var a = e.action; + t.confirm && "clip" == a && n(e.cliptext || e.text); + } + }); + }, + timestamp: function() { + var e = Date.parse(new Date()); + return e /= 1e3; + }, + Refresh: i, + getShare: function() { + var e = {}, t = [ "Form" ], a = [ "title", "path", "image" ]; + for (var n in a) { + var i = a[n]; + for (var r in t) { + var s = t[r]; + M.data[s] && (M.data[s].share && M.data[s].share[i] ? e[i] = M.data[s].share[i] : M.data[s][i] && (e[i] = M.data[s][i])); + } + } + return { + title: e.title || "互站网", + path: e.path || o(), + imageUrl: e.image || !1 + }; + }, + Getdom: function(e, t) { + var a = wx.createSelectorQuery(); + a.select(e).boundingClientRect(), a.exec(function(e) { + t(e[0]); + }); + }, + Popup: S, + Lay: y, + init: function(e) { + M.data && e.route == M.route && e.__wxExparserNodeId__ == M.__wxExparserNodeId__ || (M = e, + T()); + } +}; \ No newline at end of file diff --git a/pages/index/article.js b/pages/index/article.js new file mode 100644 index 0000000..0988365 --- /dev/null +++ b/pages/index/article.js @@ -0,0 +1,63 @@ +var t = require("../../common/common.js"); + +Page({ + data: { + url: "", + popup: [] + }, + initialize: function() { + var i = this; + i.setData({ + spin: !0, + popupSpin: !1, + Form: { + form: { + radio: {}, + checkbox: {}, + picker: {}, + rate: {} + } + }, + popupForm: { + form: { + radio: {}, + checkbox: {}, + picker: {} + } + } + }), t.Gethtml(i.data.url, function(i) { + t.initializeRefresh(i); + }); + }, + onPullDownRefresh: function() { + this.initialize(); + }, + onLoad: function(i) { + i.url ? this.setData({ + url: t.UrlOptions(i) + }) : this.setData({ + url: "get/article/help" + }), t.init(this), this.initialize(); + }, + searchSubmit: function(i) { + t.Lay({ + action: "url", + info: t.Lay({ + action: "geturl" + }) + "/search/" + i.detail.value + }); + }, + onShow: function() { + t.init(this); + }, + Lay: function(i) { + t.Lay(JSON.parse(JSON.stringify(i))); + }, + Commom: function(i) { + var a = JSON.parse(JSON.stringify((i.currentTarget, i))), n = i.currentTarget ? a.currentTarget.dataset.action : a.action; + t[n](a); + }, + Popup: function(i) { + t.Popup(i.currentTarget.dataset); + } +}); \ No newline at end of file diff --git a/pages/index/article.json b/pages/index/article.json new file mode 100644 index 0000000..e7003b7 --- /dev/null +++ b/pages/index/article.json @@ -0,0 +1,18 @@ +{ + "usingComponents": { + "down": "/utils/count-down/index", + "van-field": "/vant/field/index", + "van-cell": "/vant/cell/index", + "van-cell-group": "/vant/cell-group/index", + "van-notice-bar": "/vant/notice-bar/index", + "van-search": "/vant/search/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/pages/index/article.wxml b/pages/index/article.wxml new file mode 100644 index 0000000..cf86206 --- /dev/null +++ b/pages/index/article.wxml @@ -0,0 +1,4 @@ + + + + diff --git a/pages/index/article.wxss b/pages/index/article.wxss new file mode 100644 index 0000000..32200af --- /dev/null +++ b/pages/index/article.wxss @@ -0,0 +1,260 @@ +@import "../../__wuBaseWxss__/0.wxss"; + +.help-top { + height: 135px; + background: linear-gradient(to right,#5a8ef3,#6760fb); + background-color: #5a8ef3; + position: relative; + background-image: url(https://statics.huzhan.com/app/images/help-top-bg.jpg); + background-size: cover; + background-repeat: no-repeat; + background-position: center center; +} + +.help-top .search-box { + width: 90%; + position: absolute; + left: 1rem; + bottom: .3rem; +} + +.help-top .search-box .van-icon { + position: absolute; + left: 8px; + top: 8px; + font-size: 18px; +} + +.help-top .search { + background: #fefefe; + border-radius: 5px; + position: relative; + width: 100%; + height: 35px; +} + +.help-top .search input { + border: none; + font-size: .8rem; + height: 35px; + border-radius: 22px; + padding: 0 0 0 30px; +} + +.help-top .link { + padding: .5rem 0 .5rem 0; + color: #fff; +} + +.help-top .link navigator { + color: #fff; + display: inline-block; + margin-right: .3rem; + font-size: .82rem; +} + +.help-palace { + background: #fff; + padding: .5rem 0; + position: relative; + overflow: hidden; + margin-top: 10px; +} + +.help-palace .flex-item { + position: relative; + padding: 1px; + margin: 5px 0; +} + +.help-palace .icon { + width: 30px; + height: 30px; + margin: 0 auto; +} + +.help-palace .icon image { + display: block; + width: 100%; + height: 100%; + border: none; +} + +.help-palace .text { + display: block; + text-align: center; + color: #333; + font-size: .85rem; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + padding-top: .2rem; +} + +.help-palace .text { + font-size: .8rem; + font-weight: 400; + color: #666; +} + +.help-block { + background: #fff; + padding: 1rem 1rem; + overflow: hidden; + margin: 10px 0; +} + +.help-block .row-flex { + width: 50%; + float: left; + position: relative; +} + +.help-block .row-flex:first-child:after { + content: ''; + position: absolute; + z-index: 0; + top: 0; + right: 0; + height: 100%; + border-right: 1px solid #d9d9d9; + transform: scaleX(.5); + transform-origin: 100% 0; +} + +.help-block .row-flex:last-child .pic { + margin-left: 10px; +} + +.help-block .row-flex:last-child .flex-item { + margin-right: 5px; +} + +.help-block .pic { + width: 40px; + height: 40px; + margin-right: .2rem; +} + +.help-block .pic image { + width: 40px; + height: 40px; + border: none; + display: block; + border-radius: 3px; +} + +.help-block .flex-item { + text-align: right; + margin-right: 1.5rem; + font-weight: 500; + font-size: 1rem; + color: #3d4457; +} + +.help-block .flex-item view { + font-weight: 400; + font-size: .8rem; + color: #a9a9a9; +} + +.help-tabs.van-tabs--card { + margin: 0; + padding: 10px 0 0 0; + background: #fff; +} + +.help-tabs.van-tabs--card .van-tab.van-tab--active { + background: 0 0; + border: 0; +} + +.help-tabs.van-tabs--card .van-tab.van-tab--active .van-tab__title { + color: #fff; + background: #6060fb; +} + +.help-tabs .van-tabs__nav { + display: flex; + height: auto; + flex-wrap: wrap; + align-content: flex-start; +} + +.help-tabs .van-tabs__wrap { + height: auto!important; + position: static; +} + +.help-tabs .van-tabs__scroll--card { + border-radius: 0; + border: 0; + box-shadow: 0 3px 3px #e8e8e8; + padding: 0 5px; + margin-bottom: 6px; +} + +.help-tabs .van-tabs__nav--card .van-tab { + padding: 0; + border: 0; +} + +.help-tabs .van-tab { + border: 0; + position: relative; + text-align: center; + color: #585858; + font-size: .9rem; + flex: 0 0 33.333333%; + margin-bottom: 10px; +} + +.help-tabs .van-tab .van-tab__title { + background: #f1f4f7; + margin: 0 5px; + border: 0; + color: #777; + line-height: 30px; +} + +.help_table { + border-collapse: collapse; + border: solid #e0e0e0; + border-width: 0 1px 1px 1px; + width: 100%; +} + +.help_table .a { + color: #056dae; +} + +.help_table .thead .td { + background: #f0f0f0; + font-size: 14px; + border-width: 1px 0; + border-color: #e0e0e0; +} + +.help_table .td { + padding: 5px 6px; + border: #e0e0e0 solid; + border-width: 1px 1px 1px 1px; +} + +.help_table .tbody .tr { + background: #fff; +} + +.help_table .tbody .tr.odd { + background: #fafafa; +} + +.help_body .a { + color: #056dae; + display: inline-block!important; +} + +.help_body image { + width: 100%; + vertical-align: middle; +} \ No newline at end of file diff --git a/pages/index/index.js b/pages/index/index.js new file mode 100644 index 0000000..765c290 --- /dev/null +++ b/pages/index/index.js @@ -0,0 +1,89 @@ +function t(t, i, a) { + return i in t ? Object.defineProperty(t, i, { + value: a, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[i] = a, t; +} + +var i, a = require("../../common/common.js"); + +Page({ + data: (i = { + spin: !0, + popup: [], + popupSpin: !1, + loading: !1, + Form: {}, + getdata: {}, + listdata: {} + }, t(i, "popup", []), t(i, "ListSh", {}), t(i, "gotop", !1), t(i, "Form", { + form: { + radio: {}, + checkbox: {}, + picker: {}, + rate: {} + } + }), t(i, "popupForm", { + form: { + radio: {}, + checkbox: {}, + picker: {} + } + }), i), + initialize: function() { + var t = this; + a.Gethtml("get/index", function(i) { + a.initialFun(!1), a.initializeRefresh(i), t.tabsChange(); + }); + }, + tabsChange: function() { + var i = this, e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : { + detail: { + index: 0 + } + }).detail.index, n = i.data.Form.tabs.list[e]; + if (!i.data.getdata[e]) { + var r; + i.setData((r = { + listIndex: e + }, t(r, "getdata." + e, n), t(r, "listdata." + e, { + list: [], + CurPage: 0 + }), r)), a.GetList(); + } + }, + ListSh: function(i) { + var a = this, e = i.currentTarget.id, n = "ListSh." + e, r = wx.createAnimation({ + duration: 200, + timingFunction: "ease", + delay: 0 + }); + a.data.ListSh[e] ? (r.translateY("100%").step(), setTimeout(function() { + a.setData(t({}, n, !1)); + }, 201)) : (a.setData(t({}, n, !0)), r.translateY("0").step()), this.setData(t({}, n, r.export())); + }, + onLoad: function() { + a.init(this), this.initialize(); + }, + onShow: function() { + a.init(this); + }, + onShareAppMessage: function() { + return a.getShare(); + }, + onPullDownRefresh: function() { + a.initialFun(), this.initialize(); + }, + Lay: function(t) { + a.Lay(JSON.parse(JSON.stringify(t))); + }, + Commom: function(t) { + var i = JSON.parse(JSON.stringify((t.currentTarget, t))), e = t.currentTarget ? i.currentTarget.dataset.action : i.action; + a[e](i); + }, + Popup: function(t) { + a.Popup(t.currentTarget.dataset); + } +}); \ No newline at end of file diff --git a/pages/index/index.json b/pages/index/index.json new file mode 100644 index 0000000..050b0b9 --- /dev/null +++ b/pages/index/index.json @@ -0,0 +1,12 @@ +{ + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/pages/index/index.wxml b/pages/index/index.wxml new file mode 100644 index 0000000..9efd54a --- /dev/null +++ b/pages/index/index.wxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/pages/index/index.wxss b/pages/index/index.wxss new file mode 100644 index 0000000..2288022 --- /dev/null +++ b/pages/index/index.wxss @@ -0,0 +1,214 @@ +@import "../../__wuBaseWxss__/0.wxss"; + +@import "list.wxss"; + +.i-swiper { + position: relative; + z-index: 0; +} + +.i-swiper swiper { + height: 100%; + width: 100%; +} + +.i-swiper image { + width: 100%; + height: 100%; +} + +.i-swiper .wx-swiper-dots.wx-swiper-dots-horizontal { + margin-bottom: 32rpx; +} + +.i-swiper .wx-swiper-dot { + width: 13rpx; + display: inline-flex; + height: 13rpx; + opacity: .8; + justify-content: space-between; +} + +.i-swiper .wx-swiper-dot::before { + content: ''; + flex-grow: 1; + background: #fff; + border-radius: 8rpx; +} + +.i-swiper .wx-swiper-dot-active { + width: 18rpx; +} + +.i-swiper .wx-swiper-dot-active::before { + background: #f80; +} + +.i_notice { + margin: 10px; + font-size: 14px; + line-height: 30px; + height: 30px; + overflow: hidden; +} + +.i_notice .van-icon { + font-size: 24px; + color: #45a1de; + vertical-align: middle; + margin-top: -2px; +} + +.i_notice .flex-item { + padding: 0 5px; + height: 30px; +} + +.i_notice swiper,.i_notice swiper view { + height: 30px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.i_notice .more { + width: 30px; + text-align: center; + color: gray; +} + +.i_icon { + position: relative; + z-index: 1; + border-top-left-radius: 12px; + border-top-right-radius: 12px; + background: #fff; + margin: -10px 0 0 0; + text-align: center; + padding: 10px 5px 25px 5px; +} + +.i_icon .box { + margin: 15px 0 5px 0; + display: inline-block; + width: 46px; + height: 46px; + border-radius: 100%; + background: #ff3030; +} + +.i_icon text { + display: block; +} + +.i_icon .van-icon { + font-size: 27px; + color: #fff; + line-height: 46px; +} + +.i_tab { + text-align: center; + background: #fff; + margin: 0; + line-height: 42px; + border-bottom: 1px #eee solid; +} + +.i_shop { + background: #fff; + overflow: hidden; + padding: 10px 10px 0 10px; +} + +.i_shop .shop { + margin: 0 0 20px 0; + text-align: center; + width: 50%; + position: relative; +} + +.i_shop .avatar { + position: absolute; + left: 50%; + top: 0; + margin-left: -35px; + width: 70px; + height: 70px; +} + +.i_shop .avatar image { + background: #fff; + padding: 3px; + box-shadow: 0 -2px 1px 0 rgba(0,0,0,.15); + border-radius: 50%; + height: 100%; + display: block; + width: 100%; +} + +.i_shop .shop .link { + display: block; + height: 100%; + padding: 0 10px; +} + +.i_shop .info { + margin-top: 20px; + padding: 58px 0 8px 0; + text-align: center; + background: #fafafa; + border-radius: 5px; + width: 100%; + box-shadow: 0 1px 1px 0 rgba(0,0,0,.08); + line-height: 1.5; + border: #f5f5f5 1px solid; + border-bottom: 0; +} + +.footer { + background: #fff; + clear: both; + padding: 0 0 10px 0; +} + +.footbar { + height: 40px; + padding: 0 10px; + background: #fff; + margin-top: 10px; + border: solid 1px #eee; + border-width: 1px 0 1px 0; +} + +.footbar navigator { + display: block; + height: 30px; + line-height: 30px; + float: left; + margin: 5px 0; + padding: 0 12px; + border-radius: 2px; +} + +.login_btn { + background: #eff2f5; + margin-right: 10px; +} + +.backtop_btn { + background: #eff2f5; + float: right!important; +} + +.footlink { + text-align: center; + line-height: 20px; + margin-top: 10px; +} + +.footlink navigator { + margin: 0 20px; + color: #45a1de; + display: inline-block; +} \ No newline at end of file diff --git a/pages/index/list.js b/pages/index/list.js new file mode 100644 index 0000000..4679ddb --- /dev/null +++ b/pages/index/list.js @@ -0,0 +1,182 @@ +function t(t, a, e) { + return a in t ? Object.defineProperty(t, a, { + value: e, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[a] = e, t; +} + +var a = require("../../common/common.js"); + +Page({ + data: { + loading: !1, + Form: {}, + sortValue: "", + search: "", + getdata: {}, + listdata: {}, + popup: [], + ListSh: {}, + gotop: !1, + spin: !0, + filter: { + icon: !1, + show: "", + selectName: {}, + selectValue: {} + } + }, + onPageScroll: function(a) { + var e = this, i = a.scrollTop, r = e.data.gotop, n = 2 * e.data.SystemInfo.windowHeight; + if ((i >= n && !r || i < n && r) && e.setData({ + gotop: !r + }), e.data.Form.lazy && e.data.Form.lazy.add > 0) { + var s = e.data.Form.lazy, o = Math.ceil((i + e.data.SystemInfo.windowHeight) / s.height) * e.data.Form.lazy.add; + o > s.pos && e.setData(t({}, "Form.lazy.pos", o)); + } + }, + onLoad: function(t) { + a.init(this); + var e = this; + t.url || (t.url = "get/lists/code"), a.Gethtml(t.url, function(t) { + a.initializeRefresh(t); + var i = { + page: 1, + type: t.type + }; + t.par && (i.par = t.par), t.check && (i.check = t.check), t.store && (i.store = t.store.bh), + e.setData({ + getdata: i, + listdata: {} + }), a.initialFun(!1), a.GetList(function(t) { + a.querySelect(".top", function(t) { + e.setData({ + topHeight: t.height, + spin: !1 + }); + }); + }); + }); + }, + initialize: function() { + a.initialFun(), a.GetList(function(t) { + wx.stopPullDownRefresh(); + }); + }, + onShow: function() { + a.init(this); + }, + tabsChange: function(t) { + var e = this, i = t.currentTarget.dataset.field, r = e.data.Form, n = r.tabs, s = r[i], o = r.store && r.store.id ? "/" + r.store.id : ""; + for (var l in n) if (n[l].index === t.detail && s != l) { + a.initialFun(), e.onLoad({ + url: "type" == i ? "get/lists/" + l + o : "get/lists/demand/" + l + }); + break; + } + }, + ListSh: function(a) { + var e = this, i = a.currentTarget.id, r = "ListSh." + i, n = wx.createAnimation({ + duration: 200, + timingFunction: "ease", + delay: 0 + }); + e.data.ListSh[i] ? (n.translateY("100%").step(), setTimeout(function() { + e.setData(t({}, r, !1)); + }, 201)) : (e.setData(t({}, r, !0)), n.translateY("0").step()), this.setData(t({}, r, n.export())); + }, + sortChange: function(t) { + var e = t.currentTarget.dataset.value; + if (e != this.data.sortValue) { + var i = this.data.getdata; + i.page = 1, e.length > 0 ? i.order = e : delete i.order, this.setData({ + getdata: i, + listdata: {}, + sortValue: e + }), a.GetList(); + } + }, + Fselect: function(a) { + var e = this, i = "filter.show"; + if ("value" == a.currentTarget.id) { + var r, n = "filter.selectValue." + a.currentTarget.dataset.id, s = "filter.selectName." + a.currentTarget.dataset.id; + e.setData((r = {}, t(r, n, a.currentTarget.dataset.value), t(r, s, a.currentTarget.dataset.name), + t(r, i, 0), r)); + } else "back" != a.currentTarget.id ? e.setData(t({}, i, a.currentTarget.id)) : e.setData(t({}, i, 0)); + }, + filterSubmit: function(e) { + var i = this, r = !1, n = e.detail.value, s = i.data.getdata; + for (var o in n) s.hasOwnProperty(o) && n[o].length <= 0 ? delete s[o] : n[o].length > 0 && (s[o] = n[o], + r = !0); + i.setData(t({ + getdata: s + }, "filter.icon", r)), i.filterHide(!0), a.GetList(); + }, + filterReset: function(t) { + var a = JSON.parse(JSON.stringify(this.data.initialValue.filter)); + a.show = 0, this.setData({ + filter: a + }); + }, + filterShow: function() { + var a = this.data.filter; + this.setData(t({ + filterOld: a + }, "filter.show", 0)); + }, + filterHide: function(a) { + var e = this; + !0 === a ? e.setData(t({ + filterOld: "" + }, "filter.show", "")) : e.setData(t({ + filter: e.data.filterOld + }, "filter.show", "")); + }, + inputChange: function(a) { + this.setData(t({}, "filter.money." + a.target.id, a.detail.value)); + }, + checkboxChange: function(a) { + this.setData(t({}, "filter.checkbox." + a.target.id, a.detail.value.length > 0)); + }, + searchChange: function(t) { + var a = t.detail ? t.detail.replace(/\s+/g, "") : ""; + this.setData({ + search: a + }); + }, + searchSubmit: function(t) { + var e = this, i = e.data.getdata; + e.data.search !== i.key && (i.page = 1, e.data.search.length > 0 ? i.key = e.data.search : delete i.key, + e.setData({ + getdata: i, + listdata: {} + }), a.GetList()); + }, + loginBackPage: function() { + this.onReachBottom(!0); + }, + onReachBottom: function(t) { + var e = this.data.listdata; + this.data.loading || !(e.CurPage < e.TotalPage) || e.failview && !0 !== t || (this.setData({ + "getdata.page": 1 * this.data.getdata.page + 1 + }), a.GetList()); + }, + onPullDownRefresh: function() { + this.initialize(); + }, + Lay: function(t) { + a.Lay(JSON.parse(JSON.stringify(t))); + }, + Commom: function(t) { + var e = JSON.parse(JSON.stringify((t.currentTarget, t))), i = t.currentTarget ? e.currentTarget.dataset.action : e.action; + a[i](e); + }, + Popup: function(t) { + a.Popup(t.currentTarget.dataset); + }, + onShareAppMessage: function() { + return a.getShare(); + } +}); \ No newline at end of file diff --git a/pages/index/list.json b/pages/index/list.json new file mode 100644 index 0000000..c9c7ddd --- /dev/null +++ b/pages/index/list.json @@ -0,0 +1,22 @@ +{ + "enablePullDownRefresh": true, + "backgroundTextStyle": "dark", + "navigationBarBackgroundColor": "#fff", + "navigationBarTextStyle": "black", + "usingComponents": { + "van-search": "/vant/search/index", + "van-tabbar": "/vant/tabbar/index", + "van-tabbar-item": "/vant/tabbar-item/index", + "van-field": "/vant/field/index", + "van-cell": "/vant/cell/index", + "van-cell-group": "/vant/cell-group/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/pages/index/list.wxml b/pages/index/list.wxml new file mode 100644 index 0000000..bbf2aba --- /dev/null +++ b/pages/index/list.wxml @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + + + + diff --git a/pages/index/list.wxss b/pages/index/list.wxss new file mode 100644 index 0000000..f04644e --- /dev/null +++ b/pages/index/list.wxss @@ -0,0 +1,962 @@ +@import "../../__wuBaseWxss__/0.wxss"; + +page { + height: 100%; +} + +.filter_box { + height: 100%; + width: 100%; + z-index: 999; + overflow-y: auto; + position: relative; +} + +.filter_t { + text-align: center; + height: 50px; + line-height: 50px; + position: relative; + background-color: #eee; + border-bottom: #f2f2f2 solid 1px; +} + +.filter_t .back { + position: absolute; + left: 0; + top: 0; + padding: 0 .2rem; + font-size: 26px; + color: #999; + line-height: 50px; +} + +.filter_t .ok-btn { + position: absolute; + display: inline-block; + right: 10px; + top: 50%; + color: #3993cf; + line-height: 30px; + height: 30px; + font-size: 14px; + margin-top: -15px; +} + +.filter_t .title { + display: inline-block; + font-size: 14px; +} + +.filter_b { + position: absolute; + bottom: 0; + left: 0; + width: 100%; +} + +.filter_b .row-flex { + padding: 20rpx 30rpx; +} + +.filter_b .flex-item { + padding: 0 15rpx 0 0; +} + +.filter_b .flex-item:last-child { + padding: 0 0 0 15rpx; +} + +.filter_b button { + font-size: 16px; + color: #3993cf; + width: 100%; + height: 40px; + line-height: 40px; + border: #3993cf 1px solid; +} + +.filter_b button.ok-btn { + color: #fff; + background: #3993cf; +} + +.filter_a .ul { + border-bottom: #f0f0f0 1px solid; + padding: 20rpx 30rpx; + overflow: hidden; +} + +.filter_a .name { + font-size: 14px; + padding-bottom: 0; +} + +.filter_a .name .choice-res { + color: #3993cf; + font-weight: 400; + position: absolute; + right: 2rem; + top: 0; + line-height: 2rem; +} + +.filter_a .name em.iconfont { + position: absolute; + right: .48rem; + top: 0; + font-size: .68rem; + color: #ccc; + line-height: 2rem; +} + +.filter_a .name em:last-child { + display: none; +} + +.filter_a label { + display: inline-block; + margin: 10px 15px 0 0; +} + +.filter_a .money view { + color: #ccc; + display: inline-block; + line-height: 30px; + padding: 0 10px; + vertical-align: bottom; +} + +.filter_a .money input { + background: #f5f5f5; + margin: 10px 0 0 0; + width: 100px; + border: #dcdcdc 1px solid; + padding: 0 5px; + display: inline-block; +} + +.filter_a .attach checkbox-group,.filter_a .attach view { + display: inline-block; + line-height: 15px; + vertical-align: middle; +} + +.filter_a checkbox .wx-checkbox-input { + border-radius: 3rpx; + height: 28rpx; + width: 28rpx; +} + +.filter_a checkbox .wx-checkbox-input.wx-checkbox-input-checked { + border-color: #3993cf; + background: #3993cf; +} + +.filter_a checkbox .wx-checkbox-input.wx-checkbox-input-checked::before { + border-radius: 50%; + width: 28rpx; + height: 28rpx; + line-height: 26rpx; + text-align: center; + font-size: 22rpx; + color: #fff; + background: 0 0; + transform: translate(-50%,-50%) scale(1); +} + +.filter_s .ul { + border-bottom: #f0f0f0 1px solid; + padding: 0 30rpx; + line-height: 40px; + height: 40px; + position: relative; + text-align: right; +} + +.filter_s .ul .name { + margin: 0; + font-size: 14px; + position: absolute; + margin-top: -20px; + top: 50%; + left: 30rpx; +} + +.filter_s .ul .arrow { + position: absolute; + top: 19.5px; + right: 30rpx; +} + +.filter_s .ul .check { + display: inline-block; + margin-right: 10px; +} + +.filter_s .ul .check input { + line-height: 37px; + height: 37px; + text-align: right; + color: #3993cf; +} + +.filter_select { + height: 100%; + overflow-y: auto; + position: fixed; + width: 100%; + z-index: 1000; + right: 0; + top: 0; + background: #fff; + text-align: left; +} + +.filter_select .ul .van-icon { + color: #ccc; + font-size: 14px; +} + +.codeList { + padding: 0 5px; +} + +.codeList .item { + width: 50%; + display: inline-block; + vertical-align: top; +} + +.codeList .item>view { + overflow: hidden; + position: relative; + margin: 10px 5px 0 5px; + background: #fff; + border-radius: 2px; +} + +.codeList .pic { + height: 0; + padding-bottom: 80%; + overflow: hidden; +} + +.codeList .pic image { + width: 100%; +} + +.codeList .info { + padding: 5px 5px 8px 5px; +} + +.codeList .info .bot { + position: relative; + height: 20px; + margin: 6px 0 0 0; + line-height: 20px; + display: block; + text-align: right; +} + +.codeList .info .text { + position: absolute; + top: 50%; + margin-top: -9.5px; + left: 0; + color: #ccc; + line-height: 19px; + height: 19px; +} + +.codeList .info .tit { + overflow: hidden; + height: 30px; + line-height: 15px; + font-size: 12px; + margin: 3px 0 0 0; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + word-break: break-all; +} + +.codeList .info .num { + font-size: 14px; + display: inline-block; +} + +.codeList .info .bot:last-child { + margin: 0; +} + +.codeList .info .bot:last-child .text { + display: inline; + font-size: 12px; + color: #f30; + padding: 0; +} + +.codeList .info .ListSh { + display: inline-block; + padding: 0 0 5px 10px; + line-height: 25px; + height: 20px; + color: #999; +} + +.codeList .shop { + background-color: rgba(255,255,255,.9); + position: absolute; + bottom: 0; + left: 0; + width: 100%; + transform: translateY(100%); +} + +.codeList .shop .action navigator,.codeList .shop .action view { + display: inline-block; + margin: 5% 0 0 5%; + background: #fff; + width: 41%; + font-size: 14px; + line-height: 32px; + text-align: center; + border: 1px #e1e1e1 solid; + border-radius: 3px; +} + +.codeList .shop .seller { + overflow: hidden; + margin: 5% 0 0 5%; + width: 87%; + padding: 1px; + border: 1px solid #e1e1e1; + background: #fff; +} + +.codeList .shop .name { + line-height: 20px; + height: 40px; + margin-left: 45px; +} + +.codeList .shop .avatar { + float: left; + width: 40px; + height: 40px; +} + +.codeList .shop .name view { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + height: 20px; +} + +.codeList .shop .ListSh { + margin-top: 10px; + text-align: center; + line-height: 32px; + background: #eee; +} + +.serveList .item { + position: relative; + overflow: hidden; + background: #fff; + margin: 10px 10px 0 10px; + border-radius: 2px; + padding: 10px; + height: 100px; + vertical-align: top; +} + +.serveList .pic { + float: left; + width: 100px; + height: 100px; +} + +.serveList .pic image { + width: 100px; + height: 100px; +} + +.serveList .info { + position: relative; + margin-left: 110px; + height: 100px; +} + +.serveList .info .tit { + overflow: hidden; + height: 32px; + line-height: 16px; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +.serveList .info .bot { + position: relative; + height: 20px; + margin: 28px 0 2px 0; + line-height: 20px; + display: block; +} + +.serveList .info .text { + color: #ccc; + height: 19px; + line-height: 19px; +} + +.serveList .info .num:last-child { + font-size: 14px; +} + +.serveList .info .money { + margin: 0; + text-align: right; +} + +.serveList .info .money .text { + position: absolute; + top: 50%; + margin-top: -9.5px; + left: -2px; + display: inline-block; + font-size: 12px; + color: #f30; + padding: 0; +} + +.serveList .info .num { + font-size: 16px; + display: inline-block; +} + +.serveList .info .ListSh { + display: inline-block; + padding: 0 0 5px 10px; + line-height: 25px; + height: 20px; + color: #999; +} + +.serveList .shop { + color: #333; + background-color: rgba(255,255,255,.5); + position: absolute; + bottom: 0; + left: 0; + width: 100%; + transform: translateY(100%); +} + +.serveList .shop>view { + position: relative; +} + +.serveList .shop .seller { + background-color: rgba(255,255,255,.9); + float: left; + height: 100px; + width: 82%; +} + +.serveList .shop .avatar { + width: 16px; + height: 16px; + vertical-align: -3px; + padding-right: 5px; +} + +.serveList .shop .tname { + color: #666; + padding-right: 5px; + display: inline-block; +} + +.serveList .shop .litem { + vertical-align: top; + width: 100%; + height: 20px; + line-height: 20px; + display: inline-block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.serveList .shop .action { + position: absolute; + top: 0; + right: 0; + height: 100%; + width: 18%; +} + +.serveList .shop .action navigator,.serveList .shop .action view { + text-align: center; + display: block; + width: 100%; + height: 33.5px; + line-height: 33.5px; + color: #fff; +} + +.serveList .shop .action .imfav { + background: #ff9402; +} + +.serveList .shop .action .see { + background: #ff5000; +} + +.serveList .shop .action view:last-child { + background: #c1c1c1; +} + +.webList .item { + position: relative; + overflow: hidden; + background: #fff; + margin: 10px 10px 0 10px; + border-radius: 2px; + box-shadow: 2px 2px 5px #ccc; + vertical-align: top; +} + +.webList .top { + width: 100%; + overflow: hidden; + padding: 10px 0; +} + +.webList .bottom { + width: 100%; +} + +.webList .avatar { + float: left; + height: 42px; + width: 42px; + padding: 0 10px; +} + +.webList .avatar image { + width: 38px; + height: 38px; + border-radius: 50px; + border: 2px solid #fff; + box-shadow: 0 1px 5px #c1c1c1; +} + +.webList .info { + padding-right: 10px; + margin-left: 65px; +} + +.webList .info navigator { + font-size: 12px; + display: block; + color: #247fbd; + overflow: hidden; + height: 16px; + line-height: 16px; + white-space: nowrap; + text-overflow: ellipsis; +} + +.webList .attr { + line-height: 20px; + height: 20px; + width: 100%; + background: #fff; + border: 1px solid #e1e1e1; + margin-top: 5px; +} + +.webList .url { + float: left; + border-left: 0; + padding: 0 5px; + color: #888; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.webList .money { + font-weight: 700; + overflow: hidden; + display: block; + text-align: center; + background: #fff3eb; + height: 20px; + margin: -1px 0 0 -1px; + border: 1px solid #fdc7a2; + float: left; + color: #f60; + padding: 0 5px; +} + +.webList .thumb { + position: relative; + float: left; + width: 100%; + height: 0; + padding-bottom: 79%; + overflow: hidden; +} + +.webList .thumb navigator { + display: block; + width: 100%; + text-align: center; + height: 100%; +} + +.webList .thumb image { + border-top: 1px solid #dfe0e2; + display: block; + width: 100%; +} + +.webList .thumb .lay { + position: absolute; + bottom: 0; + height: 100%; + left: 0; + width: 100%; + transform: translateY(100%); +} + +.webList .thumb .lay view { + position: absolute; + top: 0; + left: 0; + display: block; + background: #000; + opacity: .6; + height: 96%; + width: 96%; + padding: 2%; +} + +.webList .thumb .lay view.cdes { + color: #fff; + background: 0 0; + opacity: 1; + background: 0 0; + font-family: serif; + line-height: 24px; +} + +.webList .action { + background: #fafafa; + font-size: 14px; + white-space: nowrap; + background: #fff; + float: left; + width: 96%; + padding: 10px 2%; + border-top: 1px solid #e1e1e1; + color: #c1c1c1; +} + +.webList .action .van-icon { + position: relative; + float: right; + font-size: 26px; + line-height: 30px; + height: 30px; + margin: 0 5px; + color: #ccc; + overflow: hidden; +} + +.webList .action .stats { + float: left; +} + +.webList .action view { + float: left; + line-height: 30px; +} + +.webList dd .l4 span { + position: absolute; + top: 0; + right: 0; + height: 1rem; + width: 100%; +} + +.webList dd .l4 span p { + padding-left: 100%; +} + +.ddList .item { + border-radius: 2px; + margin: 10px 10px 0 10px; + position: relative; + background: #fff; + display: block; + overflow: hidden; + padding: 0 10px; +} + +.ddList .top { + border-bottom: 1px solid #e1e1e1; + width: 100%; + overflow: hidden; + padding: 10px 0; + line-height: 20px; + max-height: 40px; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +.ddList .money,.ddList .top .money { + color: #ff5000; + padding-right: 5px; +} + +.ddList .money:before { + content: "¥"; + font-size: 12px; +} + +.ddList .top view { + font-weight: 700; + display: inline-block; + color: #007cd5; + padding-right: 2px; +} + +.ddList .info { + border-bottom: 1px dashed #eee; + line-height: 16px; + height: 16px; + background: #fafafa; + white-space: nowrap; + background: #fff; + overflow: hidden; + padding: 10px 0; + color: #c1c1c1; +} + +.ddList .info .money { + float: left; + font-weight: 700; +} + +.ddList .info .index { + float: right; +} + +.ddList .info .index view { + display: inline-block; + color: #247fbd; +} + +.ddList .info .index view.bid { + color: #693; +} + +.ddList .bottom { + line-height: 30px; + height: 30px; + background: #fafafa; + white-space: nowrap; + background: #fff; + overflow: hidden; + padding: 5px 0; + color: #c1c1c1; +} + +.ddList .bottom image { + border-radius: 50px; + border: 1px solid #e1e1e1; + width: 25px; + height: 25px; +} + +.ddList .bottom .van-icon { + position: relative; + float: right; + font-size: 26px; + margin: 0 5px; + color: #ccc; + overflow: hidden; +} + +.ddList .bottom view { + float: left; + line-height: 28px; + margin-left: 5px; +} + +.ddList .bottom view navigator { + color: #c1c1c1; +} + +.jifenList { + padding: 5px; +} + +.jifenList .item { + width: 50%; + display: inline-block; + vertical-align: top; +} + +.jifenList .item>view { + overflow: hidden; + position: relative; + margin: 5px; + background: #fff; + border-radius: 2px; +} + +.jifenList .pic { + height: 0; + padding-bottom: 100%; + overflow: hidden; + border-bottom: 1px dashed #e6e9ef; +} + +.jifenList .pic image { + width: 100%; +} + +.jifenList .info { + padding: 8px 8px; + line-height: 20px; +} + +.jifenList .info .tit { + font-size: 14px; + overflow: hidden; + height: 20px; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + word-break: break-all; +} + +.jifenList .info .money { + position: relative; + height: 20px; +} + +.jifenList .info .money text { + display: inline-block; + font-weight: 700; + padding: 0 2px; +} + +.jifenList .info .money .add { + color: #999; + padding: 0 3px; +} + +.jifenList .info .money .num { + font-weight: 700; +} + +.jifenList .info .money .sales { + position: absolute; + color: #333; + bottom: 0; + right: 0; +} + +.jifenList .info .money { + color: rgb(217,22,28); +} + +.jifenList .info .money text:first-child { + padding-left: 0; +} + +.sort { + font-size: 13px; + color: #565d65; + position: relative; + line-height: 40px; + background: #fff; + border-bottom: 1px solid #eee; +} + +.sort .flex-item { + text-align: center; +} + +.sort .flex-item.on,.sort .flex-item.on .van-icon { + color: #f60; +} + +.sort .updown { + width: 7px; + vertical-align: middle; + margin: -2px 0 0 3px; + display: inline-block; +} + +.sort .updown view { + width: 0; + height: 0; + border: 3px solid transparent; +} + +.sort .updown view.up { + border-bottom: 4px solid #666; + margin: 0 0 2px 0; +} + +.sort .updown view.down { + border-top: 4px solid #666; + margin: 2px 0 0 0; +} + +.sort .updown view.up.on { + border-bottom-color: #f60; +} + +.sort .updown view.down.on { + border-top-color: #f60; +} + +.sort .filter-icon { + font-size: 14px; + height: 14px; + line-height: 14px; + vertical-align: middle; + margin: -3px 0 0 1px; + color: #666; +} + +.top-search .van-search__content { + border-radius: 5px; + background: #e7e7e7; +} + +.top-search .van-icon-search { + color: #b2b2b2; +} + +view.top-search { + padding: 10px 20px 0 20px; +} + +.van-tabbar-item { + background: #f9f9f9; +} \ No newline at end of file diff --git a/pages/index/shop.js b/pages/index/shop.js new file mode 100644 index 0000000..6552847 --- /dev/null +++ b/pages/index/shop.js @@ -0,0 +1,106 @@ +function t(t, a, e) { + return a in t ? Object.defineProperty(t, a, { + value: e, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[a] = e, t; +} + +var a = require("../../common/common.js"); + +Page({ + data: { + previewList: [], + spin: !0, + popup: [], + gotop: !1, + tabIndex: 0, + getdata: {}, + listdata: {}, + loading: !1, + fixedOn: !1, + Form: { + form: { + radio: {}, + checkbox: {}, + picker: {}, + rate: {}, + send: {} + } + }, + popupForm: { + form: { + radio: {}, + checkbox: {}, + picker: {} + } + } + }, + initialize: function() { + var t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0], e = this; + a.Gethtml(e.data.url, function(i) { + a.initialFun(t), a.initializeRefresh(i), e.setData({ + getdata: { + page: 1, + store: i.store.bh + }, + spin: !1 + }), wx.stopPullDownRefresh(); + }); + }, + tabsChange: function(t) { + "评价" != t.detail.title || this.data.getdata.CurPage || a.GetList(), this.setData({ + tabIndex: t.detail.index + }); + }, + radioChange: function(e) { + if (this.data.getdata.filter !== e.detail) { + var i; + this.setData((i = {}, t(i, "getdata.filter", e.detail), t(i, "getdata.page", 1), + i)), a.GetList(); + } + }, + onPageScroll: function(t) { + var a = this.data.gotop, e = t.scrollTop; + (e >= 1e3 && !a || e < 1e3 && a) && this.setData({ + gotop: !a + }); + }, + onReachBottom: function() { + var t = this.data.listdata; + !this.data.loading && t.CurPage < t.TotalPage && (this.setData({ + "getdata.page": 1 * this.data.getdata.page + 1 + }), a.GetList()); + }, + contact: function() { + a.Lay({ + action: "contact", + info: this.data.Form.store.bh + }); + }, + Lay: function(t) { + a.Lay(JSON.parse(JSON.stringify(t))); + }, + Commom: function(t) { + var e = JSON.parse(JSON.stringify((t.currentTarget, t))), i = t.currentTarget ? e.currentTarget.dataset.action : e.action; + a[i](e); + }, + Popup: function(t) { + a.Popup(t.currentTarget.dataset); + }, + onLoad: function(t) { + this.setData({ + url: t.url ? t.url : "get/ishop/" + }), a.init(this), this.initialize(!1); + }, + onShow: function() { + a.init(this); + }, + onPullDownRefresh: function() { + this.initialize(); + }, + onShareAppMessage: function() { + return a.getShare(); + } +}); \ No newline at end of file diff --git a/pages/index/shop.json b/pages/index/shop.json new file mode 100644 index 0000000..497d2f9 --- /dev/null +++ b/pages/index/shop.json @@ -0,0 +1,15 @@ +{ + "usingComponents": { + "van-goods-action-button": "/vant/goods-action-button/index", + "van-popup": "/vant/popup/index", + "van-radio": "/vant/radio/index", + "van-radio-group": "/vant/radio-group/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/pages/index/shop.wxml b/pages/index/shop.wxml new file mode 100644 index 0000000..b4d53a6 --- /dev/null +++ b/pages/index/shop.wxml @@ -0,0 +1,117 @@ + + + + + + + + + + 推荐{{item.name}} + 更多 + + + + + + + + + + + + {{goods.tit}} + + {{goods.money}} + + + {{is.name}} + + + + + + + + + + + + + 全部 + 好评 + 中评 + 差评 + 非自评 + 有追加 + + + + + + + + + + + + + {{data.goods.money}} {{data.goods.tit}} + + + + {{data.user.name}} + + + + + + + {{e.name}} + + + {{e.text}} + + + + + + + + + + + + + {{e.time}} + + + + + {{e.reply.name}} + {{e.reply.text}} + + + + + + + + + + + {{e.reply.time}} + + + + + + + + + + + + 客服 + + diff --git a/pages/index/shop.wxss b/pages/index/shop.wxss new file mode 100644 index 0000000..dcec400 --- /dev/null +++ b/pages/index/shop.wxss @@ -0,0 +1,287 @@ +@import "../../__wuBaseWxss__/0.wxss"; + +page { + background: #eee; +} + +.nav-tabs .van-tab__title { + color: #666; +} + +.nav-tabs .van-tab--active .van-tab__title { + color: #f60; +} + +.nav-tabs .van-tab__title .van-icon { + font-size: 20px; + line-height: 20px; + height: 20px; + overflow: hidden; + margin: 6px 0 -2px 0; +} + +.nav-tabs .van-tab { + text-align: center; + font-size: 12px; + line-height: 16px; + height: 50px; +} + +.nav-tabs.van-tabs--line .van-tabs__wrap { + height: 50px; +} + +.nav-tabs.van-tabs--line { + padding-top: 50px; +} + +.store-nav { + height: 1rem; + background: #fff; + margin-bottom: 10px; +} + +.store-nav.fixed { + top: 0; + width: 100%; + background: #3993cf; + z-index: 1000; + opacity: 0.99; +} + +.store-nav ul { + height: 100%; + display: -webkit-box; + display: -webkit-flex; + display: -moz-flex; + display: flex; +} + +.store-nav ul li { + border-bottom: #e9e9e9 .05rem solid; + text-align: center; + height: .95rem; + -webkit-box-flex: 1; + flex: 1; +} + +.store-nav ul li a { + overflow: hidden; + display: block; + color: #666; + padding-top: .12rem; +} + +.store-nav.fixed ul li a { + color: #fff; +} + +.store-nav ul li.on a { + color: #f60; +} + +.store-nav ul li.on { + border-color: #f60; +} + +.store-nav.fixed ul li.on a { + color: #fffc00; +} + +.store-nav.fixed ul li { + border-bottom-color: #3993cf; +} + +.store-nav ul li p em { + font-family: iconfont; + font-size: 0.42rem; +} + +.store-nav ul li p { + font-size: 0.32rem; +} + +.store-search { + background: #fff; +} + +.store-list { + overflow: hidden; + margin-bottom: 10px; +} + +.store-ibox { + padding: 5px; + display: flex; + flex-flow: row wrap; + align-content: flex-start; +} + +.store-ibox .item { + flex: 1 50%; +} + +.store-ibox .item.big { + flex: 1 100%; +} + +.store-ibox .item>view { + margin: 5px; + background: #fff; +} + +.store-ibox .pic { + display: block; + height: 0; + padding-bottom: 80%; + overflow: hidden; + border: #f0f0f0 1px solid; +} + +.store-ibox .pic image { + display: block; + width: 100%; +} + +.store-ibox .serve .pic { + padding-bottom: 100%; +} + +.store-ibox .info { + background: #fff; + overflow: hidden; + display: block; + padding: 0 6px; + border: #f1f1f1 1px solid; +} + +.store-ibox .bottom { + display: block; + overflow: hidden; + padding: 0 0 10px 0; + width: 100%; + position: relative; +} + +.store-ibox .title { + color: #555; + overflow: hidden; + height: 28px; + line-height: 14px; + font-size: 12px; + margin: 5px 0 5px 0; +} + +.store-ibox .money { + font-family: Helvetica; + color: #f00; +} + +.store-ibox .info text { + font-size: 14px; +} + +.store-ibox .gicon { + position: absolute; + top: 0; + right: 0; +} + +.store-ibox .tname { + padding-top: .2em; + line-height: 1.6em; +} + +.store-ibox .tname i { + color: #999; +} + +.store-name { + position: relative; + margin: 0 10px 0 10px; + line-height: 30px; + font-size: 16px; + text-align: center; +} + +.store-name:first-child { + margin-top: 10px; +} + +.store-name text { + position: relative; + text-align: center; + padding: 0 15px; + background: #eee; +} + +.store-name .line { + border-radius: 45%; + position: absolute; + background: #CCC; + height: 2px; + width: 60%; + left: 20%; + margin-top: -1px; + top: 50%; +} + +.store-name navigator { + font-size: 12px; + color: #999; + position: absolute; + top: 50%; + right: 0; + margin-top: -10px; + line-height: 20px; + height: 20px; +} + +.store-name .van-icon { + font-size: 12px; + line-height: 10px; + height: 10px; + margin: -2px 0 0 2px; +} + +.shop_info .item { + border-radius: 8px; + background: #fff; + margin: 10px 10px 0 10px; + overflow: hidden; + color: #666; +} + +.shop_info .title { + font-size: 14px; + display: block; + height: 40px; + line-height: 40px; + border-bottom: 1px solid #eee; + color: #444; + padding-left: 15px; + background: #fff; +} + +.shop_info .item>view:last-child { + padding: 12px 15px; + color: #555; +} + +.shop_desc { + font-size: 12px; + line-height: 1.4; +} + +.shop_skill view { + padding: 8px 12px; + border-radius: 5px; + border: 1px solid #e0e0e0; + text-align: center; + display: inline-block; + margin: 5px 5px 5px 0; +} + +.shop_ver view.icons { + margin-right: 6px; +} \ No newline at end of file diff --git a/pages/index/show.js b/pages/index/show.js new file mode 100644 index 0000000..f6e4ff0 --- /dev/null +++ b/pages/index/show.js @@ -0,0 +1,131 @@ +function t(t, a, e) { + return a in t ? Object.defineProperty(t, a, { + value: e, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[a] = e, t; +} + +!function(t) { + t && t.__esModule; +}(require("../../common/WxValidate.js")); + +var a = require("../../common/common.js"); + +Page({ + data: { + spin: !0, + loading: !1, + previewList: [], + getdata: {}, + listdata: {}, + popup: [], + gotop: !1, + tabIndex: 0, + popupSpin: !1, + Form: { + form: { + radio: {}, + checkbox: {}, + picker: {}, + rate: {}, + send: {} + } + }, + popupForm: { + form: { + radio: {}, + checkbox: {}, + picker: {} + } + } + }, + initialize: function() { + var t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0], e = this; + e.setData({ + spin: !0 + }), a.Gethtml(e.data.url, function(i) { + a.initialFun(t), a.initializeRefresh(i), e.setData({ + getdata: { + page: 1, + goods: i.data.bh + }, + spin: !1 + }), i.ShowAttr && i.ShowAttr.Countdown && a.Countdown(i.ShowAttr.Countdown, "Form"), + "task" == i.type && e.getBidList(), wx.stopPullDownRefresh(); + }); + }, + onShow: function() { + a.init(this); + }, + onLoad: function(t) { + a.init(this), t.url ? this.setData({ + url: a.UrlOptions(t) + }) : this.setData({ + url: "get/shows/code/0" + }), this.initialize(!1); + }, + tabsChange: function(t) { + "评价记录" != t.detail.title || this.data.getdata.CurPage || a.GetList(), this.setData({ + tabIndex: t.detail.index + }); + }, + getBidList: function() { + var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], i = this, n = i.data.getdata.filter, o = i.data.Form.form.radio.filter || 0, r = e.currentTarget ? e.currentTarget.dataset.info : o; + if (r !== n) { + var s, d = 0 != r && /^[+-]?\d*\.?\d*$/.test(r) ? { + bh: r + } : {}; + i.setData((s = {}, t(s, "getdata.filter", "reset" != r ? r : o), t(s, "getdata.page", 1), + t(s, "Form.form.goBid", d), s)), a.GetList(function(t) { + d.bh && a.querySelect(".item", function(t) { + a.Lay({ + action: "go", + info: t.top + }); + }); + }); + } + }, + revChange: function(e) { + if (this.data.getdata.filter !== e.detail) { + var i; + this.setData((i = {}, t(i, "getdata.filter", e.detail), t(i, "getdata.page", 1), + i)), a.GetList(); + } + }, + addServe: function(t) { + var e = t.currentTarget.dataset, i = this.data.Form.data; + if (i.allmoney) { + var n = this.data.Form.AllmoneyOn || 0; + i.allmoney[n] && (e = Object.assign(i.allmoney[n], e)); + } + a.Lay(e); + }, + gaChange: function(a) { + this.setData(t({}, "Form." + a.currentTarget.dataset.field, a.currentTarget.id)); + }, + Lay: function(t) { + a.Lay(JSON.parse(JSON.stringify(t))); + }, + Commom: function(t) { + var e = JSON.parse(JSON.stringify((t.currentTarget, t))), i = t.currentTarget ? e.currentTarget.dataset.action : e.action; + a[i](); + }, + Popup: function(t) { + a.Popup(t.currentTarget.dataset); + }, + onReachBottom: function() { + var t = this.data.listdata; + !this.data.loading && t.CurPage < t.TotalPage && (this.setData({ + "getdata.page": 1 * this.data.getdata.page + 1 + }), a.GetList()); + }, + onPullDownRefresh: function() { + this.initialize(); + }, + onShareAppMessage: function() { + return a.getShare(); + } +}); \ No newline at end of file diff --git a/pages/index/show.json b/pages/index/show.json new file mode 100644 index 0000000..3bb3a3a --- /dev/null +++ b/pages/index/show.json @@ -0,0 +1,25 @@ +{ + "usingComponents": { + "down": "/utils/count-down/index", + "van-goods-action": "/vant/goods-action/index", + "van-goods-action-icon": "/vant/goods-action-icon/index", + "van-goods-action-button": "/vant/goods-action-button/index", + "van-radio": "/vant/radio/index", + "van-radio-group": "/vant/radio-group/index", + "van-field": "/vant/field/index", + "van-cell": "/vant/cell/index", + "van-cell-group": "/vant/cell-group/index", + "van-stepper": "/vant/stepper/index", + "van-picker": "/vant/picker/index", + "van-checkbox": "/vant/checkbox/index", + "van-checkbox-group": "/vant/checkbox-group/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/pages/index/show.wxml b/pages/index/show.wxml new file mode 100644 index 0000000..87ab98a --- /dev/null +++ b/pages/index/show.wxml @@ -0,0 +1,238 @@ + + + + 信息ID:{{Form.data.id}} + + + + + + + {{Form.data.money}} + + {{Form.data.tit}} + + + + 价 格: + + + {{Form.data.allmoney[Form.AllmoneyOn||0].money}} + + + + + 版 本: + + + {{items.edition}} + + + + + + + + + + {{items.name}} + + + {{Form.Guarantee[Form.GuaranteeOn||0].text}} + + + 商品属性 + + + {{items.title}}: + + + + + + + + + + + + {{Form.role.name}} + + + 商家认证: + + + + 店铺评分: + + + {{index}} + + {{item.value}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + 全部 + 好评 + 中评 + 差评 + 非自评 + 有追加 + + + + + + + + + + + + + {{data.goods.money}} {{data.goods.tit}} + + + + {{data.user.name}} + + + + + + + {{e.name}} + + + {{e.text}} + + + + + + + + + + + + + {{e.time}} + + + + + {{e.reply.name}} + {{e.reply.text}} + + + + + + + + + + + {{e.reply.time}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{Form.data.tit}} + + + + {{items.title}}: + + + + + + + + + + + + + + {{Form.data.tit}} + + + + {{items.title}}: + + + + + + + + + + + + + + + diff --git a/pages/index/show.wxss b/pages/index/show.wxss new file mode 100644 index 0000000..c94008d --- /dev/null +++ b/pages/index/show.wxss @@ -0,0 +1,630 @@ +@import "../../__wuBaseWxss__/0.wxss"; + +@import "../../vant/area/index.wxss"; + +page { + padding-bottom: 60px; +} + +.pro_bigImg { + background: #f2f2f2; + text-align: center; + overflow: hidden; +} + +.pro_bigImg image { + width: 100%; + max-width: 350px; + vertical-align: top; +} + +.pro_baseInfor { + overflow: hidden; + background: #fff; + padding: 10px 3%; +} + +.pro_baseInfor .title { + line-height: 18px; + font-size: 13px; + margin: 5px 0; + color: #000; +} + +.pro_baseInfor .money { + font-weight: 700; + color: #f40; + font-size: 18px; + margin-right: 10px; + font-size: 24px; +} + +.pro_baseInfor .money:before { + content: "¥"; + font-size: 14px; +} + +.pro_baseInfor .ul cite { + color: #b68571; + font-size: 18px; +} + +.pro_baseInfor .ul cite:before { + font-family: iconfont; + content: "\e662"; + font-size: .4rem; + vertical-align: -1px; +} + +.jgoods-info { + line-height: 20px; + padding: 12px 0; + background: #fff; +} + +.jgoods-info .title { + font-size: 14px; + margin: 0 15px; + color: #000; +} + +.jgoods-info .spe { + color: #666; +} + +.jgoods-info .spe .bg { + margin: 7px 0 2px 0; + background: #fafafa; + font-size: 14px; + padding: 7px 0; +} + +.jgoods-info .spe .item { + padding: 5px 15px; +} + +.jgoods-info .spe .text { + color: #333; + display: inline; +} + +.jgoods-info .spe .price { + display: inline-block; + height: 24px; + line-height: 24px; + font-size: 22px; + color: #e71f19; + vertical-align: -2px; +} + +.jgoods-info .spe .price text { + color: #333; + font-size: 14px; + vertical-align: 3px; +} + +.pro_guarantee { + overflow: hidden; + background: #f8f8f8; + width: 100%; +} + +.pro_guarantee .top { + padding: 0 10px; + height: 34px; + overflow-y: hidden; +} + +.pro_guarantee .tit { + height: 19px; + overflow: hidden; + display: inline-block; + padding: 7px 10px; + font-size: 12px; +} + +.pro_guarantee .tit.on { + margin-top: 1px; + color: #444; + background: #fff; + position: relative; + z-index: 1; +} + +.pro_guarantee .tit view { + display: inline-block; + position: relative; +} + +.pro_guarantee .tit .van-icon { + padding-right: 2px; + font-size: 15px; + vertical-align: middle; + margin-top: -4px; + color: #69a519; +} + +.pro_guarantee .bottom { + padding: 8px 10px; + margin-top: -1px; + line-height: 20px; + background: #fff; + color: #444; +} + +.pro_attr { + background: #fff; + margin: 10px 0 0 0; +} + +.pro_attr .tit { + line-height: 38px; + color: #666; + margin: 0 10px 5px 10px; +} + +.pro_attr .list { + overflow: hidden; + margin: 5px 0 5px 10px; + padding: 3px 0 10px 0; +} + +.pro_attr .item { + float: left; + width: 56%; + margin: 5px 0; +} + +.pro_attr .item:nth-child(odd) { + width: 44%; +} + +.pro_attr .name { + float: left; + color: #999; + min-width: 72px; + text-align: right; +} + +.pro_attr .text { + margin-left: 72px; + color: #666; +} + +.pro_attr .text navigator,.pro_attr .text view { + display: inline-block; +} + +.pro_attr .demo { + color: #00a1ec; +} + +.pro_attr .demo .van-icon { + font-size: 16px; + margin: -2px 2px 0 0; + vertical-align: middle; +} + +.pro_ishop { + overflow: hidden; + background: #fff; + padding: 12px 10px 2px 10px; + margin: 10px 0 0 0; +} + +.pro_ishop .bottom,.pro_ishop .top { + float: left; + padding: 0 0 12px 0; + width: 100%; +} + +.pro_ishop .top image { + float: left; + width: 60px; + height: 60px; + border-radius: 3px; + border: 1px #eee solid; + padding: 1px; +} + +.pro_ishop .top .info { + margin-left: 74px; + color: #999; + line-height: 22px; +} + +.pro_ishop .top .name { + color: #111; +} + +.pro_ishop .top .tit { + color: #666; + display: inline; +} + +.pro_ishop .top .store-score { + display: inline-block; +} + +.pro_ishop .top .num { + padding-right: 5px; + display: inline; +} + +.pro_ishop .top .num { + color: #c70100; +} + +.pro_ishop .top .icons { + display: inline-block; +} + +.pro_ishop .bottom .flex-item { + line-height: 14px; + height: 14px; + text-align: center; + margin-right: 15px; + padding: 8px 0 10px 0; + border: 1px #f0f0f0 solid; + border-radius: 4px; + box-shadow: 0 1px 2px #fafafa; + color: #555; +} + +.pro_ishop .bottom .flex-item:nth-child(3) { + margin: 0; +} + +.pro_ishop .bottom .flex-item.bond { + color: #2e8a11; + border-color: #c6f6bc; + background: #f6fdf4; +} + +.pro_ishop .bottom .flex-item .van-icon { + font-size: 18px; +} + +.pro_main { + overflow: hidden; + background: #fff; + margin: 10px 0 0 0; +} + +.pro_main .ul { + padding: 10px; + overflow: auto; + word-wrap: break-word; + white-space: normal; + word-break: break-all; +} + +.pro_info .table { + border-right: 1px solid #f0f0f0; + border-bottom: 1px solid #f0f0f0; + margin: 5px 0; +} + +.pro_info .table .td { + padding: 8px 2px; + border-left: 1px solid #f0f0f0; + border-top: 1px solid #f0f0f0; +} + +.pro_info .table .tr .td { + flex: 1; +} + +.pro_info .gimg { + width: 100%; +} + +.lay_pic { + display: block; + width: 100%; + height: 20px; + background: url(https://statics.huzhan.com/image/lazyload.gif) center center no-repeat; + background-size: .3rem .3rem; +} + +.pro_rule .item { + font-size: 14px; + display: block; + width: 100%; +} + +.pro_rule .tit { + display: block; + border-bottom: 2px solid #eee; + height: 28px; + margin-top: 2px; +} + +.pro_rule .h1 { + display: inline-block; + position: relative; + padding: 0 1px; + font-weight: 700; + border-bottom: 2px solid #f70; + font-size: 16px; + height: 26px; + line-height: 26px; + bottom: -2px; +} + +.pro_rule .txt { + display: block; + color: #666; + margin: 10px 0; +} + +.pro_rule .txt img { + margin-top: 15px; +} + +.pro_table { + background: #fff; +} + +.pro_table .tit { + text-align: justify; + max-height: 44px; + overflow: hidden; + line-height: 22px; + font-size: 18px; + padding: 10px; + color: #333; +} + +.pro_table .row { + background: #fafafa; + margin: 0 10px; + padding: 10px; +} + +.pro_table .list { + padding-bottom: 10px; +} + +.pro_table .row:nth-child(even) { + background: #fff; +} + +.pro_table .row view { + display: inline-block; + color: #333; +} + +.pro_table .row .name { + color: #999; +} + +.pro_table .row .money { + color: #ff5000; +} + +.pro_table .row .money:before { + content: "¥"; + font-size: 12px; +} + +.pro_table .row .stats { + margin: -2px 0; + display: inline-block; + color: #6a4; + border: 1px solid #6a4; + background: #eff; + padding: 1px 5px; + border-radius: 1px; + margin-left: 5px; +} + +.pro_table .row .stats.links { + color: #498bf8; + border-color: #71a3f5; + background: #eef9ff; +} + +.pro_table .row .bid { + display: inline-block; + color: #6899ec; + border: 2px dashed #6899ec; + font-size: 12px; + padding: 2px 6px; + border-radius: 1px; + margin: -2px 0 0 5px; +} + +.bidTit { + position: relative; + color: #666; + background: #fff; + border-bottom: 1px solid #e5e5e5; + border-top: 1px solid #e5e5e5; + overflow: hidden; + line-height: 34px; + margin-top: 10px; +} + +.bidTit .title { + font-size: 14px; + color: #333; + font-weight: 700; + width: 90px; + text-align: center; + background: #ededed; +} + +.bidTit .total { + color: #666; + padding: 0 10px; +} + +.bidTit .van-radio { + padding-left: 8px; +} + +.bidTit .goBid { + position: absolute; + top: 0; + width: 100%; + z-index: 1; +} + +.bidTit .goBid>view { + background: #fff; + position: relative; + margin-left: 90px; + padding: 0 10px; +} + +.bidTit .goBid van-icon { + background: #fff; + position: absolute; + right: 5px; + top: 5px; +} + +.bidInfo { + background: #f5faff; + border-top: 1px solid #d4e7f6; + border-bottom: 1px solid #d4e7f6; + text-align: center; + margin: 10px 0; + padding: 20px; +} + +.bidInfo .add { + padding: 10px; + font-size: 14px; + color: #247fbd; +} + +.bidList .item { + display: block; + border: 1px solid #ededed; + border-top: 0; +} + +.bidList .top { + background: #f9f9f9; + padding: 10px; +} + +.bidList .top .slink>navigator,.bidList .top .slink>view { + font-size: .8rem; + padding: 0 5px; + text-align: center; + line-height: 22px; + background: #fff; + border: 1px solid #ededed; + color: #666; + border-radius: 2px; +} + +.bidList .top .slink>navigator:first-child { + margin-bottom: 6px; +} + +.bidList .avatar { + background: #fff; + width: 50px; + height: 50px; + padding: 1px; + border: 1px solid #ededed; +} + +.bidList .binfo { + padding-right: 5px; +} + +.bidList .binfo>view { + display: flex; + align-items: center; + height: 100%; + width: 100%; +} + +.bidList .binfo text { + display: block; + font-weight: 700; + color: #ff4800; + font-size: 1.2rem; + border: 1px solid #f60; + background: #fffbfa; + padding: 3px 6px; + border-radius: 2px; +} + +.bidList .binfo text.red { + color: red; + border: 1px solid #f10; +} + +.bidList .baction,.bidList .slink { + max-width: 64px; +} + +.bidList .baction navigator { + background: #f5faff; + border: 1px solid #d4e7f6; + color: #74b4ea; +} + +.bidList .baction .won { + color: #eaa374; + border-color: #ffe0cc; + background: #fff8f4; +} + +.bidList .user { + flex: 1; + color: #666; + padding: 0 10px; +} + +.bidList .user>view { + display: flex; + align-items: center; + height: 100%; + width: 100%; +} + +.bidList .user .name { + font-size: 14px; + padding-right: 3px; + color: #247fbd; + line-height: 15px; +} + +.bidList .user .contact { + margin-top: 3px; +} + +.bidList .body { + padding: 10px 10px 0 10px; + border-top: 1px dashed #ddd; + background: #fff; + line-height: 16px; +} + +.bidList .bottom { + background: #fff; + padding: 0 10px 10px 10px; + line-height: 22px; +} + +.bidList .bottom text { + padding-right: 15px; + color: #999; +} + +.info-id { + position: fixed; + top: 45px; + left: 0; + z-index: -1; + width: 100%; + text-align: center; + color: #c0c0c0; +} \ No newline at end of file diff --git a/pages/member/cart.js b/pages/member/cart.js new file mode 100644 index 0000000..e016ed0 --- /dev/null +++ b/pages/member/cart.js @@ -0,0 +1,223 @@ +function t(t, a, e) { + return a in t ? Object.defineProperty(t, a, { + value: e, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[a] = e, t; +} + +var a = require("../../common/common.js"); + +Page({ + data: { + loading: !1, + Form: {}, + ListSh: {}, + getdata: "", + listdata: {}, + popup: [], + title: "", + tabCurrent: 0, + MyJifen: 0, + CartMoney: 0, + CartCount: 0, + CartTotal: 0, + CartPost: {}, + Allchecked: !0, + spin: !0, + timestamp: 0, + previewList: [] + }, + onReachBottom: function() { + var t = this, e = this.data.listdata; + !t.data.loading && e.CurPage < e.TotalPage && (t.setData({ + "getdata.page": 1 * t.data.getdata.page + 1, + spin: !0, + timestamp: a.timestamp() + }), a.GetList(function(a) { + t.create_cartList("init"); + })); + }, + create_cartList: function(t) { + var e = this, o = e.data.listdata.list, i = [], n = [], s = [], d = [], r = 0, c = 0, g = 0, l = {}; + for (var h in o) { + var u = o[h]; + for (var f in u.goods) { + var m = u.goods[f]; + m.gchecked && (i[r] = m.bh, n[r] = m.yjifen, s[r] = m.type, d[r] = m.achecked ? 1 : 0, + c += Number(m.money), m.achecked && (c += Number(m.amoney)), m.yjifen > 0 && (c -= Number((.1 * m.yjifen).toFixed(2))), + "init" != t && m["m_" + m.bh] && (l["m_" + m.bh] = m["m_" + m.bh], l["z_" + m.bh] = m["z_" + m.bh]), + r++), m.gdisabled || g++; + } + } + var y = { + id: i.join("|"), + jf: n.join("|"), + ty: s.join("|"), + az: d.join("|") + }; + "init" == t ? e.setData({ + CartMoney: c, + CartCount: r, + CartTotal: g, + CartPost: y, + spin: !1 + }) : (e.setData({ + postIng: !0 + }), a.HttpMember({ + url: "post/cart", + data: Object.assign(y, l) + }, function(t) { + e.setData({ + postIng: !1 + }), "url" == t.action && a.Lay(t); + })); + }, + AllChange: function(a) { + if (a.detail && (a.detail.checked || this.data.CartTotal == this.data.CartCount && this.data.CartCount > 0)) { + var e = this, o = a.detail.checked, i = e.data.listdata.list; + for (var n in i) for (var s in i[n].goods) o !== i[n].goods[s].gchecked && e.goodChange({ + detail: { + name: "good_" + n + "_" + i[n].goods[s].bh, + checked: o + } + }); + e.setData(t({ + ListSh: {}, + Allchecked: o + }, "listdata.list", i)); + } + }, + ListSh: function(a) { + var e = this, o = a.currentTarget.id, i = "ListSh." + o, n = wx.createAnimation({ + duration: 200, + timingFunction: "ease", + delay: 0 + }); + e.data.ListSh[o] ? (n.translateX("100%").step(), setTimeout(function() { + e.setData(t({}, i, !1)); + }, 201)) : (e.setData(t({}, i, !0)), n.translateX("0").step()), this.setData(t({}, i, n.export())); + }, + action: function(e) { + var o = this, i = o.data.listdata.list, n = e.currentTarget.dataset, s = n.action, d = n.id, r = n.gid, c = i[d].goods, g = c[r], l = i[d].sell, h = c.length <= 1; + a.PostMember("post/" + s, { + action: s, + bh: g.bh, + tab: g.type + }, function(a) { + if (1 != a.state) return !1; + var e = wx.createAnimation({ + duration: 300, + timingFunction: "ease", + delay: 0 + }); + e.translateX("120%").step(), o.setData(t({}, "delAnimation." + (h ? l : g.bh), e.export())), + setTimeout(function() { + h ? i.splice(d, 1) : i[d].goods.splice(r, 1); + var a = t({ + delAnimation: {} + }, "listdata.list", i); + h && (a.ListSh = {}), o.setData(a), o.create_cartList("init"); + }, 301); + }); + }, + goodChange: function(a) { + if (a.detail) { + var e = this, o = a.detail.checked, i = a.detail.name.split("_"), n = i[0], s = i[1], d = i[2], r = e.data.listdata.list[s], c = { + no: 0, + ok: 0 + }, g = "listdata.list[" + s + "]"; + if ("install" == n || "jifen" == n) for (var l in r.goods) r.goods[l].bh != d || r.goods[l].gdisabled || (o && !r.goods[l].gchecked && e.goodChange({ + detail: { + name: "good_" + s + "_" + d, + checked: o + } + }), "install" == n ? (r.goods[l].achecked = o, e.setData({ + CartMoney: e.data.CartMoney + Number(o ? r.goods[l].amoney : -1 * r.goods[l].amoney) + })) : (r.goods[l].jchecked = o, o ? (r.goods[l].yjifen = e.data.MyJifen <= r.goods[l].kjifen ? e.data.MyJifen : r.goods[l].kjifen, + e.setData({ + MyJifen: e.data.MyJifen - r.goods[l].yjifen, + CartMoney: e.data.CartMoney - Number((.1 * r.goods[l].yjifen).toFixed(2)) + })) : (e.setData({ + MyJifen: e.data.MyJifen + r.goods[l].yjifen, + CartMoney: e.data.CartMoney + Number((.1 * r.goods[l].yjifen).toFixed(2)) + }), r.goods[l].yjifen = 0))); else if ("good" == n) { + for (var l in r.goods) if (!r.goods[l].gdisabled) { + if (r.goods[l].bh == d) { + var h = r.goods[l].achecked, u = r.goods[l].jchecked; + r.goods[l].gchecked = o, o ? (e.setData({ + CartCount: e.data.CartCount + 1, + CartMoney: e.data.CartMoney + Number(r.goods[l].money) + }), r.goods[l].achecked || (r.goods[l].achecked = r.goods[l].amoney <= 0)) : (e.setData({ + CartCount: e.data.CartCount - 1, + CartMoney: e.data.CartMoney - Number(r.goods[l].money) + }), r.goods[l].achecked = !1, r.goods[l].jchecked = !1), r.goods[l].achecked !== h && e.goodChange({ + detail: { + name: "install_" + s + "_" + d, + checked: r.goods[l].achecked + } + }), r.goods[l].jchecked !== u && e.goodChange({ + detail: { + name: "jifen_" + s + "_" + d, + checked: r.goods[l].jchecked + } + }); + } + r.goods[l].gchecked ? c.ok++ : c.no++; + } + e.data.CartTotal > e.data.CartCount && e.data.Allchecked && e.setData({ + Allchecked: !1 + }), e.data.CartTotal != e.data.CartCount || e.data.Allchecked || e.setData({ + Allchecked: !0 + }), 0 != c.ok && 0 != c.no || (r.schecked = 0 === c.no); + } else if ("shop" == n) { + for (var l in r.goods) r.goods[l].gdisabled || r.goods[l].gchecked === o || (e.goodChange({ + detail: { + name: "good_" + s + "_" + r.goods[l].bh, + checked: o + } + }), r.goods[l].gchecked = o); + r.schecked !== o && (r.schecked = o); + } + e.setData(t({}, g, r)); + } + }, + initialize: function() { + var t = this; + t.setData({ + spin: !0, + postIng: !1 + }), a.HttpMember("get/member/cart?islogin=0", function(e) { + a.initializeRefresh(e), t.setData({ + "getdata.page": 1, + MyJifen: e.Myjifen, + timestamp: a.timestamp() + }), wx.stopPullDownRefresh(), a.GetList(function(a) { + t.create_cartList("init"); + }); + }); + }, + Lay: function(t) { + a.Lay(JSON.parse(JSON.stringify(t))); + }, + Commom: function(t) { + var e = JSON.parse(JSON.stringify((t.currentTarget, t))), o = t.currentTarget ? e.currentTarget.dataset.action : e.action; + a[o](e); + }, + Popup: function(t) { + a.Popup(t.currentTarget.dataset); + }, + onLoad: function() { + a.init(this); + }, + onShow: function() { + a.init(this); + var t = a.timestamp(); + (!wx.getStorageSync("sessionid") || t - this.data.timestamp >= 30) && this.initialize(); + }, + onPullDownRefresh: function() { + this.initialize(); + }, + onShareAppMessage: function() {} +}); \ No newline at end of file diff --git a/pages/member/cart.json b/pages/member/cart.json new file mode 100644 index 0000000..69128e9 --- /dev/null +++ b/pages/member/cart.json @@ -0,0 +1,15 @@ +{ + "usingComponents": { + "van-submit-bar": "/vant/submit-bar/index", + "van-checkbox": "/vant/checkbox/index", + "van-checkbox-group": "/vant/checkbox-group/index", + "van-popup": "/vant/popup/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/pages/member/cart.wxml b/pages/member/cart.wxml new file mode 100644 index 0000000..f08fb6f --- /dev/null +++ b/pages/member/cart.wxml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + {{shop.name}} + + + + + + + + + + + + + + + {{data.pic.value}} + + + [{{data.typename}}]{{data.tit}} + + + + 保 + + + + {{data.error.text}} + 查看详情 + + + + + {{data.money}} + + + + + + + 联系商家 + + + + + + 删除商品 + + + + + + 移至收藏 + + + + + + 关闭 + + + + + + + + 安装服务 + + + 购买前请看【要求说明】 + + + {{data.amoney}} + + 免费 + + + + + + 积分抵价 + + + 您当前可用积分不足 + 商品支持使用{{data.kjifen}}积分 + 当前准备使用{{data.yjifen}}积分 + + + -¥{{data.yjifen/10}} + + + + + + + + + 全选({{CartCount}}) + + diff --git a/pages/member/cart.wxss b/pages/member/cart.wxss new file mode 100644 index 0000000..30d4097 --- /dev/null +++ b/pages/member/cart.wxss @@ -0,0 +1,294 @@ +@import "../../__wuBaseWxss__/0.wxss"; + +.nologin { + position: absolute; + margin-top: -100px; + top: 50%; + left: 0; + width: 100%; + text-align: center; +} + +.cartList .item { + position: relative; + background: #fff; + margin-bottom: 10px; + border-bottom: 1px #ddd solid; + border-top: 1px #ddd solid; +} + +.cartList .item:last-child { + margin: 0; +} + +.cartList .shops { + padding: 10px; +} + +.cartList .ListSh { + display: inline-block; + margin-bottom: -5px; + padding: 0 0 5px 10px; + line-height: 20px; + font-size: 14px; + color: #999; +} + +.cartList .info { + position: relative; + background: #fafafa; + padding: 10px; + border-top: 1px #e1e1e1 solid; +} + +.cartList .info .more { + position: absolute; + width: 100%; + background-color: rgba(255,255,255,.9); + text-align: center; + top: 0; + left: 0; + height: 100%; + font-size: 12px; + line-height: 24px; + transform: translateX(100%); +} + +.cartList .info .more.hide { + display: none; +} + +.cartList .info .action { + padding-top: 14px; +} + +.cartList .info .action .van-icon { + background: #c1c1c1; + border-radius: 50%; + padding: 5px; + color: #fff; + font-size: 20px; +} + +.cartList .info .pic { + overflow: hidden; + margin: 0 10px 0 0; + line-height: 58px; + height: 58px; + width: 76px; + color: #36c; + border: 1px solid #eee; +} + +.cartList .info .pic image { + width: 76px; + height: 58px; +} + +.cartList .info .tit { + overflow: hidden; + height: 32px; + line-height: 16px; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +.cartList .info .bot { + position: relative; + height: 20px; + line-height: 20px; + display: block; +} + +.cartList .info .bot .gicon { + padding: 0; + background: 0 0; + left: 0; + right: auto; +} + +.cartList .info .bot .gicon view { + margin: 0 5px 0 0; +} + +.cartList .info .text { + color: #ccc; + height: 19px; + line-height: 19px; + font-size: 14px; +} + +.cartList .info .money .text { + display: inline; + font-size: 12px; + color: #f30; +} + +.cartList .info .num { + font-size: 14px; + display: inline-block; + font-weight: 700; +} + +.cartList .attach { + background: #fff; + padding: 8px 10px; + line-height: 18px; + font-size: 14px; + border-top: 1px solid #eee; +} + +.cartList .attach .van-checkbox { + margin-top: -2px; +} + +.cartList .attach .explain { + font-size: 12px; + color: rgba(69,90,100,.6); +} + +.cartList .attach .explain .b { + font-weight: 700; +} + +.cartList .attach .explain view { + display: inline-block; +} + +.cartList .attach .money .text { + display: inline; + font-size: 12px; + color: #f30; +} + +.cartList .attach .money .green { + color: #3a933a; +} + +.cartList .attach .money .num { + display: inline-block; + font-weight: 700; +} + +.cartList .shop { + color: #333; + background-color: rgba(255,255,255,.5); + position: absolute; + bottom: 0; + left: 0; + width: 100%; +} + +.cartList .shop .seller { + background-color: rgba(255,255,255,.9); + float: left; + height: 100px; + width: 82%; +} + +.cartList .shop .avatar { + display: inline-block; + width: 20px; + height: 20px; +} + +.cartList .shop .avatar image { + width: 16px; + height: 16px; +} + +.cartList .shop .name { + color: #000; +} + +.cartList .shop .tname { + color: #666; + padding-right: 5px; + display: inline-block; +} + +.cartList .shop .litem { + float: left; + width: 100%; + height: 20px; + line-height: 20px; + display: inline-block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.cartList .shop .action { + float: right; + height: 100%; + width: 18%; +} + +.cartList .shop .action .navigator,.cartList .shop .action view { + text-align: center; + display: block; + width: 100%; + height: 33.5px; + line-height: 33.5px; + background: #ff9402; + color: #fff; +} + +.cartList .shop .action navigator:nth-child(1) { + background: #ff5000; +} + +.cartList .shop .action view { + background: #c1c1c1; +} + +.shop_view { + padding-bottom: 50px; +} + +.shop_list { + height: 100px; + border-bottom: 1px solid #dbdbdb; + line-height: 100px; + padding-left: 20px; +} + +.fixed_top { + background: #ff774f; +} + +.fixed_top .ui-col { + color: #fff; +} + +.fixed_bottom { + background: #fff; + box-shadow: 0 -8px 10px 0 #eaeaea; +} + +.fixed_bottom .form_list { + background: #fe6a3c; + color: #fff; + height: 50px; + text-align: center; + line-height: 50px; + font-size: 16px; +} + +.fixed_bottom .money { + color: #f30; + display: inline-block; + font-size: 12px; +} + +.fixed_bottom .money .num { + font-size: 20px; + display: inline-block; + font-weight: 700; +} + +.fixed_bottom .form_num { + display: inline-block; +} \ No newline at end of file diff --git a/pages/member/html.js b/pages/member/html.js new file mode 100644 index 0000000..af39a23 --- /dev/null +++ b/pages/member/html.js @@ -0,0 +1,115 @@ +function t(t, e, i) { + return e in t ? Object.defineProperty(t, e, { + value: i, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[e] = i, t; +} + +var e = function(t) { + return t && t.__esModule ? t : { + default: t + }; +}(require("../../vant/dialog/dialog")), i = require("../../common/common.js"); + +Page({ + data: { + url: "", + popup: [], + previewList: [] + }, + initialize: function() { + var t = this; + t.setData({ + spin: !0, + popupSpin: !1, + Form: { + form: { + radio: {}, + checkbox: {}, + picker: {}, + rate: {} + } + }, + popupForm: { + form: { + radio: {}, + checkbox: {}, + picker: {} + } + } + }), i.HttpMember(t.data.url, function(t) { + i.initializeRefresh(t); + }); + }, + onPullDownRefresh: function() { + this.initialize(); + }, + onLoad: function(t) { + t && this.setData({ + url: i.UrlOptions(t) + }), i.init(this), this.initialize(); + }, + onShow: function() { + i.init(this), this.data.Form.form.formLoad && this.initialize(); + }, + Lay: function(t) { + i.Lay(JSON.parse(JSON.stringify(t))); + }, + Commom: function(t) { + var e = JSON.parse(JSON.stringify((t.currentTarget, t))), a = t.currentTarget ? e.currentTarget.dataset.action : e.action; + i[a](e); + }, + Popup: function(t) { + i.Popup(t.currentTarget.dataset); + }, + AllmoneyChange: function(e) { + var i = commom.getTableName(), a = this.data[i].form, r = a.radio.SelectEdition, o = a.radio.piece, n = a.allMoney; + if (r) { + var l = r.split("-|-"); + n.edition = l[0], n.money = parseInt(l[1]); + } + n.count = parseInt(o * n.money), a.allMoney = n, this.setData(t({}, i + ".form", a)); + }, + allMoney: function(i) { + var a = this, r = i.currentTarget.dataset.action, o = i.currentTarget.dataset.data, n = 0, l = []; + for (var s in a.data.Form.input) if ("moneyBox" == a.data.Form.input[s].id) var u = s; + var f = a.data.Form.input[u].list[1].list[0].list[1].list, m = f.length; + if ("up" == r || "down" == r) { + var c = JSON.parse(JSON.stringify(f[o])), d = "up" == r ? o <= 0 ? m - 1 : o - 1 : o >= m - 1 ? 0 : o + 1; + f[o] = f[d], f[o] = f[d], f[d] = c, f[d] = c; + } else if ("del" == r) { + if (m <= 1) return e.default.alert({ + title: "提示", + message: '至少需要保留1个价格!', + overlay: !0, + closable: !1 + }).then(function() { + var e; + a.setData((e = {}, t(e, "Form.form.formLoad", !1), t(e, "Form.form.textareaToggle", !1), + e)); + }), !1; + delete f[o]; + } else if ("add" == r) { + if (m >= 5) return e.default.alert({ + title: "提示", + message: '最多只能设置5个动态价格!', + overlay: !0, + closable: !1 + }).then(function() { + var e; + a.setData((e = {}, t(e, "Form.form.formLoad", !1), t(e, "Form.form.textareaToggle", !1), + e)); + }), !1; + f[m] = JSON.parse(JSON.stringify(f[0])), f[m].list[0].list[0].value = "", f[m].list[1].list[0].value = ""; + } + for (var s in f) { + f[s].list[0].list[0].name = f[s].list[0].list[0].name.replace(/[\d]/g, "") + n, + f[s].list[1].list[0].name = f[s].list[1].list[0].name.replace(/[\d]/g, "") + n; + for (var p in f[s].list[2].list) f[s].list[2].list[p].data = n; + l[n] = f[s], n++; + } + a.setData(t({}, "Form.input[" + u + "].list[1].list[0].list[1].list", l)); + } +}); \ No newline at end of file diff --git a/pages/member/html.json b/pages/member/html.json new file mode 100644 index 0000000..96d5430 --- /dev/null +++ b/pages/member/html.json @@ -0,0 +1,25 @@ +{ + "usingComponents": { + "down": "/utils/count-down/index", + "van-field": "/vant/field/index", + "van-radio": "/vant/radio/index", + "van-radio-group": "/vant/radio-group/index", + "van-cell": "/vant/cell/index", + "van-cell-group": "/vant/cell-group/index", + "van-stepper": "/vant/stepper/index", + "van-picker": "/vant/picker/index", + "van-checkbox": "/vant/checkbox/index", + "van-checkbox-group": "/vant/checkbox-group/index", + "van-notice-bar": "/vant/notice-bar/index", + "van-search": "/vant/search/index", + "van-steps": "/vant/steps/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/pages/member/html.wxml b/pages/member/html.wxml new file mode 100644 index 0000000..72570b3 --- /dev/null +++ b/pages/member/html.wxml @@ -0,0 +1,4 @@ + + + + diff --git a/pages/member/html.wxss b/pages/member/html.wxss new file mode 100644 index 0000000..06367b1 --- /dev/null +++ b/pages/member/html.wxss @@ -0,0 +1,5 @@ +@import "../../__wuBaseWxss__/0.wxss"; + +@import "../../__wuBaseWxss__/1.wxss"; + +@import "../../vant/area/index.wxss"; \ No newline at end of file diff --git a/pages/member/list/detail.js b/pages/member/list/detail.js new file mode 100644 index 0000000..68ed1d3 --- /dev/null +++ b/pages/member/list/detail.js @@ -0,0 +1,123 @@ +function t(t, a, e) { + return a in t ? Object.defineProperty(t, a, { + value: e, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[a] = e, t; +} + +var a = require("../../../common/common.js"); + +Page({ + data: { + previewList: [], + dropShow: !1, + searchVal: [], + loading: !1, + Form: {}, + getdata: [], + listdata: [], + popup: [], + spin: !0, + listIndex: 0, + loadnot: !1, + gotop: !1, + popupForm: {} + }, + onLoad: function(t) { + a.init(this); + var e = this; + a.HttpMember({ + url: "get/member/detail", + data: { + mode: t.mode + } + }, function(i) { + var n = { + getdata: {}, + listdata: {}, + listIndex: 0, + searchVal: [] + }; + i.tabs.forEach(function(a, e) { + a.value === t.mode && (n.listIndex = e), n.getdata[e] = { + mode: a.value, + page: 1 + }, n.listdata[e] = { + list: [], + CurPage: 0 + }; + }), a.initializeRefresh(i), t.bh && i.tabs[n.listIndex].search && (n.getdata[n.listIndex].bh = t.bh, + n.searchVal[n.listIndex] = t.bh), e.setData({ + getdata: n.getdata, + listdata: n.listdata, + listIndex: n.listIndex, + searchVal: n.searchVal + }), a.initialFun(!1), a.GetList(function(t) { + e.setData({ + spin: !1 + }); + }); + }); + }, + onShow: function() { + a.init(this); + }, + initialize: function() { + var e, i = this, n = i.data.listIndex; + i.setData((e = {}, t(e, "initialValue.listIndex", n), t(e, "listdata." + n, { + list: [], + CurPage: 0 + }), e)), a.initialFun(!0), a.GetList(function(t) { + wx.stopPullDownRefresh(); + }); + }, + searchSubmit: function(e) { + var i, n = this, s = n.data.listIndex, o = e.detail ? e.detail.replace(/\s+/g, "") : "", l = n.data.searchVal[s], d = n.data.getdata; + if (l === o) return "" == o && a.Lay({ + info: "亲,搜索内容不能为空!" + }), !1; + "" == o ? delete d[s].bh : d[s].bh = o, d[s].page = 1, n.setData((i = { + getdata: d + }, t(i, "searchVal." + s, o), t(i, "listdata." + s, { + list: [], + CurPage: 0 + }), i)), a.GetList(); + }, + onReachBottom: function() { + var e = this, i = e.data.listIndex, n = e.data.listdata[i]; + if (!e.data.loadnot && !e.data.loading && n.CurPage < n.TotalPage) { + var s = "getdata." + i + ".page"; + e.setData(t({}, s, 1 * e.data.getdata[i].page + 1)), a.GetList(); + } + }, + tabChange: function(t) { + var e = this, i = t.detail.index, n = e.data.listdata[i]; + i != e.data.listIndex && (e.setData({ + listIndex: i + }), wx.setNavigationBarTitle({ + title: e.data.Form.tabs[i].title + }), n.CurPage ? n.CurPage < n.TotalPage ? this.loadnot = !1 : this.loadnot = !0 : a.GetList()); + }, + onPageScroll: function(t) { + var a = this, e = t.scrollTop, i = a.data.gotop, n = 2 * a.data.SystemInfo.windowHeight; + (e >= n && !i || e < n && i) && a.setData({ + gotop: !i + }); + }, + Lay: function(t) { + a.Lay(JSON.parse(JSON.stringify(t))); + }, + Commom: function(t) { + var e = JSON.parse(JSON.stringify((t.currentTarget, t))), i = t.currentTarget ? e.currentTarget.dataset.action : e.action; + a[i](e); + }, + Popup: function(t) { + a.Popup(t.currentTarget.dataset); + }, + onPullDownRefresh: function() { + this.initialize(); + }, + onShareAppMessage: function() {} +}); \ No newline at end of file diff --git a/pages/member/list/detail.json b/pages/member/list/detail.json new file mode 100644 index 0000000..5f7aa4e --- /dev/null +++ b/pages/member/list/detail.json @@ -0,0 +1,16 @@ +{ + "usingComponents": { + "van-search": "/vant/search/index", + "van-field": "/vant/field/index", + "van-cell": "/vant/cell/index", + "van-cell-group": "/vant/cell-group/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/pages/member/list/detail.wxml b/pages/member/list/detail.wxml new file mode 100644 index 0000000..f4823d0 --- /dev/null +++ b/pages/member/list/detail.wxml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + {{data.text}} + + + + + + + + + + + + + diff --git a/pages/member/list/detail.wxss b/pages/member/list/detail.wxss new file mode 100644 index 0000000..4d2616e --- /dev/null +++ b/pages/member/list/detail.wxss @@ -0,0 +1,5 @@ +@import "../../../__wuBaseWxss__/0.wxss"; + +@import "../../../__wuBaseWxss__/1.wxss"; + +@import "../../../vant/area/index.wxss"; \ No newline at end of file diff --git a/pages/member/list/fav.js b/pages/member/list/fav.js new file mode 100644 index 0000000..b178a5d --- /dev/null +++ b/pages/member/list/fav.js @@ -0,0 +1,144 @@ +function t(t, a, i) { + return a in t ? Object.defineProperty(t, a, { + value: i, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[a] = i, t; +} + +var a = require("../../../common/common.js"); + +Page({ + data: { + loading: !1, + getdata: [], + listdata: [], + ListSh: {}, + spin: !0, + Form: {}, + listIndex: 0, + loadnot: !1, + gotop: !1, + popupForm: {}, + itemAnimation: {} + }, + onLoad: function(t) { + a.init(this); + var i = this; + a.HttpMember({ + url: "get/member/fav", + data: { + mode: t.mode + } + }, function(e) { + var n = { + getdata: {}, + listdata: {}, + listIndex: 0 + }; + e.tabs.forEach(function(a, i) { + a.value === t.mode && (n.listIndex = i), n.getdata[i] = { + mode: a.value, + page: 1 + }, n.listdata[i] = { + list: [], + CurPage: 0 + }; + }), a.initializeRefresh(e), t.bh && e.tabs[n.listIndex].search && (n.getdata[n.listIndex].bh = t.bh, + n.searchVal[n.listIndex] = t.bh), i.setData({ + getdata: n.getdata, + listdata: n.listdata, + listIndex: n.listIndex + }), a.initialFun(!1), a.GetList(function(t) { + i.setData({ + spin: !1 + }); + }); + }); + }, + onShow: function() { + a.init(this); + }, + initialize: function() { + var i, e = this, n = e.data.listIndex; + e.setData((i = {}, t(i, "initialValue.listIndex", n), t(i, "listdata." + n, { + list: [], + CurPage: 0 + }), i)), a.initialFun(!0), a.GetList(function(t) { + wx.stopPullDownRefresh(); + }); + }, + ListSh: function(a) { + var i = this, e = a.currentTarget.id, n = "ListSh." + e, s = wx.createAnimation({ + duration: 200, + timingFunction: "ease", + delay: 0 + }); + i.data.ListSh[e] ? (s.translateY("100%").step(), setTimeout(function() { + i.setData(t({}, n, !1)); + }, 201)) : (i.setData(t({}, n, !0)), s.translateY("0").step()), this.setData(t({}, n, s.export())); + }, + action: function(i) { + var e = this, n = e.data.listIndex, s = e.data.listdata[n], o = i.currentTarget.dataset, r = o.id, l = o.action, d = s.list[r].bh, u = e.data.Form.tabs[n].value; + a.PostMember("post/fav", { + action: l, + bh: d, + tab: u + }, function(a) { + if (1 != a.state) return !1; + if ("del" == l) { + var i = wx.createAnimation({ + duration: 300, + timingFunction: "ease", + delay: 0 + }); + i.translateX("120%").step(), e.setData(t({}, "itemAnimation." + d, i.export())), + setTimeout(function() { + s.Total--, s.list.splice(r, 1), e.setData(t({ + itemAnimation: {} + }, "listdata." + n, s)); + }, 301); + } else if ("up" == l || "down" == l) { + var o = s.list.splice(r, 1)[0]; + o.top = Number(!Boolean(parseInt(o.top))), "up" == l ? s.list.unshift(o) : s.list.push(o), + e.setData(t({}, "listdata." + n, s)); + } + }); + }, + onReachBottom: function() { + var i = this, e = i.data.listIndex, n = i.data.listdata[e]; + if (!i.data.loadnot && !i.data.loading && n.CurPage < n.TotalPage) { + var s = "getdata." + e + ".page"; + i.setData(t({}, s, 1 * i.data.getdata[e].page + 1)), a.GetList(); + } + }, + tabChange: function(t) { + var i = this, e = t.detail.index, n = i.data.listdata[e]; + e != i.data.listIndex && (i.setData({ + listIndex: e + }), wx.setNavigationBarTitle({ + title: i.data.Form.tabs[e].title + }), n.CurPage ? n.CurPage < n.TotalPage ? this.loadnot = !1 : this.loadnot = !0 : a.GetList()); + }, + onPageScroll: function(t) { + var a = this, i = t.scrollTop, e = a.data.gotop, n = 2 * a.data.SystemInfo.windowHeight; + (i >= n && !e || i < n && e) && a.setData({ + gotop: !e + }); + }, + Lay: function(t) { + a.Lay(JSON.parse(JSON.stringify(t))); + }, + Commom: function(t) { + var i = JSON.parse(JSON.stringify((t.currentTarget, t))), e = t.currentTarget ? i.currentTarget.dataset.action : i.action; + a[e](i); + }, + Popup: function(t) { + a.Popup(t.currentTarget.dataset); + }, + onPullDownRefresh: function() { + this.initialize(); + }, + onShareAppMessage: function() {} +}); \ No newline at end of file diff --git a/pages/member/list/fav.json b/pages/member/list/fav.json new file mode 100644 index 0000000..050b0b9 --- /dev/null +++ b/pages/member/list/fav.json @@ -0,0 +1,12 @@ +{ + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/pages/member/list/fav.wxml b/pages/member/list/fav.wxml new file mode 100644 index 0000000..9092e73 --- /dev/null +++ b/pages/member/list/fav.wxml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + {{item.name}} + + + + + 宝贝数:{{item.goods}} + + + + + + + + + + + 删除收藏 + + + + + + + + 关闭 + + + + + + + + + + + + + {{item.typename}} + + + + {{item.typename}} + + + + + {{item.tit}} + + {{item.tit}} + + + + + {{item.money}} + + {{item.state.text}} + + + + + + + + + + + 放购物车 + + + + + + 删除收藏 + + + + + + + + 关闭 + + + + + + + + + + + diff --git a/pages/member/list/fav.wxss b/pages/member/list/fav.wxss new file mode 100644 index 0000000..7b35aa2 --- /dev/null +++ b/pages/member/list/fav.wxss @@ -0,0 +1,114 @@ +@import "../../../__wuBaseWxss__/0.wxss"; + +.favList .item { + overflow: hidden; + color: #999; + position: relative; + margin: 10px 10px 0 10px; + background: #fff; + padding: 10px; + border-radius: 2px; +} + +.favList .pic { + color: #333; + font-size: 14px; + overflow: hidden; + width: 100px; + text-align: center; + height: 80px; + line-height: 80px; + background: #fafafa; + border: 1px #eee solid; +} + +.favList .pic image { + width: 100px; + height: 80px; +} + +.favList .info { + position: relative; + height: 80px; + margin-left: 10px; +} + +.favList .info .tit { + line-height: 16px; + font-size: 12px; + height: 32px; + overflow: hidden; +} + +.favList .info .bottom { + position: absolute; + right: 0; + bottom: -10px; + width: 100%; + line-height: 25px; +} + +.favList .info .bottom .money { + color: #ff5000; + padding-right: 5px; +} + +.favList .info .bottom .money:before { + content: "¥"; + font-size: 12px; +} + +.favList .info .bottom .ListSh { + font-size: 18px; + padding: 0 0 5px 15px; + line-height: 25px; + color: #999; +} + +.favList .info .action { + line-height: 20px; + text-align: center; + background-color: rgba(255,255,255,.9); + position: absolute; + right: 0; + top: 0; + height: 100%; + width: 100%; + transform: translateY(100%); +} + +.favList .info .action .van-icon { + line-height: 28px; + width: 100%; + font-size: 20px; + color: #fff; +} + +.favList .info .icon { + margin-top: 18px; + border-radius: 50%; + width: 30px; + height: 30px; + display: inline-block; + background: #f60; +} + +.action .row-flex .flex-item .icon.delete { + background: #f00; +} + +.action .row-flex .flex-item .icon.up { + background: #498BF8; +} + +.action .row-flex .flex-item .icon.cross { + background: #c1c1c1; +} + +.action .row-flex .flex-item .icon.down { + background: #3eabc3; +} + +.action .row-flex .flex-item:last-child { + flex: 0.7; +} \ No newline at end of file diff --git a/pages/member/list/manage.js b/pages/member/list/manage.js new file mode 100644 index 0000000..e499574 --- /dev/null +++ b/pages/member/list/manage.js @@ -0,0 +1,209 @@ +function t(t, a, e) { + return a in t ? Object.defineProperty(t, a, { + value: e, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[a] = e, t; +} + +var a = require("../../../common/common.js"); + +Page({ + data: { + postShow: !1, + searchShow: !1, + searchVal: "", + searchFocus: !1, + loading: !1, + getdata: [], + listdata: [], + popup: [], + spin: !0, + listIndex: 0, + loadnot: !1, + gotop: !1, + active: {}, + previewList: [], + Form: { + form: { + radio: {}, + checkbox: {}, + picker: {} + } + }, + popupForm: { + form: { + radio: {}, + checkbox: {}, + picker: {} + } + } + }, + onLoad: function(t) { + a.init(this); + var e = this; + a.HttpMember({ + url: "get/member/manage", + data: { + list: t.list || "goods" + } + }, function(i) { + a.initializeRefresh(i); + var s = { + listIndex: 0, + getdata: {}, + listdata: {}, + active: {} + }; + i.tabs.total.forEach(function(a, e) { + s.getdata[e] = { + page: 1, + mode: a.key, + type: a.default + }, s.listdata[e] = { + list: [], + CurPage: 0 + }, s.active[e] = 0, t.mode === a.key && (s.listIndex = e, t.type && i.tabs[a.key] && i.tabs[a.key].forEach(function(a, i) { + t.type === a.key && (s.active[e] = i, s.getdata[e].type = a.key); + })); + }), e.setData({ + active: s.active, + getdata: s.getdata, + listdata: s.listdata, + listIndex: s.listIndex + }), a.initialFun(!1), a.GetList(function(t) { + e.setData({ + spin: !1 + }); + }); + }); + }, + initialize: function() { + a.initialFun(!0), a.GetList(function(t) { + wx.stopPullDownRefresh(); + }); + }, + onShow: function() { + a.init(this), this.data.Form.form.formLoad && this.initialize(); + }, + searchRemove: function() { + (!(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]) && "" != this.data.searchVal.replace(/(^\s*)|(\s*$)/g, "") && this.searchSubmit({ + detail: "" + }), this.setData({ + searchShow: !1, + searchVal: "" + }); + }, + searchSubmit: function(e) { + var i = this, s = i.data.listIndex, o = e.detail ? e.detail.replace(/\s+/g, "") : "", n = i.data.searchVal, r = i.data.getdata; + if (n === o) return "" == o && a.Lay({ + info: "亲,搜索内容不能为空!" + }), !1; + "" == o ? delete r[s].key : r[s].key = o, r[s].page = 1, i.setData(t({ + getdata: r, + searchVal: o + }, "listdata." + s, { + list: [], + CurPage: 0 + })), a.GetList(); + }, + searchToggle: function(t) { + var a = this, e = a.data.searchShow; + a.setData({ + searchShow: !e, + searchFocus: !1 + }), e || setTimeout(function() { + a.setData({ + searchFocus: !0 + }); + }, 100); + }, + postToggle: function() { + this.setData({ + postShow: !this.data.postShow + }); + }, + onReachBottom: function() { + var e = this, i = e.data.listIndex, s = e.data.listdata[i]; + if (!e.data.loadnot && !e.data.loading && s.CurPage < s.TotalPage) { + var o = "getdata." + i + ".page"; + e.setData(t({}, o, 1 * e.data.getdata[i].page + 1)), a.GetList(); + } + }, + typeChange: function(e) { + var i = this, s = e.detail, o = i.data.listIndex, n = i.data.getdata[o], r = i.data.Form.tabs[n.mode]; + if (n.type != r[s].key) { + var d; + n.type = r[s].key, n.page = 1, n.key && (i.searchRemove(!1), delete n.key), i.setData((d = {}, + t(d, "active." + o, s), t(d, "getdata." + o, n), t(d, "listdata." + o, { + list: [], + CurPage: 0 + }), d)), a.GetList(); + } + }, + tabChange: function(t) { + var e = this, i = t.detail.index, s = e.data.listdata[i]; + i != e.data.listIndex && (e.setData({ + listIndex: i + }), s.CurPage ? s.CurPage < s.TotalPage ? this.loadnot = !1 : this.loadnot = !0 : a.GetList()); + }, + onPageScroll: function(t) { + var a = this, e = t.scrollTop, i = a.data.gotop, s = 2 * a.data.SystemInfo.windowHeight; + (e >= s && !i || e < s && i) && a.setData({ + gotop: !i + }); + }, + UpdateTabs: function(a) { + var e, i = this.data.Form.tabs; + for (var s in a) { + var o = a[s]; + for (var n in i) for (var r in i[n]) ("total" == n && i[n][r].key == o.mode || n == o.mode && i[n][r].key == o.type) && (i[n][r].num = o.number > 0 ? parseInt(i[n][r].num) + parseInt(o.number) : parseInt(i[n][r].num) - parseInt(-1 * o.number)); + } + this.setData((e = {}, t(e, "Form.tabs", i), t(e, "initialValue.Form.tabs", i), e)); + }, + ExecuteCallBack: function(a) { + var e = this, i = e.data.listIndex, s = e.data.listdata[i], o = a.action, n = a.index; + if ("uptime" == o) s.list[n].time = a.time; else { + var r = a.mode, d = a.toMode, l = a.type; + if (s.list.splice(n, 1), s.Total--, "updown" == o) { + var c = [ { + type: l, + mode: r, + number: -1 + }, { + type: l, + mode: d, + number: 1 + } ], u = e.data.getdata; + for (var h in u) if (d == u[h].mode && l == u[h].type && e.data.listdata[h].list.length > 0) { + var p; + e.setData((p = {}, t(p, "listdata." + h, { + list: [], + CurPage: 0 + }), t(p, "getdata." + h + ".page", 1), p)); + break; + } + } else if ("del" == o) c = [ { + type: l, + mode: r, + number: -1 + } ]; + e.UpdateTabs(c); + } + e.setData(t({}, "listdata." + i, s)); + }, + Lay: function(t) { + a.Lay(JSON.parse(JSON.stringify(t))); + }, + Commom: function(t) { + var e = JSON.parse(JSON.stringify((t.currentTarget, t))), i = t.currentTarget ? e.currentTarget.dataset.action : e.action; + a[i](e); + }, + Popup: function(t) { + a.Popup(t.currentTarget.dataset); + }, + onPullDownRefresh: function() { + this.initialize(); + } +}); \ No newline at end of file diff --git a/pages/member/list/manage.json b/pages/member/list/manage.json new file mode 100644 index 0000000..cf24d45 --- /dev/null +++ b/pages/member/list/manage.json @@ -0,0 +1,26 @@ +{ + "usingComponents": { + "van-search": "/vant/search/index", + "van-picker": "/vant/picker/index", + "van-tabbar": "/vant/tabbar/index", + "van-tabbar-item": "/vant/tabbar-item/index", + "van-transition": "/vant/transition/index", + "van-field": "/vant/field/index", + "van-radio": "/vant/radio/index", + "van-radio-group": "/vant/radio-group/index", + "van-cell": "/vant/cell/index", + "van-cell-group": "/vant/cell-group/index", + "van-rate": "/vant/rate/index", + "van-stepper": "/vant/stepper/index", + "van-checkbox": "/vant/checkbox/index", + "van-checkbox-group": "/vant/checkbox-group/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/pages/member/list/manage.wxml b/pages/member/list/manage.wxml new file mode 100644 index 0000000..1d5d590 --- /dev/null +++ b/pages/member/list/manage.wxml @@ -0,0 +1,90 @@ + + + + + + + + + + + {{item.time.name}}{{item.time.value}} + + {{item.djl.name}}{{item.djl.value}} + + + + {{item.state.text}} + + + + + + + + {{item.title}} + + + + + + {{info}} + + + + + + + + + + + + + {{info}} + + {{item.title}} + + + + + + + + + + + {{is.text}} + + + + + + {{btn.text}} + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pages/member/list/manage.wxss b/pages/member/list/manage.wxss new file mode 100644 index 0000000..8689783 --- /dev/null +++ b/pages/member/list/manage.wxss @@ -0,0 +1,233 @@ +@import "../../../__wuBaseWxss__/0.wxss"; + +@import "../../../vant/area/index.wxss"; + +page { + padding-bottom: 50px; +} + +.manageList { + min-height: 1px; +} + +.manageList .item { + overflow: hidden; + background: #fff; + margin: 10px 10px 0 10px; + padding: 0 10px; + border-radius: 2px; +} + +.manageList .top { + position: relative; + height: 36px; + line-height: 36px; + border-bottom: 1px #eee solid; +} + +.manageList .top .state { + text-align: right; + position: absolute; + right: 0; + top: 50%; + margin-top: -18px; +} + +.manageList .top .state.green { + color: #58ba5b; +} + +.manageList .top .state .van-icon { + line-height: 14px; + vertical-align: middle; + margin: -2.6px 2px 0 0; + font-size: 14px; +} + +.manageList .top .time { + color: #777; +} + +.manageList .top .time text { + font-family: Helvetica; + padding: 0 5px 0 3px; + color: #999; +} + +.manageList .top .time text:last-child { + padding-right: 0; +} + +.manageList .bot { + position: relative; +} + +.manageList .bot .gicon { + padding: 0; + left: 0; + right: auto; + top: 11px; +} + +.manageList .bot .gicon view { + border-radius: 2px; + padding: 3px 5px; + margin: 0 5px 0 0; + width: auto; + height: auto; +} + +.manageList .bot .gicon view:last-child { + margin: 0; +} + +.manageList .bot .gicon .van-icon.stats { + vertical-align: middle; + margin-top: -3px; + font-size: 22px; + margin-right: 2px; + border: 0; + color: #498BF8; +} + +.manageList .bot .gicon .van-icon.image { + color: #6a4; +} + +.manageList .info { + position: relative; + padding: 10px 0; + border-bottom: solid 1px #eee; +} + +.manageList .info .pic { + border: 1px #eee solid; + width: 96px; + height: 76px; + overflow: hidden; +} + +.manageList .info .pic image { + width: 100%; +} + +.manageList .info .flex-item { + position: relative; + display: block; + margin-left: 10px; +} + +.manageList .info .flex-item .tit { + text-overflow: -o-ellipsis-lastline; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + line-height: 16px; + font-size: 12px; + color: #333; + max-height: 32px; +} + +.manageList .info .flex-item .note { + color: #999; + position: absolute; + left: 0; + bottom: 5px; + width: 100%; +} + +.manageList .info .flex-item .note>view { + position: relative; +} + +.manageList .info .flex-item .note>view view { + display: inline-block; +} + +.manageList .info .flex-item .note .tright { + position: absolute; + right: 0; + bottom: 0; +} + +.manageList .info .flex-item .note .van-icon { + font-size: 14px; + margin-top: -2.6px; + vertical-align: middle; +} + +.manageList .info .flex-item .note .text { + padding: 0 2px; +} + +.manageList .info .flex-item .money { + font-family: Helvetica; + color: #f60; + padding-right: 2px; +} + +.manageList .info .flex-item .money:first-child:before { + content: '¥'; + font-size: 12px; +} + +.manageAction { + width: 48px; + background: #fafafa; +} + +.manageAction .Action-icon { + font-size: 20px; + color: #888; + line-height: 44px; + width: 40px; + text-align: center; +} + +.tab-search.van-search { + padding: 5px 5px 5px 10px; + margin-top: 1px; +} + +.released { + padding: 10px; + text-align: center; +} + +.released .flex-item { + color: #3e98e2; + margin: 10px; + padding: 20px 35px; + border: #cde4f6 1px solid; + font-size: 18px; + border-radius: 6px; + background: #edf6fe; +} + +.released .demand .flex-item { + color: #ff8521; + border: #ffe0cc 1px solid; + background: #fff8f4; +} + +.released .flex-item:hover { + opacity: .8; +} + +.released .title { + color: #666; + font-size: 18px; + line-height: 30px; +} + +.released text { + vertical-align: top; +} + +.released .van-icon { + font-size: 32px; + display: block; + margin-top: 3px; +} \ No newline at end of file diff --git a/pages/member/list/message.js b/pages/member/list/message.js new file mode 100644 index 0000000..74f7b81 --- /dev/null +++ b/pages/member/list/message.js @@ -0,0 +1,134 @@ +function t(t, a, e) { + return a in t ? Object.defineProperty(t, a, { + value: e, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[a] = e, t; +} + +var a = require("../../../common/common.js"); + +Page({ + data: { + search: "", + loading: !1, + Form: {}, + getdata: [], + listdata: [], + spin: !0, + listIndex: 0, + loadnot: !1, + gotop: !1, + popupForm: {} + }, + onLoad: function() { + a.init(this); + var t = this; + a.HttpMember("get/member/message", function(e) { + a.initializeRefresh(e); + var i = { + getdata: {}, + listdata: {} + }; + e.tabs.forEach(function(t, a) { + i.getdata[a] = { + mode: "message", + page: 1, + state: a + }, i.listdata[a] = { + list: [], + CurPage: 0 + }; + }), t.setData({ + getdata: i.getdata, + listdata: i.listdata + }), a.initialFun(!1), a.GetList(function(a) { + t.setData({ + spin: !1 + }); + }); + }); + }, + initialize: function() { + var e, i = this, n = i.data.listIndex; + i.setData((e = {}, t(e, "initialValue.listIndex", n), t(e, "listdata." + n, { + list: [], + CurPage: 0 + }), e)), a.initialFun(!0), a.GetList(function(t) { + wx.stopPullDownRefresh(); + }); + }, + onShow: function() { + a.init(this); + }, + searchChange: function(t) { + this.setData({ + search: t.detail + }); + }, + searchSubmit: function() { + var t = this, e = { + getdata: {}, + listdata: {} + }; + t.data.Form.tabs.forEach(function(a, i) { + e.getdata[i] = { + page: 1, + state: i, + mode: "message" + }, "" != t.data.search && (e.getdata[i].key = t.data.search), e.listdata[i] = { + list: [], + CurPage: 0 + }; + }), t.setData({ + getdata: e.getdata, + listdata: e.listdata + }), a.GetList(); + }, + onReachBottom: function() { + var e = this, i = e.data.listIndex, n = e.data.listdata[i]; + if (!e.data.loadnot && !e.data.loading && n.CurPage < n.TotalPage) { + var s = "getdata." + i + ".page"; + e.setData(t({}, s, 1 * e.data.getdata[i].page + 1)), a.GetList(); + } + }, + tabChange: function(t) { + var e = this, i = t.detail.index, n = e.data.listdata[i]; + i != e.data.listIndex && (e.setData({ + listIndex: i + }), n.CurPage ? n.CurPage < n.TotalPage ? e.loadnot = !1 : e.loadnot = !0 : a.GetList()); + }, + onPageScroll: function(t) { + var a = this, e = t.scrollTop, i = a.data.gotop, n = 2 * a.data.SystemInfo.windowHeight; + (e >= n && !i || e < n && i) && a.setData({ + gotop: !i + }); + }, + readMessage: function(e) { + var i = this, n = e.currentTarget.dataset, s = n.index, o = n.url; + 0 == n.state && (i.setData(t({}, "listdata." + i.data.listIndex + ".list[" + s + "].state", 1)), + a.Lay({ + action: "ajax", + method: "execute", + batch: "message_read", + id: n.id + })), wx.navigateTo({ + url: o + }); + }, + Lay: function(t) { + a.Lay(JSON.parse(JSON.stringify(t))); + }, + Commom: function(t) { + var e = JSON.parse(JSON.stringify((t.currentTarget, t))), i = t.currentTarget ? e.currentTarget.dataset.action : e.action; + a[i](e); + }, + Popup: function(t) { + a.Popup(t.currentTarget.dataset); + }, + onPullDownRefresh: function() { + this.initialize(); + }, + onShareAppMessage: function() {} +}); \ No newline at end of file diff --git a/pages/member/list/message.json b/pages/member/list/message.json new file mode 100644 index 0000000..a33c4a8 --- /dev/null +++ b/pages/member/list/message.json @@ -0,0 +1,13 @@ +{ + "usingComponents": { + "van-search": "/vant/search/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/pages/member/list/message.wxml b/pages/member/list/message.wxml new file mode 100644 index 0000000..c1ef650 --- /dev/null +++ b/pages/member/list/message.wxml @@ -0,0 +1,20 @@ + + + + + + + + + + + + {{item.sorts}}{{item.time}} + {{item.text}} + + + + + + + diff --git a/pages/member/list/message.wxss b/pages/member/list/message.wxss new file mode 100644 index 0000000..b2d8927 --- /dev/null +++ b/pages/member/list/message.wxss @@ -0,0 +1,45 @@ +@import "../../../__wuBaseWxss__/0.wxss"; + +.messageList .item { + position: relative; + overflow: hidden; + margin: 10px 10px 0 10px; +} + +.messageList .state { + background: #f00; + width: 8px; + height: 8px; + top: 50%; + left: 0; + position: absolute; + margin-top: -5px; + border-radius: 50px; +} + +.messageList .state.v1 { + background: #c1c1c1; +} + +.messageList .info { + margin-left: 18px; + background: #fff; + padding: 10px 10px 10px 13px; + line-height: 16px; + border: 1px #eee solid; + border-radius: 3px; +} + +.messageList .info .time { + color: #999; + line-height: 12px; + padding-bottom: 5px; +} + +.messageList .info text { + padding-right: 15px; +} + +.messageList .info .text { + text-indent: -6px; +} \ No newline at end of file diff --git a/pages/member/list/order.js b/pages/member/list/order.js new file mode 100644 index 0000000..b95cc89 --- /dev/null +++ b/pages/member/list/order.js @@ -0,0 +1,217 @@ +function t(t, a, e) { + return a in t ? Object.defineProperty(t, a, { + value: e, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[a] = e, t; +} + +var a = function(t) { + return t && t.__esModule ? t : { + default: t + }; +}(require("../../../vant/dialog/dialog")), e = require("../../../common/common.js"); + +Page({ + data: { + dropShow: !1, + dropTips: "请输入订单号", + dropField: "order", + dropName: "订单号", + searchVal: "", + loading: !1, + Form: {}, + getdata: [], + listdata: [], + animation: {}, + popupSpin: !1, + popupForm: {}, + previewList: [], + popup: [], + spin: !0, + listIndex: 0, + role: "buy", + loadnot: !1, + gotop: !1 + }, + onLoad: function(t) { + e.init(this); + var a = this; + e.HttpMember({ + url: "get/member/order", + data: { + role: t.role || a.data.role + } + }, function(o) { + e.initializeRefresh(o); + var i = { + getdata: {}, + listdata: {} + }; + o.tabs.forEach(function(t, a) { + i.getdata[a] = { + mode: o.role, + page: 1, + state: t.value + }, i.listdata[a] = { + list: [], + CurPage: 0 + }; + }), a.setData({ + role: t.role || a.data.role, + getdata: i.getdata, + listdata: i.listdata, + listIndex: t.mode || 0 + }), e.initialFun(!1), e.GetList(function(t) { + a.setData({ + spin: !1 + }); + }); + }); + }, + onShow: function() { + e.init(this); + }, + initialize: function() { + e.initialFun(!0), e.GetList(function(t) { + wx.stopPullDownRefresh(); + }); + }, + confirmHandle: function(t) { + var o = t.currentTarget.dataset; + a.default.alert({ + title: "提示", + message: decodeURIComponent(o.info), + overlay: !0, + showCancelButton: !0, + cancelButtonText: "返回", + closable: !1 + }).then(function() { + e.HttpMember({ + url: "deal/" + o.method, + data: o.data + }); + }).catch(function() {}); + }, + orderHandlePopup: function(t) { + var a = t.currentTarget.dataset; + e.Lay({ + table: "popupForm", + action: "pop", + method: "deal/" + a.method, + data: JSON.stringify({ + number: a.data, + role: this.data.role, + action: a.action, + index: a.index + }) + }); + }, + dropOpen: function() { + this.setData({ + dropShow: !this.data.dropShow + }); + }, + searchChange: function(t) { + this.setData({ + searchVal: t.detail + }); + }, + searchSubmit: function(t) { + var a = this, o = { + getdata: {}, + listdata: {} + }; + a.data.Form.tabs.forEach(function(t, e) { + o.getdata[e] = { + page: 1, + state: t.value, + mode: a.data.role, + first_input: a.data.searchVal, + first_select: a.data.dropField + }, o.listdata[e] = { + list: [], + CurPage: 0 + }; + }), a.setData({ + listIndex: 0, + getdata: o.getdata, + listdata: o.listdata + }), e.GetList(); + }, + dropChange: function(t) { + var a = this, e = t.detail, o = a.data.Form.dropValue[e.index]; + a.setData({ + dropTips: "请输入" + e.value, + dropField: o, + dropName: e.value, + dropShow: !1 + }); + }, + onReachBottom: function() { + var a = this, o = a.data.listIndex, i = a.data.listdata[o]; + if (!a.data.loadnot && !a.data.loading && i.CurPage < i.TotalPage) { + var n = "getdata." + o + ".page"; + a.setData(t({}, n, 1 * a.data.getdata[o].page + 1)), e.GetList(); + } + }, + tabChange: function(t) { + var a = this, o = t.detail.index, i = a.data.listdata[o]; + o != a.data.listIndex && (a.setData({ + listIndex: o + }), i.CurPage ? i.CurPage < i.TotalPage ? this.loadnot = !1 : this.loadnot = !0 : e.GetList()); + }, + onPageScroll: function(a) { + var e = this, o = a.scrollTop, i = e.data.gotop, n = 2 * e.data.SystemInfo.windowHeight; + if ((o >= n && !i || o < n && i) && e.setData({ + gotop: !i + }), e.data.Form.lazy && e.data.Form.lazy.add > 0) { + var r = e.data.Form.lazy, d = Math.ceil((o + e.data.SystemInfo.windowHeight) / r.height) * e.data.Form.lazy.add; + d > r.pos && e.setData(t({}, "Form.lazy.pos", d)); + } + }, + ExecuteCallBack: function(a) { + var o = this, i = o.data.listIndex, n = a.index; + e.Popup({ + action: "closeForm" + }), e.HttpMember({ + url: o.data.Form.apiurl, + data: { + mode: o.data.role, + first_input: a.ddbh, + first_select: "order" + } + }, function(a) { + if (1 === a.Total) { + var e = a.list.shift(), r = wx.createAnimation({ + duration: 600, + timingFunction: "ease" + }); + r.rotateY(90).step(), setTimeout(function() { + o.setData(t({}, "animation." + e.ddbh, r.export()), function() { + setTimeout(function() { + r.rotateY(0).step(), o.setData(t({}, "animation." + e.ddbh, r.export()), function() { + o.setData(t({}, "listdata." + i + ".list[" + n + "]", e)); + }); + }, 600); + }); + }, 100); + } + }); + }, + Lay: function(t) { + e.Lay(JSON.parse(JSON.stringify(t))); + }, + Commom: function(t) { + var a = JSON.parse(JSON.stringify((t.currentTarget, t))), o = t.currentTarget ? a.currentTarget.dataset.action : a.action; + e[o](a); + }, + Popup: function(t) { + e.Popup(t.currentTarget.dataset); + }, + onPullDownRefresh: function() { + this.initialize(); + }, + onShareAppMessage: function() {} +}); \ No newline at end of file diff --git a/pages/member/list/order.json b/pages/member/list/order.json new file mode 100644 index 0000000..644d859 --- /dev/null +++ b/pages/member/list/order.json @@ -0,0 +1,23 @@ +{ + "usingComponents": { + "down": "/utils/count-down/index", + "van-search": "/vant/search/index", + "van-picker": "/vant/picker/index", + "van-cell": "/vant/cell/index", + "van-cell-group": "/vant/cell-group/index", + "van-field": "/vant/field/index", + "van-radio": "/vant/radio/index", + "van-radio-group": "/vant/radio-group/index", + "van-checkbox": "/vant/checkbox/index", + "van-checkbox-group": "/vant/checkbox-group/index", + "van-rate": "/vant/rate/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/pages/member/list/order.wxml b/pages/member/list/order.wxml new file mode 100644 index 0000000..c8c2673 --- /dev/null +++ b/pages/member/list/order.wxml @@ -0,0 +1,57 @@ + + + + + {{dropName}} + 搜索 + + + + + + + + + + {{item.dfinfo.role}}:{{item.dfinfo.name}} + + + + ¥{{item.money}}{{item.jifen}}积分 + + + + + + + + {{item.thumb.value}} + + + + {{item.title}} + {{item.title}} + + + + + + + + + + {{item.time.text}} + {{item.time.value}} + + + + + {{btn.text}} + + + + + + + + diff --git a/pages/member/list/order.wxss b/pages/member/list/order.wxss new file mode 100644 index 0000000..993ed0f --- /dev/null +++ b/pages/member/list/order.wxss @@ -0,0 +1,169 @@ +@import "../../../__wuBaseWxss__/0.wxss"; + +@import "../../../vant/area/index.wxss"; + +.orderList .item { + overflow: hidden; + margin: 10px 10px 0 10px; + background: #fff; + padding: 0 10px; + border-radius: 2px; +} + +.orderList .r { + position: absolute; + right: 0; + top: 0; +} + +.orderList .top { + position: relative; + height: 40px; + line-height: 40px; + color: #999; +} + +.orderList .top .name { + color: #666; +} + +.orderList .top .money { + font-family: Helvetica; + color: red; +} + +.orderList .top .money text { + color: #f60; +} + +.orderList .top .money text:before { + content: " + "; + color: #ccc; +} + +.orderList .top>view { + display: inline-block; +} + +.orderList .top .contact view { + padding: 8px 3px; + vertical-align: middle; + margin-top: -2px; +} + +.orderList .top .contact view:first-child { + margin-left: 5px; +} + +.orderList .ts { + font-size: 12px; + height: 40px; + line-height: 40px; + position: relative; +} + +.orderList .ts .time { + color: #999; +} + +.orderList .ts .time .van-icon { + font-size: 19px; + line-height: 19px; + vertical-align: middle; + margin-top: -2px; +} + +.orderList .action { + padding: 10px 0; +} + +.orderList .action .van-button { + margin: 0 0 0 10px; + line-height: 23px; + font-size: 12px; + padding: 0 5px; + border: 1px solid #ededed; + color: #444; + height: 26px; + min-width: auto; +} + +.orderList .action .van-button.green { + color: #3a933a; + border-color: #3a933a; +} + +.orderList .action .van-button.orange { + color: #f60; + border-color: #f60; +} + +.orderList .action .van-button.gray { + color: #999; +} + +.orderList .action .van-button .van-icon { + vertical-align: middle; + margin-top: -2px; + margin-right: 2px; +} + +.orderList .info { + padding: 12px 0; + width: 100%; +} + +.orderList .info .pic { + color: #36c; + border: 1px #eee solid; + width: 96px; + height: 76px; + line-height: 76px; + overflow: hidden; + text-align: center; +} + +.orderList .info .pic image { + width: 100%; +} + +.orderList .info .attr { + margin-left: 10px; + position: relative; +} + +.orderList .info .gicon { + position: absolute; + left: 0; + bottom: 0; + top: auto; + right: auto; +} + +.orderList .info .gicon view { + border-radius: 2px; + padding: 3px 8px 4px 8px; + margin: 0 5px 0 0; + width: auto; + height: auto; +} + +.orderList .info .attr .title { + line-height: 20px; + color: #333; + max-height: 40px; + text-overflow: -o-ellipsis-lastline; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; +} + +.orderList .info .attr navigator { + color: #333; +} + +.nav_top { + border-bottom: solid 1px #eee; +} \ No newline at end of file diff --git a/pages/member/login.js b/pages/member/login.js new file mode 100644 index 0000000..0011d6c --- /dev/null +++ b/pages/member/login.js @@ -0,0 +1,167 @@ +var t = function(t) { + return t && t.__esModule ? t : { + default: t + }; +}(require("../../vant/dialog/dialog")), e = require("../../common/common.js"); + +Page({ + data: { + username: "", + password: "", + options: {}, + switchvalue: !1, + spin: !0, + current: 0, + tabs: [ { + key: 0, + title: "绑定已有帐号" + }, { + key: 1, + title: "新注册并绑定" + } ], + title: { + binding: "账号绑定", + authorize: "登录授权", + forget: "找回密码" + }, + userInfo: [], + placeholderStyle: "font-size:12px;color:#ccc", + forgetSteps: [ { + text: "账号信息" + }, { + text: "手机验证" + }, { + text: "重设密码" + } ], + forgetFlow: 0 + }, + initialize: function() { + var t = this; + wx.getSetting({ + success: function(e) { + e.authSetting["scope.userInfo"] && wx.getUserInfo({ + success: function(e) { + t.setData({ + userInfo: e.userInfo + }); + } + }); + } + }), t.setData({ + spin: !0, + popupSpin: !1, + Form: { + form: { + radio: {}, + checkbox: {}, + picker: {}, + rate: {} + } + }, + popupForm: { + form: { + radio: {}, + checkbox: {}, + picker: {} + } + } + }), e.Http("html/login", function(t) { + e.initializeRefresh(t); + }); + }, + onLoad: function(t) { + e.init(this), this.initialize(), t.action || (t.action = "authorize"), this.setData({ + options: t, + backfun: t.backfun || !1, + spin: !1 + }), wx.setNavigationBarTitle({ + title: this.data.title[t.action] + }); + }, + loginTypeChange: function(t) { + t.detail.value = 1 == t.detail.index ? "phone" : "name", e.Lay(t); + }, + notBindSubmit: function(n) { + var i = n.detail.target.dataset.title; + t.default.alert({ + title: "提示", + message: '您确定不绑定微信' + i + "吗?
绑定微信可以一键快捷登录账号", + closeOnClickOverlay: !1, + showCancelButton: !0, + cancelButtonText: "不绑定" + i, + confirmButtonText: "绑定" + i + }).then(function() { + e.Lay(n); + }).catch(function() { + n.detail.value.notbind = !0, e.Lay(n); + }); + }, + formSubmit: function(t) { + if ("notbind" == t.detail.target.dataset.method) return this.notBindSubmit(t); + e.Lay(t); + }, + Lay: function(t) { + e.Lay(JSON.parse(JSON.stringify(t))); + }, + Commom: function(t) { + var n = JSON.parse(JSON.stringify((t.currentTarget, t))), i = t.currentTarget ? n.currentTarget.dataset.action : n.action; + e[i](n); + }, + Popup: function(t) { + e.Popup(t.currentTarget.dataset); + }, + register: function() { + wx.navigateTo({ + url: "register/register" + }); + }, + backurl: function() { + wx.getStorageSync("loginback"); + this.setData({ + forgetFlow: 0 + }), this.data.backfun ? e.Lay({ + action: "backfun", + info: this.data.backfun + }) : wx.reLaunch({ + url: "/pages/member/member" + }); + }, + binding: function() { + this.setData({ + "options.action": "binding" + }); + }, + bindGetUserInfo: function(t) { + var n = this; + t.detail; + e.Wxlogin(function(e) { + n.WxloginCallBack({ + state: e + }, t); + }); + }, + WxloginCallBack: function(t, n) { + var i = this; + "success" == t.state ? i.backurl() : "binding" == t.state ? i.binding() : "authorize" == t.state && (n.detail.userInfo ? (n.detail.value = { + endata: encodeURIComponent(n.detail.encryptedData), + iv: encodeURIComponent(n.detail.iv), + signature: n.detail.signature + }, e.Lay(n)) : wx.showModal({ + content: "必须授权才能继续操作,是否重新手动授权?", + confirmText: "授权", + cancelText: "取消", + success: function(t) { + t.confirm ? wx.openSetting({ + success: function(t) { + t.authSetting["scope.userInfo"] && i.initialize(); + } + }) : wx.reLaunch({ + url: "/pages/index/index" + }); + } + })); + }, + onPullDownRefresh: function() { + this.initialize(); + } +}); \ No newline at end of file diff --git a/pages/member/login.json b/pages/member/login.json new file mode 100644 index 0000000..e575d2a --- /dev/null +++ b/pages/member/login.json @@ -0,0 +1,14 @@ +{ + "usingComponents": { + "van-field": "../../vant/field/index", + "van-steps": "../../vant/steps/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/pages/member/login.wxml b/pages/member/login.wxml new file mode 100644 index 0000000..6d8bed7 --- /dev/null +++ b/pages/member/login.wxml @@ -0,0 +1,60 @@ + + + + + + + + + + 微信{{!userInfo.language?'授权':''}}登录 + + + + + + + diff --git a/pages/member/login.wxss b/pages/member/login.wxss new file mode 100644 index 0000000..c2d0918 --- /dev/null +++ b/pages/member/login.wxss @@ -0,0 +1,67 @@ +@import "../../__wuBaseWxss__/0.wxss"; + +@import "../../__wuBaseWxss__/1.wxss"; + +page { + background: #fff; +} + +.notbind { + background: none; + border: 0; + height: 20px; + line-height: 20px; + font-size: 14px; + color: #666; + margin: 20px 0; +} + +.notbind:after { + display: none; +} + +.login_wrap { + height: 100%; + display: flex; + flex-direction: column; +} + +.portrait { + text-align: center; + padding: 100rpx 0; + flex: 1; + background: #f5f5f5; +} + +.portrait image { + overflow: hidden; + border: 3px solid #fff; + border-radius: 50%; + width: 80px; + height: 80px; +} + +.login_content { + padding: 20px 20px 0 20px; +} + +.login_bottom { + position: fixed; + bottom: 10px; + left: 0; + width: 100%; + text-align: center; +} + +.login_bottom view { + display: inline-block; + padding: 5px; + font-size: 14px; + color: #9C9C9C; + color: #D4D4D4; +} + +.login_bottom navigator { + display: inline-block; + padding: 5px; +} \ No newline at end of file diff --git a/pages/member/member.js b/pages/member/member.js new file mode 100644 index 0000000..e9f0822 --- /dev/null +++ b/pages/member/member.js @@ -0,0 +1,72 @@ +function t(t, i, e) { + return i in t ? Object.defineProperty(t, i, { + value: e, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[i] = e, t; +} + +var i = require("../../common/common.js"); + +Page({ + data: { + spin: !0, + CustomNavigation: !0, + timestamp: 0 + }, + initialize: function() { + this.setData({ + spin: !0, + popupSpin: !1, + Form: { + form: { + radio: {}, + checkbox: {}, + picker: {}, + rate: {} + } + }, + popupForm: { + form: { + radio: {}, + checkbox: {}, + picker: {} + } + }, + timestamp: i.timestamp() + }), i.HttpMember("get/member/index?islogin=0", function(t) { + i.initializeRefresh(t); + }); + }, + onShow: function(t) { + i.init(this), i.timestamp() - this.data.timestamp >= 30 && this.initialize(); + }, + signHide: function() { + var i = this.data.Form.form; + i.radio.sign = !0, this.setData(t({}, "Form.form", i)); + }, + onLoad: function() { + i.init(this); + }, + onPullDownRefresh: function() { + this.initialize(); + }, + swiperAutoHeight: function(e) { + var n = this, r = e.currentTarget.dataset, a = (n.data.Form.form.swiperHeight || {})[r.name] || {}; + a[e.detail.current] || i.querySelect("#swiper-" + r.name + "-" + e.detail.current, function(i) { + a[e.detail.current] = "height:" + i.height + "px;", n.setData(t({}, "Form.form.swiperHeight." + r.name, a)); + }); + }, + Lay: function(t) { + i.Lay(JSON.parse(JSON.stringify("Event" == t.type ? t.detail : t))); + }, + Commom: function(t) { + var e = JSON.parse(JSON.stringify((t.currentTarget, t))), n = t.currentTarget ? e.currentTarget.dataset.action : e.action; + i[n](e); + }, + Popup: function(t) { + i.Popup(t.currentTarget.dataset); + }, + onShareAppMessage: function() {} +}); \ No newline at end of file diff --git a/pages/member/member.json b/pages/member/member.json new file mode 100644 index 0000000..6f94ff0 --- /dev/null +++ b/pages/member/member.json @@ -0,0 +1,16 @@ +{ + "usingComponents": { + "van-field": "/vant/field/index", + "van-cell": "/vant/cell/index", + "van-cell-group": "/vant/cell-group/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + }, + "navigationStyle": "custom" +} \ No newline at end of file diff --git a/pages/member/member.wxml b/pages/member/member.wxml new file mode 100644 index 0000000..0ff61d3 --- /dev/null +++ b/pages/member/member.wxml @@ -0,0 +1,5 @@ + + + + + diff --git a/pages/member/member.wxss b/pages/member/member.wxss new file mode 100644 index 0000000..c04debc --- /dev/null +++ b/pages/member/member.wxss @@ -0,0 +1,361 @@ +@import "../../__wuBaseWxss__/0.wxss"; + +@import "../../__wuBaseWxss__/1.wxss"; + +.m-bg { + height: 180px; + background-image: linear-gradient(to right,#8debff,#6cacff); + background-color: #6cacff; + border-radius: 0 0 16px 16px; + z-index: 0; + position: absolute; + top: 0; + left: 0; + width: 100%; +} + +.member { + position: relative; + z-index: 1; + padding: 6px 15px 15px 15px; + font-size: 1rem; +} + +.m-topicon { + z-index: 999; + height: 28px; + position: absolute; + top: -30px; + left: 15px; +} + +.m-topicon .van-icon { + color: #fafafa; + font-size: 28px; + line-height: 28px; + height: 28px; +} + +.m-box { + background: #fff; + border-radius: 8px; + padding: 15px; + margin-bottom: 15px; + box-shadow: 0 1px 4px #e0e0e0; +} + +.m-box:last-child { + margin: 0; +} + +.m-user { + position: relative; +} + +.m-user .myid { + font-size: 0.8rem; + position: absolute; + right: -5px; + top: -5px; + color: #c0c0c0; +} + +.m-user image { + width: 50px; + height: 50px; + border-radius: 100%; + border: none; +} + +.m-user .info { + padding: 3px 0 0 12px; + overflow: hidden; +} + +.m-user .name { + font-weight: 700; + margin-bottom: 2px; + padding-right: 2.2rem; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.m-assets { + text-align: center; + padding: 15px 0 0 0; + font-size: 0.8rem; +} + +.m-assets .flex-item { + position: relative; +} + +.m-assets .flex-item:not(:last-child):after { + content: " "; + position: absolute; + pointer-events: none; + box-sizing: border-box; + transform-origin: center; + top: -30%; + left: -50%; + right: -50%; + bottom: -30%; + transform: scale(.5); + border: 0 solid #e5e5e5; + border-right-width: 1px; +} + +.m-assets .number { + font-size: 1rem; + color: #333; + padding-bottom: 2px; +} + +.m-notice { + color: #666; + padding: 10px 0 0 0; + margin-top: 15px; +} + +.m-notice .van-icon { + font-size: 1.2rem; + color: #9b9b9b; + vertical-align: middle; + margin-top: -3px; +} + +.m-notice .flex-item { + padding: 0 5px; + height: 20px; + color: #666; +} + +.m-notice swiper,.m-notice swiper view { + height: 20px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.m-block { + text-align: center; + padding: 12px 0 12px 0; +} + +.m-block .row-flex { + padding: 8px 0; +} + +.m-block .flex-item { + line-height: 20px; +} + +.m-block .flex-item .icon { + display: inline-block; + position: relative; +} + +.m-block .flex-item .number { + position: absolute; + top: -5px; + right: -5px; + border-radius: 12px; + font-size: 12px; + line-height: 12px; + background: #fff; + border: 1px #FEA832 solid; + color: #FEA832; + padding: 1px 3px; + min-width: 8px; + text-align: center; +} + +.m-block .flex-item .count0 { + display: none; +} + +.m-block .flex-item text { + display: block; + padding-top: 3px; +} + +.m-block .flex-item .van-icon { + font-size: 1.8rem; + color: #a9a9a9; +} + +.m-title { + padding: 3px 0 12px 0; + margin: 0 15px 8px 15px; + line-height: 1.2rem; +} + +.m-title .row-flex { + padding: 0; +} + +.m-title .van-icon { + margin-top: -2px; +} + +.m-title text { + font-weight: 700; + font-size: 1rem; +} + +.m-title .flex-item { + padding: 0 3px; + font-size: .9rem; + color: #a9a9a9; + text-align: right; +} + +.m-icon .wx-swiper-dots.wx-swiper-dots-horizontal { + bottom: -10px; +} + +.m-icon .wx-swiper-dot { + width: 16px; + display: inline-flex; + height: 2px; + opacity: .8; + justify-content: space-between; +} + +.m-icon .wx-swiper-dot::before { + content: ''; + flex-grow: 1; + background: #ccc; +} + +.m-icon .wx-swiper-dot-active::before { + background: #f80; +} + +.m-strip .row-flex { + line-height: 20px; + padding: 10px 0; +} + +.m-strip .row-flex:first-child { + padding-top: 3px; +} + +.m-strip .row-flex:last-child { + padding-bottom: 3px; +} + +.m-strip .van-icon { + font-size: 1.3rem; + color: #9b9b9b; + vertical-align: middle; + margin-top: -3px; +} + +.m-strip .flex-item { + padding: 0 3px; + font-size: .9rem; + color: #999; + text-align: right; +} + +.m-strip text { + padding-left: 8px; +} + +.datadiff_top { + position: fixed; + width: 100%; + top: 42px; + border-bottom: 1px solid #e5e5e5; + box-shadow: 0 1px 2px #e6e6e6; + background: #fff; +} + +.datadiff .datadiff_top tr td { + text-align: left; + padding: 10px; + color: #999; +} + +.datadiff_bottom { + border-top: 2px solid rgb(222,229,237); + position: fixed; + width: 100%; + bottom: 0; + background: #f2f5f8; +} + +.datadiff_bottom tr td { + background-color: #f2f5f8; +} + +.datadiff_center { + width: 100%; + margin-bottom: 44px; +} + +.datadiff_center td { + border-bottom: rgb(222,229,237) solid 1px; +} + +.datadiff .datadiff_bottom tr td { + text-align: center; + padding: 10px; +} + +.datadiff tr td { + text-align: center; + padding: 15px; + word-wrap: break-word; + word-break: break-all; +} + +.datadiff tr td.tcer { + background: #fbfdff; + border-left: rgb(222,229,237) solid 1px; + border-right: rgb(222,229,237) solid 1px; +} + +.datadiff .action { + top: 42px; + padding: 10px 0; + position: fixed; + right: 5px; + width: 100%; + text-align: center; +} + +.datadiff .action { + top: 42px; + padding: 10px 0; + position: fixed; + right: 5px; + width: 100%; + text-align: center; +} + +.datadiff img { + border: #e5e5e5 1px solid; + border-radius: 2px; + box-shadow: 0 2px 3px rgba(0,0,0,.1); +} + +.datadiff_txt { + display: block; + text-align: center; +} + +.datadiff_img img { + margin: 3px; +} + +.datadiff_action { + bottom: 40px; + padding: 10px 0; + position: fixed; + right: 0; + width: 100%; + text-align: center; +} \ No newline at end of file diff --git a/pages/member/myorder.js b/pages/member/myorder.js new file mode 100644 index 0000000..43f0268 --- /dev/null +++ b/pages/member/myorder.js @@ -0,0 +1,179 @@ +function t(t, i, e) { + return i in t ? Object.defineProperty(t, i, { + value: e, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[i] = e, t; +} + +var i = function(t) { + return t && t.__esModule ? t : { + default: t + }; +}(require("../../vant/dialog/dialog")), e = require("../../common/common.js"); + +Page({ + data: { + bh: "", + spin: !0, + popupSpin: !1, + popup: [], + flowShow: !1, + timestamp: 0, + gotop: !1, + row: [], + height: { + ListAction: 0 + }, + historyDispute: {}, + previewList: [], + Form: { + form: { + radio: {}, + checkbox: {}, + picker: {} + } + }, + popupForm: { + form: { + radio: {}, + checkbox: {}, + picker: {} + } + } + }, + onLoad: function(t) { + t.bh && this.setData({ + bh: t.bh + }), e.init(this), this.initialize(!1); + }, + onShow: function() { + e.init(this), this.data.Form.form.formLoad && this.initialize(); + }, + initialize: function() { + var t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0], i = this; + i.setData({ + spin: !0 + }), e.initialFun(t), e.HttpMember("get/myorder/" + i.data.bh, function(t) { + if (wx.setNavigationBarTitle({ + title: "订单详情" + }), wx.setNavigationBarColor({ + frontColor: "#ffffff", + backgroundColor: "#FE952B", + animation: { + duration: 0, + timingFunc: "easeIn" + } + }), 0 === t.state) return e.Lay(i, { + info: t.info + }); + i.setData({ + row: t, + spin: !1, + timestamp: e.timestamp() + }), wx.stopPullDownRefresh(); + }); + }, + flowChange: function() { + this.setData({ + flowShow: !this.data.flowShow + }); + }, + onPageScroll: function(t) { + var i = this, e = t.scrollTop, a = i.data.gotop, o = 2 * i.data.SystemInfo.windowHeight; + if (i.data.height.main >= o) { + var n = Math.ceil((i.data.height.main - i.data.SystemInfo.windowHeight) / 2); + (e <= n && !0 === a || e > n && !0 !== a) && i.setData({ + gotop: !0 !== a || i.data.height.bottom + }); + } + }, + htmlHeight: function() { + var t = this; + wx.createSelectorQuery().selectAll("#main,#ListAction").boundingClientRect(function(i) { + var e = { + bottom: 10 + }; + for (var a in i) { + var o = i[a]; + e[o.id] = Math.ceil(o.height), e.bottom += e[o.id]; + } + t.setData({ + height: e, + gotop: e.bottom >= 2 * t.data.SystemInfo.windowHeight && e.bottom + }); + }).exec(); + }, + Lay: function(t) { + e.Lay(JSON.parse(JSON.stringify(t))); + }, + Commom: function(t) { + var i = JSON.parse(JSON.stringify((t.currentTarget, t))), a = t.currentTarget ? i.currentTarget.dataset.action : i.action; + e[a](i); + }, + Popup: function(t) { + e.Popup(t.currentTarget.dataset); + }, + confirmHandle: function(t) { + var a = t.currentTarget.dataset; + i.default.alert({ + title: "提示", + message: decodeURIComponent(a.info), + overlay: !0, + showCancelButton: !0, + cancelButtonText: "返回", + closable: !1 + }).then(function() { + e.HttpMember({ + url: "deal/" + a.method, + data: a.data + }); + }).catch(function() {}); + }, + orderHandlePopup: function(t) { + var i = t.currentTarget.dataset; + e.Lay({ + action: "pop", + method: "deal/" + i.method, + data: JSON.stringify({ + number: this.data.bh, + role: this.data.row.myRole, + action: i.action, + utime: this.data.row.order.utime + }) + }); + }, + orderHide: function() { + this.setData({ + Form: { + form: { + radio: {}, + checkbox: {}, + picker: {} + } + } + }), this.WxValidate = {}; + }, + disputeChange: function() { + var i = this, a = i.data.historyDispute; + if (i.setData({ + popupSpin: !0 + }), a.html) { + var o; + i.setData((o = {}, t(o, "historyDispute.show", !a.show), t(o, "popupSpin", !1), + o)); + } else e.HttpMember("get/myorder/" + i.data.bh + "/dispute", function(e) { + var a; + i.setData((a = {}, t(a, "initialValue.historyDispute.html", e.html), t(a, "historyDispute", e), + t(a, "popupSpin", !1), a)); + }); + wx.setNavigationBarTitle({ + title: a.show ? "退款历史记录" : "订单详情" + }); + }, + onPullDownRefresh: function() { + this.initialize(); + }, + onShareAppMessage: function() {} +}); \ No newline at end of file diff --git a/pages/member/myorder.json b/pages/member/myorder.json new file mode 100644 index 0000000..6735a47 --- /dev/null +++ b/pages/member/myorder.json @@ -0,0 +1,25 @@ +{ + "enablePullDownRefresh": false, + "usingComponents": { + "down": "/utils/count-down/index", + "van-steps": "/vant/steps/index", + "van-field": "/vant/field/index", + "van-radio": "/vant/radio/index", + "van-radio-group": "/vant/radio-group/index", + "van-cell": "/vant/cell/index", + "van-cell-group": "/vant/cell-group/index", + "van-stepper": "/vant/stepper/index", + "van-picker": "/vant/picker/index", + "van-rate": "/vant/rate/index", + "van-checkbox": "/vant/checkbox/index", + "van-checkbox-group": "/vant/checkbox-group/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/pages/member/myorder.wxml b/pages/member/myorder.wxml new file mode 100644 index 0000000..6ffe194 --- /dev/null +++ b/pages/member/myorder.wxml @@ -0,0 +1,111 @@ + + + + + + + + + {{row.order.state}} + 订单号:{{bh}} + + + + + + + + + + + + + + + + + + {{data.text}} + + + + + {{index}} + + + + + + + {{txt.title}} + {{txt.time}} + + + {{txt.text}} + + + 图片附件 + + + + + + + + + + + + + 非图片附件(仅能在PC端查看内容) + + + {{data}} + + + + + + + + + + + + + + + + + + {{btn.value}} + + + + + + + {{row.order.typename}} + + + {{row.order.tit}} + 金额:{{row.order.money}} + 订单号:{{bh}} + + + + + + {{item.text}} + + + + + + + + + + + + diff --git a/pages/member/myorder.wxss b/pages/member/myorder.wxss new file mode 100644 index 0000000..1e5175b --- /dev/null +++ b/pages/member/myorder.wxss @@ -0,0 +1,652 @@ +@import "../../__wuBaseWxss__/0.wxss"; + +@import "../../vant/area/index.wxss"; + +.oinfo { + overflow: hidden; + width: 100%; + background: #fff; +} + +.oinfo .row-flex { + margin: 0 10px; +} + +.oinfo .tright { + padding: 12px 10px 12px 0; + line-height: 20px; + color: #000; + border-right: 1px #f1f1f1 solid; + width: 65px; +} + +.oinfo .flex-item { + padding: 12px 0 12px 10px; + line-height: 20px; + position: relative; +} + +.oinfo navigator,.oinfo text,.oinfo view { + word-break: break-all; +} + +.oinfo .flex-item .contact { + position: absolute; + right: 0; + top: 50%; + height: 40px; + margin-top: -20px; +} + +.oinfo .flex-item .contact view { + padding: 10px 3px; +} + +.oinfo .flex-item .but { + margin: 5px 5px 0 0; + height: 20px; + line-height: 20px; + padding: 0 5px; + border: 1px solid #6a4; + background: #eff; + color: #6a4; + display: inline-block; + border-radius: 2px; +} + +.oinfo .flex-item .but.buy_install { + margin-right: 100px; + border-color: #c9c9c9; + background: #fff; + color: #666; +} + +.oinfo .txt .top { + overflow: hidden; + background: #f9f9f9; + color: #666; + padding: 5px 10px; + border-bottom: #eee solid 1px; + line-height: 20px; +} + +.oinfo .txt .top .left { + color: #000; +} + +.oinfo .no .bottom,.oinfo .ok .bottom { + padding: 8px 10px; +} + +.oinfo .txt .top:before { + content: '有效'; + color: #090; + margin-left: 10px; + float: right; +} + +.oinfo .txt .no .top:before { + content: '无效'; + color: red; +} + +.oinfo .txt .box { + border: #eee solid 1px; + margin-top: 10px; + border-radius: 3px; +} + +.oinfo .txt .box:first-child { + margin: 0; +} + +.oinfo .txt .text { + line-height: 18px; +} + +.oinfo .txt .filetit { + border: 1px solid #f1f1f1; + background: #f9f9f9; + padding: 5px 10px; + line-height: 20px; + margin-top: 8px; +} + +.oinfo .txt .other { + border: 1px solid #eee; + border-top: 0; +} + +.oinfo .txt .other view { + line-height: 18px; + margin: 0 5px; + padding: 2px 0; + border-bottom: 1px solid #f1f1f1; +} + +.ostate { + overflow: hidden; + background: #fff; + border-bottom: 1px solid #f6f6f6; +} + +.ostate .top { + position: relative; + font-size: 14px; + padding: 0 5px; + line-height: 32px; + height: 32px; + border-bottom: 2px solid #fe952b; + border-left: 0; + border-right: 0; +} + +.ostate .top .icon { + width: 34px; +} + +.ostate .top .icon .van-icon { + color: #fe952b; + margin-bottom: -1.5px; + font-size: 34px; + line-height: 34px; +} + +.ostate .top .more { + width: 22px; + padding-left: 5px; +} + +.ostate .top .more .van-icon { + font-size: 22px; + line-height: 31px; +} + +.ostate .top .state { + color: #fe952b; + padding-left: 5px; + width: 110px; + font-size: 14px; +} + +.ostate .top .tright { + color: #666; +} + +.ohtml { + position: relative; + overflow: hidden; + background: #fff7eb; + text-align: left; + color: #666; +} + +.ohtml .tmain { + padding: 5px 15px; + font-size: 12px; +} + +.ohtml .p { + border-top: 1px dotted #ccc; + padding: 10px 0; +} + +.ohtml .p:first-child { + border-top: 0; +} + +.ohtml .p:after { + content: ";"; +} + +.ohtml .p:last-child:after { + content: "。"; +} + +.ohtml .p>view { + display: inline; +} + +.ohtml .u { + text-decoration: underline; +} + +.ostate_tips div.ostate_ico { + margin-top: 5px; + height: 35px; + float: left; + width: 2.5rem; + background: url(//static.huzhan.com/img/claims_ico.png) no-repeat; +} + +.ostate_suc div.ostate_ico { + background-position: .8rem -80px; +} + +.ostate_suc .p { + color: #51863c; +} + +.ostate_ing div.ostate_ico { + background-position: .8rem -1px; +} + +.ostate_ing .p { + color: #f60; +} + +.ostate_no div.ostate_ico { + background-position: .8rem -40px; +} + +.ostate_no .p { + color: #97731f; +} + +.appeal { + position: relative; + margin: 8px 0 -2px 0; + border: #a6c5ef solid 1px; + background: #edf7ff; + padding: 8px 10px; + border-radius: 4px; + box-shadow: 0 1px 3px #e6ecf3; +} + +.dispute { + position: relative; + margin: 0 0 -2px 0; + overflow: hidden; + border: 1px solid #e5e5e5; + background: #fff; + border-radius: 5px; + padding: 10px; +} + +.dispute.history { + margin: 0; + border-radius: 0; + border: 0; +} + +.dispute .dl { + margin-bottom: 10px; + padding: 5px 0 5px 42px; + overflow: hidden; + position: relative; +} + +.dispute .dl.mine { + padding: 5px 42px 5px 0; + text-align: right; +} + +.dispute .avatar { + position: absolute; + left: 0; + width: 32px; + height: 32px; + border-radius: 50%; + top: 5px; + overflow: hidden; +} + +.dispute .avatar image { + width: 100%; + border-radius: 50%; +} + +.dispute .mine .avatar { + left: auto; + right: 0; +} + +.dispute .head { + overflow: hidden; +} + +.dispute .head view { + display: inline-block; + line-height: 22px; + font-size: 12px; + white-space: nowrap; + color: #999; + padding-right: 10px; + font-style: normal; +} + +.dispute .body { + margin: 3px 0 0 0; + position: relative; + padding: 10px; + background: #f0f0f0; + border-radius: 3px; + color: #333; + word-break: break-all; + margin-right: 35px; +} + +.dispute .body:after { + content: ''; + position: absolute; + left: -6px; + top: 15px; + width: 0; + height: 0; + border-style: solid dashed dashed; + border-color: #f0f0f0 transparent transparent; + overflow: hidden; + border-width: 6px; +} + +.dispute .mine .head view { + float: right; + padding-left: 10px; + padding-right: 0; +} + +.dispute .mine .body { + line-height: 1.5; + margin: 0 0 0 35px; +} + +.dispute .mine .body:after { + left: auto; + right: -6px; +} + +.dispute .fortips { + padding: 10px 0; + text-align: center; +} + +.dispute .fortips .body { + float: none; + background: #fafafa; + border: #ddd solid 1px; + padding: 8px 10px; + margin: 0; + border-radius: 5px; + display: inline-block; + box-shadow: 1px 1px 8px rgba(0,0,0,.2); +} + +.dispute .fortips .body:after { + display: none; +} + +.dispute .moneyInfo view { + padding: 4px 3px 5px 8px; + border: 1px solid #e0e0e0; + border-bottom: 1px solid #c5c5c5; + box-shadow: 0 1px 1px #dbdbdb; + background: #fafafa; + border-radius: 3px; + margin-bottom: 5px; + color: #555; + display: inline-block; +} + +.dispute .notMoney .moneyInfo view,.dispute .notUpquote .txt { + text-decoration: line-through; +} + +.ohis { + text-align: right; + background: #f6f7f6; +} + +.ohis view { + display: inline-block; + font-size: 12px; + color: #999; + margin: 8px 8px 8px 0; + padding: 2px 6px; + background: #f5faff; + border: #d4e7f6 solid 1px; +} + +.oflow { + background: #fff; + overflow: hidden; + padding: 10px 0 10px 19px; +} + +.oflow .row { + position: relative; + padding: 0 0 0 19px; + border-left: 1px solid #cecece; + color: #999; +} + +.oflow .row:before { + content: ""; + position: absolute; + left: -6px; + top: 50%; + margin-top: -5px; + border-radius: 100%; + width: 10px; + height: 10px; + background: #cecece; +} + +.oflow .info { + border-bottom: 1px solid #f1f1f1; + padding: 15px 0; + font-size: 14px; +} + +.oflow .info .text { + line-height: 25px; +} + +.oflow .info .desc { + font-size: 12px; + color: #999; +} + +.oflow .row:last-child .info { + border: 0; +} + +.oflow .row.cur .text { + color: #333; +} + +.oflow .row.cur:before { + background: #f55b5b; + border: 2px solid #fbc1c1; + left: -8px; + margin-top: -7px; + width: 12px; + height: 12px; +} + +.ListAction { + bottom: 0; + top: auto; + text-align: right; + overflow: hidden; + padding-top: 0; + border-top: 1px #eee solid; + background: #fff; + width: 100%; +} + +.ListAction>view { + padding-left: 42px; + position: relative; +} + +.ListAction .shuaxin { + position: absolute; + left: 10px; + top: 50%; + margin-top: -7px; + width: 22px; + height: 22px; + line-height: 22px; +} + +.ListAction .shuaxin .van-icon { + font-size: 22px; + color: #ccc; +} + +.ListAction .van-button { + margin: 10px 10px 0 0; +} + +.myInfo { + overflow: hidden; + margin: 10px 0 0 0; + border: #ffe0cc solid 2px; + background: #fff8f4; +} + +.myInfo .row-flex { + padding: 5px; + border-top: #ffe0cc solid 1px; + line-height: 18px; +} + +.myInfo .label { + font-weight: 700; + width: 40px; +} + +.myInfo .update { + text-align: right; + width: 50px; +} + +.myInfo .tit { + background: #ffe0cc; + font-weight: 700; + font-size: 14px; +} + +.hisInfo { + background: #fafafa; + margin: 0 10px 10px 10px; + padding: 1px 10px; + border-radius: 2px; + line-height: 20px; + border: 1px solid #e5e5e5; +} + +.hisInfo .label { + color: #222; + font-weight: 700; + display: inline; +} + +.hisInfo .label:after { + content: ':'; +} + +.hisInfo .row { + padding: 5px 0; + border-bottom: 1px solid #f2f2f2; +} + +.hisInfo .row:last-child { + border: 0; +} + +.hisInfo:first-child { + margin-top: 10px; +} + +.appendSee { + margin: 10px; + background: #fff; +} + +.appendSee .row-flex { + border: #a6c5ef solid 3px; + border-top: 0; + line-height: 20px; +} + +.appendSee .head { + background: #a6c5ef; + padding: 5px 0 2px 0; + color: #fff; + text-align: center; +} + +.appendSee .head .flex-item { + padding: 0; +} + +.appendSee .state .flex-item>view>view { + display: inline; +} + +.appendSee .f3div { + position: relative; + height: 100%; +} + +.appendSee .f3wx { + text-align: center; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1; +} + +.appendSee .f3wx view { + position: absolute; + width: 100%; + top: 0; + left: 0; + height: 100%; + background: #fff; + opacity: .9; +} + +.appendSee .f3wx view view { + line-height: 35px; + font-weight: 700; + height: 35px; + left: 0; + top: 70px; + color: red; + background: 0 0; + -khtml-opacity: 1; + opacity: 1; + font-family: serif; +} + +.appendSee .row-flex.state { + background: #edf7ff; + color: #222; + border-top: #a6c5ef solid 3px; +} + +.appendSee .flex-item { + border-left: #a6c5ef solid 1px; + padding: 10px; +} + +.appendSee .label { + font-size: 14px; + text-align: right; + width: 40px; + padding: 10px 10px 10px 0; + font-weight: 700; +} + +.appendSee .info { + padding-top: 5px; + margin-top: 5px; + overflow: hidden; + position: relative; + word-break: break-all; + border-top: #a6c5ef dashed 1px; +} \ No newline at end of file diff --git a/project.config.json b/project.config.json new file mode 100644 index 0000000..c15847c --- /dev/null +++ b/project.config.json @@ -0,0 +1,53 @@ +{ + "description": "项目配置文件", + "packOptions": { + "ignore": [] + }, + "setting": { + "urlCheck": false, + "es6": true, + "postcss": true, + "minified": true, + "newFeature": true, + "coverView": true, + "autoAudits": false, + "showShadowRootInWxmlPanel": true, + "scopeDataCheck": false, + "checkInvalidKey": true, + "checkSiteMap": true, + "uploadWithSourceMap": true, + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + } + }, + "compileType": "miniprogram", + "libVersion": "2.11.1", + "appid": "wxe2b2f69be5c4c0b5", + "projectname": "%E4%BA%92%E7%AB%99", + "debugOptions": { + "hidedInDevtools": [] + }, + "isGameTourist": false, + "simulatorType": "wechat", + "simulatorPluginLibVersion": {}, + "condition": { + "search": { + "current": -1, + "list": [] + }, + "conversation": { + "current": -1, + "list": [] + }, + "game": { + "currentL": -1, + "list": [] + }, + "miniprogram": { + "current": -1, + "list": [] + } + } +} \ No newline at end of file diff --git a/sitemap.json b/sitemap.json new file mode 100644 index 0000000..72a3df2 --- /dev/null +++ b/sitemap.json @@ -0,0 +1,9 @@ +{ + "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", + "rules": [ + { + "action": "allow", + "page": "*" + } + ] +} \ No newline at end of file diff --git a/sitemap96.json b/sitemap96.json new file mode 100644 index 0000000..ca02add --- /dev/null +++ b/sitemap96.json @@ -0,0 +1,7 @@ +{ + "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", + "rules": [{ + "action": "allow", + "page": "*" + }] +} \ No newline at end of file diff --git a/static/images/cart.png b/static/images/cart.png new file mode 100644 index 0000000000000000000000000000000000000000..909b3e359c8e31a6eb866a52043df8af1843a754 GIT binary patch literal 1550 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 literal 0 HcmV?d00001 diff --git a/static/images/home.png b/static/images/home.png new file mode 100644 index 0000000000000000000000000000000000000000..fdf3b3e2da9ff8e697adeb693c5eaa2fa8bb834b GIT binary patch literal 1354 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 literal 0 HcmV?d00001 diff --git a/static/images/my.png b/static/images/my.png new file mode 100644 index 0000000000000000000000000000000000000000..8c81f1057fb5b646f2635a46e7a0cb40fd8a1a72 GIT binary patch literal 1742 zcmV;<1~K`GP)ojml1tb+*r~s&dP{Ab?95nFu=KE$JV-!i2 zwJX~&)=d7$JX@AN+Fk9get5SPH36@#VXMGx5DkQ2gSbI7AYf3%CW#wF0|EwBtWFY% z=>BfE`xAX*=KIdM$KLx-_{Q7AVO`O zbMFl#Z1l(1hoag(sJvZi>c<*(h8h&u$yn@n24G~BqG2A#9X;$ z<||ATL*}IF99-J=Y)ZYKH3Z-TovcsN4O}NMt*kAoz-?yzH#E5 z!{5EkcK{OhvPo$Iu>c^{^`sVFNCMwuX7b*@T>@k)h&dI$6o61Q(?Ud$dZ_LniHcuZ z4cxGPbBJBnon<8A9TApY*xK$E+Zx?2p-KYdT9rQ7sYMcu2EpiW*`{ z3YS#l$Rq>D|BhNS^M}6gUuXd0T?>e@QT~nz#&QPKb~F>eKhmbqEFi)bhH0%!X|%TQ zrtiz3hT);wcU3{m7;W|Fn$nZX5`n-q5k1j-PYV&g*55$`7N3z*Kr(~=Kx2AT5WB8J z`YKFEAx#fExymB;FZ3H#F|`UJ5&aigSVBmpb{krafTYC2a8NbyT8JERCscK|f_JQ! zh+-z_v&8*XpRew4BH4g-;gTiKs>WKplxVkVaKV|Ap010t$sQT-wj!PEaI zX!PnKqP;|9YKAlrW0A@RaZDA4zbC?|4dO(Iu`KrLA+F6P{;CjT?Ya#cN;_)@~fQE5;$#MCV3oLgn`Vc=}vnGm&kMJ+@mI>UvaMHZz>1+qoFuZ4JL zSzt{W?HJe=@xB&fEDpUPqDQ5YG3RruOoe4u`Bs_9Nn~);`A?N3%H$HWi)&pTh^6k9 zT^XhK&H0Z;b*K#Ln_UENLlxR1g2ITn`lE5hy@_OK`NOU zwn@ErTEb6kXUT1oYXb0~VHUGss*XggI(!@eA+_fS2A!UsKE*8~%nYX-%dW$sfq1>!?N0XlJ=T!Teb5}(rs|C7!FvyA zfCV>X?A`|r#IT=-L+H#532k}}OcRKG-{XoFKpQ)8A9mal;;`-;@BM{1_vTV+22rH$ zt*B}3M$aOrxZ+NUAyC|>bJ2Aj&Rv@nHAHb;a4>SJ)P)@=&aR9cd@KcXlukrTs@c36 zq5>XVkJfI2qzVZA+b5K*N;+ z0CiQ{&{FZjbFxSen~c9wsMRnhK`cl${pc%J(!BS8*6bFL60o8%Fg5r~-3>9UYVtKO z#Sjxm7s7rVr4CV-`7BrhE%%HF0sPaFONxpnxk=8p9Pmkfe6f(L25ey*UmO7yOJZV6 z8Vve560CFBx*A|3l8K2ZniQF`uwM*O5}=qMj_EAiu7q6O>eO~BY?+9Vyf|taGz)38 zqT_YN5M|cG$RUKo38bc>)Km}_&kIbfSmJ(&V&Rws(W0ThV;vhrgHhceZV(L!7*w%I k;s()xfI$_TBpN{cA6v8-f40_^mjD0&07*qoM6N<$f)PI|h5!Hn literal 0 HcmV?d00001 diff --git a/static/images/my_hover.png b/static/images/my_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..55e2e7b45fb8f08ac0137a49b99d304885a1cf8b GIT binary patch literal 1348 zcmV-K1-tr*P)&#f?_?PKq6)iw`d4S}{S!jAe)=-q6%?m(d3q9Tk#yx!j49NYFQ zBHRVU8UU;PLNt48g}8id@YZ5{yOUgfxF}*4sqyI znt=FDQb|EsBP4G}da@CP_<6fh^KE=D*l2lCM1!K+dnqYc45FGyzCZEKwFJ?UEmpFK z4vKECDJ516V#?k44_*at{6cDFBLY#aMt<0yELYX6ym(`Y+eqE@nJXABMAF^9MC22k7Ts>_yk~5PnMgK->;WSBP;z^* z_kMDS6VSzeH#Upd6_?2p6-OfwvzE14-LeEK96tG!?cKNm-ze z#eR?V%@E5HmtkBqzCExEE-kT%&$h%YZrtAo1KjxVUJe`L#HBlk_{wyo67~JuSy>cf z7Ohdr3Kd8ZOAN-wjD1QXWrd;;18cNa2Y~P_s#_&qp1I8XU0*RvRDv^+Vp}6oq&f@}zq&TGEY0Czk16xy$a{b^tIqDVnB-h>l8buOY3IxFsqDQwmb#GrCzF zpao(IL23giIy=wmp;TBTGglbK^|e{z^vjK;%m{8QpLTT|{?QuZJk)DychIw-l~5+U zUHD=*B*U18+LnkVPAi~dNgt@G1t!61!5=rIj#h+mW$k0)LrO?56Lp0zVL&EsiT6s0 zkCO>ZAoGAG1~J%50P8g&)PQhP%kecLb=}Ja5p*o{KS-QWF>Z+p9H3qI33jzWThKxx zxUdjTfV{R&pyHMo9F%-~TL;9332<|{5)Fu;_2}D5TYAUgjh%jTqu+1Gks1kN zYR9`cEuT?G!33hisN-g6h?6T?-lyq?5g~SeiXj>lzOL+qoq$3^ymTsui1=2U;wcjx zWd#%kVkY;NQzt?k{lh|5Z)^0000 + + + + + + diff --git a/template/member.wxss b/template/member.wxss new file mode 100644 index 0000000..e69de29 diff --git a/template/template.wxml b/template/template.wxml new file mode 100644 index 0000000..cb6c207 --- /dev/null +++ b/template/template.wxml @@ -0,0 +1,492 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/template/template.wxss b/template/template.wxss new file mode 100644 index 0000000..e69de29 diff --git a/utils/count-down/index.js b/utils/count-down/index.js new file mode 100644 index 0000000..5c42108 --- /dev/null +++ b/utils/count-down/index.js @@ -0,0 +1,107 @@ +Component({ + options: { + addGlobalClass: !0 + }, + externalClasses: [ "class" ], + properties: { + format: { + type: String, + value: "天小时分秒" + }, + expireText: { + type: String, + value: "已结束" + }, + customClass: String, + customStyle: String, + showSlot: { + type: Boolean, + value: !1 + }, + expireTime: { + type: String, + observer: function(t, e, a) { + this.timer && clearInterval(this.timer); + var i = Number(this.getDate(t).getTime()); + this.timer = setInterval(function(t, e) { + return function() { + return t.apply(e, arguments); + }; + }(function() { + this.getRightTime(i); + }, this), 1e3); + } + } + }, + data: { + downDate: {} + }, + lifetimes: { + attached: function() { + this.data.__page = this.__getPage(); + }, + detached: function() { + clearInterval(this.timer); + } + }, + methods: { + onCountDown: function() { + var t = { + data: this.data + }, e = {}; + this.triggerEvent("countDown", t, e); + }, + onExpire: function() { + this.showSlot || this.setData({ + countDownText: this.data.expireText + }, function() {}); + var t = { + data: this.data + }, e = {}; + this.triggerEvent("expire", t, e); + }, + checkTime: function(t) { + return t < 10 && (t = "0" + t), t; + }, + getRightTime: function(t) { + var e = t - Number(new Date().getTime()); + if (e > 0) { + var a = parseInt(e / 864e5, 10), i = parseInt((e - 864e5 * a) / 36e5, 10), n = parseInt((e - 864e5 * a - 36e5 * i) / 6e4, 10), s = parseInt((e - 864e5 * a - 36e5 * i - 6e4 * n) / 1e3, 10); + this.data.downDate.day = this.checkTime(a), this.data.downDate.hour = this.checkTime(i), + this.data.downDate.minute = this.checkTime(n), this.data.downDate.second = this.checkTime(s); + var r = null; + if (this.data.showSlot) this.onCountDown(); else { + var o = this.data.format; + if (o) { + "function" == typeof this.__getPage()[o] && (o = this.__getPage()[o](this)); + var h = { + day: "天", + hour: "小时", + minute: "分", + second: "秒" + }; + for (var u in h) { + var c = parseInt(this.data.downDate[u]); + o = o.replace(h[u], c > 0 ? c + h[u] : ""); + } + r = o, this.setData({ + countDownText: r + }, function() {}); + } + } + } else this.onExpire(), clearInterval(this.timer); + }, + __getPage: function() { + if (this.data.__page) return this.data.__page; + var t = getCurrentPages(); + return t[t.length - 1]; + }, + getDate: function(t) { + var e = t.split(/[- :]/), a = this._getValue(e[0]), i = this._getValue(e[1]) - 1, n = this._getValue(e[2]), s = this._getValue(e[3]), r = this._getValue(e[4]), o = this._getValue(e[5]); + return new Date(a, i, n, s, r, o); + }, + _getValue: function(t) { + return t || 0; + } + } +}); \ No newline at end of file diff --git a/utils/count-down/index.json b/utils/count-down/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/utils/count-down/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/utils/count-down/index.wxml b/utils/count-down/index.wxml new file mode 100644 index 0000000..6b1f4e4 --- /dev/null +++ b/utils/count-down/index.wxml @@ -0,0 +1,2 @@ +{{countDownText}} + diff --git a/utils/count-down/index.wxss b/utils/count-down/index.wxss new file mode 100644 index 0000000..e69de29 diff --git a/utils/forview/index.js b/utils/forview/index.js new file mode 100644 index 0000000..9587a03 --- /dev/null +++ b/utils/forview/index.js @@ -0,0 +1,15 @@ +Component({ + options: { + styleIsolation: "apply-shared" + }, + properties: { + data: Object, + form: Object + }, + lifetimes: {}, + methods: { + Lay: function(t) { + this.triggerEvent("Event", "Event" == t.type ? t.detail : t); + } + } +}); \ No newline at end of file diff --git a/utils/forview/index.json b/utils/forview/index.json new file mode 100644 index 0000000..3cec638 --- /dev/null +++ b/utils/forview/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "./index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/utils/forview/index.wxml b/utils/forview/index.wxml new file mode 100644 index 0000000..19810c5 --- /dev/null +++ b/utils/forview/index.wxml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/utils/forview/index.wxss b/utils/forview/index.wxss new file mode 100644 index 0000000..e69de29 diff --git a/utils/tools.wxs b/utils/tools.wxs new file mode 100644 index 0000000..f8501b0 --- /dev/null +++ b/utils/tools.wxs @@ -0,0 +1,41 @@ +module.exports = ({ + isShow: (function(Show, form) { + if (typeof Show.field !== 'object' && typeof Show.value !== 'number') { + var field = Show.field.split(","); + var value = Show.value.split(",") + } else if (typeof Show.value == 'number') { + var field = [Show.field]; + var value = [Show.value] + } else { + var field = Show.field; + var value = Show.value + }; + for (i = 0; i < field.length; i++) { + var F = field[((nt_0 = (i), null == nt_0 ? undefined : 'number' === typeof nt_0 ? nt_0 : "" + nt_0))]; + var V = value[((nt_1 = (i), null == nt_1 ? undefined : 'number' === typeof nt_1 ? nt_1 : "" + nt_1))]; + var res = F ? (!form[((nt_2 = (Show.type), null == nt_2 ? undefined : 'number' === typeof nt_2 ? nt_2 : "" + nt_2))] || !form[((nt_3 = (Show.type), null == nt_3 ? undefined : 'number' === typeof nt_3 ? nt_3 : "" + nt_3))][((nt_3 = (F), null == nt_3 ? undefined : 'number' === typeof nt_3 ? nt_3 : "" + nt_3))] ? Show.hide : (Show.type == 'checkbox' ? (form[((nt_4 = (Show.type), null == nt_4 ? undefined : 'number' === typeof nt_4 ? nt_4 : "" + nt_4))][((nt_4 = (F), null == nt_4 ? undefined : 'number' === typeof nt_4 ? nt_4 : "" + nt_4))].join("") !== V ? true : false) : (V == 'true' ? (!form[((nt_5 = (Show.type), null == nt_5 ? undefined : 'number' === typeof nt_5 ? nt_5 : "" + nt_5))][((nt_5 = (F), null == nt_5 ? undefined : 'number' === typeof nt_5 ? nt_5 : "" + nt_5))] ? true : false) : (V == 'false' ? (!form[((nt_6 = (Show.type), null == nt_6 ? undefined : 'number' === typeof nt_6 ? nt_6 : "" + nt_6))][((nt_6 = (F), null == nt_6 ? undefined : 'number' === typeof nt_6 ? nt_6 : "" + nt_6))] ? false : true) : form[((nt_7 = (Show.type), null == nt_7 ? undefined : 'number' === typeof nt_7 ? nt_7 : "" + nt_7))][((nt_7 = (F), null == nt_7 ? undefined : 'number' === typeof nt_7 ? nt_7 : "" + nt_7))] !== V ? true : false)))) : false; + if (res) return (res); + }; + return (res) + }), + getPickerIndex: (function(index, list) { + list = undefined === list ? [] : list; + var i = list.indexOf(index); + return (i > 0 ? i : 0) + }), + showField: (function(field, form) { + var F = []; + var F = field.split("."); + var res = form; + for (i = 0; i < F.length; i++) { + if (!res[((nt_8 = (F[((nt_9 = (i), null == nt_9 ? undefined : 'number' === typeof nt_9 ? nt_9 : "" + nt_9))]), null == nt_8 ? undefined : 'number' === typeof nt_8 ? nt_8 : "" + nt_8))]) return ('');; + res = res[((nt_10 = (F[((nt_11 = (i), null == nt_11 ? undefined : 'number' === typeof nt_11 ? nt_11 : "" + nt_11))]), null == nt_10 ? undefined : 'number' === typeof nt_10 ? nt_10 : "" + nt_10))] + }; + return (res || '') + }), + isImage: (function(filename) { + var name = filename.toLowerCase(); + var type = name.split('.').slice(-1).join(''); + return (['jpg', 'png', 'gif', 'svg'].indexOf(type) >= 0 ? true : type) + }), +}); \ No newline at end of file diff --git a/vant/action-sheet/index.js b/vant/action-sheet/index.js new file mode 100644 index 0000000..56ddaad --- /dev/null +++ b/vant/action-sheet/index.js @@ -0,0 +1,38 @@ +var e = require("../common/component"), t = require("../mixins/safe-area"); + +(0, e.VantComponent)({ + mixins: [ (0, t.safeArea)() ], + props: { + show: Boolean, + title: String, + cancelText: String, + zIndex: { + type: Number, + value: 100 + }, + actions: { + type: Array, + value: [] + }, + overlay: { + type: Boolean, + value: !0 + }, + closeOnClickOverlay: { + type: Boolean, + value: !0 + } + }, + methods: { + onSelect: function(e) { + var t = e.currentTarget.dataset.index, n = this.data.actions[t]; + !n || n.disabled || n.loading || this.$emit("select", n); + }, + onCancel: function() { + this.$emit("cancel"); + }, + onClose: function() { + this.$emit("close"); + } + } +}); \ No newline at end of file diff --git a/vant/action-sheet/index.json b/vant/action-sheet/index.json new file mode 100644 index 0000000..797d903 --- /dev/null +++ b/vant/action-sheet/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-popup": "../popup/index", + "van-loading": "../loading/index", + "forview": "/utils/forview/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/action-sheet/index.wxml b/vant/action-sheet/index.wxml new file mode 100644 index 0000000..c639f8a --- /dev/null +++ b/vant/action-sheet/index.wxml @@ -0,0 +1,20 @@ + + + {{title}} + + + + + + + + {{cancelText}} + + + \ No newline at end of file diff --git a/vant/action-sheet/index.wxss b/vant/action-sheet/index.wxss new file mode 100644 index 0000000..482fec0 --- /dev/null +++ b/vant/action-sheet/index.wxss @@ -0,0 +1,60 @@ +@import "../area/index.wxss"; + +.van-action-sheet { + max-height: 90%!important; + color: #333; +} + +.van-action-sheet__cancel,.van-action-sheet__item { + height: 50px; + font-size: 16px; + line-height: 50px; + text-align: center; + background-color: #fff; +} + +.van-action-sheet__cancel--hover,.van-action-sheet__item--hover { + background-color: #f2f3f5; +} + +.van-action-sheet__cancel { + height: 60px; +} + +.van-action-sheet__cancel:before { + display: block; + height: 10px; + background-color: #f8f8f8; + content: " "; +} + +.van-action-sheet__item--disabled { + color: #c9c9c9; +} + +.van-action-sheet__item--disabled.van-action-sheet__item--hover { + background-color: #fff; +} + +.van-action-sheet__subname { + margin-left: 5px; + font-size: 12px; + color: #7d7e80; +} + +.van-action-sheet__header { + font-size: 16px; + font-weight: 500; + line-height: 44px; + text-align: center; +} + +.van-action-sheet__close { + position: absolute!important; + top: 0; + right: 0; + padding: 0 15px; + font-size: 18px!important; + line-height: inherit!important; + color: #999; +} \ No newline at end of file diff --git a/vant/area/index.js b/vant/area/index.js new file mode 100644 index 0000000..d848882 --- /dev/null +++ b/vant/area/index.js @@ -0,0 +1,155 @@ +var e = function() { + function e(e, t) { + var n = [], i = !0, r = !1, s = void 0; + try { + for (var c, u = e[Symbol.iterator](); !(i = (c = u.next()).done) && (n.push(c.value), + !t || n.length !== t); i = !0) ; + } catch (e) { + r = !0, s = e; + } finally { + try { + !i && u.return && u.return(); + } finally { + if (r) throw s; + } + } + return n; + } + return function(t, n) { + if (Array.isArray(t)) return t; + if (Symbol.iterator in Object(t)) return e(t, n); + throw new TypeError("Invalid attempt to destructure non-iterable instance"); + }; +}(), t = require("../common/component"), n = require("../picker/shared"); + +(0, t.VantComponent)({ + classes: [ "active-class", "toolbar-class", "column-class" ], + props: Object.assign({}, n.pickerProps, { + value: String, + areaList: { + type: Object, + value: {} + }, + columnsNum: { + type: [ String, Number ], + value: 3 + } + }), + data: { + columns: [ { + values: [] + }, { + values: [] + }, { + values: [] + } ], + displayColumns: [ { + values: [] + }, { + values: [] + }, { + values: [] + } ] + }, + watch: { + value: function(e) { + this.code = e, this.setValues(); + }, + areaList: "setValues", + columnsNum: function(e) { + this.set({ + displayColumns: this.data.columns.slice(0, +e) + }); + } + }, + mounted: function() { + this.setValues(); + }, + methods: { + getPicker: function() { + return null == this.picker && (this.picker = this.selectComponent(".van-area__picker")), + this.picker; + }, + onCancel: function(e) { + this.emit("cancel", e.detail); + }, + onConfirm: function(e) { + this.emit("confirm", e.detail); + }, + emit: function(e, t) { + t.values = t.value, delete t.value, this.$emit(e, t); + }, + onChange: function(e) { + var t = this, n = e.detail, i = n.index, r = n.picker, s = n.value; + this.code = s[i].code, this.setValues().then(function() { + t.$emit("change", { + picker: r, + values: r.getValues(), + index: i + }); + }); + }, + getConfig: function(e) { + var t = this.data.areaList; + return t && t[e + "_list"] || {}; + }, + getList: function(e, t) { + var n = []; + if ("province" !== e && !t) return n; + var i = this.getConfig(e); + return n = Object.keys(i).map(function(e) { + return { + code: e, + name: i[e] + }; + }), t && ("9" === t[0] && "city" === e && (t = "9"), n = n.filter(function(e) { + return 0 === e.code.indexOf(t); + })), n; + }, + getIndex: function(e, t) { + var n = "province" === e ? 2 : "city" === e ? 4 : 6, i = this.getList(e, t.slice(0, n - 2)); + "9" === t[0] && "province" === e && (n = 1), t = t.slice(0, n); + for (var r = 0; r < i.length; r++) if (i[r].code.slice(0, n) === t) return r; + return 0; + }, + setValues: function() { + var t = this, n = this.getConfig("county"), i = this.code || Object.keys(n)[0] || "", r = this.getList("province"), s = this.getList("city", i.slice(0, 2)), c = this.getPicker(); + if (c) { + var u = []; + if (u.push(c.setColumnValues(0, r, !1)), u.push(c.setColumnValues(1, s, !1)), s.length && "00" === i.slice(2, 4)) { + var o = e(s, 1); + i = o[0].code; + } + return u.push(c.setColumnValues(2, this.getList("county", i.slice(0, 4)), !1)), + Promise.all(u).catch(function() {}).then(function() { + return c.setIndexes([ t.getIndex("province", i), t.getIndex("city", i), t.getIndex("county", i) ]); + }).catch(function() {}); + } + }, + getValues: function() { + var e = this.getPicker(); + return e ? e.getValues().filter(function(e) { + return !!e; + }) : []; + }, + getDetail: function() { + var e = this.getValues(), t = { + code: "", + country: "", + province: "", + city: "", + county: "" + }; + if (!e.length) return t; + var n = e.map(function(e) { + return e.name; + }); + return t.code = e[e.length - 1].code, "9" === t.code[0] ? (t.country = n[1] || "", + t.province = n[2] || "") : (t.province = n[0] || "", t.city = n[1] || "", t.county = n[2] || ""), + t; + }, + reset: function() { + return this.code = "", this.setValues(); + } + } +}); \ No newline at end of file diff --git a/vant/area/index.json b/vant/area/index.json new file mode 100644 index 0000000..0146248 --- /dev/null +++ b/vant/area/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-picker": "../picker/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/area/index.wxml b/vant/area/index.wxml new file mode 100644 index 0000000..a9b913a --- /dev/null +++ b/vant/area/index.wxml @@ -0,0 +1 @@ + diff --git a/vant/area/index.wxss b/vant/area/index.wxss new file mode 100644 index 0000000..55d8313 --- /dev/null +++ b/vant/area/index.wxss @@ -0,0 +1,68 @@ +.van-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.van-multi-ellipsis--l2 { + -webkit-line-clamp: 2; +} + +.van-multi-ellipsis--l2,.van-multi-ellipsis--l3 { + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; +} + +.van-multi-ellipsis--l3 { + -webkit-line-clamp: 3; +} + +.van-clearfix:after { + content: ""; + display: table; + clear: both; +} + +.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom { + position: relative; +} + +.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after { + content: " "; + position: absolute; + pointer-events: none; + box-sizing: border-box; + transform-origin: center; + top: -50%; + left: -50%; + right: -50%; + bottom: -50%; + transform: scale(.5); + border: 0 solid #e5e5e5; +} + +.van-hairline--top:after { + border-top-width: 1px; +} + +.van-hairline--left:after { + border-left-width: 1px; +} + +.van-hairline--right:after { + border-right-width: 1px; +} + +.van-hairline--bottom:after { + border-bottom-width: 1px; +} + +.van-hairline--top-bottom:after { + border-width: 1px 0; +} + +.van-hairline--surround:after { + border-width: 1px; +} \ No newline at end of file diff --git a/vant/badge-group/index.js b/vant/badge-group/index.js new file mode 100644 index 0000000..077ea7c --- /dev/null +++ b/vant/badge-group/index.js @@ -0,0 +1,34 @@ +(0, require("../common/component").VantComponent)({ + relation: { + name: "badge", + type: "descendant", + linked: function(e) { + this.badges.push(e), this.setActive(this.data.active); + }, + unlinked: function(e) { + this.badges = this.badges.filter(function(t) { + return t !== e; + }), this.setActive(this.data.active); + } + }, + props: { + active: { + type: Number, + value: 0, + observer: "setActive" + } + }, + beforeCreate: function() { + this.badges = [], this.currentActive = -1; + }, + methods: { + setActive: function(e) { + var t = this.badges, i = this.currentActive; + if (!t.length) return Promise.resolve(); + this.currentActive = e; + var s = []; + return i !== e && t[i] && s.push(t[i].setActive(!1)), t[e] && s.push(t[e].setActive(!0)), + Promise.all(s); + } + } +}); \ No newline at end of file diff --git a/vant/badge-group/index.json b/vant/badge-group/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/badge-group/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/badge-group/index.wxml b/vant/badge-group/index.wxml new file mode 100644 index 0000000..aeda539 --- /dev/null +++ b/vant/badge-group/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/vant/badge-group/index.wxss b/vant/badge-group/index.wxss new file mode 100644 index 0000000..f990692 --- /dev/null +++ b/vant/badge-group/index.wxss @@ -0,0 +1,5 @@ +@import "../area/index.wxss"; + +.van-badge-group { + width: 85px; +} \ No newline at end of file diff --git a/vant/badge/index.js b/vant/badge/index.js new file mode 100644 index 0000000..e160c66 --- /dev/null +++ b/vant/badge/index.js @@ -0,0 +1,29 @@ +(0, require("../common/component").VantComponent)({ + relation: { + type: "ancestor", + name: "badge-group", + linked: function(t) { + this.parent = t; + } + }, + props: { + info: null, + title: String + }, + methods: { + onClick: function() { + var t = this, e = this.parent; + if (e) { + var n = e.badges.indexOf(this); + e.setActive(n).then(function() { + t.$emit("click", n), e.$emit("change", n); + }); + } + }, + setActive: function(t) { + return this.set({ + active: t + }); + } + } +}); \ No newline at end of file diff --git a/vant/badge/index.json b/vant/badge/index.json new file mode 100644 index 0000000..942164a --- /dev/null +++ b/vant/badge/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-info": "../info/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/badge/index.wxml b/vant/badge/index.wxml new file mode 100644 index 0000000..b0716ed --- /dev/null +++ b/vant/badge/index.wxml @@ -0,0 +1,7 @@ + + + + {{title}} + + + \ No newline at end of file diff --git a/vant/badge/index.wxss b/vant/badge/index.wxss new file mode 100644 index 0000000..061afcb --- /dev/null +++ b/vant/badge/index.wxss @@ -0,0 +1,41 @@ +@import "../area/index.wxss"; + +.van-badge { + display: block; + padding: 20px 12px 20px 9px; + overflow: hidden; + font-size: 14px; + line-height: 1.4; + color: #7d7e80; + word-break: break-all; + background-color: #f8f8f8; + border-left: 3px solid transparent; + box-sizing: border-box; + user-select: none; +} + +.van-badge--hover { + background-color: #f2f3f5; +} + +.van-badge:after { + border-bottom-width: 1px; +} + +.van-badge--active { + font-weight: 700; + color: #333; + border-color: #f44; +} + +.van-badge--active:after { + border-right-width: 1px; +} + +.van-badge--active,.van-badge--active.van-badge--hover { + background-color: #fff; +} + +.van-badge__text { + position: relative; +} \ No newline at end of file diff --git a/vant/button/index.js b/vant/button/index.js new file mode 100644 index 0000000..72c65a1 --- /dev/null +++ b/vant/button/index.js @@ -0,0 +1,54 @@ +var e = require("../common/component"), t = require("../mixins/button"), i = require("../mixins/open-type"); + +(0, e.VantComponent)({ + mixins: [ t.button, i.openType ], + classes: [ "hover-class", "loading-class" ], + data: { + style: "" + }, + props: { + icon: String, + iconstyle: String, + plain: Boolean, + block: Boolean, + round: Boolean, + square: Boolean, + loading: Boolean, + hairline: Boolean, + disabled: Boolean, + loadingText: String, + customStyle: String, + loadingType: { + type: String, + value: "circular" + }, + type: { + type: String, + value: "default" + }, + size: { + type: String, + value: "normal" + }, + loadingSize: { + type: String, + value: "20px" + }, + color: { + type: String, + observer: function(e) { + var t = ""; + e && (t += "color: " + (this.data.plain ? e : "white") + ";", this.data.plain || (t += "background: " + e + ";"), + -1 !== e.indexOf("gradient") ? t += "border: 0;" : t += "border-color: " + e + ";"), + t !== this.data.style && this.setData({ + style: t + }); + } + } + }, + methods: { + onClick: function() { + this.data.disabled || this.data.loading || this.$emit("click"); + } + } +}); \ No newline at end of file diff --git a/vant/button/index.json b/vant/button/index.json new file mode 100644 index 0000000..b3a5f9f --- /dev/null +++ b/vant/button/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-loading": "../loading/index", + "forview": "/utils/forview/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/button/index.wxml b/vant/button/index.wxml new file mode 100644 index 0000000..1969b00 --- /dev/null +++ b/vant/button/index.wxml @@ -0,0 +1,15 @@ + + \ No newline at end of file diff --git a/vant/button/index.wxss b/vant/button/index.wxss new file mode 100644 index 0000000..354938c --- /dev/null +++ b/vant/button/index.wxss @@ -0,0 +1,219 @@ +@import "../area/index.wxss"; + +.van-button { + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + padding: 0; + line-height: 20px; + text-align: center; + vertical-align: middle; + -webkit-appearance: none; + -webkit-text-size-adjust: 100%; + height: 44px; + height: var(--button-default-height,44px); + font-size: 16px; + font-size: var(--button-default-font-size,16px); + transition: opacity .2s; + transition: opacity var(--animation-duration-fast,.2s); + border-radius: 2px; + border-radius: var(--button-border-radius,2px); +} + +.van-button:before { + position: absolute; + top: 50%; + left: 50%; + width: 100%; + height: 100%; + border: inherit; + border-radius: inherit; + transform: translate(-50%,-50%); + opacity: 0; + content: " "; + background-color: #000; + background-color: var(--black,#000); + border-color: #000; + border-color: var(--black,#000); +} + +.van-button:after { + border-width: 0; +} + +.van-button--active:before { + opacity: .15; +} + +.van-button--unclickable:after { + display: none; +} + +.van-button--default { + color: #323233; + color: var(--button-default-color,#323233); + background-color: #fff; + background-color: var(--button-default-background-color,#fff); + border: 1px solid #ebedf0; + border: 1px solid var(--button-default-border-color,#ebedf0); +} + +.van-button--primary { + color: #fff; + color: var(--button-primary-color,#fff); + background-color: #07c160; + background-color: var(--button-primary-background-color,#07c160); + border: 1px solid #07c160; + border: 1px solid var(--button-primary-border-color,#07c160); +} + +.van-button--info { + color: #fff; + color: var(--button-info-color,#fff); + background-color: #1989fa; + background-color: var(--button-info-background-color,#1989fa); + border: 1px solid #1989fa; + border: 1px solid var(--button-info-border-color,#1989fa); +} + +.van-button--danger { + color: #fff; + color: var(--button-danger-color,#fff); + background-color: #ee0a24; + background-color: var(--button-danger-background-color,#ee0a24); + border: 1px solid #ee0a24; + border: 1px solid var(--button-danger-border-color,#ee0a24); +} + +.van-button--warning { + color: #fff; + color: var(--button-warning-color,#fff); + background-color: #ff976a; + background-color: var(--button-warning-background-color,#ff976a); + border: 1px solid #ff976a; + border: 1px solid var(--button-warning-border-color,#ff976a); +} + +.van-button--plain { + background-color: #fff; + background-color: var(--button-plain-background-color,#fff); +} + +.van-button--plain.van-button--primary { + color: #07c160; + color: var(--button-primary-background-color,#07c160); +} + +.van-button--plain.van-button--info { + color: #1989fa; + color: var(--button-info-background-color,#1989fa); +} + +.van-button--plain.van-button--danger { + color: #ee0a24; + color: var(--button-danger-background-color,#ee0a24); +} + +.van-button--plain.van-button--warning { + color: #ff976a; + color: var(--button-warning-background-color,#ff976a); +} + +.van-button--not { + color: #c8c9cc; + background-color: #f7f8fa; + border: 1px solid #f7f8fa; +} + +.van-button--large { + width: 100%; + height: 50px; + height: var(--button-large-height,50px); +} + +.van-button--normal { + padding: 0 15px; + font-size: 14px; + font-size: var(--button-normal-font-size,14px); +} + +.van-button--small { + min-width: 60px; + min-width: var(--button-small-min-width,60px); + height: 30px; + height: var(--button-small-height,30px); + padding: 0 8px; + padding: 0 var(--padding-xs,8px); + font-size: 12px; + font-size: var(--button-small-font-size,12px); +} + +.van-button--mini { + display: inline-block; + min-width: 50px; + min-width: var(--button-mini-min-width,50px); + height: 22px; + height: var(--button-mini-height,22px); + font-size: 10px; + font-size: var(--button-mini-font-size,10px); +} + +.van-button--mini+.van-button--mini { + margin-left: 5px; +} + +.van-button--block { + display: flex; + width: 100%; +} + +.van-button--round { + border-radius: 999px; + border-radius: var(--button-round-border-radius,999px); +} + +.van-button--square { + border-radius: 0; +} + +.van-button--disabled { + opacity: .5; + opacity: var(--button-disabled-opacity,.5); +} + +.van-button__text { + display: inline; +} + +.van-button__icon+.van-button__text:not(:empty),.van-button__loading-text { + margin-left: 4px; +} + +.van-button__icon { + min-width: 1em; + line-height: inherit!important; + vertical-align: top; +} + +.van-button--hairline { + padding-top: 1px; + border-width: 0; +} + +.van-button--hairline:after { + border-color: inherit; + border-width: 1px; + border-radius: 4px; + border-radius: calc(var(--button-border-radius, 2px)*2); +} + +.van-button--hairline.van-button--round:after { + border-radius: 999px; + border-radius: var(--button-round-border-radius,999px); +} + +.van-button--hairline.van-button--square:after { + border-radius: 0; +} \ No newline at end of file diff --git a/vant/card/index.js b/vant/card/index.js new file mode 100644 index 0000000..4cd5f72 --- /dev/null +++ b/vant/card/index.js @@ -0,0 +1,31 @@ +var i = require("../mixins/link"); + +(0, require("../common/component").VantComponent)({ + classes: [ "num-class", "desc-class", "thumb-class", "title-class", "price-class", "origin-price-class" ], + mixins: [ i.link ], + props: { + tag: String, + num: String, + desc: String, + thumb: String, + title: String, + price: String, + centered: Boolean, + lazyLoad: Boolean, + thumbLink: String, + originPrice: String, + thumbMode: { + type: String, + value: "aspectFit" + }, + currency: { + type: String, + value: "¥" + } + }, + methods: { + onClickThumb: function() { + this.jumpLink("thumbLink"); + } + } +}); \ No newline at end of file diff --git a/vant/card/index.json b/vant/card/index.json new file mode 100644 index 0000000..bc0f513 --- /dev/null +++ b/vant/card/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-tag": "../tag/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/card/index.wxml b/vant/card/index.wxml new file mode 100644 index 0000000..6fd3965 --- /dev/null +++ b/vant/card/index.wxml @@ -0,0 +1,27 @@ + + + + + + + {{tag}} + + + + {{title}} + + {{desc}} + + + + {{currency}} {{price}} + {{currency}} {{originPrice}} + x {{num}} + + + + + + + + \ No newline at end of file diff --git a/vant/card/index.wxss b/vant/card/index.wxss new file mode 100644 index 0000000..02b2aa5 --- /dev/null +++ b/vant/card/index.wxss @@ -0,0 +1,89 @@ +@import "../area/index.wxss"; + +.van-card { + position: relative; + padding: 5px 15px; + font-size: 12px; + color: #333; + background-color: #fafafa; + box-sizing: border-box; +} + +.van-card__header { + display: flex; +} + +.van-card__header--center { + align-items: center; + justify-content: center; +} + +.van-card__thumb { + position: relative; + width: 90px; + height: 90px; + margin-right: 10px; + flex: none; +} + +.van-card__thumb:empty { + display: none; +} + +.van-card__img { + width: 100%; + height: 100%; +} + +.van-card__content { + position: relative; + min-width: 0; + flex: 1; +} + +.van-card__desc,.van-card__title { + word-break: break-all; +} + +.van-card__title { + font-weight: 700; + line-height: 16px; +} + +.van-card__desc { + color: #7d7e80; +} + +.van-card__bottom,.van-card__desc { + line-height: 20px; +} + +.van-card__price { + display: inline-block; + font-weight: 700; + color: #f44; +} + +.van-card__origin-price { + display: inline-block; + margin-left: 5px; + font-size: 10px; + color: #7d7e80; + text-decoration: line-through; +} + +.van-card__num { + float: right; +} + +.van-card__tag { + position: absolute; + top: 2px; + left: 0; +} + +.van-card__footer { + width: 100%; + text-align: right; + flex: none; +} \ No newline at end of file diff --git a/vant/cell-group/index.js b/vant/cell-group/index.js new file mode 100644 index 0000000..0823db4 --- /dev/null +++ b/vant/cell-group/index.js @@ -0,0 +1,9 @@ +(0, require("../common/component").VantComponent)({ + props: { + title: String, + border: { + type: Boolean, + value: !0 + } + } +}); \ No newline at end of file diff --git a/vant/cell-group/index.json b/vant/cell-group/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/cell-group/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/cell-group/index.wxml b/vant/cell-group/index.wxml new file mode 100644 index 0000000..70461e7 --- /dev/null +++ b/vant/cell-group/index.wxml @@ -0,0 +1,6 @@ + + {{title}} + + + + diff --git a/vant/cell-group/index.wxss b/vant/cell-group/index.wxss new file mode 100644 index 0000000..0de8fcd --- /dev/null +++ b/vant/cell-group/index.wxss @@ -0,0 +1,8 @@ +@import "../area/index.wxss"; + +.van-cell-group__title { + font-size: 14px; + padding: 15px 15px 5px; + color: #999; + line-height: 16px; +} \ No newline at end of file diff --git a/vant/cell/index.js b/vant/cell/index.js new file mode 100644 index 0000000..0a28c1f --- /dev/null +++ b/vant/cell/index.js @@ -0,0 +1,34 @@ +var e = require("../mixins/link"); + +(0, require("../common/component").VantComponent)({ + classes: [ "title-class", "label-class", "value-class", "right-icon-class", "hover-class" ], + mixins: [ e.link ], + props: { + title: null, + value: null, + icon: String, + size: String, + label: String, + center: Boolean, + isLink: Boolean, + required: Boolean, + clickable: Boolean, + titleWidth: String, + customStyle: String, + arrowDirection: String, + useLabelSlot: Boolean, + hidden: { + type: Boolean, + value: !1 + }, + border: { + type: Boolean, + value: !0 + } + }, + methods: { + onClick: function(e) { + this.$emit("click", e.detail), this.jumpLink(); + } + } +}); \ No newline at end of file diff --git a/vant/cell/index.json b/vant/cell/index.json new file mode 100644 index 0000000..e9f601c --- /dev/null +++ b/vant/cell/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/cell/index.wxml b/vant/cell/index.wxml new file mode 100644 index 0000000..99cb10b --- /dev/null +++ b/vant/cell/index.wxml @@ -0,0 +1,22 @@ + + \ No newline at end of file diff --git a/vant/cell/index.wxss b/vant/cell/index.wxss new file mode 100644 index 0000000..b90f93b --- /dev/null +++ b/vant/cell/index.wxss @@ -0,0 +1,127 @@ +@import "../area/index.wxss"; + +.van-cell { + position: relative; + width: 100%; + padding: 10px 0; + font-size: 14px; + line-height: 24px; + color: #333; + background-color: #fff; + box-sizing: border-box; +} + +.van-cell:after { + content: " "; + position: absolute; + pointer-events: none; + box-sizing: border-box; + transform-origin: center; + top: auto; + left: 0; + right: 0; + bottom: 0; + transform: scaleY(.5); + border-bottom: 1px solid #eee; +} + +.van-cell--borderless:after { + display: none; +} + +.van-cell-group { + background-color: #fff; +} + +.van-cell__body { + width: 100%; + display: flex; +} + +.van-cell__label { + margin-top: 1px; + font-size: 12px; + line-height: 18px; + color: #999; + text-align: right; +} + +.van-cell__value { + overflow: hidden; + color: #999; + text-align: right; + vertical-align: middle; +} + +.van-cell__title { + position: relative; +} + +.van-cell__title,.van-cell__value { + flex: 1; +} + +.van-cell__title:empty,.van-cell__value:empty { + display: none; +} + +.van-cell__left-icon-wrap,.van-cell__right-icon-wrap { + display: flex; + height: 24px; + font-size: 16px; + align-items: center; +} + +.van-cell__left-icon-wrap { + margin-right: 5px; +} + +.van-cell__right-icon-wrap { + margin-left: 5px; + color: #999; +} + +.van-cell__left-icon { + line-height: 24px; + vertical-align: middle; +} + +.van-cell__right-icon { + line-height: 24px; +} + +.van-cell--clickable.van-cell--hover { + opacity: .8; +} + +.van-cell--required { + overflow: visible; +} + +.van-cell--required .van-cell__title:before { + position: absolute; + left: -9px; + line-height: 12px; + height: 12px; + top: 0; + margin-top: 9px; + color: #f44; + content: "*"; +} + +.van-cell--center { + align-items: center; +} + +.van-cell--large { + padding-top: 12px; + padding-bottom: 12px; +} + +.van-cell--large .van-cell__title { + font-size: 16px; +} + +.van-cell--large .van-cell__label { + font-size: 14px; +} \ No newline at end of file diff --git a/vant/checkbox-group/index.js b/vant/checkbox-group/index.js new file mode 100644 index 0000000..3975542 --- /dev/null +++ b/vant/checkbox-group/index.js @@ -0,0 +1,35 @@ +(0, require("../common/component").VantComponent)({ + field: !0, + relation: { + name: "checkbox", + type: "descendant", + linked: function(e) { + var a = this.data, n = a.value, d = a.disabled; + e.set({ + value: -1 !== n.indexOf(e.data.name), + disabled: d || e.data.disabled + }); + } + }, + props: { + max: Number, + value: Array, + disabled: Boolean + }, + watch: { + value: function(e) { + this.getRelationNodes("../checkbox/index").forEach(function(a) { + a.set({ + value: -1 !== e.indexOf(a.data.name) + }); + }); + }, + disabled: function(e) { + this.getRelationNodes("../checkbox/index").forEach(function(a) { + a.set({ + disabled: e || a.data.disabled + }); + }); + } + } +}); \ No newline at end of file diff --git a/vant/checkbox-group/index.json b/vant/checkbox-group/index.json new file mode 100644 index 0000000..e9f601c --- /dev/null +++ b/vant/checkbox-group/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/checkbox-group/index.wxml b/vant/checkbox-group/index.wxml new file mode 100644 index 0000000..13e0e91 --- /dev/null +++ b/vant/checkbox-group/index.wxml @@ -0,0 +1 @@ + diff --git a/vant/checkbox-group/index.wxss b/vant/checkbox-group/index.wxss new file mode 100644 index 0000000..f720459 --- /dev/null +++ b/vant/checkbox-group/index.wxss @@ -0,0 +1 @@ +@import "../area/index.wxss"; \ No newline at end of file diff --git a/vant/checkbox/index.js b/vant/checkbox/index.js new file mode 100644 index 0000000..991a2f7 --- /dev/null +++ b/vant/checkbox/index.js @@ -0,0 +1,47 @@ +(0, require("../common/component").VantComponent)({ + field: !0, + relation: { + name: "checkbox-group", + type: "ancestor" + }, + classes: [ "icon-class", "label-class" ], + props: { + value: null, + disabled: Boolean, + useIconSlot: Boolean, + checkedClass: String, + checkedColor: String, + noColor: String, + labelPosition: String, + labelDisabled: Boolean, + shape: { + type: String, + value: "round" + } + }, + methods: { + emitChange: function(e) { + var a = this.getRelationNodes("../checkbox-group/index")[0]; + a ? this.setParentValue(a, e) : (this.$emit("input", e), this.$emit("change", { + checked: e, + name: this.data.name + })); + }, + toggle: function() { + this.data.disabled || this.emitChange(!this.data.value); + }, + onClickLabel: function() { + this.data.disabled || this.data.labelDisabled || this.emitChange(!this.data.value); + }, + setParentValue: function(e, a) { + var t = e.data.value.slice(), i = this.data.name; + if (a) { + if (e.data.max && t.length >= e.data.max) return; + -1 === t.indexOf(i) && (t.push(i), e.$emit("input", t), e.$emit("change", t)); + } else { + var n = t.indexOf(i); + -1 !== n && (t.splice(n, 1), e.$emit("input", t), e.$emit("change", t)); + } + } + } +}); \ No newline at end of file diff --git a/vant/checkbox/index.json b/vant/checkbox/index.json new file mode 100644 index 0000000..e9f601c --- /dev/null +++ b/vant/checkbox/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/checkbox/index.wxml b/vant/checkbox/index.wxml new file mode 100644 index 0000000..fe20a06 --- /dev/null +++ b/vant/checkbox/index.wxml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/vant/checkbox/index.wxss b/vant/checkbox/index.wxss new file mode 100644 index 0000000..ccedef3 --- /dev/null +++ b/vant/checkbox/index.wxss @@ -0,0 +1,65 @@ +@import "../area/index.wxss"; + +.van-checkbox { + overflow: hidden; + user-select: none; +} + +.van-checkbox__icon-wrap,.van-checkbox__label { + display: inline-block; + line-height: 18px; + vertical-align: middle; +} + +.van-checkbox__icon { + border-radius: 2px; + display: block; + font-size: 14px; + width: 18px; + height: 18px; + color: transparent; + text-align: center; + box-sizing: border-box; + border: 1px solid #e5e5e5; + transition: .2s; +} + +.van-checkbox__icon--round { + width: 19px; + height: 19px; + border-radius: 100%; +} + +.van-checkbox__icon--checked { + color: #fff; + border-color: #5FB878; + color: #5FB878; + background-color: #fff; +} + +.van-checkbox__icon--disabled { + border-color: #c9c9c9; + background-color: #eee; +} + +.van-checkbox__icon--disabled.van-checkbox__icon--checked { + color: #c9c9c9; +} + +.van-checkbox__label { + color: #333; + margin-left: 6px; +} + +.van-checkbox__label--left { + float: left; + margin: 0 10px 0 0; +} + +.van-checkbox__label--disabled { + color: #c9c9c9; +} + +.van-checkbox__label:empty { + margin: 0; +} \ No newline at end of file diff --git a/vant/col/index.js b/vant/col/index.js new file mode 100644 index 0000000..33e7d1a --- /dev/null +++ b/vant/col/index.js @@ -0,0 +1,21 @@ +(0, require("../common/component").VantComponent)({ + relation: { + name: "row", + type: "ancestor" + }, + props: { + span: Number, + offset: Number + }, + data: { + style: "" + }, + methods: { + setGutter: function(t) { + var e = t / 2 + "px", n = t ? "padding-left: " + e + "; padding-right: " + e + ";" : ""; + n !== this.data.style && this.set({ + style: n + }); + } + } +}); \ No newline at end of file diff --git a/vant/col/index.json b/vant/col/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/col/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/col/index.wxml b/vant/col/index.wxml new file mode 100644 index 0000000..a27fe61 --- /dev/null +++ b/vant/col/index.wxml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/vant/col/index.wxss b/vant/col/index.wxss new file mode 100644 index 0000000..70f542d --- /dev/null +++ b/vant/col/index.wxss @@ -0,0 +1,198 @@ +@import "../area/index.wxss"; + +.van-col { + float: left; + box-sizing: border-box; +} + +.van-col--1 { + width: 4.16666667%; +} + +.van-col--offset-1 { + margin-left: 4.16666667%; +} + +.van-col--2 { + width: 8.33333333%; +} + +.van-col--offset-2 { + margin-left: 8.33333333%; +} + +.van-col--3 { + width: 12.5%; +} + +.van-col--offset-3 { + margin-left: 12.5%; +} + +.van-col--4 { + width: 16.66666667%; +} + +.van-col--offset-4 { + margin-left: 16.66666667%; +} + +.van-col--5 { + width: 20.83333333%; +} + +.van-col--offset-5 { + margin-left: 20.83333333%; +} + +.van-col--6 { + width: 25%; +} + +.van-col--offset-6 { + margin-left: 25%; +} + +.van-col--7 { + width: 29.16666667%; +} + +.van-col--offset-7 { + margin-left: 29.16666667%; +} + +.van-col--8 { + width: 33.33333333%; +} + +.van-col--offset-8 { + margin-left: 33.33333333%; +} + +.van-col--9 { + width: 37.5%; +} + +.van-col--offset-9 { + margin-left: 37.5%; +} + +.van-col--10 { + width: 41.66666667%; +} + +.van-col--offset-10 { + margin-left: 41.66666667%; +} + +.van-col--11 { + width: 45.83333333%; +} + +.van-col--offset-11 { + margin-left: 45.83333333%; +} + +.van-col--12 { + width: 50%; +} + +.van-col--offset-12 { + margin-left: 50%; +} + +.van-col--13 { + width: 54.16666667%; +} + +.van-col--offset-13 { + margin-left: 54.16666667%; +} + +.van-col--14 { + width: 58.33333333%; +} + +.van-col--offset-14 { + margin-left: 58.33333333%; +} + +.van-col--15 { + width: 62.5%; +} + +.van-col--offset-15 { + margin-left: 62.5%; +} + +.van-col--16 { + width: 66.66666667%; +} + +.van-col--offset-16 { + margin-left: 66.66666667%; +} + +.van-col--17 { + width: 70.83333333%; +} + +.van-col--offset-17 { + margin-left: 70.83333333%; +} + +.van-col--18 { + width: 75%; +} + +.van-col--offset-18 { + margin-left: 75%; +} + +.van-col--19 { + width: 79.16666667%; +} + +.van-col--offset-19 { + margin-left: 79.16666667%; +} + +.van-col--20 { + width: 83.33333333%; +} + +.van-col--offset-20 { + margin-left: 83.33333333%; +} + +.van-col--21 { + width: 87.5%; +} + +.van-col--offset-21 { + margin-left: 87.5%; +} + +.van-col--22 { + width: 91.66666667%; +} + +.van-col--offset-22 { + margin-left: 91.66666667%; +} + +.van-col--23 { + width: 95.83333333%; +} + +.van-col--offset-23 { + margin-left: 95.83333333%; +} + +.van-col--24 { + width: 100%; +} + +.van-col--offset-24 { + margin-left: 100%; +} \ No newline at end of file diff --git a/vant/collapse-item/index.js b/vant/collapse-item/index.js new file mode 100644 index 0000000..3939135 --- /dev/null +++ b/vant/collapse-item/index.js @@ -0,0 +1,85 @@ +var t = function() { + return new Promise(function(t) { + return setTimeout(t, 20); + }); +}; + +(0, require("../common/component").VantComponent)({ + classes: [ "title-class", "content-class" ], + relation: { + name: "collapse", + type: "ancestor", + linked: function(t) { + this.parent = t; + } + }, + props: { + name: null, + title: null, + value: null, + icon: String, + label: String, + disabled: Boolean, + clickable: Boolean, + border: { + type: Boolean, + value: !0 + }, + isLink: { + type: Boolean, + value: !0 + } + }, + data: { + contentHeight: 0, + expanded: !1, + transition: !1 + }, + mounted: function() { + var n = this; + this.updateExpanded().then(t).then(function() { + n.set({ + transition: !0 + }); + }); + }, + methods: { + updateExpanded: function() { + if (!this.parent) return Promise.resolve(); + var t = this.parent.data, n = t.value, e = t.accordion, i = this.parent.children, a = void 0 === i ? [] : i, o = this.data.name, s = a.indexOf(this), r = null == o ? s : o, l = e ? n === r : (n || []).some(function(t) { + return t === r; + }), u = []; + return l !== this.data.expanded && u.push(this.updateStyle(l)), u.push(this.set({ + index: s, + expanded: l + })), Promise.all(u); + }, + updateStyle: function(n) { + var e = this; + return this.getRect(".van-collapse-item__content").then(function(t) { + return t.height; + }).then(function(i) { + return n ? e.set({ + contentHeight: i ? i + "px" : "auto" + }) : e.set({ + contentHeight: i + "px" + }).then(t).then(function() { + return e.set({ + contentHeight: 0 + }); + }); + }); + }, + onClick: function() { + if (!this.data.disabled) { + var t = this.data, n = t.name, e = t.expanded, i = this.parent.children.indexOf(this), a = null == n ? i : n; + this.parent.switch(a, !e); + } + }, + onTransitionEnd: function() { + this.data.expanded && this.set({ + contentHeight: "auto" + }); + } + } +}); \ No newline at end of file diff --git a/vant/collapse-item/index.json b/vant/collapse-item/index.json new file mode 100644 index 0000000..eabfb3d --- /dev/null +++ b/vant/collapse-item/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-cell": "../cell/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/collapse-item/index.wxml b/vant/collapse-item/index.wxml new file mode 100644 index 0000000..71156bd --- /dev/null +++ b/vant/collapse-item/index.wxml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vant/collapse-item/index.wxss b/vant/collapse-item/index.wxss new file mode 100644 index 0000000..e9e8c26 --- /dev/null +++ b/vant/collapse-item/index.wxss @@ -0,0 +1,34 @@ +@import "../area/index.wxss"; + +.van-collapse-item__title .van-cell__right-icon { + transform: rotate(90deg); + transition: .3s; +} + +.van-collapse-item__title--expanded .van-cell__right-icon { + transform: rotate(-90deg); +} + +.van-collapse-item__title--disabled .van-cell,.van-collapse-item__title--disabled .van-cell__right-icon { + color: #c9c9c9!important; +} + +.van-collapse-item__title--disabled .van-cell--hover { + background-color: #fff!important; +} + +.van-collapse-item__wrapper { + overflow: hidden; +} + +.van-collapse-item__wrapper--transition { + transition: height .3s ease-in-out; +} + +.van-collapse-item__content { + padding: 15px; + font-size: 13px; + line-height: 1.5; + color: #999; + background-color: #fff; +} \ No newline at end of file diff --git a/vant/collapse/index.js b/vant/collapse/index.js new file mode 100644 index 0000000..190fa36 --- /dev/null +++ b/vant/collapse/index.js @@ -0,0 +1,44 @@ +(0, require("../common/component").VantComponent)({ + relation: { + name: "collapse-item", + type: "descendant", + linked: function(e) { + this.children.push(e); + }, + unlinked: function(e) { + this.children = this.children.filter(function(n) { + return n !== e; + }); + } + }, + props: { + value: { + type: null, + observer: "updateExpanded" + }, + accordion: { + type: Boolean, + observer: "updateExpanded" + }, + border: { + type: Boolean, + value: !0 + } + }, + beforeCreate: function() { + this.children = []; + }, + methods: { + updateExpanded: function() { + this.children.forEach(function(e) { + e.updateExpanded(); + }); + }, + switch: function(e, n) { + var t = this.data, i = t.accordion, o = t.value; + e = i ? n ? e : "" : n ? (o || []).concat(e) : (o || []).filter(function(n) { + return n !== e; + }), this.$emit("change", e), this.$emit("input", e); + } + } +}); \ No newline at end of file diff --git a/vant/collapse/index.json b/vant/collapse/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/collapse/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/collapse/index.wxml b/vant/collapse/index.wxml new file mode 100644 index 0000000..31bcdf7 --- /dev/null +++ b/vant/collapse/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/vant/collapse/index.wxss b/vant/collapse/index.wxss new file mode 100644 index 0000000..f720459 --- /dev/null +++ b/vant/collapse/index.wxss @@ -0,0 +1 @@ +@import "../area/index.wxss"; \ No newline at end of file diff --git a/vant/common/color.js b/vant/common/color.js new file mode 100644 index 0000000..2fef441 --- /dev/null +++ b/vant/common/color.js @@ -0,0 +1,5 @@ +Object.defineProperty(exports, "__esModule", { + value: !0 +}); + +exports.RED = "#f44", exports.BLUE = "#1989fa", exports.GREEN = "#07c160"; \ No newline at end of file diff --git a/vant/common/component.js b/vant/common/component.js new file mode 100644 index 0000000..f297b6e --- /dev/null +++ b/vant/common/component.js @@ -0,0 +1,44 @@ +function e(e, s, a) { + return s in e ? Object.defineProperty(e, s, { + value: a, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[s] = a, e; +} + +function s(e, s, a) { + Object.keys(a).forEach(function(t) { + e[t] && (s[a[t]] = e[t]); + }); +} + +Object.defineProperty(exports, "__esModule", { + value: !0 +}), exports.VantComponent = void 0; + +var a = require("../mixins/basic"), t = require("../mixins/observer/index"); + +exports.VantComponent = function() { + var r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, o = {}; + s(r, o, { + data: "data", + props: "properties", + mixins: "behaviors", + methods: "methods", + beforeCreate: "created", + created: "attached", + mounted: "ready", + relations: "relations", + destroyed: "detached", + classes: "externalClasses" + }); + var n = r.relation; + n && (o.relations = Object.assign(o.relations || {}, e({}, "../" + n.name + "/index", n))), + o.externalClasses = o.externalClasses || [], o.externalClasses.push("custom-class"), + o.behaviors = o.behaviors || [], o.behaviors.push(a.basic), r.field && o.behaviors.push("wx://form-field"), + o.options = { + multipleSlots: !0, + addGlobalClass: !0 + }, (0, t.observe)(r, o), Component(o); +}; \ No newline at end of file diff --git a/vant/common/utils.js b/vant/common/utils.js new file mode 100644 index 0000000..5574d11 --- /dev/null +++ b/vant/common/utils.js @@ -0,0 +1,34 @@ +function t(t) { + return void 0 !== t && null !== t; +} + +function n(t) { + return /^\d+(\.\d+)?$/.test(t); +} + +Object.defineProperty(exports, "__esModule", { + value: !0 +}); + +var e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { + return typeof t; +} : function(t) { + return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; +}; + +exports.isDef = t, exports.isObj = function(t) { + var n = void 0 === t ? "undefined" : e(t); + return null !== t && ("object" === n || "function" === n); +}, exports.isNumber = n, exports.range = function(t, n, e) { + return Math.min(Math.max(t, n), e); +}, exports.nextTick = function(t) { + setTimeout(function() { + t(); + }, 1e3 / 30); +}, exports.getSystemInfoSync = function() { + return null == o && (o = wx.getSystemInfoSync()), o; +}, exports.addUnit = function(e) { + if (t(e)) return e = String(e), n(e) ? e + "px" : e; +}; + +var o = null; \ No newline at end of file diff --git a/vant/datetime-picker/index.js b/vant/datetime-picker/index.js new file mode 100644 index 0000000..37b428b --- /dev/null +++ b/vant/datetime-picker/index.js @@ -0,0 +1,238 @@ +function e(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e; +} + +function t(e) { + return (0, s.isDef)(e) && !isNaN(new Date(e).getTime()); +} + +function n(e, t, n) { + return Math.min(Math.max(e, t), n); +} + +function a(e) { + return ("00" + e).slice(-2); +} + +function r(e, t) { + for (var n = -1, a = Array(e); ++n < e; ) a[n] = t(n); + return a; +} + +function u(e) { + if (e) { + for (;isNaN(parseInt(e, 10)); ) e = e.slice(1); + return parseInt(e, 10); + } +} + +function i(e, t) { + return 32 - new Date(e, t - 1, 32).getDate(); +} + +var o = function() { + function e(e, t) { + var n = [], a = !0, r = !1, u = void 0; + try { + for (var i, o = e[Symbol.iterator](); !(a = (i = o.next()).done) && (n.push(i.value), + !t || n.length !== t); a = !0) ; + } catch (e) { + r = !0, u = e; + } finally { + try { + !a && o.return && o.return(); + } finally { + if (r) throw u; + } + } + return n; + } + return function(t, n) { + if (Array.isArray(t)) return t; + if (Symbol.iterator in Object(t)) return e(t, n); + throw new TypeError("Invalid attempt to destructure non-iterable instance"); + }; +}(), m = require("../common/component"), s = require("../common/utils"), l = require("../picker/shared"), c = new Date().getFullYear(), h = function(e, t) { + return t; +}; + +(0, m.VantComponent)({ + classes: [ "active-class", "toolbar-class", "column-class" ], + props: Object.assign({}, l.pickerProps, { + formatter: { + type: Function, + value: h + }, + value: null, + type: { + type: String, + value: "datetime" + }, + showToolbar: { + type: Boolean, + value: !0 + }, + minDate: { + type: Number, + value: new Date(c - 10, 0, 1).getTime() + }, + maxDate: { + type: Number, + value: new Date(c + 10, 11, 31).getTime() + }, + minHour: { + type: Number, + value: 0 + }, + maxHour: { + type: Number, + value: 23 + }, + minMinute: { + type: Number, + value: 0 + }, + maxMinute: { + type: Number, + value: 59 + } + }), + data: { + innerValue: Date.now(), + columns: [] + }, + watch: { + value: function(e) { + var t = this, n = this.data; + (e = this.correctValue(e)) === n.innerValue || this.updateColumnValue(e).then(function() { + t.$emit("input", e); + }); + }, + type: "updateColumns", + minHour: "updateColumns", + maxHour: "updateColumns", + minMinute: "updateColumns", + maxMinute: "updateColumns" + }, + methods: { + getPicker: function() { + if (null == this.picker) { + var e = this.picker = this.selectComponent(".van-datetime-picker"), t = e.setColumnValues; + e.setColumnValues = function() { + for (var n = arguments.length, a = Array(n), r = 0; r < n; r++) a[r] = arguments[r]; + return t.apply(e, [].concat(a, [ !1 ])); + }; + } + return this.picker; + }, + updateColumns: function() { + var e = this.data.formatter, t = void 0 === e ? h : e, n = this.getRanges().map(function(e, n) { + var u = e.type, i = e.range; + return { + values: r(i[1] - i[0] + 1, function(e) { + var n = i[0] + e; + return n = "year" === u ? "" + n : a(n), t(u, n); + }) + }; + }); + return this.set({ + columns: n + }); + }, + getRanges: function() { + var e = this.data; + if ("time" === e.type) return [ { + type: "hour", + range: [ e.minHour, e.maxHour ] + }, { + type: "minute", + range: [ e.minMinute, e.maxMinute ] + } ]; + var t = this.getBoundary("max", e.innerValue), n = t.maxYear, a = t.maxDate, r = t.maxMonth, u = t.maxHour, i = t.maxMinute, o = this.getBoundary("min", e.innerValue), m = o.minYear, s = o.minDate, l = [ { + type: "year", + range: [ m, n ] + }, { + type: "month", + range: [ o.minMonth, r ] + }, { + type: "day", + range: [ s, a ] + }, { + type: "hour", + range: [ o.minHour, u ] + }, { + type: "minute", + range: [ o.minMinute, i ] + } ]; + return "date" === e.type && l.splice(3, 2), "year-month" === e.type && l.splice(2, 3), + l; + }, + correctValue: function(e) { + var r = this.data, u = "time" !== r.type; + if (u && !t(e) ? e = r.minDate : u || e || (e = a(r.minHour) + ":00"), !u) { + var i = e.split(":"), m = o(i, 2), s = m[0], l = m[1]; + return s = a(n(s, r.minHour, r.maxHour)), l = a(n(l, r.minMinute, r.maxMinute)), + s + ":" + l; + } + return e = Math.max(e, r.minDate), e = Math.min(e, r.maxDate); + }, + getBoundary: function(t, n) { + var a, r = new Date(n), u = new Date(this.data[t + "Date"]), o = u.getFullYear(), m = 1, s = 1, l = 0, c = 0; + return "max" === t && (m = 12, s = i(r.getFullYear(), r.getMonth() + 1), l = 23, + c = 59), r.getFullYear() === o && (m = u.getMonth() + 1, r.getMonth() + 1 === m && (s = u.getDate(), + r.getDate() === s && (l = u.getHours(), r.getHours() === l && (c = u.getMinutes())))), + a = {}, e(a, t + "Year", o), e(a, t + "Month", m), e(a, t + "Date", s), e(a, t + "Hour", l), + e(a, t + "Minute", c), a; + }, + onCancel: function() { + this.$emit("cancel"); + }, + onConfirm: function() { + this.$emit("confirm", this.data.innerValue); + }, + onChange: function() { + var e = this, t = this.data, n = void 0, a = this.getPicker(); + if ("time" === t.type) { + var r = a.getIndexes(); + n = r[0] + t.minHour + ":" + (r[1] + t.minMinute); + } else { + var o = a.getValues(), m = u(o[0]), s = u(o[1]), l = i(m, s), c = u(o[2]); + "year-month" === t.type && (c = 1), c = c > l ? l : c; + var h = 0, p = 0; + "datetime" === t.type && (h = u(o[3]), p = u(o[4])), n = new Date(m, s - 1, c, h, p); + } + n = this.correctValue(n), this.updateColumnValue(n).then(function() { + e.$emit("input", n), e.$emit("change", a); + }); + }, + updateColumnValue: function(e) { + var t = this, n = [], r = this.data, u = r.type, i = r.formatter, o = void 0 === i ? h : i, m = this.getPicker(); + if ("time" === u) { + var s = e.split(":"); + n = [ o("hour", s[0]), o("minute", s[1]) ]; + } else { + var l = new Date(e); + n = [ o("year", "" + l.getFullYear()), o("month", a(l.getMonth() + 1)) ], "date" === u && n.push(o("day", a(l.getDate()))), + "datetime" === u && n.push(o("day", a(l.getDate())), o("hour", a(l.getHours())), o("minute", a(l.getMinutes()))); + } + return this.set({ + innerValue: e + }).then(function() { + return t.updateColumns(); + }).then(function() { + return m.setValues(n); + }); + } + }, + created: function() { + var e = this, t = this.correctValue(this.data.value); + this.updateColumnValue(t).then(function() { + e.$emit("input", t); + }); + } +}); \ No newline at end of file diff --git a/vant/datetime-picker/index.json b/vant/datetime-picker/index.json new file mode 100644 index 0000000..0146248 --- /dev/null +++ b/vant/datetime-picker/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-picker": "../picker/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/datetime-picker/index.wxml b/vant/datetime-picker/index.wxml new file mode 100644 index 0000000..ba875a3 --- /dev/null +++ b/vant/datetime-picker/index.wxml @@ -0,0 +1 @@ + diff --git a/vant/datetime-picker/index.wxss b/vant/datetime-picker/index.wxss new file mode 100644 index 0000000..f720459 --- /dev/null +++ b/vant/datetime-picker/index.wxss @@ -0,0 +1 @@ +@import "../area/index.wxss"; \ No newline at end of file diff --git a/vant/dialog/dialog.js b/vant/dialog/dialog.js new file mode 100644 index 0000000..b257bab --- /dev/null +++ b/vant/dialog/dialog.js @@ -0,0 +1,54 @@ +function e() { + var e = getCurrentPages(); + return e[e.length - 1]; +} + +Object.defineProperty(exports, "__esModule", { + value: !0 +}); + +var t = [], n = function n(o) { + return o = Object.assign({}, n.currentOptions, o), o.html = -1 != o.message.indexOf("<"), + new Promise(function(n, s) { + var c = (o.context || e()).selectComponent(o.selector); + delete o.selector, c ? (c.set(Object.assign({ + onCancel: s, + onConfirm: n + }, o)), t.push(c)) : console.warn("未找到 van-dialog 节点,请确认 selector 及 context 是否正确"); + }); +}; + +n.defaultOptions = { + show: !0, + title: "", + message: "", + zIndex: 2e4, + overlay: !0, + className: "", + asyncClose: !1, + messageAlign: "", + transition: "scale", + selector: "#van-dialog", + confirmButtonText: "确认", + cancelButtonText: "取消", + showConfirmButton: !0, + showCancelButton: !1, + closeOnClickOverlay: !1, + confirmButtonOpenType: "" +}, n.alert = n, n.confirm = function(e) { + return n(Object.assign({ + showCancelButton: !0 + }, e)); +}, n.close = function() { + t.forEach(function(e) { + e.close(); + }), t = []; +}, n.stopLoading = function() { + t.forEach(function(e) { + e.stopLoading(); + }); +}, n.setDefaultOptions = function(e) { + Object.assign(n.currentOptions, e); +}, n.resetDefaultOptions = function() { + n.currentOptions = Object.assign({}, n.defaultOptions); +}, n.resetDefaultOptions(), exports.default = n; \ No newline at end of file diff --git a/vant/dialog/index.js b/vant/dialog/index.js new file mode 100644 index 0000000..4483791 --- /dev/null +++ b/vant/dialog/index.js @@ -0,0 +1,99 @@ +function n(n, e, o) { + return e in n ? Object.defineProperty(n, e, { + value: o, + enumerable: !0, + configurable: !0, + writable: !0 + }) : n[e] = o, n; +} + +var e = require("../common/component"), o = require("../mixins/button"), t = require("../mixins/open-type"); + +(0, e.VantComponent)({ + mixins: [ o.button, t.openType ], + props: { + show: Boolean, + title: String, + message: String, + useSlot: Boolean, + className: String, + asyncClose: Boolean, + messageAlign: String, + showCancelButton: Boolean, + closeOnClickOverlay: Boolean, + confirmButtonOpenType: String, + zIndex: { + type: Number, + value: 2e4 + }, + confirmButtonText: { + type: String, + value: "确认" + }, + cancelButtonText: { + type: String, + value: "取消" + }, + showConfirmButton: { + type: Boolean, + value: !0 + }, + overlay: { + type: Boolean, + value: !0 + }, + transition: { + type: String, + value: "scale" + }, + closable: { + type: Boolean, + value: !1 + } + }, + data: { + loading: { + confirm: !1, + cancel: !1 + } + }, + watch: { + show: function(n) { + !n && this.stopLoading(); + } + }, + methods: { + onConfirm: function() { + this.handleAction("confirm"); + }, + onCancel: function() { + this.handleAction("cancel"); + }, + onClickOverlay: function() { + this.onClose("overlay"); + }, + handleAction: function(e) { + this.data.asyncClose && this.set(n({}, "loading." + e, !0)), this.onClose(e); + }, + close: function() { + this.set({ + show: !1 + }); + }, + stopLoading: function() { + this.set({ + loading: { + confirm: !1, + cancel: !1 + } + }); + }, + onClose: function(n) { + this.data.asyncClose || this.close(), this.$emit("close", n), this.$emit(n, { + dialog: this + }); + var e = this.data["confirm" === n ? "onConfirm" : "onCancel"]; + e && e(this); + } + } +}); \ No newline at end of file diff --git a/vant/dialog/index.json b/vant/dialog/index.json new file mode 100644 index 0000000..3122728 --- /dev/null +++ b/vant/dialog/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "../popup/index", + "van-button": "../button/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-icon": "/vant/icon/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/dialog/index.wxml b/vant/dialog/index.wxml new file mode 100644 index 0000000..71fd43b --- /dev/null +++ b/vant/dialog/index.wxml @@ -0,0 +1,18 @@ + + + {{title}} + + + + + {{message}} + + + + {{cancelButtonText}} + + + {{confirmButtonText}} + + + diff --git a/vant/dialog/index.wxss b/vant/dialog/index.wxss new file mode 100644 index 0000000..e8e92bd --- /dev/null +++ b/vant/dialog/index.wxss @@ -0,0 +1,68 @@ +@import "../area/index.wxss"; + +.van-dialog { + width: 85%; + overflow: hidden; + font-size: 16px; + background-color: #fff; + border-radius: 4px; +} + +.van-dialog__header { + padding-top: 21px; + font-weight: 500; + text-align: center; +} + +.van-dialog__header--isolated { + padding: 25px 0; +} + +.van-dialog__message { + max-height: 60vh; + padding: 10px 15px; + overflow-y: auto; + font-size: 14px; + line-height: 20px; + text-align: center; + -webkit-overflow-scrolling: touch; +} + +.van-dialog__message--has-title { + padding-top: 12px; + color: #7d7e80; +} + +.van-dialog__message--left { + text-align: left; +} + +.van-dialog__message--right { + text-align: right; +} + +.van-dialog__footer { + display: flex; +} + +.van-dialog__button { + flex: 1; +} + +.van-dialog__cancel,.van-dialog__confirm { + border: 0!important; +} + +.van-dialog__confirm { + color: #1989fa!important; +} + +.van-dialog-bounce-enter { + opacity: 0; + transform: translate3d(-50%,-50%,0) scale(.7); +} + +.van-dialog-bounce-leave-active { + opacity: 0; + transform: translate3d(-50%,-50%,0) scale(.9); +} \ No newline at end of file diff --git a/vant/field/index.js b/vant/field/index.js new file mode 100644 index 0000000..9e2f1e0 --- /dev/null +++ b/vant/field/index.js @@ -0,0 +1,150 @@ +(0, require("../common/component").VantComponent)({ + field: !0, + classes: [ "input-class", "right-icon-class" ], + props: { + size: String, + icon: String, + label: String, + toggle: Boolean, + error: Boolean, + fixed: Boolean, + focus: Boolean, + center: Boolean, + isLink: Boolean, + leftIcon: String, + rightIcon: String, + disabled: Boolean, + autosize: Boolean, + readonly: Boolean, + required: Boolean, + password: Boolean, + iconClass: String, + clearable: Boolean, + inputAlign: String, + inputClass: String, + customClass: String, + customStyle: String, + confirmType: String, + confirmHold: Boolean, + errorMessage: String, + placeholder: String, + placeholderStyle: String, + errorMessageAlign: String, + showConfirmBar: { + type: Boolean, + value: !0 + }, + adjustPosition: { + type: Boolean, + value: !0 + }, + cursorSpacing: { + type: Number, + value: 50 + }, + maxlength: { + type: Number, + value: -1 + }, + type: { + type: String, + value: "text" + }, + border: { + type: Boolean, + value: !0 + }, + titleWidth: { + type: String, + value: "78px" + }, + hidden: { + type: Boolean, + value: !1 + } + }, + data: { + showClear: !1 + }, + beforeCreate: function() { + this.focused = !1, this.set({ + placeholder: 1 + }); + }, + created: function() { + this.data.placeholder && this.set({ + placeholder: this.data.placeholder.replace(/
/g, "\n") + }), "textarea" == this.data.type && this.data.value && this.set({ + value: this.data.value.replace(/\\n/g, "\n").replace(/\\t/g, "\t") + }); + }, + methods: { + onLoad: function() {}, + onInput: function(e) { + var t = this, a = (e.detail || {}).value, o = void 0 === a ? "" : a; + this.set({ + value: o, + showClear: this.getShowClear(o) + }, function() { + t.emitChange(o); + }); + }, + onFocus: function(e) { + var t = e.detail || {}, a = t.value, o = void 0 === a ? "" : a, i = t.height, n = void 0 === i ? 0 : i; + this.$emit("focus", { + value: o, + height: n + }), this.focused = !0, this.blurFromClear = !1, this.set({ + showClear: this.getShowClear() + }); + }, + onBlur: function(e) { + var t = this, a = e.detail || {}, o = a.value, i = void 0 === o ? "" : o, n = a.cursor, l = void 0 === n ? 0 : n; + this.$emit("blur", { + value: i, + cursor: l + }), this.focused = !1; + var r = this.getShowClear(); + this.data.value === i ? this.set({ + showClear: r + }) : this.blurFromClear || this.set({ + value: i, + showClear: r + }, function() { + t.emitChange(i); + }); + }, + onClickIcon: function() { + this.$emit("click-icon"); + }, + getShowClear: function(e) { + return e = void 0 === e ? this.data.value : e, this.data.clearable && this.focused && e && !this.data.readonly; + }, + onClear: function() { + var e = this; + wx.showModal({ + title: "提示", + content: "确定清空当前输入框内容吗?", + success: function(t) { + t.confirm && (e.blurFromClear = !0, e.set({ + value: "", + showClear: e.getShowClear("") + }, function() { + e.emitChange(""), e.$emit("clear", ""); + })); + } + }); + }, + onConfirm: function() { + this.$emit("confirm", this.data.value); + }, + emitChange: function(e) { + var t = this.data.name, a = this.data.label; + this.$emit("input", e), this.$emit("change", { + name: t, + label: a, + value: e + }); + } + } +}); \ No newline at end of file diff --git a/vant/field/index.json b/vant/field/index.json new file mode 100644 index 0000000..0402a01 --- /dev/null +++ b/vant/field/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-cell": "../cell/index", + "van-icon": "../icon/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/field/index.wxml b/vant/field/index.wxml new file mode 100644 index 0000000..ebca872 --- /dev/null +++ b/vant/field/index.wxml @@ -0,0 +1,29 @@ + + \ No newline at end of file diff --git a/vant/field/index.wxss b/vant/field/index.wxss new file mode 100644 index 0000000..5868b92 --- /dev/null +++ b/vant/field/index.wxss @@ -0,0 +1,104 @@ +@import "../area/index.wxss"; + +.van-field__body { + display: flex; + align-items: center; +} + +.van-field__body--textarea { + min-height: 24px; +} + +.van-field__input { + position: relative; + display: block; + width: 100%; + height: 24px; + min-height: 24px; + padding: 0; + margin: 0; + line-height: inherit; + color: #333; + text-align: left; + background-color: initial; + border: 0; + box-sizing: border-box; + resize: none; +} + +.van-field__input--disabled { + color: #999; + background-color: initial; + opacity: 1; +} + +.van-field__input--center { + text-align: center; +} + +.van-field__input--right { + text-align: right; +} + +.van-field__placeholder { + position: absolute; + top: 0; + left: 0; + color: #999; + pointer-events: none; +} + +.van-field__placeholder--error { + color: #f44; +} + +.van-field__icon-root { + display: flex; + min-height: 24px; + align-items: center; +} + +.van-field__clear-root,.van-field__icon-container { + padding: 0 10px; + margin-right: -10px; + line-height: inherit; + vertical-align: middle; +} + +.van-field__button,.van-field__clear-root,.van-field__icon-container { + flex-shrink: 0; +} + +.van-field__clear-root { + color: #c9c9c9; +} + +.van-field__icon-container { + color: #999; +} + +.van-field__icon-container:empty { + display: none; +} + +.van-field__button { + padding-left: 10px; +} + +.van-field__button:empty { + display: none; +} + +.van-field__error-message { + font-size: 12px; + color: #f44; + text-align: left; +} + +.van-field__error-message--center { + text-align: center; +} + +.van-field__error-message--right { + text-align: right; +} \ No newline at end of file diff --git a/vant/goods-action-button/index.js b/vant/goods-action-button/index.js new file mode 100644 index 0000000..47e5902 --- /dev/null +++ b/vant/goods-action-button/index.js @@ -0,0 +1,37 @@ +var t = require("../common/component"), i = require("../mixins/link"), n = require("../mixins/button"), e = require("../mixins/open-type"); + +(0, t.VantComponent)({ + mixins: [ i.link, n.button, e.openType ], + relation: { + type: "ancestor", + name: "goods-action", + linked: function(t) { + this.parent = t; + } + }, + props: { + text: String, + color: String, + loading: Boolean, + disabled: Boolean, + type: { + type: String, + value: "danger" + } + }, + mounted: function() { + this.updateStyle(); + }, + methods: { + onClick: function(t) { + this.$emit("click", t.detail), this.jumpLink(); + }, + updateStyle: function() { + var t = this.parent.children, i = void 0 === t ? [] : t, n = i.indexOf(this); + this.setData({ + isFirst: 0 === n, + isLast: n === i.length - 1 + }); + } + } +}); \ No newline at end of file diff --git a/vant/goods-action-button/index.json b/vant/goods-action-button/index.json new file mode 100644 index 0000000..9cbc696 --- /dev/null +++ b/vant/goods-action-button/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-button": "../button/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/goods-action-button/index.wxml b/vant/goods-action-button/index.wxml new file mode 100644 index 0000000..6e14b3c --- /dev/null +++ b/vant/goods-action-button/index.wxml @@ -0,0 +1,4 @@ + + {{text}} + + \ No newline at end of file diff --git a/vant/goods-action-button/index.wxss b/vant/goods-action-button/index.wxss new file mode 100644 index 0000000..c729ba5 --- /dev/null +++ b/vant/goods-action-button/index.wxss @@ -0,0 +1,45 @@ +@import "../area/index.wxss"; + +.van-goods-action-button { + border: none!important; + height: 40px!important; + height: var(--goods-action-button-height,40px)!important; + font-weight: 500!important; + font-weight: var(--font-weight-bold,500)!important; + line-height: 40px!important; + line-height: var(--goods-action-button-height,40px)!important; +} + +.van-goods-action-button--first { + display: block!important; + margin-left: 5px; + border-top-left-radius: 20px!important; + border-top-left-radius: var(--goods-action-button-border-radius,20px)!important; + border-bottom-left-radius: 20px!important; + border-bottom-left-radius: var(--goods-action-button-border-radius,20px)!important; +} + +.van-goods-action-button--last { + display: block!important; + margin-right: 5px; + border-top-right-radius: 20px!important; + border-top-right-radius: var(--goods-action-button-border-radius,20px)!important; + border-bottom-right-radius: 20px!important; + border-bottom-right-radius: var(--goods-action-button-border-radius,20px)!important; +} + +.van-goods-action-button--warning { + background: linear-gradient(90deg,#ffd01e,#ff8917); + background: var(--goods-action-button-warning-color,linear-gradient(90deg,#ffd01e,#ff8917)); +} + +.van-goods-action-button--danger { + background: linear-gradient(90deg,#ff6034,#ee0a24); + background: var(--goods-action-button-danger-color,linear-gradient(90deg,#ff6034,#ee0a24)); +} + +@media (max-width:321px) { + .van-goods-action-button { + font-size: 13px; + } +} \ No newline at end of file diff --git a/vant/goods-action-icon/index.js b/vant/goods-action-icon/index.js new file mode 100644 index 0000000..02efd73 --- /dev/null +++ b/vant/goods-action-icon/index.js @@ -0,0 +1,19 @@ +var i = require("../common/component"), n = require("../mixins/link"), e = require("../mixins/button"), o = require("../mixins/open-type"); + +(0, i.VantComponent)({ + classes: [ "icon-class", "text-class" ], + mixins: [ n.link, e.button, o.openType ], + props: { + text: String, + dot: Boolean, + info: String, + icon: String, + disabled: Boolean, + loading: Boolean + }, + methods: { + onClick: function(i) { + this.$emit("click", i.detail), this.jumpLink(); + } + } +}); \ No newline at end of file diff --git a/vant/goods-action-icon/index.json b/vant/goods-action-icon/index.json new file mode 100644 index 0000000..0061f6f --- /dev/null +++ b/vant/goods-action-icon/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-button": "../button/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/goods-action-icon/index.wxml b/vant/goods-action-icon/index.wxml new file mode 100644 index 0000000..9454583 --- /dev/null +++ b/vant/goods-action-icon/index.wxml @@ -0,0 +1,7 @@ + + + + + {{text}} + + diff --git a/vant/goods-action-icon/index.wxss b/vant/goods-action-icon/index.wxss new file mode 100644 index 0000000..bb41cd0 --- /dev/null +++ b/vant/goods-action-icon/index.wxss @@ -0,0 +1,23 @@ +@import "../area/index.wxss"; + +.van-goods-action-icon { + border: none!important; + width: 50px!important; + width: var(--goods-action-icon-height,50px)!important; +} + +.van-goods-action-icon__content { + display: flex; + flex-direction: column; + justify-content: center; + height: 100%; + line-height: 1; + font-size: 10px; + font-size: var(--goods-action-icon-font-size,10px); + color: #646566; + color: var(--goods-action-icon-text-color,#646566); +} + +.van-goods-action-icon__icon { + margin-bottom: 4px; +} \ No newline at end of file diff --git a/vant/goods-action/index.js b/vant/goods-action/index.js new file mode 100644 index 0000000..8a0ec35 --- /dev/null +++ b/vant/goods-action/index.js @@ -0,0 +1,23 @@ +(0, require("../common/component").VantComponent)({ + relation: { + type: "descendant", + name: "goods-action-button", + linked: function(n) { + this.children.push(n); + }, + unlinked: function(n) { + this.children = this.children.filter(function(e) { + return e !== n; + }); + } + }, + beforeCreate: function() { + this.children = []; + }, + props: { + safeAreaInsetBottom: { + type: Boolean, + value: !0 + } + } +}); \ No newline at end of file diff --git a/vant/goods-action/index.json b/vant/goods-action/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/goods-action/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/goods-action/index.wxml b/vant/goods-action/index.wxml new file mode 100644 index 0000000..9821e54 --- /dev/null +++ b/vant/goods-action/index.wxml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/vant/goods-action/index.wxss b/vant/goods-action/index.wxss new file mode 100644 index 0000000..73afdd6 --- /dev/null +++ b/vant/goods-action/index.wxss @@ -0,0 +1,17 @@ +@import "../area/index.wxss"; + +.van-goods-action { + z-index: 999; + position: fixed; + right: 0; + bottom: 0; + left: 0; + display: flex; + align-items: center; + background-color: #fff; + background-color: var(--goods-action-background-color,#fff); +} + +.van-goods-action--safe { + padding-bottom: env(safe-area-inset-bottom); +} \ No newline at end of file diff --git a/vant/icon/index.js b/vant/icon/index.js new file mode 100644 index 0000000..ed7d5df --- /dev/null +++ b/vant/icon/index.js @@ -0,0 +1,18 @@ +(0, require("../common/component").VantComponent)({ + props: { + info: null, + name: String, + size: String, + color: String, + customStyle: String, + classPrefix: { + type: String, + value: "van-icon" + } + }, + methods: { + onClick: function() { + this.$emit("click"); + } + } +}); \ No newline at end of file diff --git a/vant/icon/index.json b/vant/icon/index.json new file mode 100644 index 0000000..942164a --- /dev/null +++ b/vant/icon/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-info": "../info/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/icon/index.wxml b/vant/icon/index.wxml new file mode 100644 index 0000000..67586a5 --- /dev/null +++ b/vant/icon/index.wxml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/vant/icon/index.wxss b/vant/icon/index.wxss new file mode 100644 index 0000000..334d00c --- /dev/null +++ b/vant/icon/index.wxss @@ -0,0 +1,1279 @@ +@import "../area/index.wxss"; + +@font-face { + font-style:normal;font-weight:400;font-family:vant-icon;src:url(data:application/font-woff2;charset=utf-8;base64,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) format('woff2'); +} + +.van-icon { + position: relative; + font-family: vant-icon; + display: inline; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-size: 16px; +} + +.van-icon,.van-icon:before { + display: inline-block; +} + +.van-icon-add-o:before { + content: "\f000"; +} + +.van-icon-add-square:before { + content: "\f001"; +} + +.van-icon-add:before { + content: "\f002"; +} + +.van-icon-after-sale:before { + content: "\f003"; +} + +.van-icon-aim:before { + content: "\f004"; +} + +.van-icon-alipay:before { + content: "\f005"; +} + +.van-icon-apps-o:before { + content: "\f006"; +} + +.van-icon-arrow-down:before { + content: "\f007"; +} + +.van-icon-arrow-left:before { + content: "\f008"; +} + +.van-icon-arrow-up:before { + content: "\f009"; +} + +.van-icon-arrow:before { + content: "\f00a"; +} + +.van-icon-ascending:before { + content: "\f00b"; +} + +.van-icon-audio:before { + content: "\f00c"; +} + +.van-icon-award-o:before { + content: "\f00d"; +} + +.van-icon-award:before { + content: "\f00e"; +} + +.van-icon-bag-o:before { + content: "\f00f"; +} + +.van-icon-bag:before { + content: "\f010"; +} + +.van-icon-balance-list-o:before { + content: "\f011"; +} + +.van-icon-balance-list:before { + content: "\f012"; +} + +.van-icon-balance-o:before { + content: "\f013"; +} + +.van-icon-balance-pay:before { + content: "\f014"; +} + +.van-icon-bar-chart-o:before { + content: "\f015"; +} + +.van-icon-bars:before { + content: "\f016"; +} + +.van-icon-bell:before { + content: "\f017"; +} + +.van-icon-bill-o:before { + content: "\f018"; +} + +.van-icon-bill:before { + content: "\f019"; +} + +.van-icon-birthday-cake-o:before { + content: "\f01a"; +} + +.van-icon-bookmark-o:before { + content: "\f01b"; +} + +.van-icon-bookmark:before { + content: "\f01c"; +} + +.van-icon-browsing-history-o:before { + content: "\f01d"; +} + +.van-icon-browsing-history:before { + content: "\f01e"; +} + +.van-icon-brush-o:before { + content: "\f01f"; +} + +.van-icon-bulb-o:before { + content: "\f020"; +} + +.van-icon-bullhorn-o:before { + content: "\f021"; +} + +.van-icon-calender-o:before { + content: "\f022"; +} + +.van-icon-card:before { + content: "\f023"; +} + +.van-icon-cart-circle-o:before { + content: "\f024"; +} + +.van-icon-cart-circle:before { + content: "\f025"; +} + +.van-icon-cart-o:before { + content: "\f026"; +} + +.van-icon-cart:before { + content: "\f027"; +} + +.van-icon-cash-back-record:before { + content: "\f028"; +} + +.van-icon-cash-on-deliver:before { + content: "\f029"; +} + +.van-icon-cashier-o:before { + content: "\f02a"; +} + +.van-icon-certificate:before { + content: "\f02b"; +} + +.van-icon-chart-trending-o:before { + content: "\f02c"; +} + +.van-icon-chat-o:before { + content: "\f02d"; +} + +.van-icon-chat:before { + content: "\f02e"; +} + +.van-icon-checked:before { + content: "\f02f"; +} + +.van-icon-circle:before { + content: "\f030"; +} + +.van-icon-clear:before { + content: "\f031"; +} + +.van-icon-clock-o:before { + content: "\f032"; +} + +.van-icon-clock:before { + content: "\f033"; +} + +.van-icon-close:before { + content: "\f034"; +} + +.van-icon-closed-eye:before { + content: "\f035"; +} + +.van-icon-cluster-o:before { + content: "\f036"; +} + +.van-icon-cluster:before { + content: "\f037"; +} + +.van-icon-column:before { + content: "\f038"; +} + +.van-icon-comment-circle-o:before { + content: "\f039"; +} + +.van-icon-comment-o:before { + content: "\f03a"; +} + +.van-icon-comment:before { + content: "\f03b"; +} + +.van-icon-completed:before { + content: "\f03c"; +} + +.van-icon-contact:before { + content: "\f03d"; +} + +.van-icon-coupon-o:before { + content: "\f03e"; +} + +.van-icon-coupon:before { + content: "\f03f"; +} + +.van-icon-credit-pay:before { + content: "\f040"; +} + +.van-icon-cross:before { + content: "\f041"; +} + +.van-icon-debit-pay:before { + content: "\f042"; +} + +.van-icon-delete:before { + content: "\f043"; +} + +.van-icon-descending:before { + content: "\f044"; +} + +.van-icon-description:before { + content: "\f045"; +} + +.van-icon-desktop-o:before { + content: "\f046"; +} + +.van-icon-diamond-o:before { + content: "\f047"; +} + +.van-icon-diamond:before { + content: "\f048"; +} + +.van-icon-discount:before { + content: "\f049"; +} + +.van-icon-ecard-pay:before { + content: "\f04a"; +} + +.van-icon-edit:before { + content: "\f04b"; +} + +.van-icon-ellipsis:before { + content: "\f04c"; +} + +.van-icon-envelop-o:before { + content: "\f04e"; +} + +.van-icon-exchange:before { + content: "\f04f"; +} + +.van-icon-expand-o:before { + content: "\f050"; +} + +.van-icon-expand:before { + content: "\f051"; +} + +.van-icon-eye-o:before { + content: "\f052"; +} + +.van-icon-eye:before { + content: "\f053"; +} + +.van-icon-fail:before { + content: "\f054"; +} + +.van-icon-failure:before { + content: "\f055"; +} + +.van-icon-filter-o:before { + content: "\f056"; +} + +.van-icon-fire-o:before { + content: "\f057"; +} + +.van-icon-fire:before { + content: "\f058"; +} + +.van-icon-flag-o:before { + content: "\f059"; +} + +.van-icon-flower-o:before { + content: "\f05a"; +} + +.van-icon-free-postage:before { + content: "\f05b"; +} + +.van-icon-friends-o:before { + content: "\f05c"; +} + +.van-icon-friends:before { + content: "\f05d"; +} + +.van-icon-gem-o:before { + content: "\f05e"; +} + +.van-icon-gem:before { + content: "\f05f"; +} + +.van-icon-gift-card-o:before { + content: "\f060"; +} + +.van-icon-gift-card:before { + content: "\f061"; +} + +.van-icon-gift-o:before { + content: "\f062"; +} + +.van-icon-gift:before { + content: "\f063"; +} + +.van-icon-gold-coin-o:before { + content: "\f064"; +} + +.van-icon-gold-coin:before { + content: "\f065"; +} + +.van-icon-goods-collect-o:before { + content: "\f066"; +} + +.van-icon-goods-collect:before { + content: "\f067"; +} + +.van-icon-graphic:before { + content: "\f068"; +} + +.van-icon-home-o:before { + content: "\f069"; +} + +.van-icon-hot-o:before { + content: "\f06a"; +} + +.van-icon-hot-sale-o:before { + content: "\f06b"; +} + +.van-icon-hot-sale:before { + content: "\f06c"; +} + +.van-icon-hot:before { + content: "\f06d"; +} + +.van-icon-hotel-o:before { + content: "\f06e"; +} + +.van-icon-idcard:before { + content: "\f06f"; +} + +.van-icon-info-o:before { + content: "\f070"; +} + +.van-icon-info:before { + content: "\f071"; +} + +.van-icon-invition:before { + content: "\f072"; +} + +.van-icon-label-o:before { + content: "\f073"; +} + +.van-icon-label:before { + content: "\f074"; +} + +.van-icon-like-o:before { + content: "\f075"; +} + +.van-icon-like:before { + content: "\f076"; +} + +.van-icon-live:before { + content: "\f077"; +} + +.van-icon-location-o:before { + content: "\f078"; +} + +.van-icon-location:before { + content: "\f079"; +} + +.van-icon-lock:before { + content: "\f07a"; +} + +.van-icon-logistics:before { + content: "\f07b"; +} + +.van-icon-manager-o:before { + content: "\f07c"; +} + +.van-icon-manager:before { + content: "\f07d"; +} + +.van-icon-map-marked:before { + content: "\f07e"; +} + +.van-icon-medel-o:before { + content: "\f07f"; +} + +.van-icon-medel:before { + content: "\f080"; +} + +.van-icon-more-o:before { + content: "\f081"; +} + +.van-icon-more:before { + content: "\f082"; +} + +.van-icon-music-o:before { + content: "\f083"; +} + +.van-icon-new-arrival-o:before { + content: "\f084"; +} + +.van-icon-new-arrival:before { + content: "\f085"; +} + +.van-icon-new-o:before { + content: "\f086"; +} + +.van-icon-new:before { + content: "\f087"; +} + +.van-icon-newspaper-o:before { + content: "\f088"; +} + +.van-icon-notes-o:before { + content: "\f089"; +} + +.van-icon-orders-o:before { + content: "\f08a"; +} + +.van-icon-other-pay:before { + content: "\f08b"; +} + +.van-icon-paid:before { + content: "\f08c"; +} + +.van-icon-passed:before { + content: "\f08d"; +} + +.van-icon-pause-circle-o:before { + content: "\f08e"; +} + +.van-icon-pause-circle:before { + content: "\f08f"; +} + +.van-icon-pause:before { + content: "\f090"; +} + +.van-icon-peer-pay:before { + content: "\f091"; +} + +.van-icon-pending-payment:before { + content: "\f092"; +} + +.van-icon-phone-circle-o:before { + content: "\f093"; +} + +.van-icon-phone-o:before { + content: "\f094"; +} + +.van-icon-phone:before { + content: "\f095"; +} + +.van-icon-photo-o:before { + content: "\f096"; +} + +.van-icon-photo:before { + content: "\f097"; +} + +.van-icon-photograph:before { + content: "\f098"; +} + +.van-icon-play-circle-o:before { + content: "\f099"; +} + +.van-icon-play-circle:before { + content: "\f09a"; +} + +.van-icon-play:before { + content: "\f09b"; +} + +.van-icon-plus:before { + content: "\f09c"; +} + +.van-icon-point-gift-o:before { + content: "\f09d"; +} + +.van-icon-point-gift:before { + content: "\f09e"; +} + +.van-icon-points:before { + content: "\f09f"; +} + +.van-icon-printer:before { + content: "\f0a0"; +} + +.van-icon-qr-invalid:before { + content: "\f0a1"; +} + +.van-icon-qr:before { + content: "\f0a2"; +} + +.van-icon-question-o:before { + content: "\f0a3"; +} + +.van-icon-question:before { + content: "\f0a4"; +} + +.van-icon-records:before { + content: "\f0a5"; +} + +.van-icon-refund-o:before { + content: "\f0a6"; +} + +.van-icon-replay:before { + content: "\f0a7"; +} + +.van-icon-scan:before { + content: "\f0a8"; +} + +.van-icon-search1:before { + content: "\f0a9"; +} + +.van-icon-send-gift-o:before { + content: "\f0aa"; +} + +.van-icon-send-gift:before { + content: "\f0ab"; +} + +.van-icon-service-o:before { + content: "\f0ac"; +} + +.van-icon-service:before { + content: "\f0ad"; +} + +.van-icon-setting-o:before { + content: "\f0ae"; +} + +.van-icon-setting:before { + content: "\f0af"; +} + +.van-icon-share:before { + content: "\f0b0"; +} + +.van-icon-shop-collect-o:before { + content: "\f0b1"; +} + +.van-icon-shop-collect:before { + content: "\f0b2"; +} + +.van-icon-shop-o:before { + content: "\f0b3"; +} + +.van-icon-shop:before { + content: "\f0b4"; +} + +.van-icon-shopping-cart-o:before { + content: "\f0b5"; +} + +.van-icon-shopping-cart:before { + content: "\f0b6"; +} + +.van-icon-shrink:before { + content: "\f0b7"; +} + +.van-icon-sign:before { + content: "\f0b8"; +} + +.van-icon-smile-comment-o:before { + content: "\f0b9"; +} + +.van-icon-smile-comment:before { + content: "\f0ba"; +} + +.van-icon-smile-o:before { + content: "\f0bb"; +} + +.van-icon-star-o:before { + content: "\f0bc"; +} + +.van-icon-star:before { + content: "\f0bd"; +} + +.van-icon-stop-circle-o:before { + content: "\f0be"; +} + +.van-icon-stop-circle:before { + content: "\f0bf"; +} + +.van-icon-stop:before { + content: "\f0c0"; +} + +.van-icon-success:before { + content: "\f0c1"; +} + +.van-icon-thumb-circle-o:before { + content: "\f0c2"; +} + +.van-icon-todo-list-o:before { + content: "\f0c3"; +} + +.van-icon-todo-list:before { + content: "\f0c4"; +} + +.van-icon-tosend:before { + content: "\f0c5"; +} + +.van-icon-tv-o:before { + content: "\f0c6"; +} + +.van-icon-umbrella-circle:before { + content: "\f0c7"; +} + +.van-icon-underway-o:before { + content: "\f0c8"; +} + +.van-icon-underway:before { + content: "\f0c9"; +} + +.van-icon-upgrade:before { + content: "\f0ca"; +} + +.van-icon-user-circle-o:before { + content: "\f0cb"; +} + +.van-icon-user-o:before { + content: "\f0cc"; +} + +.van-icon-video-o:before { + content: "\f0cd"; +} + +.van-icon-video:before { + content: "\f0ce"; +} + +.van-icon-vip-card-o:before { + content: "\f0cf"; +} + +.van-icon-vip-card:before { + content: "\f0d0"; +} + +.van-icon-volume-o:before { + content: "\f0d1"; +} + +.van-icon-volume:before { + content: "\f0d2"; +} + +.van-icon-wap-home:before { + content: "\f0d3"; +} + +.van-icon-wap-nav:before { + content: "\f0d4"; +} + +.van-icon-warn-o:before { + content: "\f0d5"; +} + +.van-icon-warning-o:before { + content: "\f0d6"; +} + +.van-icon-weapp-nav:before { + content: "\f0d7"; +} + +.van-icon-wechat:before { + content: "\f0d8"; +} + +.van-icon-youzan-shield:before { + content: "\f0d9"; +} + +.van-icon-huiliuquhuodong:before { + content: "\3477"; +} + +.van-icon-caidantubiao-02:before { + content: "\e501"; +} + +.van-icon-shijian:before { + content: "\e600"; +} + +.van-icon-qq:before { + content: "\e603"; +} + +.van-icon-zhishu:before { + content: "\e614"; +} + +.van-icon-tuijian:before { + content: "\e617"; +} + +.van-icon-woyaojubao-copy:before { + content: "\e61b"; +} + +.van-icon-guize:before { + content: "\e625"; +} + +.van-icon-kefu1:before { + content: "\e62a"; +} + +.van-icon-tuijiankaobei4-left:before { + content: "\e62b"; +} + +.van-icon-kefu2:before { + content: "\e62f"; +} + +.van-icon-icon1460187848267:before { + content: "\e630"; +} + +.van-icon-chakantieziguanzhu:before { + content: "\e631"; +} + +.van-icon-fanhuidingbu:before { + content: "\e632"; +} + +.van-icon-touxiang:before { + content: "\e637"; +} + +.van-icon-lajitong:before { + content: "\e647"; +} + +.van-icon-shang:before { + content: "\e648"; +} + +.van-icon-shang-copy-copy:before { + content: "\e649"; +} + +.van-icon-tianjia:before { + content: "\e64a"; +} + +.van-icon-yulan:before { + content: "\e64c"; +} + +.van-icon-jia:before { + content: "\e64d"; +} + +.van-icon-duigou1:before { + content: "\e64e"; +} + +.van-icon-jian:before { + content: "\e64f"; +} + +.van-icon-duigou:before { + content: "\e650"; +} + +.van-icon-zhifubao:before { + content: "\e654"; +} + +.van-icon-wangyin:before { + content: "\e656"; +} + +.van-icon-weixinzhifu:before { + content: "\e657"; +} + +.van-icon-jifen:before { + content: "\e65a"; +} + +.van-icon-jifen1:before { + content: "\e65f"; +} + +.van-icon-jifenmingxi:before { + content: "\e662"; +} + +.van-icon-zhuye1:before { + content: "\e664"; +} + +.van-icon-qq2:before { + content: "\e666"; +} + +.van-icon-yuanxing:before { + content: "\e668"; +} + +.van-icon-shuaxin:before { + content: "\e669"; +} + +.van-icon-shaixuan1:before { + content: "\e66c"; +} + +.van-icon-icon-yxj-empty-store:before { + content: "\e66d"; +} + +.van-icon-luntanline:before { + content: "\e66e"; +} + +.van-icon-icon1:before { + content: "\e671"; +} + +.van-icon-icon:before { + content: "\e672"; +} + +.van-icon-favor:before { + content: "\e673"; +} + +.van-icon-search:before { + content: "\e674"; +} + +.van-icon-deliver:before { + content: "\e675"; +} + +.van-icon-evaluate:before { + content: "\e676"; +} + +.van-icon-pay:before { + content: "\e677"; +} + +.van-icon-iconfonticonpay:before { + content: "\e67c"; +} + +.van-icon-shalou:before { + content: "\e682"; +} + +.van-icon-dianhua:before { + content: "\e684"; +} + +.van-icon-chakanjilu:before { + content: "\e685"; +} + +.van-icon-balance2:before { + content: "\e68e"; +} + +.van-icon-haofangtuo400iconfontqiugouxinxi:before { + content: "\e690"; +} + +.van-icon-shoucang3:before { + content: "\e693"; +} + +.van-icon-mingxi-copy:before { + content: "\e695"; +} + +.van-icon-zhanghuanquan:before { + content: "\e69b"; +} + +.van-icon-icon6:before { + content: "\e69c"; +} + +.van-icon-49:before { + content: "\e69d"; +} + +.van-icon-msnui-safe:before { + content: "\e6a2"; +} + +.van-icon-icongonggao01:before { + content: "\e6a4"; +} + +.van-icon-tishi2:before { + content: "\e6a7"; +} + +.van-icon-zhuce2:before { + content: "\e6aa"; +} + +.van-icon-gouwuchekong:before { + content: "\e6ab"; +} + +.van-icon-tongji:before { + content: "\e6b1"; +} + +.van-icon-shuaxin1:before { + content: "\e6b2"; +} + +.van-icon-shuaxin3:before { + content: "\e6b4"; +} + +.van-icon-tupian3:before { + content: "\e6b5"; +} + +.van-icon-qian-:before { + content: "\e6b7"; +} + +.van-icon-dingweijujiao:before { + content: "\e6bd"; +} + +.van-icon-jujiao:before { + content: "\e6c1"; +} + +.van-icon-tijiao:before { + content: "\e6c6"; +} + +.van-icon-gou4:before { + content: "\e6cc"; +} + +.van-icon-cuowu:before { + content: "\e6cd"; +} + +.van-icon-zhengque:before { + content: "\e6ce"; +} + +.van-icon-wangzhanpeizhi:before { + content: "\e6d4"; +} + +.van-icon-anonymous-iconfont:before { + content: "\e6d5"; +} + +.van-icon-tishi3:before { + content: "\e6e0"; +} + +.van-icon-xinzeng:before { + content: "\e6e1"; +} + +.van-icon-yun:before { + content: "\e6e3"; +} + +.van-icon-wenzhang:before { + content: "\e6e4"; +} + +.van-icon-zhifeiji:before { + content: "\e6e6"; +} + +.van-icon-zjdm:before { + content: "\e6e7"; +} + +.van-icon-cangku:before { + content: "\e6ea"; +} + +.van-icon-we:before { + content: "\e6f5"; +} + +.van-icon-tixianjilu:before { + content: "\e706"; +} + +.van-icon-creative:before { + content: "\e719"; +} + +.van-icon-yuanjiaojuxing:before { + content: "\e71a"; +} + +.van-icon-bad:before { + content: "\e723"; +} + +.van-icon-taoxiaopu:before { + content: "\e73b"; +} + +.van-icon-goodsnew:before { + content: "\e7c0"; +} + +.van-icon-tuichu:before { + content: "\e7c7"; +} + +.van-icon-fenlei2:before { + content: "\e85a"; +} + +.van-icon--fuwu-xianxing:before { + content: "\e8a9"; +} + +.van-icon-kulian:before { + content: "\e8d6"; +} + +.van-icon-coffee:before { + content: "\e97a"; +} + +.van-icon--image { + width: 1em; + height: 1em; +} + +.van-icon__image { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + max-width: 100%; + max-height: 100%; + margin: auto; +} + +.van-icon__info { + z-index: 1; +} \ No newline at end of file diff --git a/vant/info/index.js b/vant/info/index.js new file mode 100644 index 0000000..b33014b --- /dev/null +++ b/vant/info/index.js @@ -0,0 +1,6 @@ +(0, require("../common/component").VantComponent)({ + props: { + info: null, + customStyle: String + } +}); \ No newline at end of file diff --git a/vant/info/index.json b/vant/info/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/info/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/info/index.wxml b/vant/info/index.wxml new file mode 100644 index 0000000..655d232 --- /dev/null +++ b/vant/info/index.wxml @@ -0,0 +1 @@ +{{info}} diff --git a/vant/info/index.wxss b/vant/info/index.wxss new file mode 100644 index 0000000..e72f4b6 --- /dev/null +++ b/vant/info/index.wxss @@ -0,0 +1,22 @@ +@import "../area/index.wxss"; + +.van-info { + position: absolute; + top: -8px; + right: 0; + min-width: 16px; + padding: 0 3px; + font-family: PingFang SC,Helvetica Neue,Arial,sans-serif; + font-size: 12px; + font-weight: 500; + line-height: 14px; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #f44; + border: 1px solid #fff; + border-radius: 16px; + transform: translateX(50%); + box-sizing: border-box; + transform-origin: 100%; +} \ No newline at end of file diff --git a/vant/loading/index.js b/vant/loading/index.js new file mode 100644 index 0000000..c0c0770 --- /dev/null +++ b/vant/loading/index.js @@ -0,0 +1,16 @@ +(0, require("../common/component").VantComponent)({ + props: { + size: { + type: String, + value: "30px" + }, + type: { + type: String, + value: "circular" + }, + color: { + type: String, + value: "#c9c9c9" + } + } +}); \ No newline at end of file diff --git a/vant/loading/index.json b/vant/loading/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/loading/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/loading/index.wxml b/vant/loading/index.wxml new file mode 100644 index 0000000..e147f87 --- /dev/null +++ b/vant/loading/index.wxml @@ -0,0 +1,5 @@ + + + + + diff --git a/vant/loading/index.wxss b/vant/loading/index.wxss new file mode 100644 index 0000000..6b87286 --- /dev/null +++ b/vant/loading/index.wxss @@ -0,0 +1,128 @@ +@import "../area/index.wxss"; + +.van-loading { + z-index: 0; + line-height: 0; + vertical-align: middle; +} + +.van-loading,.van-loading__spinner { + position: relative; + display: inline-block; +} + +.van-loading__spinner { + z-index: -1; + width: 100%; + height: 100%; + box-sizing: border-box; + animation: van-rotate .8s linear infinite; +} + +.van-loading__spinner--spinner { + animation-timing-function: steps(12); +} + +.van-loading__spinner--circular { + border-radius: 100%; + border: 1px solid transparent; + border-top-color: initial; +} + +.van-loading__dot { + top: 0; + left: 0; + width: 100%; + height: 100%; + position: absolute; +} + +.van-loading__dot:before { + width: 2px; + height: 25%; + content: " "; + display: block; + margin: 0 auto; + border-radius: 40%; + background-color: currentColor; +} + +.van-loading__dot:first-of-type { + opacity: 1; + transform: rotate(30deg); +} + +.van-loading__dot:nth-of-type(2) { + opacity: .9375; + transform: rotate(60deg); +} + +.van-loading__dot:nth-of-type(3) { + opacity: .875; + transform: rotate(90deg); +} + +.van-loading__dot:nth-of-type(4) { + opacity: .8125; + transform: rotate(120deg); +} + +.van-loading__dot:nth-of-type(5) { + opacity: .75; + transform: rotate(150deg); +} + +.van-loading__dot:nth-of-type(6) { + opacity: .6875; + transform: rotate(180deg); +} + +.van-loading__dot:nth-of-type(7) { + opacity: .625; + transform: rotate(210deg); +} + +.van-loading__dot:nth-of-type(8) { + opacity: .5625; + transform: rotate(240deg); +} + +.van-loading__dot:nth-of-type(9) { + opacity: .5; + transform: rotate(270deg); +} + +.van-loading__dot:nth-of-type(10) { + opacity: .4375; + transform: rotate(300deg); +} + +.van-loading__dot:nth-of-type(11) { + opacity: .375; + transform: rotate(330deg); +} + +.van-loading__dot:nth-of-type(12) { + opacity: .3125; + transform: rotate(1turn); +} + +@-webkit-keyframes van-rotate { + 0% { + transform: rotate(0deg); + } + + to { + transform: rotate(1turn); + } +} + +@keyframes van-rotate { + 0% { + transform: rotate(0deg); + } + + to { + transform: rotate(1turn); + } +} \ No newline at end of file diff --git a/vant/mixins/basic.js b/vant/mixins/basic.js new file mode 100644 index 0000000..83ab72a --- /dev/null +++ b/vant/mixins/basic.js @@ -0,0 +1,19 @@ +Object.defineProperty(exports, "__esModule", { + value: !0 +}); + +exports.basic = Behavior({ + methods: { + $emit: function() { + this.triggerEvent.apply(this, arguments); + }, + getRect: function(e, t) { + var r = this; + return new Promise(function(i) { + wx.createSelectorQuery().in(r)[t ? "selectAll" : "select"](e).boundingClientRect(function(e) { + t && Array.isArray(e) && e.length && i(e), !t && e && i(e); + }).exec(); + }); + } + } +}); \ No newline at end of file diff --git a/vant/mixins/button.js b/vant/mixins/button.js new file mode 100644 index 0000000..2c300dc --- /dev/null +++ b/vant/mixins/button.js @@ -0,0 +1,22 @@ +Object.defineProperty(exports, "__esModule", { + value: !0 +}); + +exports.button = Behavior({ + externalClasses: [ "hover-class" ], + properties: { + id: String, + lang: { + type: String, + value: "en" + }, + businessId: Number, + sessionFrom: String, + sendMessageTitle: String, + sendMessagePath: String, + sendMessageImg: String, + showMessageCard: Boolean, + appParameter: String, + ariaLabel: String + } +}); \ No newline at end of file diff --git a/vant/mixins/link.js b/vant/mixins/link.js new file mode 100644 index 0000000..d13320d --- /dev/null +++ b/vant/mixins/link.js @@ -0,0 +1,21 @@ +Object.defineProperty(exports, "__esModule", { + value: !0 +}); + +exports.link = Behavior({ + properties: { + url: String, + linkType: { + type: String, + value: "navigateTo" + } + }, + methods: { + jumpLink: function() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "url", t = this.data[e]; + t && wx[this.data.linkType]({ + url: t + }); + } + } +}); \ No newline at end of file diff --git a/vant/mixins/observer/behavior.js b/vant/mixins/observer/behavior.js new file mode 100644 index 0000000..feba956 --- /dev/null +++ b/vant/mixins/observer/behavior.js @@ -0,0 +1,37 @@ +function t(t, e) { + return new Promise(function(i) { + t.setData(e, i); + }); +} + +Object.defineProperty(exports, "__esModule", { + value: !0 +}); + +exports.behavior = Behavior({ + created: function() { + var t = this; + if (this.$options) { + var e = {}, i = this.$options().computed, o = Object.keys(i); + this.calcComputed = function() { + var n = {}; + return o.forEach(function(o) { + var s = i[o].call(t); + e[o] !== s && (e[o] = n[o] = s); + }), n; + }; + } + }, + attached: function() { + this.set(); + }, + methods: { + set: function(e, i) { + var o = this, n = []; + return e && n.push(t(this, e)), this.calcComputed && n.push(t(this, this.calcComputed())), + Promise.all(n).then(function(t) { + return i && "function" == typeof i && i.call(o), t; + }); + } + } +}); \ No newline at end of file diff --git a/vant/mixins/observer/index.js b/vant/mixins/observer/index.js new file mode 100644 index 0000000..65e0bff --- /dev/null +++ b/vant/mixins/observer/index.js @@ -0,0 +1,21 @@ +Object.defineProperty(exports, "__esModule", { + value: !0 +}), exports.observe = function(o, t) { + var s = o.watch, i = o.computed; + if (t.behaviors.push(e.behavior), s) { + var p = t.properties || {}; + Object.keys(s).forEach(function(e) { + if (e in p) { + var r = p[e]; + null !== r && "type" in r || (r = { + type: r + }), r.observer = s[e], p[e] = r; + } + }), t.properties = p; + } + i && (t.methods = t.methods || {}, t.methods.$options = function() { + return o; + }, t.properties && (0, r.observeProps)(t.properties)); +}; + +var e = require("./behavior"), r = require("./props"); \ No newline at end of file diff --git a/vant/mixins/observer/props.js b/vant/mixins/observer/props.js new file mode 100644 index 0000000..e76d8d9 --- /dev/null +++ b/vant/mixins/observer/props.js @@ -0,0 +1,14 @@ +Object.defineProperty(exports, "__esModule", { + value: !0 +}), exports.observeProps = function(e) { + e && Object.keys(e).forEach(function(t) { + var r = e[t]; + null !== r && "type" in r || (r = { + type: r + }); + var s = r.observer; + r.observer = function() { + s && ("string" == typeof s && (s = this[s]), s.apply(this, arguments)), this.set(); + }, e[t] = r; + }); +}; \ No newline at end of file diff --git a/vant/mixins/open-type.js b/vant/mixins/open-type.js new file mode 100644 index 0000000..1ab9763 --- /dev/null +++ b/vant/mixins/open-type.js @@ -0,0 +1,29 @@ +Object.defineProperty(exports, "__esModule", { + value: !0 +}); + +exports.openType = Behavior({ + properties: { + openType: String + }, + methods: { + bindGetUserInfo: function(e) { + this.$emit("getuserinfo", e.detail); + }, + bindContact: function(e) { + this.$emit("contact", e.detail); + }, + bindGetPhoneNumber: function(e) { + this.$emit("getphonenumber", e.detail); + }, + bindError: function(e) { + this.$emit("error", e.detail); + }, + bindLaunchApp: function(e) { + this.$emit("launchapp", e.detail); + }, + bindOpenSetting: function(e) { + this.$emit("opensetting", e.detail); + } + } +}); \ No newline at end of file diff --git a/vant/mixins/safe-area.js b/vant/mixins/safe-area.js new file mode 100644 index 0000000..b86e0b0 --- /dev/null +++ b/vant/mixins/safe-area.js @@ -0,0 +1,46 @@ +function e() { + return new Promise(function(e, s) { + null != t ? e(t) : wx.getSystemInfo({ + success: function(s) { + var n = s.model, o = s.screenHeight, a = s.statusBarHeight, r = /iphone x/i.test(n), i = /iPhone11/i.test(n) && 812 === o; + e(t = { + isIPhoneX: r || i, + statusBarHeight: a + }); + }, + fail: s + }); + }); +} + +Object.defineProperty(exports, "__esModule", { + value: !0 +}); + +var t = null; + +exports.safeArea = function() { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, s = t.safeAreaInsetBottom, n = void 0 === s || s, o = t.safeAreaInsetTop, a = void 0 !== o && o; + return Behavior({ + properties: { + safeAreaInsetTop: { + type: Boolean, + value: a + }, + safeAreaInsetBottom: { + type: Boolean, + value: n + } + }, + created: function() { + var t = this; + e().then(function(e) { + var s = e.isIPhoneX, n = e.statusBarHeight; + t.set({ + isIPhoneX: s, + statusBarHeight: n + }); + }); + } + }); +}; \ No newline at end of file diff --git a/vant/mixins/touch.js b/vant/mixins/touch.js new file mode 100644 index 0000000..58b7844 --- /dev/null +++ b/vant/mixins/touch.js @@ -0,0 +1,18 @@ +Object.defineProperty(exports, "__esModule", { + value: !0 +}); + +exports.touch = Behavior({ + methods: { + touchStart: function(t) { + var s = t.touches[0]; + this.direction = "", this.deltaX = 0, this.deltaY = 0, this.offsetX = 0, this.offsetY = 0, + this.startX = s.clientX, this.startY = s.clientY; + }, + touchMove: function(t) { + var s = t.touches[0]; + this.deltaX = s.clientX - this.startX, this.deltaY = s.clientY - this.startY, this.offsetX = Math.abs(this.deltaX), + this.offsetY = Math.abs(this.deltaY), this.direction = this.offsetX > this.offsetY ? "horizontal" : this.offsetX < this.offsetY ? "vertical" : ""; + } + } +}); \ No newline at end of file diff --git a/vant/mixins/transition.js b/vant/mixins/transition.js new file mode 100644 index 0000000..5dc51c5 --- /dev/null +++ b/vant/mixins/transition.js @@ -0,0 +1,91 @@ +Object.defineProperty(exports, "__esModule", { + value: !0 +}), exports.transition = void 0; + +var e = require("../common/utils"), t = function(e) { + return { + enter: "van-" + e + "-enter van-" + e + "-enter-active enter-class enter-active-class", + "enter-to": "van-" + e + "-enter-to van-" + e + "-enter-active enter-to-class enter-active-class", + leave: "van-" + e + "-leave van-" + e + "-leave-active leave-class leave-active-class", + "leave-to": "van-" + e + "-leave-to van-" + e + "-leave-active leave-to-class leave-active-class" + }; +}, s = function() { + return new Promise(function(e) { + return setTimeout(e, 1e3 / 30); + }); +}; + +exports.transition = function(n) { + return Behavior({ + properties: { + customStyle: String, + show: { + type: Boolean, + value: n, + observer: "observeShow" + }, + duration: { + type: [ Number, Object ], + value: 300, + observer: "observeDuration" + }, + name: { + type: String, + value: "fade", + observer: "updateClasses" + } + }, + data: { + type: "", + inited: !1, + display: !1, + classNames: t("fade") + }, + attached: function() { + this.data.show && this.show(); + }, + methods: { + observeShow: function(e) { + e ? this.show() : this.leave(); + }, + updateClasses: function(e) { + this.set({ + classNames: t(e) + }); + }, + show: function() { + var t = this, n = this.data, a = n.classNames, i = n.duration, r = (0, e.isObj)(i) ? i.leave : i; + Promise.resolve().then(s).then(function() { + return t.set({ + inited: !0, + display: !0, + classes: a.enter, + currentDuration: r + }); + }).then(s).then(function() { + return t.set({ + classes: a["enter-to"] + }); + }); + }, + leave: function() { + var t = this, n = this.data, a = n.classNames, i = n.duration, r = (0, e.isObj)(i) ? i.leave : i; + 0 != +r ? Promise.resolve().then(s).then(function() { + return t.set({ + classes: a.leave, + currentDuration: r + }); + }).then(s).then(function() { + return t.set({ + classes: a["leave-to"] + }); + }) : this.onTransitionEnd(); + }, + onTransitionEnd: function() { + this.data.show || (this.set({ + display: !1 + }), this.$emit("transitionEnd")); + } + } + }); +}; \ No newline at end of file diff --git a/vant/nav-bar/index.js b/vant/nav-bar/index.js new file mode 100644 index 0000000..911fd00 --- /dev/null +++ b/vant/nav-bar/index.js @@ -0,0 +1,31 @@ +var e = require("../common/component"), t = require("../mixins/safe-area"); + +(0, e.VantComponent)({ + mixins: [ (0, t.safeArea)({ + safeAreaInsetTop: !0 + }) ], + classes: [ "title-class" ], + props: { + title: String, + fixed: Boolean, + leftText: String, + rightText: String, + leftArrow: Boolean, + border: { + type: Boolean, + value: !0 + }, + zIndex: { + type: Number, + value: 120 + } + }, + methods: { + onClickLeft: function() { + this.$emit("click-left"); + }, + onClickRight: function() { + this.$emit("click-right"); + } + } +}); \ No newline at end of file diff --git a/vant/nav-bar/index.json b/vant/nav-bar/index.json new file mode 100644 index 0000000..e9f601c --- /dev/null +++ b/vant/nav-bar/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/nav-bar/index.wxml b/vant/nav-bar/index.wxml new file mode 100644 index 0000000..1b4c19b --- /dev/null +++ b/vant/nav-bar/index.wxml @@ -0,0 +1,18 @@ + + + + + {{leftText}} + + + + + {{title}} + + + + {{rightText}} + + + + \ No newline at end of file diff --git a/vant/nav-bar/index.wxss b/vant/nav-bar/index.wxss new file mode 100644 index 0000000..41872b5 --- /dev/null +++ b/vant/nav-bar/index.wxss @@ -0,0 +1,60 @@ +@import "../area/index.wxss"; + +.van-nav-bar { + position: relative; + height: 44px; + line-height: 44px; + text-align: center; + background-color: #fff; + user-select: none; +} + +.van-nav-bar__text { + display: inline-block; + padding: 0 15px; + margin: 0 -15px; + color: #1989fa; + vertical-align: middle; +} + +.van-nav-bar__text--hover { + background-color: #f2f3f5; +} + +.van-nav-bar__arrow { + color: #1989fa; + vertical-align: middle; +} + +.van-nav-bar__arrow+.van-nav-bar__text { + padding-left: 25px; + margin-left: -20px; +} + +.van-nav-bar--fixed { + position: fixed; + top: 0; + left: 0; + width: 100%; +} + +.van-nav-bar__title { + max-width: 60%; + margin: 0 auto; + font-size: 16px; + font-weight: 500; +} + +.van-nav-bar__left,.van-nav-bar__right { + position: absolute; + bottom: 0; + font-size: 14px; +} + +.van-nav-bar__left { + left: 15px; +} + +.van-nav-bar__right { + right: 15px; +} \ No newline at end of file diff --git a/vant/notice-bar/index.js b/vant/notice-bar/index.js new file mode 100644 index 0000000..e15bcb8 --- /dev/null +++ b/vant/notice-bar/index.js @@ -0,0 +1,127 @@ +var t = function() { + function t(t, i) { + var e = [], n = !0, r = !1, a = void 0; + try { + for (var o, l = t[Symbol.iterator](); !(n = (o = l.next()).done) && (e.push(o.value), + !i || e.length !== i); n = !0) ; + } catch (t) { + r = !0, a = t; + } finally { + try { + !n && l.return && l.return(); + } finally { + if (r) throw a; + } + } + return e; + } + return function(i, e) { + if (Array.isArray(i)) return i; + if (Symbol.iterator in Object(i)) return t(i, e); + throw new TypeError("Invalid attempt to destructure non-iterable instance"); + }; +}(); + +(0, require("../common/component").VantComponent)({ + props: { + text: { + type: [ String, Array ], + value: "" + }, + mode: { + type: String, + value: "" + }, + url: { + type: String, + value: "" + }, + openType: { + type: String, + value: "navigate" + }, + delay: { + type: Number, + value: 0 + }, + speed: { + type: Number, + value: 50 + }, + scrollable: { + type: Boolean, + value: !0 + }, + leftIcon: { + type: String, + value: "" + }, + color: { + type: String, + value: "#ed6a0c" + }, + backgroundColor: { + type: String, + value: "#fffbe8" + } + }, + data: { + show: !0, + hasRightIcon: !1 + }, + watch: { + text: function() { + this.set({}, this.init); + } + }, + created: function() { + this.data.mode && this.set({ + hasRightIcon: !0 + }), this.resetAnimation = wx.createAnimation({ + duration: 0, + timingFunction: "linear" + }); + }, + destroyed: function() { + this.timer && clearTimeout(this.timer); + }, + methods: { + init: function() { + var i = this; + Promise.all([ this.getRect(".van-notice-bar__content"), this.getRect(".van-notice-bar__content-wrap") ]).then(function(e) { + var n = t(e, 2), r = n[0], a = n[1]; + if (null != r && null != a && r.width && a.width) { + var o = i.data, l = o.speed, s = o.scrollable, c = o.delay; + if (s && a.width < r.width) { + var u = r.width / l * 1e3; + i.wrapWidth = a.width, i.contentWidth = r.width, i.duration = u, i.animation = wx.createAnimation({ + duration: u, + timingFunction: "linear", + delay: c + }), i.scroll(); + } + } + }); + }, + scroll: function() { + var t = this; + this.timer && clearTimeout(this.timer), this.timer = null, this.set({ + animationData: this.resetAnimation.translateX(this.wrapWidth).step().export() + }), setTimeout(function() { + t.set({ + animationData: t.animation.translateX(-t.contentWidth).step().export() + }); + }, 20), this.timer = setTimeout(function() { + t.scroll(); + }, this.duration); + }, + onClickIcon: function() { + this.timer && clearTimeout(this.timer), this.timer = null, this.set({ + show: !1 + }); + }, + onClick: function(t) { + this.$emit("click", t); + } + } +}); \ No newline at end of file diff --git a/vant/notice-bar/index.json b/vant/notice-bar/index.json new file mode 100644 index 0000000..e9f601c --- /dev/null +++ b/vant/notice-bar/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/notice-bar/index.wxml b/vant/notice-bar/index.wxml new file mode 100644 index 0000000..376b9b7 --- /dev/null +++ b/vant/notice-bar/index.wxml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/vant/notice-bar/index.wxss b/vant/notice-bar/index.wxss new file mode 100644 index 0000000..f27ce53 --- /dev/null +++ b/vant/notice-bar/index.wxss @@ -0,0 +1,56 @@ +@import "../area/index.wxss"; + +.van-notice-bar { + display: flex; + height: 40px; + padding: 0 15px; + font-size: 14px; + line-height: 24px; + align-items: center; +} + +.van-notice-bar--within-icon { + position: relative; + padding-right: 40px; +} + +.van-notice-bar__left-icon { + width: 16px; + height: 16px; + margin-right: 4px; +} + +.van-notice-bar__right-icon { + position: absolute; + top: 10px; + right: 15px; + font-size: 16px; +} + +.van-notice-bar__content-wrap { + position: relative; + height: 24px; + overflow: hidden; + flex: 1; +} + +.van-notice-bar__content { + position: absolute; + white-space: nowrap; +} + +.noscrollable .van-notice-bar__content { + max-width: 100%; + position: inherit; + white-space: inherit; +} + +.noscrollable .van-notice-bar__content-wrap { + height: auto; +} + +.noscrollable.van-notice-bar { + height: auto; + padding: 8px 10px; + line-height: 20px; +} \ No newline at end of file diff --git a/vant/notify/index.js b/vant/notify/index.js new file mode 100644 index 0000000..f93c708 --- /dev/null +++ b/vant/notify/index.js @@ -0,0 +1,39 @@ +var e = require("../common/component"), t = require("../common/color"), i = require("../mixins/safe-area"); + +(0, e.VantComponent)({ + mixins: [ (0, i.safeArea)() ], + props: { + text: String, + color: { + type: String, + value: "#fff" + }, + backgroundColor: { + type: String, + value: t.RED + }, + duration: { + type: Number, + value: 3e3 + }, + zIndex: { + type: Number, + value: 110 + } + }, + methods: { + show: function() { + var e = this, t = this.data.duration; + clearTimeout(this.timer), this.set({ + show: !0 + }), t > 0 && t !== 1 / 0 && (this.timer = setTimeout(function() { + e.hide(); + }, t)); + }, + hide: function() { + clearTimeout(this.timer), this.set({ + show: !1 + }); + } + } +}); \ No newline at end of file diff --git a/vant/notify/index.json b/vant/notify/index.json new file mode 100644 index 0000000..1f59502 --- /dev/null +++ b/vant/notify/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-transition": "../transition/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/notify/index.wxml b/vant/notify/index.wxml new file mode 100644 index 0000000..ca567dd --- /dev/null +++ b/vant/notify/index.wxml @@ -0,0 +1,4 @@ + + + {{text}} + diff --git a/vant/notify/index.wxss b/vant/notify/index.wxss new file mode 100644 index 0000000..5867200 --- /dev/null +++ b/vant/notify/index.wxss @@ -0,0 +1,17 @@ +@import "../area/index.wxss"; + +.van-notify { + position: fixed; + top: 0; + width: 100%; + padding: 6px 15px; + font-size: 14px; + line-height: 20px; + text-align: center; + word-break: break-all; + box-sizing: border-box; +} + +.van-notify__safe-top { + height: 44px; +} \ No newline at end of file diff --git a/vant/notify/notify.js b/vant/notify/notify.js new file mode 100644 index 0000000..cf0ef8f --- /dev/null +++ b/vant/notify/notify.js @@ -0,0 +1,22 @@ +function e(e) { + return (0, n.isObj)(e) ? e : { + text: e + }; +} + +function t() { + var e = getCurrentPages(); + return e[e.length - 1]; +} + +Object.defineProperty(exports, "__esModule", { + value: !0 +}), exports.default = function(n) { + var r = ((n = Object.assign({}, o, e(n))).context || t()).selectComponent(n.selector); + delete n.selector, r ? (r.set(n), r.show()) : console.warn("未找到 van-notify 节点,请确认 selector 及 context 是否正确"); +}; + +var n = require("../common/utils"), o = { + selector: "#van-notify", + duration: 3e3 +}; \ No newline at end of file diff --git a/vant/overlay/index.js b/vant/overlay/index.js new file mode 100644 index 0000000..8865118 --- /dev/null +++ b/vant/overlay/index.js @@ -0,0 +1,21 @@ +(0, require("../common/component").VantComponent)({ + props: { + show: Boolean, + mask: Boolean, + customStyle: String, + duration: { + type: [ Number, Object ], + value: 300 + }, + zIndex: { + type: Number, + value: 1 + } + }, + methods: { + onClick: function() { + this.$emit("click"); + }, + noop: function() {} + } +}); \ No newline at end of file diff --git a/vant/overlay/index.json b/vant/overlay/index.json new file mode 100644 index 0000000..1f59502 --- /dev/null +++ b/vant/overlay/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-transition": "../transition/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/overlay/index.wxml b/vant/overlay/index.wxml new file mode 100644 index 0000000..37db0ac --- /dev/null +++ b/vant/overlay/index.wxml @@ -0,0 +1 @@ + diff --git a/vant/overlay/index.wxss b/vant/overlay/index.wxss new file mode 100644 index 0000000..3673904 --- /dev/null +++ b/vant/overlay/index.wxss @@ -0,0 +1,9 @@ +@import "../area/index.wxss"; + +.van-overlay { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; +} \ No newline at end of file diff --git a/vant/panel/index.js b/vant/panel/index.js new file mode 100644 index 0000000..694341f --- /dev/null +++ b/vant/panel/index.js @@ -0,0 +1,9 @@ +(0, require("../common/component").VantComponent)({ + classes: [ "header-class", "footer-class" ], + props: { + desc: String, + title: String, + status: String, + useFooterSlot: Boolean + } +}); \ No newline at end of file diff --git a/vant/panel/index.json b/vant/panel/index.json new file mode 100644 index 0000000..eabfb3d --- /dev/null +++ b/vant/panel/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-cell": "../cell/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/panel/index.wxml b/vant/panel/index.wxml new file mode 100644 index 0000000..15412d1 --- /dev/null +++ b/vant/panel/index.wxml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/vant/panel/index.wxss b/vant/panel/index.wxss new file mode 100644 index 0000000..b753268 --- /dev/null +++ b/vant/panel/index.wxss @@ -0,0 +1,13 @@ +@import "../area/index.wxss"; + +.van-panel { + background: #fff; +} + +.van-panel__header-value { + color: #f44; +} + +.van-panel__footer { + padding: 10px 15px; +} \ No newline at end of file diff --git a/vant/picker-column/index.js b/vant/picker-column/index.js new file mode 100644 index 0000000..22b6273 --- /dev/null +++ b/vant/picker-column/index.js @@ -0,0 +1,113 @@ +var t = require("../common/component"), e = require("../common/utils"); + +(0, t.VantComponent)({ + classes: [ "active-class" ], + props: { + valueKey: String, + className: String, + itemHeight: Number, + visibleItemCount: Number, + initialOptions: { + type: Array, + value: [] + }, + defaultIndex: { + type: Number, + value: 0 + } + }, + data: { + startY: 0, + offset: 0, + duration: 0, + startOffset: 0, + options: [], + currentIndex: 0 + }, + created: function() { + var t = this, e = this.data, n = e.defaultIndex, i = e.initialOptions; + this.set({ + currentIndex: n, + options: i + }).then(function() { + t.setIndex(n); + }); + }, + computed: { + count: function() { + return this.data.options.length; + }, + baseOffset: function() { + var t = this.data; + return t.itemHeight * (t.visibleItemCount - 1) / 2; + }, + wrapperStyle: function() { + var t = this.data; + return [ "transition: " + t.duration + "ms", "transform: translate3d(0, " + (t.offset + t.baseOffset) + "px, 0)", "line-height: " + t.itemHeight + "px" ].join("; "); + } + }, + watch: { + defaultIndex: function(t) { + this.setIndex(t); + } + }, + methods: { + onTouchStart: function(t) { + this.set({ + startY: t.touches[0].clientY, + startOffset: this.data.offset, + duration: 0 + }); + }, + onTouchMove: function(t) { + var n = this.data, i = t.touches[0].clientY - n.startY; + this.set({ + offset: (0, e.range)(n.startOffset + i, -n.count * n.itemHeight, n.itemHeight) + }); + }, + onTouchEnd: function() { + var t = this.data; + if (t.offset !== t.startOffset) { + this.set({ + duration: 200 + }); + var n = (0, e.range)(Math.round(-t.offset / t.itemHeight), 0, t.count - 1); + this.setIndex(n, !0); + } + }, + onClickItem: function(t) { + var e = t.currentTarget.dataset.index; + this.setIndex(e, !0); + }, + adjustIndex: function(t) { + for (var n = this.data, i = t = (0, e.range)(t, 0, n.count); i < n.count; i++) if (!this.isDisabled(n.options[i])) return i; + for (var s = t - 1; s >= 0; s--) if (!this.isDisabled(n.options[s])) return s; + }, + isDisabled: function(t) { + return (0, e.isObj)(t) && t.disabled; + }, + getOptionText: function(t) { + var n = this.data; + return (0, e.isObj)(t) && n.valueKey in t ? t[n.valueKey] : t; + }, + setIndex: function(t, e) { + var n = this, i = this.data, s = -(t = this.adjustIndex(t) || 0) * i.itemHeight; + return t !== i.currentIndex ? this.set({ + offset: s, + currentIndex: t + }).then(function() { + e && n.$emit("change", t); + }) : this.set({ + offset: s + }); + }, + setValue: function(t) { + for (var e = this.data.options, n = 0; n < e.length; n++) if (this.getOptionText(e[n]) === t) return this.setIndex(n); + return Promise.resolve(); + }, + getValue: function() { + var t = this.data; + return t.options[t.currentIndex]; + } + } +}); \ No newline at end of file diff --git a/vant/picker-column/index.json b/vant/picker-column/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/picker-column/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/picker-column/index.wxml b/vant/picker-column/index.wxml new file mode 100644 index 0000000..b364db3 --- /dev/null +++ b/vant/picker-column/index.wxml @@ -0,0 +1,14 @@ + + + {{getOptionText(option,valueKey)}} + + + +function isObj(x) { + var type = typeof x; + return (x !== null && (type === 'object' || type === 'function')) +}; +module.exports = (function(option, valueKey) { + return (isObj(option) && option[((nt_0 = (valueKey), null == nt_0 ? undefined : 'number' === typeof nt_0 ? nt_0 : "" + nt_0))] ? option[((nt_1 = (valueKey), null == nt_1 ? undefined : 'number' === typeof nt_1 ? nt_1 : "" + nt_1))] : option) +}); + \ No newline at end of file diff --git a/vant/picker-column/index.wxss b/vant/picker-column/index.wxss new file mode 100644 index 0000000..76c82a6 --- /dev/null +++ b/vant/picker-column/index.wxss @@ -0,0 +1,21 @@ +@import "../area/index.wxss"; + +.van-picker-column { + overflow: hidden; + font-size: 16px; + color: #999; + text-align: center; +} + +.van-picker-column__item { + padding: 0 5px; +} + +.van-picker-column__item--selected { + font-weight: 500; + color: #333; +} + +.van-picker-column__item--disabled { + opacity: .3; +} \ No newline at end of file diff --git a/vant/picker/index.js b/vant/picker/index.js new file mode 100644 index 0000000..1c7d4df --- /dev/null +++ b/vant/picker/index.js @@ -0,0 +1,110 @@ +var e = require("../common/component"), t = require("./shared"); + +(0, e.VantComponent)({ + classes: [ "active-class", "toolbar-class", "column-class" ], + props: Object.assign({}, t.pickerProps, { + valueKey: { + type: String, + value: "text" + }, + defaultIndex: { + type: Number, + value: 0 + }, + columns: { + type: Array, + value: [], + observer: function() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []; + this.simple = e.length && !e[0].values, this.children = this.selectAllComponents(".van-picker__column"), + Array.isArray(this.children) && this.children.length && this.setColumns().catch(function() {}); + } + } + }), + beforeCreate: function() { + this.children = []; + }, + methods: { + noop: function() {}, + setColumns: function() { + var e = this, t = this.data, n = (this.simple ? [ { + values: t.columns + } ] : t.columns).map(function(t, n) { + return e.setColumnValues(n, t.values); + }); + return Promise.all(n); + }, + emit: function(e) { + var t = e.currentTarget.dataset.type; + this.simple ? this.$emit(t, { + value: this.getColumnValue(0), + index: this.getColumnIndex(0) + }) : this.$emit(t, { + value: this.getValues(), + index: this.getIndexes() + }); + }, + onChange: function(e) { + this.simple ? this.$emit("change", { + picker: this, + value: this.getColumnValue(0), + index: this.getColumnIndex(0) + }) : this.$emit("change", { + picker: this, + value: this.getValues(), + index: e.currentTarget.dataset.index + }); + }, + getColumn: function(e) { + return this.children[e]; + }, + getColumnValue: function(e) { + var t = this.getColumn(e); + return t && t.getValue(); + }, + setColumnValue: function(e, t) { + var n = this.getColumn(e); + return null == n ? Promise.reject("setColumnValue: 对应列不存在") : n.setValue(t); + }, + getColumnIndex: function(e) { + return (this.getColumn(e) || {}).data.currentIndex; + }, + setColumnIndex: function(e, t) { + var n = this.getColumn(e); + return null == n ? Promise.reject("setColumnIndex: 对应列不存在") : n.setIndex(t); + }, + getColumnValues: function(e) { + return (this.children[e] || {}).data.options; + }, + setColumnValues: function(e, t) { + var n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], s = this.children[e]; + return null == s ? Promise.reject("setColumnValues: 对应列不存在") : JSON.stringify(s.data.options) === JSON.stringify(t) ? Promise.resolve() : s.set({ + options: t + }).then(function() { + n && s.setIndex(0); + }); + }, + getValues: function() { + return this.children.map(function(e) { + return e.getValue(); + }); + }, + setValues: function(e) { + var t = this, n = e.map(function(e, n) { + return t.setColumnValue(n, e); + }); + return Promise.all(n); + }, + getIndexes: function() { + return this.children.map(function(e) { + return e.data.currentIndex; + }); + }, + setIndexes: function(e) { + var t = this, n = e.map(function(e, n) { + return t.setColumnIndex(n, e); + }); + return Promise.all(n); + } + } +}); \ No newline at end of file diff --git a/vant/picker/index.json b/vant/picker/index.json new file mode 100644 index 0000000..e34b5fc --- /dev/null +++ b/vant/picker/index.json @@ -0,0 +1,15 @@ +{ + "component": true, + "usingComponents": { + "picker-column": "../picker-column/index", + "loading": "../loading/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/picker/index.wxml b/vant/picker/index.wxml new file mode 100644 index 0000000..d993746 --- /dev/null +++ b/vant/picker/index.wxml @@ -0,0 +1,24 @@ + + + + {{cancelButtonText}} + + {{title}} + + {{confirmButtonText}} + + + + + + + + + + + +function isSimple(columns) { + return (columns.length && !columns[(0)].values) +}; +module.exports = isSimple; + \ No newline at end of file diff --git a/vant/picker/index.wxss b/vant/picker/index.wxss new file mode 100644 index 0000000..90a6e9c --- /dev/null +++ b/vant/picker/index.wxss @@ -0,0 +1,66 @@ +@import "../area/index.wxss"; + +.van-picker { + position: relative; + overflow: hidden; + -webkit-text-size-adjust: 100%; + background-color: #fff; + user-select: none; +} + +.van-picker__toolbar { + display: flex; + height: 44px; + line-height: 44px; + justify-content: space-between; +} + +.van-picker__cancel,.van-picker__confirm { + padding: 0 15px; + font-size: 14px; + color: #1989fa; +} + +.van-picker__cancel--hover,.van-picker__confirm--hover { + background-color: #f2f3f5; +} + +.van-picker__title { + max-width: 50%; + font-size: 16px; + font-weight: 500; + text-align: center; +} + +.van-picker__columns { + position: relative; + display: flex; +} + +.van-picker__column { + flex: 1 1; + width: 0; +} + +.van-picker__loading { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 4; + display: flex; + background-color: hsla(0,0%,100%,.9); + align-items: center; + justify-content: center; +} + +.van-picker__frame,.van-picker__loading .van-loading { + position: absolute; + top: 50%; + left: 0; + z-index: 1; + width: 100%; + pointer-events: none; + transform: translateY(-50%); +} \ No newline at end of file diff --git a/vant/picker/shared.js b/vant/picker/shared.js new file mode 100644 index 0000000..b07868b --- /dev/null +++ b/vant/picker/shared.js @@ -0,0 +1,25 @@ +Object.defineProperty(exports, "__esModule", { + value: !0 +}); + +exports.pickerProps = { + title: String, + loading: Boolean, + showToolbar: Boolean, + cancelButtonText: { + type: String, + value: "取消" + }, + confirmButtonText: { + type: String, + value: "确认" + }, + visibleItemCount: { + type: Number, + value: 5 + }, + itemHeight: { + type: Number, + value: 44 + } +}; \ No newline at end of file diff --git a/vant/popup/index.js b/vant/popup/index.js new file mode 100644 index 0000000..a3e44e5 --- /dev/null +++ b/vant/popup/index.js @@ -0,0 +1,66 @@ +var e = require("../common/component"), t = require("../mixins/transition"), i = require("../mixins/safe-area"); + +(0, e.VantComponent)({ + classes: [ "enter-class", "enter-active-class", "enter-to-class", "leave-class", "leave-active-class", "leave-to-class" ], + mixins: [ (0, t.transition)(!1), (0, i.safeArea)() ], + props: { + transition: { + type: String, + observer: "observeClass" + }, + title: String, + titleStyle: String, + customStyle: String, + overlayStyle: String, + zIndex: { + type: Number, + value: 100 + }, + widthFull: { + type: Boolean, + value: !1 + }, + heightFull: { + type: Boolean, + value: !1 + }, + overlay: { + type: Boolean, + value: !0 + }, + closeOnClickOverlay: { + type: Boolean, + value: !0 + }, + position: { + type: String, + value: "center", + observer: "observeClass" + }, + closable: { + type: Boolean, + value: !0 + } + }, + mounted: function() { + var e = wx.getSystemInfoSync(), t = e.windowHeight, i = e.windowWidth; + this.set({ + windowHeight: t % 2 == 0 ? t : t + 1, + windowWidth: i % 2 == 0 ? i : i + 1 + }); + }, + methods: { + onClickOverlay: function() { + this.$emit("click-overlay"), this.data.closeOnClickOverlay && this.$emit("close"); + }, + onClickClosable: function() { + this.$emit("close"); + }, + observeClass: function() { + var e = this.data, t = e.transition, i = e.position; + this.updateClasses(t || i), "none" === t && this.set({ + maxHeightduration: 0 + }); + } + } +}); \ No newline at end of file diff --git a/vant/popup/index.json b/vant/popup/index.json new file mode 100644 index 0000000..09bed1b --- /dev/null +++ b/vant/popup/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-overlay": "../overlay/index", + "van-icon": "../icon/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/popup/index.wxml b/vant/popup/index.wxml new file mode 100644 index 0000000..c995ac8 --- /dev/null +++ b/vant/popup/index.wxml @@ -0,0 +1,14 @@ + + + + + {{title}} + + + + + + + + + \ No newline at end of file diff --git a/vant/popup/index.wxss b/vant/popup/index.wxss new file mode 100644 index 0000000..9a62102 --- /dev/null +++ b/vant/popup/index.wxss @@ -0,0 +1,136 @@ +@import "../area/index.wxss"; + +.van-popup { + position: fixed; + top: 50%; + left: 50%; + overflow-y: auto; + background-color: #fff; + box-sizing: border-box; + animation: ease both; + -webkit-overflow-scrolling: touch; + transition-timing-function: ease; +} + +.van-popup--center { + transform: translate3d(-50%,-50%,0); +} + +.van-popup--top { + top: 0; + right: auto; + bottom: auto; + left: 50%; + width: 100%; + transform: translate3d(-50%,0,0); +} + +.van-popup--right { + top: 50%; + right: 0; + bottom: auto; + left: auto; + transform: translate3d(0,-50%,0); +} + +.van-popup--bottom { + top: auto; + right: auto; + bottom: 0; + left: 50%; + width: 100%; + transform: translate3d(-50%,0,0); +} + +.van-popup--left { + top: 50%; + right: auto; + bottom: auto; + left: 0; + transform: translate3d(0,-50%,0); +} + +.van-popup--bottom.van-popup--safe { + padding-bottom: 34px; +} + +.van-popup--left .van-popup__safe-top,.van-popup--right .van-popup__safe-top,.van-popup--top .van-popup__safe-top { + height: 44px; +} + +.van-popup--bottom .van-popup__safe-top,.van-popup--center .van-popup__safe-top { + padding-top: 0!important; +} + +.van-scale-enter-active,.van-scale-leave-active { + transition-property: opacity,-webkit-transform; + transition-property: opacity,transform; + transition-property: opacity,transform,-webkit-transform; +} + +.van-scale-enter,.van-scale-leave-to { + opacity: 0; + transform: translate3d(-50%,-50%,0) scale(.7); +} + +.van-fade-enter-active,.van-fade-leave-active { + transition-property: opacity; +} + +.van-fade-enter,.van-fade-leave-to { + opacity: 0; +} + +.van-center-enter-active,.van-center-leave-active { + transition-property: opacity; +} + +.van-center-enter,.van-center-leave-to { + opacity: 0; +} + +.van-bottom-enter-active,.van-bottom-leave-active,.van-left-enter-active,.van-left-leave-active,.van-right-enter-active,.van-right-leave-active,.van-top-enter-active,.van-top-leave-active { + transition-property: transform; + transition-property: transform,-webkit-transform; + transition-property: transform,-webkit-transform; +} + +.van-bottom-enter,.van-bottom-leave-to { + transform: translate3d(-50%,100%,0); +} + +.van-top-enter,.van-top-leave-to { + transform: translate3d(-50%,-100%,0); +} + +.van-left-enter,.van-left-leave-to { + transform: translate3d(-100%,-50%,0); +} + +.van-right-enter,.van-right-leave-to { + transform: translate3d(100%,-50%,0); +} + +.van-popup .van-popup-closable { + z-index: 10000; + position: absolute; + right: 0; + top: 0; + color: #666; + width: 40px; + height: 40px; + text-align: center; + padding-left: 10px; +} + +.van-popup .van-popup-title { + z-index: 10000; + font-size: 14px; + border-bottom: 1px solid #e5e5e5; + background: #F8F8F8; + color: #333; + height: 39px; + padding: 0 12px; + line-height: 39px; + overflow: hidden; +} \ No newline at end of file diff --git a/vant/progress/index.js b/vant/progress/index.js new file mode 100644 index 0000000..d01d1d1 --- /dev/null +++ b/vant/progress/index.js @@ -0,0 +1,61 @@ +var t = require("../common/component"), o = require("../common/color"); + +(0, t.VantComponent)({ + props: { + inactive: Boolean, + percentage: Number, + pivotText: String, + pivotColor: String, + showPivot: { + type: Boolean, + value: !0 + }, + color: { + type: String, + value: o.BLUE + }, + textColor: { + type: String, + value: "#fff" + } + }, + data: { + pivotWidth: 0, + progressWidth: 0 + }, + watch: { + pivotText: "getWidth", + showPivot: "getWidth" + }, + computed: { + portionStyle: function() { + return "width: " + ((this.data.progressWidth - this.data.pivotWidth) * this.data.percentage / 100 + "px") + "; background: " + this.getCurrentColor() + "; "; + }, + pivotStyle: function() { + return "color: " + this.data.textColor + "; background: " + (this.data.pivotColor || this.getCurrentColor()); + }, + text: function() { + return this.data.pivotText || this.data.percentage + "%"; + } + }, + mounted: function() { + this.getWidth(); + }, + methods: { + getCurrentColor: function() { + return this.data.inactive ? "#cacaca" : this.data.color; + }, + getWidth: function() { + var t = this; + this.getRect(".van-progress").then(function(o) { + t.set({ + progressWidth: o.width + }); + }), this.getRect(".van-progress__pivot").then(function(o) { + t.set({ + pivotWidth: o.width || 0 + }); + }); + } + } +}); \ No newline at end of file diff --git a/vant/progress/index.json b/vant/progress/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/progress/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/progress/index.wxml b/vant/progress/index.wxml new file mode 100644 index 0000000..29f0a3c --- /dev/null +++ b/vant/progress/index.wxml @@ -0,0 +1,7 @@ + + + + {{text}} + + + diff --git a/vant/progress/index.wxss b/vant/progress/index.wxss new file mode 100644 index 0000000..af678bd --- /dev/null +++ b/vant/progress/index.wxss @@ -0,0 +1,36 @@ +@import "../area/index.wxss"; + +.van-progress { + height: 4px; + position: relative; + border-radius: 4px; + background: #e5e5e5; +} + +.van-progress__portion { + left: 0; + height: 100%; + position: absolute; + border-radius: inherit; +} + +.van-progress__portion--with-pivot { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.van-progress__pivot { + top: 50%; + right: 0; + min-width: 2em; + padding: 0 5px; + font-size: 10px; + position: absolute; + line-height: 1.6; + text-align: center; + border-radius: 1em; + word-break: keep-all; + box-sizing: border-box; + background-color: #e5e5e5; + transform: translate(100%,-50%); +} \ No newline at end of file diff --git a/vant/radio-group/index.js b/vant/radio-group/index.js new file mode 100644 index 0000000..32acbd2 --- /dev/null +++ b/vant/radio-group/index.js @@ -0,0 +1,43 @@ +(0, require("../common/component").VantComponent)({ + field: !0, + relation: { + name: "radio", + type: "descendant", + linked: function(e) { + var a = this.data, d = a.value, n = a.disabled, i = a.checkedClass; + e.set({ + value: d, + disabled: n || e.data.disabled, + checkedClass: i + }); + } + }, + props: { + value: null, + disabled: Boolean, + checkedClass: null + }, + watch: { + value: function(e) { + this.getRelationNodes("../radio/index").forEach(function(a) { + a.set({ + value: e + }); + }); + }, + checkedClass: function(e) { + this.getRelationNodes("../radio/index").forEach(function(a) { + a.set({ + checkedClass: e + }); + }); + }, + disabled: function(e) { + this.getRelationNodes("../radio/index").forEach(function(a) { + a.set({ + disabled: e || a.data.disabled + }); + }); + } + } +}); \ No newline at end of file diff --git a/vant/radio-group/index.json b/vant/radio-group/index.json new file mode 100644 index 0000000..e9f601c --- /dev/null +++ b/vant/radio-group/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/radio-group/index.wxml b/vant/radio-group/index.wxml new file mode 100644 index 0000000..13e0e91 --- /dev/null +++ b/vant/radio-group/index.wxml @@ -0,0 +1 @@ + diff --git a/vant/radio-group/index.wxss b/vant/radio-group/index.wxss new file mode 100644 index 0000000..f720459 --- /dev/null +++ b/vant/radio-group/index.wxss @@ -0,0 +1 @@ +@import "../area/index.wxss"; \ No newline at end of file diff --git a/vant/radio/index.js b/vant/radio/index.js new file mode 100644 index 0000000..a144706 --- /dev/null +++ b/vant/radio/index.js @@ -0,0 +1,37 @@ +(0, require("../common/component").VantComponent)({ + field: !0, + relation: { + name: "radio-group", + type: "ancestor" + }, + classes: [ "icon-class", "label-class" ], + props: { + name: null, + value: null, + checkedStyle: { + type: String, + value: "passed" + }, + iconSize: { + type: String, + value: "18px" + }, + checkedClass: String, + disabled: Boolean, + labelDisabled: Boolean, + labelPosition: String, + checkedColor: String + }, + methods: { + emitChange: function(e) { + var a = this.getRelationNodes("../radio-group/index")[0] || this; + a.$emit("input", e), a.$emit("change", e); + }, + onChange: function(e) { + this.emitChange(e.detail.value); + }, + onClickLabel: function() { + this.data.disabled || this.data.labelDisabled || this.emitChange(this.data.name); + } + } +}); \ No newline at end of file diff --git a/vant/radio/index.json b/vant/radio/index.json new file mode 100644 index 0000000..e9f601c --- /dev/null +++ b/vant/radio/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/radio/index.wxml b/vant/radio/index.wxml new file mode 100644 index 0000000..21d2b5f --- /dev/null +++ b/vant/radio/index.wxml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/vant/radio/index.wxss b/vant/radio/index.wxss new file mode 100644 index 0000000..ecd73ff --- /dev/null +++ b/vant/radio/index.wxss @@ -0,0 +1,64 @@ +@import "../area/index.wxss"; + +.van-radio { + margin-top: -2px; + vertical-align: middle; + overflow: hidden; + line-height: 1; + user-select: none; + display: inline-block; +} + +.van-radio__input,.van-radio__label { + display: inline-block; + vertical-align: middle; +} + +.van-radio__input { + position: relative; + font-size: 20px; +} + +.van-radio__control { + z-index: 1; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + margin: 0; + opacity: 0; +} + +.van-radio__label { + margin-left: 2px; + color: #333; + line-height: 20px; +} + +.van-radio__label--left { + margin: 0 10px 0 0; + float: left; +} + +.van-radio__label:empty { + margin: 0; +} + +.van-radio__icon { + pointer-events: none; + display: block; + line-height: 0; +} + +.van-radio__icon--disabled { + color: #e5e5e5; +} + +.van-radio__icon--checked { + color: #5FB878; +} + +.van-radio__icon--check { + color: #c9c9c9; +} \ No newline at end of file diff --git a/vant/rate/index.js b/vant/rate/index.js new file mode 100644 index 0000000..20964e1 --- /dev/null +++ b/vant/rate/index.js @@ -0,0 +1,79 @@ +(0, require("../common/component").VantComponent)({ + field: !0, + classes: [ "icon-class" ], + props: { + readonly: Boolean, + disabled: Boolean, + size: { + type: Number, + value: 20 + }, + icon: { + type: String, + value: "star" + }, + voidIcon: { + type: String, + value: "star-o" + }, + color: { + type: String, + value: "#ffd21e" + }, + voidColor: { + type: String, + value: "#c7c7c7" + }, + disabledColor: { + type: String, + value: "#bdbdbd" + }, + count: { + type: Number, + value: 5 + }, + value: { + type: Number, + value: 0 + } + }, + data: { + innerValue: 0 + }, + watch: { + value: function(e) { + e !== this.data.innerValue && this.set({ + innerValue: e + }); + } + }, + computed: { + list: function() { + var e = this.data, t = e.count, n = e.innerValue; + return Array.from({ + length: t + }, function(e, t) { + return t < n; + }); + } + }, + methods: { + onSelect: function(e) { + var t = this.data, n = e.currentTarget.dataset.index; + t.disabled || t.readonly || (this.set({ + innerValue: n + 1 + }), this.$emit("input", n + 1), this.$emit("change", n + 1)); + }, + onTouchMove: function(e) { + var t = this, n = e.touches[0], a = n.clientX, i = n.clientY; + this.getRect(".van-rate__item", !0).then(function(n) { + var o = n.find(function(e) { + return a >= e.left && a <= e.right && i >= e.top && i <= e.bottom; + }); + null != o && t.onSelect(Object.assign({}, e, { + currentTarget: o + })); + }); + } + } +}); \ No newline at end of file diff --git a/vant/rate/index.json b/vant/rate/index.json new file mode 100644 index 0000000..e9f601c --- /dev/null +++ b/vant/rate/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/rate/index.wxml b/vant/rate/index.wxml new file mode 100644 index 0000000..5b229b7 --- /dev/null +++ b/vant/rate/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/vant/rate/index.wxss b/vant/rate/index.wxss new file mode 100644 index 0000000..01ce4c9 --- /dev/null +++ b/vant/rate/index.wxss @@ -0,0 +1,11 @@ +@import "../area/index.wxss"; + +.van-rate { + user-select: none; +} + +.van-rate__item { + width: 1em; + padding: 0 2px; + box-sizing: initial; +} \ No newline at end of file diff --git a/vant/row/index.js b/vant/row/index.js new file mode 100644 index 0000000..ac10130 --- /dev/null +++ b/vant/row/index.js @@ -0,0 +1,28 @@ +(0, require("../common/component").VantComponent)({ + relation: { + name: "col", + type: "descendant", + linked: function(t) { + this.data.gutter && t.setGutter(this.data.gutter); + } + }, + props: { + gutter: Number + }, + watch: { + gutter: "setGutter" + }, + mounted: function() { + this.data.gutter && this.setGutter(); + }, + methods: { + setGutter: function() { + var t = this, e = this.data.gutter, n = "-" + Number(e) / 2 + "px", r = e ? "margin-right: " + n + "; margin-left: " + n + ";" : ""; + this.set({ + style: r + }), this.getRelationNodes("../col/index").forEach(function(e) { + e.setGutter(t.data.gutter); + }); + } + } +}); \ No newline at end of file diff --git a/vant/row/index.json b/vant/row/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/row/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/row/index.wxml b/vant/row/index.wxml new file mode 100644 index 0000000..8b52a74 --- /dev/null +++ b/vant/row/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/vant/row/index.wxss b/vant/row/index.wxss new file mode 100644 index 0000000..9b331f8 --- /dev/null +++ b/vant/row/index.wxss @@ -0,0 +1,7 @@ +@import "../area/index.wxss"; + +.van-row:after { + content: ""; + display: table; + clear: both; +} \ No newline at end of file diff --git a/vant/search/index.js b/vant/search/index.js new file mode 100644 index 0000000..4153650 --- /dev/null +++ b/vant/search/index.js @@ -0,0 +1,56 @@ +(0, require("../common/component").VantComponent)({ + field: !0, + classes: [ "field-class", "input-class", "cancel-class" ], + props: { + focus: Boolean, + error: Boolean, + disabled: Boolean, + readonly: Boolean, + inputAlign: String, + showAction: Boolean, + useActionSlot: Boolean, + placeholder: String, + placeholderStyle: String, + background: { + type: String, + value: "#ffffff" + }, + maxlength: { + type: Number, + value: -1 + }, + shape: { + type: String, + value: "square" + }, + icon: { + type: String, + value: "search" + }, + label: String + }, + methods: { + onChange: function(e) { + this.set({ + value: e.detail.value + }), this.$emit("change", e.detail.value); + }, + onCancel: function() { + this.set({ + value: "" + }), this.$emit("cancel"), this.$emit("change", ""); + }, + onSearch: function() { + this.$emit("search", this.data.value); + }, + onFocus: function() { + this.$emit("focus"); + }, + onBlur: function() { + this.$emit("blur"); + }, + onClear: function() { + this.$emit("clear"); + } + } +}); \ No newline at end of file diff --git a/vant/search/index.json b/vant/search/index.json new file mode 100644 index 0000000..adfeda7 --- /dev/null +++ b/vant/search/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-field": "../field/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/search/index.wxml b/vant/search/index.wxml new file mode 100644 index 0000000..ba97306 --- /dev/null +++ b/vant/search/index.wxml @@ -0,0 +1,12 @@ + + + {{label}} + + + + + + 取消 + + + \ No newline at end of file diff --git a/vant/search/index.wxss b/vant/search/index.wxss new file mode 100644 index 0000000..c37720e --- /dev/null +++ b/vant/search/index.wxss @@ -0,0 +1,52 @@ +@import "../area/index.wxss"; + +.van-search { + padding: 10px 16px; + align-items: center; + box-sizing: border-box; +} + +.van-search,.van-search__content { + display: flex; +} + +.van-search__content { + padding-left: 10px; + background-color: #f7f8fa; + border-radius: 2px; + flex: 1; +} + +.van-search__content--round { + border-radius: 17px; +} + +.van-search__label { + padding: 0 5px; + font-size: 14px; + line-height: 34px; + color: #333; +} + +.van-search__field { + flex: 1; +} + +.van-search__field__left-icon { + color: #999; +} + +.van-search--withaction { + padding-right: 0; +} + +.van-search__action { + padding: 0 10px; + font-size: 14px; + line-height: 34px; + color: #333; +} + +.van-search__action--hover { + background-color: #f2f3f5; +} \ No newline at end of file diff --git a/vant/slider/index.js b/vant/slider/index.js new file mode 100644 index 0000000..45f3adc --- /dev/null +++ b/vant/slider/index.js @@ -0,0 +1,73 @@ +var t = require("../common/component"), a = require("../mixins/touch"); + +(0, t.VantComponent)({ + mixins: [ a.touch ], + props: { + disabled: Boolean, + useButtonSlot: Boolean, + activeColor: String, + inactiveColor: String, + max: { + type: Number, + value: 100 + }, + min: { + type: Number, + value: 0 + }, + step: { + type: Number, + value: 1 + }, + value: { + type: Number, + value: 0 + }, + barHeight: { + type: String, + value: "2px" + } + }, + watch: { + value: function(t) { + this.updateValue(t, !1); + } + }, + created: function() { + this.updateValue(this.data.value); + }, + methods: { + onTouchStart: function(t) { + this.data.disabled || (this.touchStart(t), this.startValue = this.format(this.data.value)); + }, + onTouchMove: function(t) { + var a = this; + this.data.disabled || (this.touchMove(t), this.getRect(".van-slider").then(function(t) { + var e = a.deltaX / t.width * 100; + a.newValue = a.startValue + e, a.updateValue(a.newValue, !1, !0); + })); + }, + onTouchEnd: function() { + this.data.disabled || this.updateValue(this.newValue, !0); + }, + onClick: function(t) { + var a = this; + this.data.disabled || this.getRect(".van-slider").then(function(e) { + var i = (t.detail.x - e.left) / e.width * 100; + a.updateValue(i, !0); + }); + }, + updateValue: function(t, a, e) { + t = this.format(t), this.set({ + value: t, + barStyle: "width: " + t + "%; height: " + this.data.barHeight + ";" + }), e && this.$emit("drag", { + value: t + }), a && this.$emit("change", t); + }, + format: function(t) { + var a = this.data, e = a.max, i = a.min, u = a.step; + return Math.round(Math.max(i, Math.min(t, e)) / u) * u; + } + } +}); \ No newline at end of file diff --git a/vant/slider/index.json b/vant/slider/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/slider/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/slider/index.wxml b/vant/slider/index.wxml new file mode 100644 index 0000000..761e56c --- /dev/null +++ b/vant/slider/index.wxml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/vant/slider/index.wxss b/vant/slider/index.wxss new file mode 100644 index 0000000..c626210 --- /dev/null +++ b/vant/slider/index.wxss @@ -0,0 +1,41 @@ +@import "../area/index.wxss"; + +.van-slider { + position: relative; + border-radius: 999px; + background-color: #e5e5e5; +} + +.van-slider__bar { + position: relative; + border-radius: inherit; + background-color: #1989fa; +} + +.van-slider__button { + width: 20px; + height: 20px; + border-radius: 50%; + background-color: #fff; + box-shadow: 0 1px 2px rgba(0,0,0,.5); +} + +.van-slider__button-wrapper { + position: absolute; + top: 50%; + right: 0; + transform: translate3d(50%,-50%,0); +} + +.van-slider__button-wrapper:after { + content: ""; + position: absolute; + width: 200%; + height: 200%; + top: -50%; + left: -50%; +} + +.van-slider--disabled { + opacity: .3; +} \ No newline at end of file diff --git a/vant/stepper/index.js b/vant/stepper/index.js new file mode 100644 index 0000000..175a7ed --- /dev/null +++ b/vant/stepper/index.js @@ -0,0 +1,142 @@ +function t(t, e) { + var i = Math.pow(10, 10); + return Math.round((t + e) * i) / i; +} + +var e = require("../common/component"), i = require("../common/utils"); + +(0, e.VantComponent)({ + field: !0, + classes: [ "input-class", "plus-class", "minus-class" ], + props: { + unit: String, + value: null, + integer: Boolean, + disabled: Boolean, + inputWidth: null, + buttonSize: null, + asyncChange: Boolean, + disableInput: Boolean, + decimalLength: { + type: Number, + value: null + }, + min: { + type: null, + value: 1 + }, + max: { + type: null, + value: Number.MAX_SAFE_INTEGER + }, + step: { + type: null, + value: 1 + }, + showPlus: { + type: Boolean, + value: !0 + }, + showMinus: { + type: Boolean, + value: !0 + }, + disablePlus: Boolean, + disableMinus: Boolean + }, + watch: { + value: function(t) { + if ("" !== t) { + var e = this.range(t); + "number" == typeof e && +this.data.value !== e && this.setData({ + value: e + }); + } + }, + inputWidth: function() { + this.set({ + inputStyle: this.computeInputStyle() + }); + }, + buttonSize: function() { + this.set({ + inputStyle: this.computeInputStyle(), + buttonStyle: this.computeButtonStyle() + }); + } + }, + data: { + focus: !1, + inputStyle: "", + buttonStyle: "" + }, + created: function() { + this.setData({ + value: this.range(this.data.value) + }); + }, + methods: { + isDisabled: function(t) { + return "plus" === t ? this.data.disabled || this.data.disablePlus || this.data.value >= this.data.max : this.data.disabled || this.data.disableMinus || this.data.value <= this.data.min; + }, + onFocus: function(t) { + this.$emit("focus", t.detail); + }, + onBlur: function(t) { + var e = this.range(this.data.value); + this.triggerInput(e), this.$emit("blur", t.detail); + }, + range: function(t) { + return t = String(t).replace(/[^0-9.-]/g, ""), t = "" === t ? 0 : +t, t = Math.max(Math.min(this.data.max, t), this.data.min), + (0, i.isDef)(this.data.decimalLength) && (t = t.toFixed(this.data.decimalLength)), + t; + }, + onInput: function(t) { + var e = (t.detail || {}).value, i = void 0 === e ? "" : e; + this.triggerInput(i); + }, + onChange: function() { + var e = this.type; + if (this.isDisabled(e)) this.$emit("overlimit", e); else { + var i = "minus" === e ? -this.data.step : +this.data.step, a = t(+this.data.value, i); + this.triggerInput(this.range(a)), this.$emit(e); + } + }, + longPressStep: function() { + var t = this; + this.longPressTimer = setTimeout(function() { + t.onChange(), t.longPressStep(); + }, 200); + }, + onTap: function(t) { + var e = t.currentTarget.dataset.type; + this.type = e, this.onChange(); + }, + onTouchStart: function(t) { + var e = this; + clearTimeout(this.longPressTimer); + var i = t.currentTarget.dataset.type; + this.type = i, this.isLongPress = !1, this.longPressTimer = setTimeout(function() { + e.isLongPress = !0, e.onChange(), e.longPressStep(); + }, 600); + }, + onTouchEnd: function() { + clearTimeout(this.longPressTimer); + }, + triggerInput: function(t) { + this.setData({ + value: this.data.asyncChange ? this.data.value : t + }), this.$emit("change", t); + }, + computeInputStyle: function() { + var t = ""; + return this.data.inputWidth && (t = "width: " + (0, i.addUnit)(this.data.inputWidth) + ";"), + this.data.buttonSize && (t += "height: " + (0, i.addUnit)(this.data.buttonSize) + ";"), + t; + }, + computeButtonStyle: function() { + var t = "", e = (0, i.addUnit)(this.data.buttonSize); + return this.data.buttonSize && (t = "width: " + e + ";height: " + e + ";"), t; + } + } +}); \ No newline at end of file diff --git a/vant/stepper/index.json b/vant/stepper/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/stepper/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/stepper/index.wxml b/vant/stepper/index.wxml new file mode 100644 index 0000000..9b2f64d --- /dev/null +++ b/vant/stepper/index.wxml @@ -0,0 +1,7 @@ + + + + + {{unit}} + + \ No newline at end of file diff --git a/vant/stepper/index.wxss b/vant/stepper/index.wxss new file mode 100644 index 0000000..9bfeacd --- /dev/null +++ b/vant/stepper/index.wxss @@ -0,0 +1,112 @@ +@import "../area/index.wxss"; + +.van-stepper { + font-size: 0; +} + +.van-stepper text { + font-size: 14px; + vertical-align: middle; + padding-left: 3px; + color: #333; +} + +.van-stepper__minus,.van-stepper__plus { + position: relative; + display: inline-block; + box-sizing: border-box; + margin: 1px; + vertical-align: middle; + border: 0; + background-color: #f2f3f5; + background-color: var(--stepper-background-color,#f2f3f5); + color: #323233; + color: var(--stepper-button-icon-color,#323233); + width: 28px; + width: var(--stepper-input-height,28px); + height: 28px; + height: var(--stepper-input-height,28px); + padding: 4px; + padding: var(--padding-base,4px); +} + +.van-stepper__minus:before,.van-stepper__plus:before { + width: 9px; + height: 1px; +} + +.van-stepper__minus:after,.van-stepper__plus:after { + width: 1px; + height: 9px; +} + +.van-stepper__minus:after,.van-stepper__minus:before,.van-stepper__plus:after,.van-stepper__plus:before { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + background-color: currentColor; + content: ""; +} + +.van-stepper__minus--hover,.van-stepper__plus--hover { + background-color: #e8e8e8; + background-color: var(--stepper-active-color,#e8e8e8); +} + +.van-stepper__minus--disabled,.van-stepper__plus--disabled { + color: #c8c9cc; + color: var(--stepper-button-disabled-icon-color,#c8c9cc); +} + +.van-stepper__minus--disabled,.van-stepper__minus--disabled.van-stepper__minus--hover,.van-stepper__minus--disabled.van-stepper__plus--hover,.van-stepper__plus--disabled,.van-stepper__plus--disabled.van-stepper__minus--hover,.van-stepper__plus--disabled.van-stepper__plus--hover { + background-color: #f7f8fa; + background-color: var(--stepper-button-disabled-color,#f7f8fa); +} + +.van-stepper__minus { + border-radius: 4px 0 0 4px; + border-radius: var(--stepper-border-radius,4px) 0 0 var(--stepper-border-radius,4px); +} + +.van-stepper__minus:after { + display: none; +} + +.van-stepper__plus { + border-radius: 0 4px 4px 0; + border-radius: 0 var(--stepper-border-radius,4px) var(--stepper-border-radius,4px) 0; +} + +.van-stepper__input { + display: inline-block; + box-sizing: border-box; + min-height: 0; + margin: 1px; + padding: 1px; + text-align: center; + vertical-align: middle; + border: 0; + border-width: 1px 0; + border-radius: 0; + -webkit-appearance: none; + font-size: 14px; + font-size: var(--stepper-input-font-size,14px); + color: #323233; + color: var(--stepper-input-text-color,#323233); + background-color: #f2f3f5; + background-color: var(--stepper-background-color,#f2f3f5); + width: 32px; + width: var(--stepper-input-width,32px); + height: 28px; + height: var(--stepper-input-height,28px); +} + +.van-stepper__input--disabled { + color: #c8c9cc; + color: var(--stepper-input-disabled-text-color,#c8c9cc); + background-color: #f2f3f5; + background-color: var(--stepper-input-disabled-background-color,#f2f3f5); +} \ No newline at end of file diff --git a/vant/steps/index.js b/vant/steps/index.js new file mode 100644 index 0000000..c5b9785 --- /dev/null +++ b/vant/steps/index.js @@ -0,0 +1,17 @@ +var o = require("../common/component"), r = require("../common/color"); + +(0, o.VantComponent)({ + props: { + icon: String, + steps: Array, + active: Number, + direction: { + type: String, + value: "horizontal" + }, + activeColor: { + type: String, + value: r.GREEN + } + } +}); \ No newline at end of file diff --git a/vant/steps/index.json b/vant/steps/index.json new file mode 100644 index 0000000..e9f601c --- /dev/null +++ b/vant/steps/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/steps/index.wxml b/vant/steps/index.wxml new file mode 100644 index 0000000..4f8d25e --- /dev/null +++ b/vant/steps/index.wxml @@ -0,0 +1,27 @@ + + + + + {{item.text}} + {{item.desc}} + + + + + + + + + + + +function get(index, active) { + if (index < active) { + return ('finish') + } else if (index === active) { + return ('process') + }; + return ('') +}; +module.exports = get; + \ No newline at end of file diff --git a/vant/steps/index.wxss b/vant/steps/index.wxss new file mode 100644 index 0000000..4f4a8d8 --- /dev/null +++ b/vant/steps/index.wxss @@ -0,0 +1,153 @@ +@import "../area/index.wxss"; + +.van-steps { + overflow: hidden; + background-color: #fff; +} + +.van-steps--horizontal { + padding: 10px; +} + +.van-steps--horizontal .van-step__wrapper { + position: relative; + display: flex; + overflow: hidden; +} + +.van-steps--vertical { + padding-left: 10px; +} + +.van-steps--vertical .van-step__wrapper { + padding: 0 0 0 20px; +} + +.van-step { + position: relative; + flex: 1; + font-size: 14px; + color: #999; +} + +.van-step--finish { + color: #333; +} + +.van-step__circle { + width: 5px; + height: 5px; + background-color: #999; + border-radius: 50%; +} + +.van-step--horizontal { + padding-bottom: 14px; +} + +.van-step--horizontal:first-child .van-step__title { + transform: none; +} + +.van-step--horizontal:first-child .van-step__circle-container { + padding: 0 8px 0 0; + transform: translate3d(0,50%,0); +} + +.van-step--horizontal:last-child { + position: absolute; + right: 0; + width: auto; +} + +.van-step--horizontal:last-child .van-step__title { + text-align: right; + transform: none; +} + +.van-step--horizontal:last-child .van-step__circle-container { + right: 0; + padding: 0 0 0 8px; + transform: translate3d(0,50%,0); +} + +.van-step--horizontal .van-step__circle-container { + position: absolute; + bottom: 6px; + z-index: 1; + padding: 0 8px; + background-color: #fff; + transform: translate3d(-50%,50%,0); +} + +.van-step--horizontal .van-step__title { + display: inline-block; + font-size: 12px; + transform: translate3d(-50%,0,0); +} + +.van-step--horizontal .van-step__line { + position: absolute; + right: 0; + bottom: 6px; + left: 0; + height: 1px; + background-color: #eee; + transform: translate3d(0,50%,0); +} + +.van-step--horizontal.van-step--process { + color: #333; +} + +.van-step--horizontal.van-step--process .van-step__active { + display: block; + font-size: 12px; + line-height: 1; +} + +.van-step--vertical { + padding: 10px 10px 10px 0; + font-size: 14px; + line-height: 18px; +} + +.van-step--vertical:after { + border-bottom-width: 1px; +} + +.van-step--vertical:last-child:after { + border-bottom-width: none; +} + +.van-step--vertical:first-child:before { + position: absolute; + top: 0; + left: -15px; + z-index: 1; + width: 1px; + height: 20px; + background-color: #fff; + content: ""; +} + +.van-step--vertical .van-step__active,.van-step--vertical .van-step__circle,.van-step--vertical .van-step__line { + position: absolute; + top: 19px; + left: -14px; + z-index: 2; + transform: translate3d(-50%,-50%,0); +} + +.van-step--vertical .van-step__active { + font-size: 12px; + line-height: 1; +} + +.van-step--vertical .van-step__line { + z-index: 1; + width: 1px; + height: 100%; + background-color: #eee; + transform: translate3d(-50%,0,0); +} \ No newline at end of file diff --git a/vant/submit-bar/index.js b/vant/submit-bar/index.js new file mode 100644 index 0000000..26b03bb --- /dev/null +++ b/vant/submit-bar/index.js @@ -0,0 +1,55 @@ +(0, require("../common/component").VantComponent)({ + classes: [ "bar-class", "price-class", "button-class" ], + props: { + tip: { + type: null, + observer: "updateTip" + }, + tipIcon: String, + type: Number, + price: { + type: null, + observer: "updatePrice" + }, + label: String, + loading: Boolean, + disabled: Boolean, + buttonHidden: Boolean, + buttonText: String, + currency: { + type: String, + value: "¥" + }, + buttonType: { + type: String, + value: "danger" + }, + decimalLength: { + type: Number, + value: 2, + observer: "updatePrice" + }, + suffixLabel: String, + safeAreaInsetBottom: { + type: Boolean, + value: !0 + } + }, + methods: { + updatePrice: function() { + var e = this.data, t = e.price, i = e.decimalLength; + this.setData({ + hasPrice: "number" == typeof t, + priceStr: (t / 100).toFixed(i) + }); + }, + updateTip: function() { + this.setData({ + hasTip: "string" == typeof this.data.tip + }); + }, + onSubmit: function(e) { + this.$emit("submit", e.detail); + } + } +}); \ No newline at end of file diff --git a/vant/submit-bar/index.json b/vant/submit-bar/index.json new file mode 100644 index 0000000..a2d0645 --- /dev/null +++ b/vant/submit-bar/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-button": "../button/index", + "van-icon": "../icon/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/submit-bar/index.wxml b/vant/submit-bar/index.wxml new file mode 100644 index 0000000..a2b3bd5 --- /dev/null +++ b/vant/submit-bar/index.wxml @@ -0,0 +1,25 @@ + + + + + + {{tip}} + + + + + + + {{label||'合计:'}} + + {{currency}} + {{priceStr}} + + {{suffixLabel}} + + + {{loading?'':buttonText}} + + + + \ No newline at end of file diff --git a/vant/submit-bar/index.wxss b/vant/submit-bar/index.wxss new file mode 100644 index 0000000..d2b5675 --- /dev/null +++ b/vant/submit-bar/index.wxss @@ -0,0 +1,94 @@ +@import "../area/index.wxss"; + +.van-submit-bar { + position: fixed; + bottom: 0; + left: 0; + width: 100%; + user-select: none; + z-index: 100; + z-index: var(--submit-bar-z-index,100); + background-color: #fff; + background-color: var(--submit-bar-background-color,#fff); +} + +.van-submit-bar__tip { + padding: 10px; + padding: var(--submit-bar-tip-padding,10px); + color: #f56723; + color: var(--submit-bar-tip-color,#f56723); + font-size: 12px; + font-size: var(--submit-bar-tip-font-size,12px); + line-height: 1.5; + line-height: var(--submit-bar-tip-line-height,1.5); + background-color: #fff7cc; + background-color: var(--submit-bar-tip-background-color,#fff7cc); +} + +.van-submit-bar__tip:empty { + display: none; +} + +.van-submit-bar__tip-icon { + width: 12px; + height: 12px; + margin-right: 4px; + vertical-align: middle; + font-size: 12px; + font-size: var(--submit-bar-tip-icon-size,12px); + min-width: 18px; + min-width: calc(var(--submit-bar-tip-icon-size, 12px)*1.5); +} + +.van-submit-bar__tip-text { + display: inline; + vertical-align: middle; +} + +.van-submit-bar__bar { + display: flex; + align-items: center; + justify-content: flex-end; + height: 50px; + height: var(--submit-bar-height,50px); + font-size: 14px; + font-size: var(--submit-bar-text-font-size,14px); + background-color: #fff; + background-color: var(--submit-bar-background-color,#fff); +} + +.van-submit-bar__bar--safe { + padding-bottom: env(safe-area-inset-bottom); +} + +.van-submit-bar__text { + flex: 1; + text-align: right; + color: #323233; + color: var(--submit-bar-text-color,#323233); + padding-right: 12px; + padding-right: var(--padding-sm,12px); + font-weight: 500; + font-weight: var(--font-weight-bold,500); +} + +.van-submit-bar__price { + color: #ee0a24; + color: var(--submit-bar-price-color,#ee0a24); + font-size: 18px; + font-size: var(--submit-bar-price-font-size,18px); +} + +.van-submit-bar__currency { + font-size: 14px; + font-size: var(--submit-bar-currency-font-size,14px); +} + +.van-submit-bar__suffix-label { + margin-left: 5px; +} + +.van-submit-bar__button { + width: 110px; + width: var(--submit-bar-button-width,110px); +} \ No newline at end of file diff --git a/vant/swipe-cell/index.js b/vant/swipe-cell/index.js new file mode 100644 index 0000000..e6ebfe0 --- /dev/null +++ b/vant/swipe-cell/index.js @@ -0,0 +1,68 @@ +var t = require("../common/component"), i = require("../mixins/touch"); + +(0, t.VantComponent)({ + props: { + disabled: Boolean, + leftWidth: { + type: Number, + value: 0 + }, + rightWidth: { + type: Number, + value: 0 + }, + asyncClose: Boolean + }, + mixins: [ i.touch ], + data: { + catchMove: !0 + }, + created: function() { + this.offset = 0; + }, + methods: { + open: function(t) { + var i = this.data, s = i.leftWidth, e = i.rightWidth, n = "left" === t ? s : -e; + this.swipeMove(n); + }, + close: function() { + this.swipeMove(0); + }, + swipeMove: function() { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; + this.offset = t; + var i = "translate3d(" + t + "px, 0, 0)", s = this.draging ? "none" : ".6s cubic-bezier(0.18, 0.89, 0.32, 1)"; + this.set({ + wrapperStyle: "\n -webkit-transform: " + i + ";\n -webkit-transition: " + s + ";\n transform: " + i + ";\n transition: " + s + ";\n " + }); + }, + swipeLeaveTransition: function() { + var t = this.data, i = t.leftWidth, s = t.rightWidth, e = this.offset; + s > 0 && -e > .3 * s ? this.open("right") : i > 0 && e > .3 * i ? this.open("left") : this.swipeMove(0); + }, + startDrag: function(t) { + this.data.disabled || (this.draging = !0, this.startOffset = this.offset, this.firstDirection = "", + this.touchStart(t)); + }, + noop: function() {}, + onDrag: function(t) { + if (!this.data.disabled && (this.touchMove(t), this.firstDirection || (this.firstDirection = this.direction, + this.set({ + catchMove: "horizontal" === this.firstDirection + })), "vertical" !== this.firstDirection)) { + var i = this.data, s = i.leftWidth, e = i.rightWidth, n = this.startOffset + this.deltaX; + e > 0 && -n > e || s > 0 && n > s || this.swipeMove(n); + } + }, + endDrag: function() { + this.data.disabled || (this.draging = !1, this.swipeLeaveTransition()); + }, + onClick: function(t) { + var i = t.currentTarget.dataset.key, s = void 0 === i ? "outside" : i; + this.$emit("click", s), this.offset && (this.data.asyncClose ? this.$emit("close", { + position: s, + instance: this + }) : this.swipeMove(0)); + } + } +}); \ No newline at end of file diff --git a/vant/swipe-cell/index.json b/vant/swipe-cell/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/swipe-cell/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/swipe-cell/index.wxml b/vant/swipe-cell/index.wxml new file mode 100644 index 0000000..ea2d485 --- /dev/null +++ b/vant/swipe-cell/index.wxml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/vant/swipe-cell/index.wxss b/vant/swipe-cell/index.wxss new file mode 100644 index 0000000..447b84d --- /dev/null +++ b/vant/swipe-cell/index.wxss @@ -0,0 +1,22 @@ +@import "../area/index.wxss"; + +.van-swipe-cell { + position: relative; + overflow: hidden; +} + +.van-swipe-cell__left,.van-swipe-cell__right { + position: absolute; + top: 0; + height: 100%; +} + +.van-swipe-cell__left { + left: 0; + transform: translate3d(-100%,0,0); +} + +.van-swipe-cell__right { + right: 0; + transform: translate3d(100%,0,0); +} \ No newline at end of file diff --git a/vant/switch-cell/index.js b/vant/switch-cell/index.js new file mode 100644 index 0000000..608d61c --- /dev/null +++ b/vant/switch-cell/index.js @@ -0,0 +1,42 @@ +(0, require("../common/component").VantComponent)({ + field: !0, + props: { + value: null, + title: String, + border: Boolean, + checked: Boolean, + loading: Boolean, + disabled: Boolean, + activeColor: String, + inactiveColor: String, + size: { + type: String, + value: "24px" + }, + activeValue: { + type: null, + value: !0 + }, + inactiveValue: { + type: null, + value: !1 + } + }, + watch: { + checked: function(e) { + this.set({ + value: e + }); + } + }, + created: function() { + this.set({ + value: this.data.checked + }); + }, + methods: { + onChange: function(e) { + this.$emit("change", e.detail); + } + } +}); \ No newline at end of file diff --git a/vant/switch-cell/index.json b/vant/switch-cell/index.json new file mode 100644 index 0000000..46853f1 --- /dev/null +++ b/vant/switch-cell/index.json @@ -0,0 +1,15 @@ +{ + "component": true, + "usingComponents": { + "van-cell": "../cell/index", + "van-switch": "../switch/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/switch-cell/index.wxml b/vant/switch-cell/index.wxml new file mode 100644 index 0000000..2b6e775 --- /dev/null +++ b/vant/switch-cell/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/vant/switch-cell/index.wxss b/vant/switch-cell/index.wxss new file mode 100644 index 0000000..bd4a39e --- /dev/null +++ b/vant/switch-cell/index.wxss @@ -0,0 +1,10 @@ +@import "../area/index.wxss"; + +.van-switch-cell { + padding-top: 9px; + padding-bottom: 9px; +} + +.van-switch-cell__switch { + vertical-align: middle; +} \ No newline at end of file diff --git a/vant/switch/index.js b/vant/switch/index.js new file mode 100644 index 0000000..4b625c0 --- /dev/null +++ b/vant/switch/index.js @@ -0,0 +1,44 @@ +(0, require("../common/component").VantComponent)({ + field: !0, + classes: [ "node-class" ], + props: { + checked: null, + loading: Boolean, + disabled: Boolean, + activeColor: String, + inactiveColor: String, + size: { + type: String, + value: "30px" + }, + activeValue: { + type: null, + value: !0 + }, + inactiveValue: { + type: null, + value: !1 + } + }, + watch: { + checked: function(e) { + this.set({ + value: e + }); + } + }, + created: function() { + this.set({ + value: this.data.checked + }); + }, + methods: { + onClick: function() { + var e = this.data, t = e.activeValue, a = e.inactiveValue; + if (!this.data.disabled && !this.data.loading) { + var i = this.data.checked === t ? a : t; + this.$emit("input", i), this.$emit("change", i); + } + } + } +}); \ No newline at end of file diff --git a/vant/switch/index.json b/vant/switch/index.json new file mode 100644 index 0000000..ec21e98 --- /dev/null +++ b/vant/switch/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "van-loading": "../loading/index", + "forview": "/utils/forview/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/switch/index.wxml b/vant/switch/index.wxml new file mode 100644 index 0000000..d812c19 --- /dev/null +++ b/vant/switch/index.wxml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/vant/switch/index.wxss b/vant/switch/index.wxss new file mode 100644 index 0000000..c947de3 --- /dev/null +++ b/vant/switch/index.wxss @@ -0,0 +1,45 @@ +@import "../area/index.wxss"; + +.van-switch { + display: inline-block; + position: relative; + width: 2em; + border: 1px solid rgba(0,0,0,.1); + border-radius: 1em; + box-sizing: initial; + transition: background-color .3s; +} + +.van-switch,.van-switch__node { + height: 1em; + background-color: #fff; +} + +.van-switch__node { + top: 0; + left: 0; + position: absolute; + border-radius: 100%; + width: 1em; + z-index: 1; + transition: .3s; + box-shadow: 0 3px 1px 0 rgba(0,0,0,.05),0 2px 2px 0 rgba(0,0,0,.1),0 3px 3px 0 rgba(0,0,0,.05); +} + +.van-switch__loading { + top: 25%; + left: 25%; + position: absolute!important; +} + +.van-switch--on { + background-color: #1989fa; +} + +.van-switch--on .van-switch__node { + transform: translateX(1em); +} + +.van-switch--disabled { + opacity: .4; +} \ No newline at end of file diff --git a/vant/tab/index.js b/vant/tab/index.js new file mode 100644 index 0000000..df538a9 --- /dev/null +++ b/vant/tab/index.js @@ -0,0 +1,35 @@ +(0, require("../common/component").VantComponent)({ + relation: { + name: "tabs", + type: "ancestor" + }, + props: { + icon: String, + iconStyle: String, + dot: Boolean, + info: null, + title: String, + disabled: Boolean, + titleStyle: String + }, + data: { + width: null, + inited: !1, + active: !1, + animated: !1 + }, + watch: { + icon: "update", + title: "update", + disabled: "update", + dot: "update", + info: "update", + titleStyle: "update" + }, + methods: { + update: function() { + var t = this.getRelationNodes("../tabs/index")[0]; + t && t.updateTabs(); + } + } +}); \ No newline at end of file diff --git a/vant/tab/index.json b/vant/tab/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/tab/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/tab/index.wxml b/vant/tab/index.wxml new file mode 100644 index 0000000..ece0a82 --- /dev/null +++ b/vant/tab/index.wxml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/vant/tab/index.wxss b/vant/tab/index.wxss new file mode 100644 index 0000000..45e91bd --- /dev/null +++ b/vant/tab/index.wxss @@ -0,0 +1,15 @@ +@import "../area/index.wxss"; + +.van-tab__pane { + box-sizing: border-box; + overflow-y: auto; +} + +.van-tab__pane--active { + height: auto; +} + +.van-tab__pane--inactive { + height: 0; + overflow: visible; +} \ No newline at end of file diff --git a/vant/tabbar-item/index.js b/vant/tabbar-item/index.js new file mode 100644 index 0000000..7c0b13b --- /dev/null +++ b/vant/tabbar-item/index.js @@ -0,0 +1,29 @@ +(0, require("../common/component").VantComponent)({ + props: { + info: null, + icon: String, + dot: Boolean + }, + relation: { + name: "tabbar", + type: "ancestor", + linked: function(t) { + this.parent = t; + } + }, + data: { + active: !1 + }, + methods: { + onClick: function() { + this.parent && this.parent.onChange(this), this.$emit("click"); + }, + setActive: function(t) { + var e = t.active, n = t.color; + return this.data.active !== e ? this.set({ + active: e, + color: n + }) : Promise.resolve(); + } + } +}); \ No newline at end of file diff --git a/vant/tabbar-item/index.json b/vant/tabbar-item/index.json new file mode 100644 index 0000000..2b39d06 --- /dev/null +++ b/vant/tabbar-item/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-info": "../info/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/tabbar-item/index.wxml b/vant/tabbar-item/index.wxml new file mode 100644 index 0000000..894f788 --- /dev/null +++ b/vant/tabbar-item/index.wxml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vant/tabbar-item/index.wxss b/vant/tabbar-item/index.wxss new file mode 100644 index 0000000..d826cd1 --- /dev/null +++ b/vant/tabbar-item/index.wxss @@ -0,0 +1,39 @@ +@import "../area/index.wxss"; + +.van-tabbar-item { + color: #7d7e80; + height: 100%; + display: flex; + line-height: 1; + font-size: 12px; + align-items: center; + flex-direction: column; + justify-content: center; +} + +.van-tabbar-item__icon { + font-size: 18px; + margin-bottom: 5px; + position: relative; +} + +.van-tabbar-item__icon--dot:after { + top: 0; + right: -8px; + width: 8px; + height: 8px; + content: " "; + position: absolute; + border-radius: 100%; + background-color: #f44; +} + +.van-tabbar-item__icon image { + width: 30px; + height: 18px; + display: block; +} + +.van-tabbar-item--active { + color: #1989fa; +} \ No newline at end of file diff --git a/vant/tabbar/index.js b/vant/tabbar/index.js new file mode 100644 index 0000000..78b4c59 --- /dev/null +++ b/vant/tabbar/index.js @@ -0,0 +1,54 @@ +var e = require("../common/component"), t = require("../mixins/safe-area"); + +(0, e.VantComponent)({ + mixins: [ (0, t.safeArea)() ], + relation: { + name: "tabbar-item", + type: "descendant", + linked: function(e) { + this.children = this.children || [], this.children.push(e), this.setActiveItem(); + }, + unlinked: function(e) { + this.children = this.children || [], this.children = this.children.filter(function(t) { + return t !== e; + }), this.setActiveItem(); + } + }, + props: { + active: Number, + activeColor: String, + fixed: { + type: Boolean, + value: !0 + }, + zIndex: { + type: Number, + value: 1 + } + }, + watch: { + active: function(e) { + this.currentActive = e, this.setActiveItem(); + } + }, + created: function() { + this.currentActive = this.data.active; + }, + methods: { + setActiveItem: function() { + var e = this; + return Array.isArray(this.children) && this.children.length ? Promise.all(this.children.map(function(t, i) { + return t.setActive({ + active: i === e.currentActive, + color: e.data.activeColor + }); + })) : Promise.resolve(); + }, + onChange: function(e) { + var t = this, i = (this.children || []).indexOf(e); + i !== this.currentActive && -1 !== i && (this.currentActive = i, this.setActiveItem().then(function() { + t.$emit("change", i); + })); + } + } +}); \ No newline at end of file diff --git a/vant/tabbar/index.json b/vant/tabbar/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/tabbar/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/tabbar/index.wxml b/vant/tabbar/index.wxml new file mode 100644 index 0000000..f43252e --- /dev/null +++ b/vant/tabbar/index.wxml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/vant/tabbar/index.wxss b/vant/tabbar/index.wxss new file mode 100644 index 0000000..caf8ec6 --- /dev/null +++ b/vant/tabbar/index.wxss @@ -0,0 +1,18 @@ +@import "../area/index.wxss"; + +.van-tabbar { + display: flex; + width: 100%; + height: 50px; + background-color: #fff; +} + +.van-tabbar--fixed { + position: fixed; + bottom: 0; + left: 0; +} + +.van-tabbar--safe { + padding-bottom: 34px; +} \ No newline at end of file diff --git a/vant/tabs/index.js b/vant/tabs/index.js new file mode 100644 index 0000000..a842ec5 --- /dev/null +++ b/vant/tabs/index.js @@ -0,0 +1,261 @@ +var t = function() { + function t(t, e) { + var i = [], a = !0, n = !1, s = void 0; + try { + for (var o, r = t[Symbol.iterator](); !(a = (o = r.next()).done) && (i.push(o.value), + !e || i.length !== e); a = !0) ; + } catch (t) { + n = !0, s = t; + } finally { + try { + !a && r.return && r.return(); + } finally { + if (n) throw s; + } + } + return i; + } + return function(e, i) { + if (Array.isArray(e)) return e; + if (Symbol.iterator in Object(e)) return t(e, i); + throw new TypeError("Invalid attempt to destructure non-iterable instance"); + }; +}(), e = require("../common/component"), i = require("../mixins/touch"); + +(0, e.VantComponent)({ + mixins: [ i.touch ], + classes: [ "nav-class", "tab-class", "tab-active-class", "line-class" ], + relation: { + name: "tab", + type: "descendant", + linked: function(t) { + this.child.push(t), this.updateTabs(this.data.tabs.concat(t.data)); + }, + unlinked: function(t) { + var e = this.child.indexOf(t), i = this.data.tabs; + i.splice(e, 1), this.child.splice(e, 1), this.updateTabs(i); + } + }, + props: { + color: String, + sticky: Boolean, + animated: Boolean, + swipeable: Boolean, + scrollable: Boolean, + lineWidth: { + type: Number, + value: -1 + }, + lineHeight: { + type: Number, + value: -1 + }, + active: { + type: Number, + value: 0 + }, + type: { + type: String, + value: "line" + }, + border: { + type: Boolean, + value: !0 + }, + duration: { + type: Number, + value: .3 + }, + zIndex: { + type: Number, + value: 1 + }, + swipeThreshold: { + type: Number, + value: 4 + }, + offsetTop: { + type: Number, + value: 0 + } + }, + data: { + tabs: [], + lineStyle: "", + scrollLeft: 0, + trackStyle: "", + wrapStyle: "", + position: "" + }, + watch: { + swipeThreshold: function() { + this.set({ + scrollable: !1 !== this.data.scrollable && this.child.length > this.data.swipeThreshold + }); + }, + color: "setLine", + lineWidth: "setLine", + lineHeight: "setLine", + active: "setActiveTab", + animated: "setTrack", + offsetTop: "setWrapStyle" + }, + beforeCreate: function() { + this.child = []; + }, + mounted: function() { + var t = this; + this.setLine(!0), this.setTrack(), this.scrollIntoView(), this.getRect(".van-tabs__wrap").then(function(e) { + t.navHeight = e.height, t.observerContentScroll(); + }); + }, + destroyed: function() { + this.createIntersectionObserver().disconnect(); + }, + methods: { + updateTabs: function(t) { + t = t || this.data.tabs, this.set({ + tabs: t, + scrollable: !1 !== this.data.scrollable && t.length > this.data.swipeThreshold + }), this.setActiveTab(); + }, + trigger: function(t, e) { + this.$emit(t, { + index: e, + title: this.data.tabs[e].title + }); + }, + onTap: function(t) { + var e = t.currentTarget.dataset.index; + this.data.tabs[e].disabled ? this.trigger("disabled", e) : (this.trigger("click", e), + this.setActive(e)); + }, + setActive: function(t) { + t !== this.data.active && (this.trigger("change", t), this.set({ + active: t + }), this.setActiveTab()); + }, + setLine: function(t) { + var e = this; + if ("line" === this.data.type) { + var i = this.data, a = i.color, n = i.active, s = i.duration, o = i.lineWidth, r = i.lineHeight; + this.getRect(".van-tab", !0).then(function(i) { + var c = i[n], l = -1 !== o ? o : c.width / 2, h = -1 !== r ? "height: " + r + "px;" : "", d = i.slice(0, n).reduce(function(t, e) { + return t + e.width; + }, 0); + d += (c.width - l) / 2; + var u = t ? "" : "transition-duration: " + s + "s; -webkit-transition-duration: " + s + "s;"; + e.set({ + lineStyle: "\n " + h + "\n width: " + l + "px;\n background-color: " + a + ";\n -webkit-transform: translateX(" + d + "px);\n transform: translateX(" + d + "px);\n " + u + "\n " + }); + }); + } + }, + setTrack: function() { + var t = this, e = this.data, i = e.animated, a = e.active, n = e.duration; + if (!i) return ""; + this.getRect(".van-tabs__content").then(function(e) { + var s = e.width; + t.set({ + trackStyle: "\n width: " + s * t.child.length + "px;\n left: " + -1 * a * s + "px;\n transition: left " + n + "s;\n display: -webkit-box;\n display: flex;\n " + }); + var o = { + width: s, + animated: i + }; + t.child.forEach(function(t) { + t.set(o); + }); + }); + }, + setActiveTab: function() { + var t = this; + this.child.forEach(function(e, i) { + var a = { + active: i === t.data.active + }; + a.active && (a.inited = !0), a.active !== e.data.active && e.set(a); + }), this.set({}, function() { + t.setLine(), t.setTrack(), t.scrollIntoView(); + }); + }, + scrollIntoView: function() { + var e = this, i = this.data, a = i.active; + i.scrollable && Promise.all([ this.getRect(".van-tab", !0), this.getRect(".van-tabs__nav") ]).then(function(i) { + var n = t(i, 2), s = n[0], o = n[1], r = s[a], c = s.slice(0, a).reduce(function(t, e) { + return t + e.width; + }, 0); + e.set({ + scrollLeft: c - (o.width - r.width) / 2 + }); + }); + }, + onTouchStart: function(t) { + this.data.swipeable && this.touchStart(t); + }, + onTouchMove: function(t) { + this.data.swipeable && this.touchMove(t); + }, + onTouchEnd: function() { + if (this.data.swipeable) { + var t = this.data, e = t.active, i = t.tabs, a = this.direction, n = this.deltaX, s = this.offsetX; + "horizontal" === a && s >= 50 && (n > 0 && 0 !== e ? this.setActive(e - 1) : n < 0 && e !== i.length - 1 && this.setActive(e + 1)); + } + }, + setWrapStyle: function() { + var t = this.data, e = t.offsetTop, i = void 0; + switch (t.position) { + case "top": + i = "\n top: " + e + "px;\n position: fixed;\n "; + break; + + case "bottom": + i = "\n top: auto;\n bottom: 0;\n "; + break; + + default: + i = ""; + } + i !== this.data.wrapStyle && this.set({ + wrapStyle: i + }); + }, + observerContentScroll: function() { + var t = this; + if (this.data.sticky) { + var e = this.data.offsetTop, i = wx.getSystemInfoSync().windowHeight; + this.createIntersectionObserver().disconnect(), this.createIntersectionObserver().relativeToViewport({ + top: -(this.navHeight + e) + }).observe(".van-tabs", function(i) { + var a = i.boundingClientRect.top; + if (!(a > e)) { + var n = i.intersectionRatio > 0 ? "top" : "bottom"; + t.$emit("scroll", { + scrollTop: a + e, + isFixed: "top" === n + }), t.setPosition(n); + } + }), this.createIntersectionObserver().relativeToViewport({ + bottom: -(i - 1 - e) + }).observe(".van-tabs", function(i) { + var a = i.boundingClientRect, n = a.top; + if (!(a.bottom < t.navHeight)) { + var s = i.intersectionRatio > 0 ? "top" : ""; + t.$emit("scroll", { + scrollTop: n + e, + isFixed: "top" === s + }), t.setPosition(s); + } + }); + } + }, + setPosition: function(t) { + var e = this; + t !== this.data.position && this.set({ + position: t + }).then(function() { + e.setWrapStyle(); + }); + } + } +}); \ No newline at end of file diff --git a/vant/tabs/index.json b/vant/tabs/index.json new file mode 100644 index 0000000..942164a --- /dev/null +++ b/vant/tabs/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-info": "../info/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/tabs/index.wxml b/vant/tabs/index.wxml new file mode 100644 index 0000000..702533b --- /dev/null +++ b/vant/tabs/index.wxml @@ -0,0 +1,31 @@ + + + + + + + + + + + + {{item.title}} + + + + {{item.title}} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vant/tabs/index.wxss b/vant/tabs/index.wxss new file mode 100644 index 0000000..675e4fd --- /dev/null +++ b/vant/tabs/index.wxss @@ -0,0 +1,135 @@ +@import "../area/index.wxss"; + +.van-tabs { + position: relative; + -webkit-tap-highlight-color: transparent; +} + +.van-tabs__wrap { + position: absolute; + top: 0; + right: 0; + left: 0; + display: flex; + background-color: #fff; +} + +.van-tabs__wrap--page-top { + position: fixed; +} + +.van-tabs__wrap--content-bottom { + top: auto; + bottom: 0; +} + +.van-tabs__wrap--scrollable .van-tab { + flex: 0 0 22%; +} + +.van-tabs__scroll--card { + border: 1px solid #f44; + border-radius: 2px; +} + +.van-tabs__nav { + position: relative; + display: flex; + user-select: none; +} + +.van-tabs__nav--line { + height: 100%; +} + +.van-tabs__nav--card { + height: 30px; +} + +.van-tabs__nav--card .van-tab { + line-height: 28px; + color: #f44; + border-right: 1px solid #f44; +} + +.van-tabs__nav--card .van-tab:last-child { + border-right: none; +} + +.van-tabs__nav--card .van-tab.van-tab--active { + color: #fff; + background-color: #f44; +} + +.van-tabs__line { + position: absolute; + bottom: 0; + left: 0; + z-index: 1; + height: 3px; + background-color: #f44; + border-radius: 3px; +} + +.van-tabs--line { + padding-top: 44px; +} + +.van-tabs--card .van-tabs--line .van-tabs__wrap,.van-tabs--line .van-tabs__wrap { + height: 44px; +} + +.van-tabs--card { + padding-top: 30px; + margin: 0 15px; +} + +.van-tabs--card .van-tabs__wrap { + height: 30px; +} + +.van-tabs__content { + overflow: hidden; +} + +.van-tab,.van-tabs__track { + position: relative; +} + +.van-tab { + min-width: 0; + padding: 0 5px; + font-size: 14px; + line-height: 44px; + color: #7d7e80; + text-align: center; + cursor: pointer; + box-sizing: border-box; + flex: 1; +} + +.van-tab--active { + font-weight: 500; + color: #333; +} + +.van-tab--disabled { + color: #c9c9c9; +} + +.van-tab__title--dot:after { + display: inline-block; + width: 8px; + height: 8px; + vertical-align: middle; + background-color: #f44; + border-radius: 100%; + content: ""; +} + +.van-tab__title__info { + position: relative!important; + top: -1px!important; + display: inline-block; + transform: translateX(0)!important; +} \ No newline at end of file diff --git a/vant/tag/index.js b/vant/tag/index.js new file mode 100644 index 0000000..7ef1b82 --- /dev/null +++ b/vant/tag/index.js @@ -0,0 +1,34 @@ +function o(o, t, r) { + return t in o ? Object.defineProperty(o, t, { + value: r, + enumerable: !0, + configurable: !0, + writable: !0 + }) : o[t] = r, o; +} + +var t = require("../common/component"), r = require("../common/color"), e = { + danger: r.RED, + primary: r.BLUE, + success: r.GREEN +}; + +(0, t.VantComponent)({ + props: { + size: String, + type: String, + mark: Boolean, + color: String, + plain: Boolean, + round: Boolean, + textColor: String + }, + computed: { + style: function() { + var t = this.data.color || e[this.data.type] || "#999", r = o({}, this.data.plain ? "color" : "background-color", t); + return this.data.textColor && (r.color = this.data.textColor), Object.keys(r).map(function(o) { + return o + ": " + r[o]; + }).join(";"); + } + } +}); \ No newline at end of file diff --git a/vant/tag/index.json b/vant/tag/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/tag/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/tag/index.wxml b/vant/tag/index.wxml new file mode 100644 index 0000000..1b5c65a --- /dev/null +++ b/vant/tag/index.wxml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/vant/tag/index.wxss b/vant/tag/index.wxss new file mode 100644 index 0000000..1742c58 --- /dev/null +++ b/vant/tag/index.wxss @@ -0,0 +1,40 @@ +@import "../area/index.wxss"; + +.van-tag { + color: #fff; + font-size: 10px; + padding: .2em .5em; + line-height: normal; + border-radius: .2em; + display: inline-block; +} + +.van-tag:after { + border-color: currentColor; + border-radius: .4em; +} + +.van-tag--mark { + padding-right: .6em; + border-radius: 0 .8em .8em 0; +} + +.van-tag--mark:after { + border-radius: 0 1.6em 1.6em 0; +} + +.van-tag--round { + border-radius: .8em; +} + +.van-tag--round:after { + border-radius: 1.6em; +} + +.van-tag--medium { + font-size: 12px; +} + +.van-tag--large { + font-size: 14px; +} \ No newline at end of file diff --git a/vant/toast/index.js b/vant/toast/index.js new file mode 100644 index 0000000..b09786c --- /dev/null +++ b/vant/toast/index.js @@ -0,0 +1,27 @@ +(0, require("../common/component").VantComponent)({ + props: { + show: Boolean, + mask: Boolean, + message: String, + forbidClick: Boolean, + zIndex: { + type: Number, + value: 1e3 + }, + type: { + type: String, + value: "text" + }, + loadingType: { + type: String, + value: "circular" + }, + position: { + type: String, + value: "middle" + } + }, + methods: { + noop: function() {} + } +}); \ No newline at end of file diff --git a/vant/toast/index.json b/vant/toast/index.json new file mode 100644 index 0000000..9cc05b3 --- /dev/null +++ b/vant/toast/index.json @@ -0,0 +1,15 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-loading": "../loading/index", + "van-overlay": "../overlay/index", + "van-transition": "../transition/index", + "forview": "/utils/forview/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/toast/index.wxml b/vant/toast/index.wxml new file mode 100644 index 0000000..ab45a9b --- /dev/null +++ b/vant/toast/index.wxml @@ -0,0 +1,12 @@ + + + + {{message}} + + + + {{message}} + + + + diff --git a/vant/toast/index.wxss b/vant/toast/index.wxss new file mode 100644 index 0000000..3517e2d --- /dev/null +++ b/vant/toast/index.wxss @@ -0,0 +1,56 @@ +@import "../area/index.wxss"; + +.van-toast { + display: flex; + color: #fff; + font-size: 14px; + line-height: 20px; + border-radius: 4px; + word-break: break-all; + align-items: center; + flex-direction: column; + justify-content: center; + box-sizing: initial; + background-color: rgba(51,51,51,.88); + white-space: pre-wrap; +} + +.van-toast__container { + position: fixed; + top: 50%; + left: 50%; + max-width: 70%; + width: fit-content; + transform: translate(-50%,-50%); +} + +.van-toast--text { + padding: 8px 12px; + min-width: 96px; +} + +.van-toast--icon { + width: 90px; + padding: 15px; + min-height: 90px; +} + +.van-toast--icon .van-toast__icon { + font-size: 48px; +} + +.van-toast--icon .van-toast__text { + padding-top: 5px; +} + +.van-toast__loading { + margin: 10px 0; +} + +.van-toast--top { + transform: translateY(-30vh); +} + +.van-toast--bottom { + transform: translateY(30vh); +} \ No newline at end of file diff --git a/vant/toast/toast.js b/vant/toast/toast.js new file mode 100644 index 0000000..6c452c2 --- /dev/null +++ b/vant/toast/toast.js @@ -0,0 +1,57 @@ +function e(e) { + return (0, o.isObj)(e) ? e : { + message: e + }; +} + +function t() { + var e = getCurrentPages(); + return e[e.length - 1]; +} + +function n(n) { + var o = Object.assign({}, i, e(n)), s = (o.context || t()).selectComponent(o.selector); + if (s) return delete o.context, delete o.selector, s.clear = function() { + s.set({ + show: !1 + }), o.onClose && o.onClose(); + }, r.push(s), s.set(o), clearTimeout(s.timer), o.duration > 0 && (s.timer = setTimeout(function() { + s.clear(), r = r.filter(function(e) { + return e !== s; + }); + }, o.duration)), s; + console.warn("未找到 van-toast 节点,请确认 selector 及 context 是否正确"); +} + +Object.defineProperty(exports, "__esModule", { + value: !0 +}); + +var o = require("../common/utils"), s = { + type: "text", + mask: !1, + message: "", + show: !0, + zIndex: 1e3, + duration: 3e3, + position: "middle", + forbidClick: !1, + loadingType: "circular", + selector: "#van-toast" +}, r = [], i = Object.assign({}, s), c = function(t) { + return function(o) { + return n(Object.assign({ + type: t + }, e(o))); + }; +}; + +n.loading = c("loading"), n.success = c("success"), n.fail = c("fail"), n.clear = function() { + r.forEach(function(e) { + e.clear(); + }), r = []; +}, n.setDefaultOptions = function(e) { + Object.assign(i, e); +}, n.resetDefaultOptions = function() { + i = Object.assign({}, s); +}, exports.default = n; \ No newline at end of file diff --git a/vant/transition/index.js b/vant/transition/index.js new file mode 100644 index 0000000..af72a28 --- /dev/null +++ b/vant/transition/index.js @@ -0,0 +1,6 @@ +var e = require("../common/component"), s = require("../mixins/transition"); + +(0, e.VantComponent)({ + classes: [ "enter-class", "enter-active-class", "enter-to-class", "leave-class", "leave-active-class", "leave-to-class" ], + mixins: [ (0, s.transition)(!0) ] +}); \ No newline at end of file diff --git a/vant/transition/index.json b/vant/transition/index.json new file mode 100644 index 0000000..4cdff13 --- /dev/null +++ b/vant/transition/index.json @@ -0,0 +1,13 @@ +{ + "component": true, + "usingComponents": { + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-icon": "/vant/icon/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/transition/index.wxml b/vant/transition/index.wxml new file mode 100644 index 0000000..9796d27 --- /dev/null +++ b/vant/transition/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/vant/transition/index.wxss b/vant/transition/index.wxss new file mode 100644 index 0000000..30a7040 --- /dev/null +++ b/vant/transition/index.wxss @@ -0,0 +1,61 @@ +@import "../area/index.wxss"; + +.van-transition { + transition-timing-function: ease; +} + +.van-fade-enter-active,.van-fade-leave-active { + transition-property: opacity; +} + +.van-fade-enter,.van-fade-leave-to { + opacity: 0; +} + +.van-fade-down-enter-active,.van-fade-down-leave-active,.van-fade-left-enter-active,.van-fade-left-leave-active,.van-fade-right-enter-active,.van-fade-right-leave-active,.van-fade-up-enter-active,.van-fade-up-leave-active { + transition-property: opacity,-webkit-transform; + transition-property: opacity,transform; + transition-property: opacity,transform,-webkit-transform; +} + +.van-fade-up-enter,.van-fade-up-leave-to { + opacity: 0; + transform: translate3d(0,100%,0); +} + +.van-fade-down-enter,.van-fade-down-leave-to { + opacity: 0; + transform: translate3d(0,-100%,0); +} + +.van-fade-left-enter,.van-fade-left-leave-to { + opacity: 0; + transform: translate3d(-100%,0,0); +} + +.van-fade-right-enter,.van-fade-right-leave-to { + opacity: 0; + transform: translate3d(100%,0,0); +} + +.van-slide-down-enter-active,.van-slide-down-leave-active,.van-slide-left-enter-active,.van-slide-left-leave-active,.van-slide-right-enter-active,.van-slide-right-leave-active,.van-slide-up-enter-active,.van-slide-up-leave-active { + transition-property: transform; + transition-property: transform,-webkit-transform; + transition-property: transform,-webkit-transform; +} + +.van-slide-up-enter,.van-slide-up-leave-to { + transform: translate3d(0,100%,0); +} + +.van-slide-down-enter,.van-slide-down-leave-to { + transform: translate3d(0,-100%,0); +} + +.van-slide-left-enter,.van-slide-left-leave-to { + transform: translate3d(-100%,0,0); +} + +.van-slide-right-enter,.van-slide-right-leave-to { + transform: translate3d(100%,0,0); +} \ No newline at end of file diff --git a/vant/tree-select/index.js b/vant/tree-select/index.js new file mode 100644 index 0000000..ee70118 --- /dev/null +++ b/vant/tree-select/index.js @@ -0,0 +1,64 @@ +(0, require("../common/component").VantComponent)({ + classes: [ "main-item-class", "content-item-class", "main-active-class", "content-active-class", "main-disabled-class", "content-disabled-class" ], + props: { + items: Array, + mainActiveIndex: { + type: Number, + value: 0 + }, + activeId: { + type: [ Number, String ] + }, + maxHeight: { + type: Number, + value: 300 + } + }, + data: { + subItems: [], + mainHeight: 0, + itemHeight: 0 + }, + watch: { + items: function() { + var t = this; + this.updateSubItems().then(function() { + t.updateMainHeight(); + }); + }, + maxHeight: function() { + this.updateItemHeight(this.data.subItems), this.updateMainHeight(); + }, + mainActiveIndex: "updateSubItems" + }, + methods: { + onSelectItem: function(t) { + var e = t.currentTarget.dataset.item; + e.disabled || this.$emit("click-item", e); + }, + onClickNav: function(t) { + var e = t.currentTarget.dataset.index; + this.data.items[e].disabled || this.$emit("click-nav", { + index: e + }); + }, + updateSubItems: function() { + var t = this.data, e = (t.items[t.mainActiveIndex] || {}).children, i = void 0 === e ? [] : e; + return this.updateItemHeight(i), this.set({ + subItems: i + }); + }, + updateMainHeight: function() { + var t = this.data, e = t.items, i = void 0 === e ? [] : e, a = t.subItems, s = void 0 === a ? [] : a, n = Math.max(44 * i.length, 44 * s.length); + this.set({ + mainHeight: Math.min(n, this.data.maxHeight) + }); + }, + updateItemHeight: function(t) { + var e = Math.min(44 * t.length, this.data.maxHeight); + return this.set({ + itemHeight: e + }); + } + } +}); \ No newline at end of file diff --git a/vant/tree-select/index.json b/vant/tree-select/index.json new file mode 100644 index 0000000..0bd6e17 --- /dev/null +++ b/vant/tree-select/index.json @@ -0,0 +1,14 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-cell": "../cell/index", + "forview": "/utils/forview/index", + "van-loading": "/vant/loading/index", + "van-dialog": "/vant/dialog/index", + "van-button": "/vant/button/index", + "van-popup": "/vant/popup/index", + "van-tab": "/vant/tab/index", + "van-tabs": "/vant/tabs/index" + } +} \ No newline at end of file diff --git a/vant/tree-select/index.wxml b/vant/tree-select/index.wxml new file mode 100644 index 0000000..beb537c --- /dev/null +++ b/vant/tree-select/index.wxml @@ -0,0 +1,14 @@ + + + + {{item.text}} + + + + + {{item.text}} + + + + + \ No newline at end of file diff --git a/vant/tree-select/index.wxss b/vant/tree-select/index.wxss new file mode 100644 index 0000000..6e89945 --- /dev/null +++ b/vant/tree-select/index.wxss @@ -0,0 +1,74 @@ +@import "../area/index.wxss"; + +.van-tree-select { + position: relative; + font-size: 14px; + user-select: none; +} + +.van-tree-select__nav { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 35%; + min-width: 120px; + background-color: #fafafa; +} + +.van-tree-select__nitem { + position: relative; + padding: 0 9px 0 15px; + line-height: 44px; +} + +.van-tree-select__nitem--active:after { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 3.6px; + background-color: #f44; + content: ""; +} + +.van-tree-select__nitem--active { + font-weight: 700; + background-color: #fff; +} + +.van-tree-select__nitem--disabled { + color: #999; +} + +.van-tree-select__content { + width: 65%; + padding-left: 15px; + margin-left: 35%; + background-color: #fff; + box-sizing: border-box; +} + +.van-tree-select__item { + position: relative; + font-weight: 700; + line-height: 44px; +} + +.van-tree-select__item--active { + color: #f44; +} + +.van-tree-select__item--disabled { + color: #999; +} + +.van-tree-select__selected { + position: absolute; + top: 0; + right: 15px; + bottom: 0; + height: 24px; + margin: auto 0; + line-height: 24px; +} \ No newline at end of file diff --git a/vant/wxs/array.wxs b/vant/wxs/array.wxs new file mode 100644 index 0000000..05f66e3 --- /dev/null +++ b/vant/wxs/array.wxs @@ -0,0 +1,4 @@ +function isArray(array) { + return (array && array.constructor === 'Array') +}; +module.exports.isArray = isArray; \ No newline at end of file diff --git a/vant/wxs/bem.wxs b/vant/wxs/bem.wxs new file mode 100644 index 0000000..cff2037 --- /dev/null +++ b/vant/wxs/bem.wxs @@ -0,0 +1,38 @@ +var array = require('./array.wxs'); +var object = require('./object.wxs'); +var PREFIX = 'van-'; + +function join(name, mods) { + name = PREFIX + name; + mods = mods.map(function (mod) { + return name + '--' + mod; + }); + mods.unshift(name); + return mods.join(' '); +} + +function traversing(mods, conf) { + if (!conf) { + return; + } + + if (typeof conf === 'string' || typeof conf === 'number') { + mods.push(conf); + } else if (array.isArray(conf)) { + conf.forEach(function (item) { + traversing(mods, item); + }); + } else if (typeof conf === 'object') { + object.keys(conf).forEach(function (key) { + conf[key] && mods.push(key); + }); + } +} + +function bem(name, conf) { + var mods = []; + traversing(mods, conf); + return join(name, mods); +} + +module.exports.bem = bem; \ No newline at end of file diff --git a/vant/wxs/memoize.wxs b/vant/wxs/memoize.wxs new file mode 100644 index 0000000..3071305 --- /dev/null +++ b/vant/wxs/memoize.wxs @@ -0,0 +1,39 @@ +function isPrimitive(value) { + var type = typeof value; + return ((type === 'boolean' || type === 'number' || type === 'string' || type === 'undefined' || value === null)) +}; + +function call(fn, args) { + if (args.length === 2) { + return (fn(args[(0)], args[(1)])) + }; + if (args.length === 1) { + return (fn(args[(0)])) + }; + return (fn()) +}; + +function serializer(args) { + if (args.length === 1 && isPrimitive(args[(0)])) { + return (args[(0)]) + }; + var obj = ({}); + for (var i = 0; i < args.length; i++) { + obj[((nt_5 = ('key' + i), null == nt_5 ? undefined : 'number' === typeof nt_5 ? nt_5 : "" + nt_5))] = args[((nt_6 = (i), null == nt_6 ? undefined : 'number' === typeof nt_6 ? nt_6 : "" + nt_6))] + }; + return (JSON.stringify(obj)) +}; + +function memoize(fn) { + arguments.length = arguments.length; + var cache = ({}); + return ((function() { + arguments.length = arguments.length; + var key = serializer(arguments); + if (cache[((nt_7 = (key), null == nt_7 ? undefined : 'number' === typeof nt_7 ? nt_7 : "" + nt_7))] === undefined) { + cache[((nt_8 = (key), null == nt_8 ? undefined : 'number' === typeof nt_8 ? nt_8 : "" + nt_8))] = call(fn, arguments) + }; + return (cache[((nt_9 = (key), null == nt_9 ? undefined : 'number' === typeof nt_9 ? nt_9 : "" + nt_9))]) + })) +}; +module.exports.memoize = memoize; \ No newline at end of file diff --git a/vant/wxs/object.wxs b/vant/wxs/object.wxs new file mode 100644 index 0000000..acbc07e --- /dev/null +++ b/vant/wxs/object.wxs @@ -0,0 +1,8 @@ +var REGEXP = getRegExp('{|}|\x22', 'g'); + +function keys(obj) { + return (JSON.stringify(obj).replace(REGEXP, '').split(',').map((function(item) { + return (item.split(':')[(0)]) + }))) +}; +module.exports.keys = keys; \ No newline at end of file diff --git a/vant/wxs/utils.wxs b/vant/wxs/utils.wxs new file mode 100644 index 0000000..91953bb --- /dev/null +++ b/vant/wxs/utils.wxs @@ -0,0 +1,11 @@ +var bem = require('./bem.wxs').bem; +var memoize = require('./memoize.wxs').memoize; + +function isSrc(url) { + return (url.indexOf('http') === 0 || url.indexOf('data:image') === 0 || url.indexOf('//') === 0) +}; +module.exports = ({ + bem: memoize(bem), + isSrc: isSrc, + memoize: memoize, +}); \ No newline at end of file diff --git a/wxParse/html2json.js b/wxParse/html2json.js new file mode 100644 index 0000000..7320327 --- /dev/null +++ b/wxParse/html2json.js @@ -0,0 +1,103 @@ +function e(e) { + for (var t = {}, r = e.split(","), s = 0; s < r.length; s++) t[r[s]] = !0; + return t; +} + +function t(e) { + return e.replace(/<\?xml.*\?>\n/, "").replace(/<.*!doctype.*\>\n/, "").replace(/<.*!DOCTYPE.*\>\n/, ""); +} + +function r(e) { + return e.replace(/\r?\n+/g, "").replace(//gi, "").replace(/\/\*.*?\*\//gi, "").replace(/[ ]+ 0 && void 0 !== arguments[0] ? arguments[0] : "", t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "/wxParse/emojis/", r = arguments[2]; + n = e, o = t, i = r; + } +}; \ No newline at end of file diff --git a/wxParse/htmlparser.js b/wxParse/htmlparser.js new file mode 100644 index 0000000..de7b6e9 --- /dev/null +++ b/wxParse/htmlparser.js @@ -0,0 +1,48 @@ +function e(e) { + for (var t = {}, r = e.split(","), s = 0; s < r.length; s++) t[r[s]] = !0; + return t; +} + +var t = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/, r = /^<\/([-A-Za-z0-9_]+)[^>]*>/, s = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g, a = e("area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr"), n = e("a,address,code,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video"), i = e("abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"), o = e("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"), l = e("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"), c = e("wxxxcode-style,script,style,view,scroll-view,block"); + +module.exports = function(e, d) { + function f(e, t) { + if (t) for (t = t.toLowerCase(), r = b.length - 1; r >= 0 && b[r] != t; r--) ; else var r = 0; + if (r >= 0) { + for (var s = b.length - 1; s >= r; s--) d.end && d.end(b[s]); + b.length = r; + } + } + var p, u, h, b = [], m = e; + for (b.last = function() { + return this[this.length - 1]; + }; e; ) { + if (u = !0, b.last() && c[b.last()]) e = e.replace(new RegExp("([\\s\\S]*?)]*>"), function(e, t) { + return t = t.replace(/|/g, "$1$2"), d.chars && d.chars(t), + ""; + }), f(0, b.last()); else if (0 == e.indexOf("\x3c!--") ? (p = e.indexOf("--\x3e")) >= 0 && (d.comment && d.comment(e.substring(4, p)), + e = e.substring(p + 3), u = !1) : 0 == e.indexOf(""), e = e.replace(/•/g, "•"); +} + +function l(e) { + return e = e.replace(/Œ/g, "Œ"), e = e.replace(/œ/g, "œ"), e = e.replace(/Š/g, "Š"), + e = e.replace(/š/g, "š"), e = e.replace(/Ÿ/g, "Ÿ"), e = e.replace(/ƒ/g, "ƒ"), + e = e.replace(/ˆ/g, "ˆ"), e = e.replace(/˜/g, "˜"), e = e.replace(/ /g, ""), + e = e.replace(/ /g, ""), e = e.replace(/ /g, ""), e = e.replace(/‌/g, ""), + e = e.replace(/‍/g, ""), e = e.replace(/‎/g, ""), e = e.replace(/‏/g, ""), + e = e.replace(/–/g, "–"), e = e.replace(/—/g, "—"), e = e.replace(/‘/g, "‘"), + e = e.replace(/’/g, "’"), e = e.replace(/‚/g, "‚"), e = e.replace(/“/g, "“"), + e = e.replace(/”/g, "”"), e = e.replace(/„/g, "„"), e = e.replace(/†/g, "†"), + e = e.replace(/‡/g, "‡"), e = e.replace(/•/g, "•"), e = e.replace(/…/g, "…"), + e = e.replace(/‰/g, "‰"), e = e.replace(/′/g, "′"), e = e.replace(/″/g, "″"), + e = e.replace(/‹/g, "‹"), e = e.replace(/›/g, "›"), e = e.replace(/‾/g, "‾"), + e = e.replace(/€/g, "€"), e = e.replace(/™/g, "™"), e = e.replace(/←/g, "←"), + e = e.replace(/↑/g, "↑"), e = e.replace(/→/g, "→"), e = e.replace(/↓/g, "↓"), + e = e.replace(/↔/g, "↔"), e = e.replace(/↵/g, "↵"), e = e.replace(/⌈/g, "⌈"), + e = e.replace(/⌉/g, "⌉"), e = e.replace(/⌊/g, "⌊"), e = e.replace(/⌋/g, "⌋"), + e = e.replace(/◊/g, "◊"), e = e.replace(/♠/g, "♠"), e = e.replace(/♣/g, "♣"), + e = e.replace(/♥/g, "♥"), e = e.replace(/♦/g, "♦"), e = e.replace(/'/g, "'"); +} + +function p(e) { + return e = e.replace(/\r\n/g, ""), e = e.replace(/\n/g, ""); +} + +module.exports = { + strDiscode: function(c) { + return c = e(c), c = a(c), c = r(c), c = l(c), c = p(c); + }, + urlToHttpUrl: function(e, a) { + return new RegExp("^//").test(e) && (e = a + ":" + e), e; + } +}; \ No newline at end of file diff --git a/wxParse/wxParse.js b/wxParse/wxParse.js new file mode 100644 index 0000000..2dfc542 --- /dev/null +++ b/wxParse/wxParse.js @@ -0,0 +1,75 @@ +function t(t, e, a) { + return e in t ? Object.defineProperty(t, e, { + value: a, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[e] = a, t; +} + +function e(t) { + var e = this, a = t.target.dataset.src, i = t.target.dataset.from; + console.log("nowImgUrl", a), console.log("nowImgUrl", e.data[i].imageUrls), void 0 !== i && i.length > 0 && wx.previewImage({ + current: a, + urls: e.data[i].imageUrls + }); +} + +function a(t) { + var e = this, a = t.target.dataset.from, r = t.target.dataset.idx; + void 0 !== a && a.length > 0 && i(t, r, e, a); +} + +function i(e, a, i, n) { + var d, o = i.data[n]; + if (o && 0 != o.images.length) { + var g = o.images, s = r(e.detail.width, e.detail.height, i, n), l = g[a].index, h = "" + n, m = !0, u = !1, v = void 0; + try { + for (var w, f = l.split(".")[Symbol.iterator](); !(m = (w = f.next()).done); m = !0) h += ".nodes[" + w.value + "]"; + } catch (t) { + u = !0, v = t; + } finally { + try { + !m && f.return && f.return(); + } finally { + if (u) throw v; + } + } + var c = h + ".width", x = h + ".height", P = h + ".maxwidth", y = h + ".not"; + i.setData((d = {}, t(d, y, g[a].attr.not || ""), t(d, P, g[a].attr.maxwidth || "!/fw/" + s.imageWidth), + t(d, c, s.imageWidth), t(d, x, s.imageheight), d)); + } +} + +function r(t, e, a, i) { + var r = 0, n = 0, g = 0, s = {}, l = a.data[i].view.imagePadding; + return r = d - 2 * l, o, t > r ? (g = (n = r) * e / t, s.imageWidth = n, s.imageheight = g) : (s.imageWidth = t, + s.imageheight = e), s; +} + +var n = function(t) { + return t && t.__esModule ? t : { + default: t + }; +}(require("./html2json.js")), d = 0, o = 0; + +wx.getSystemInfo({ + success: function(t) { + d = t.windowWidth, o = t.windowHeight; + } +}), module.exports = { + wxParse: function() { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "wxParseData", i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "html", r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "
", d = arguments[3], o = arguments[4], g = d, s = {}; + "html" == i && (s = n.default.html2json(r, t)), s.view = {}, s.view.imagePadding = 0, + void 0 !== o && (s.view.imagePadding = o); + var l = {}; + l[t] = s, g.setData(l), g.wxParseImgLoad = a, g.wxParseImgTap = e; + }, + wxParseTemArray: function(t, e, a, i) { + for (var r = [], n = i.data, d = null, o = 0; o < a; o++) { + var g = n[e + o].nodes; + r.push(g); + } + t = t || "wxParseTemArray", (d = JSON.parse('{"' + t + '":""}'))[t] = r, i.setData(d); + } +}; \ No newline at end of file diff --git a/wxParse/wxParse.wxml b/wxParse/wxParse.wxml new file mode 100644 index 0000000..96e3c5c --- /dev/null +++ b/wxParse/wxParse.wxml @@ -0,0 +1,386 @@ + + + + + + + + + + + + + + + + + diff --git a/wxParse/wxParse.wxss b/wxParse/wxParse.wxss new file mode 100644 index 0000000..662dcf9 --- /dev/null +++ b/wxParse/wxParse.wxss @@ -0,0 +1,249 @@ +.wxParse { + margin: 0 5px; + font-family: Helvetica,sans-serif; + font-size: 28rpx; + color: #666; + line-height: 1.8; +} + +view { + word-break: break-all; +} + +.wxParse-inline { + display: inline; + margin: 0; + padding: 0; +} + +.wxParse-div { + margin: 0; + padding: 0; +} + +.wxParse-h1 { + font-size: 2em; + margin: .67em 0; +} + +.wxParse-h2 { + font-size: 1.5em; + margin: .75em 0; +} + +.wxParse-h3 { + font-size: 1.17em; + margin: .83em 0; +} + +.wxParse-h4 { + margin: 1.12em 0; +} + +.wxParse-h5 { + font-size: .83em; + margin: 1.5em 0; +} + +.wxParse-h6 { + font-size: .75em; + margin: 1.67em 0; +} + +.wxParse-h1 { + font-size: 18px; + font-weight: 400; + margin-bottom: .9em; +} + +.wxParse-h2 { + font-size: 16px; + font-weight: 400; + margin-bottom: .34em; +} + +.wxParse-h3 { + font-weight: 400; + font-size: 15px; + margin-bottom: .34em; +} + +.wxParse-h4 { + font-weight: 400; + font-size: 14px; + margin-bottom: .24em; +} + +.wxParse-h5 { + font-weight: 400; + font-size: 13px; + margin-bottom: .14em; +} + +.wxParse-h6 { + font-weight: 400; + font-size: 12px; + margin-bottom: .04em; +} + +.wxParse-h1,.wxParse-h2,.wxParse-h3,.wxParse-h4,.wxParse-h5,.wxParse-h6,.wxParse-b,.wxParse-strong { + font-weight: bolder; +} + +.wxParse-i,.wxParse-cite,.wxParse-em,.wxParse-var,.wxParse-address { + font-style: italic; +} + +.wxParse-pre,.wxParse-tt,.wxParse-code,.wxParse-kbd,.wxParse-samp { + font-family: monospace; +} + +.wxParse-pre { + white-space: pre; +} + +.wxParse-big { + font-size: 1.17em; +} + +.wxParse-small,.wxParse-sub,.wxParse-sup { + font-size: .83em; +} + +.wxParse-sub { + vertical-align: sub; +} + +.wxParse-sup { + vertical-align: super; +} + +.wxParse-s,.wxParse-strike,.wxParse-del { + text-decoration: line-through; +} + +.wxParse-strong,.wxParse-s { + display: inline; +} + +.wxParse-a { + color: deepskyblue; + word-break: break-all; + overflow: auto; +} + +.wxParse-video { + text-align: center; + margin: 10px 0; +} + +.wxParse-video-video { + width: 100%; +} + +.wxParse-img { + overflow: hidden; +} + +.wxParse-blockquote { + margin: 0; + padding: 10px 0 10px 5px; + font-family: Courier,Calibri,"宋体"; + background: #f5f5f5; + border-left: 3px solid #dbdbdb; +} + +.wxParse-code,.wxParse-wxxxcode-style { + display: inline; + background: #f5f5f5; +} + +.wxParse-ul { + margin: 20rpx 10rpx; +} + +.wxParse-li,.wxParse-li-inner { + display: flex; + align-items: baseline; + margin: 10rpx 0; +} + +.wxParse-li-text { + align-items: center; + line-height: 20px; +} + +.wxParse-li-circle { + display: inline-flex; + width: 5px; + height: 5px; + background-color: #333; + margin-right: 5px; +} + +.wxParse-li-square { + display: inline-flex; + width: 10rpx; + height: 10rpx; + background-color: #333; + margin-right: 5px; +} + +.wxParse-li-ring { + display: inline-flex; + width: 10rpx; + height: 10rpx; + border: 2rpx solid #333; + border-radius: 50%; + background-color: #fff; + margin-right: 5px; +} + +.wxParse-u { + text-decoration: underline; +} + +.wxParse-hide { + display: none; +} + +.WxEmojiView { + align-items: center; +} + +.wxEmoji { + width: 16px; + height: 16px; +} + +.wxParse-tr { + display: flex; + border-right: 1px solid #e0e0e0; + border-bottom: 1px solid #e0e0e0; + border-top: 1px solid #e0e0e0; +} + +.wxParse-th,.wxParse-td { + flex: 1; + padding: 5px; + font-size: 28rpx; + border-left: 1px solid #e0e0e0; + word-break: break-all; +} + +.wxParse-td:last { + border-top: 1px solid #e0e0e0; +} + +.wxParse-th { + background: #f0f0f0; + border-top: 1px solid #e0e0e0; +} + +.wxParse-del { + display: inline; +} + +.wxParse-figure { + overflow: hidden; +} \ No newline at end of file