From 4c58727a4f33e5092ba0a279adbdc34ad631d54c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E7=8E=89=E7=90=A6?= <7507756+jiang_yuqi@user.noreply.gitee.com> Date: Thu, 10 Aug 2023 01:21:29 +0800 Subject: [PATCH] first commit --- .idea/.gitignore | 8 + .idea/construction.iml | 9 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + cloudfunctions/callback/config.json | 7 + cloudfunctions/callback/index.js | 26 + cloudfunctions/callback/package.json | 14 + cloudfunctions/echo/config.json | 5 + cloudfunctions/echo/index.js | 8 + cloudfunctions/echo/package.json | 14 + cloudfunctions/login/config.json | 5 + cloudfunctions/login/index.js | 36 + cloudfunctions/login/package.json | 14 + cloudfunctions/openapi/config.json | 15 + cloudfunctions/openapi/index.js | 87 + cloudfunctions/openapi/package.json | 14 + miniprogram/app.js | 152 ++ miniprogram/app.js.mine | 71 + miniprogram/app.json | 147 ++ miniprogram/app.wxss | 1525 +++++++++++++++++ miniprogram/components/@mkl/cell/index.d.ts | 1 + miniprogram/components/@mkl/cell/index.js | 37 + miniprogram/components/@mkl/cell/index.json | 6 + miniprogram/components/@mkl/cell/index.wxml | 45 + miniprogram/components/@mkl/cell/index.wxss | 1 + .../components/@mkl/collapse-item/index.d.ts | 1 + .../components/@mkl/collapse-item/index.js | 92 + .../components/@mkl/collapse-item/index.json | 6 + .../components/@mkl/collapse-item/index.wxml | 15 + .../components/@mkl/collapse-item/index.wxss | 60 + .../components/@mkl/collapse/index.d.ts | 1 + miniprogram/components/@mkl/collapse/index.js | 47 + .../components/@mkl/collapse/index.json | 3 + .../components/@mkl/collapse/index.wxml | 3 + .../components/@mkl/collapse/index.wxss | 1 + miniprogram/components/@mkl/common/color.d.ts | 7 + miniprogram/components/@mkl/common/color.js | 7 + .../components/@mkl/common/component.d.ts | 3 + .../components/@mkl/common/component.js | 101 ++ miniprogram/components/@mkl/common/index.wxss | 1 + .../@mkl/common/style/clearfix.wxss | 1 + .../@mkl/common/style/ellipsis.wxss | 1 + .../@mkl/common/style/hairline.wxss | 1 + .../@mkl/common/style/mixins/clearfix.wxss | 0 .../@mkl/common/style/mixins/ellipsis.wxss | 0 .../@mkl/common/style/mixins/hairline.wxss | 0 .../components/@mkl/common/style/theme.wxss | 0 .../components/@mkl/common/style/var.wxss | 0 miniprogram/components/@mkl/common/utils.d.ts | 8 + miniprogram/components/@mkl/common/utils.js | 32 + .../components/@mkl/common/version.d.ts | 2 + miniprogram/components/@mkl/common/version.js | 31 + miniprogram/components/@mkl/icon/index.d.ts | 1 + miniprogram/components/@mkl/icon/index.js | 27 + miniprogram/components/@mkl/icon/index.json | 6 + miniprogram/components/@mkl/icon/index.wxml | 20 + miniprogram/components/@mkl/icon/index.wxss | 1 + miniprogram/components/@mkl/info/index.d.ts | 1 + miniprogram/components/@mkl/info/index.js | 8 + miniprogram/components/@mkl/info/index.json | 3 + miniprogram/components/@mkl/info/index.wxml | 7 + miniprogram/components/@mkl/info/index.wxss | 1 + .../components/@mkl/loading/index.d.ts | 1 + miniprogram/components/@mkl/loading/index.js | 16 + .../components/@mkl/loading/index.json | 3 + .../components/@mkl/loading/index.wxml | 18 + .../components/@mkl/loading/index.wxss | 1 + miniprogram/components/@mkl/mixins/basic.d.ts | 1 + miniprogram/components/@mkl/mixins/basic.js | 27 + .../components/@mkl/mixins/button.d.ts | 1 + miniprogram/components/@mkl/mixins/button.js | 15 + miniprogram/components/@mkl/mixins/link.d.ts | 1 + miniprogram/components/@mkl/mixins/link.js | 17 + .../components/@mkl/mixins/open-type.d.ts | 1 + .../components/@mkl/mixins/open-type.js | 25 + .../components/@mkl/mixins/page-scroll.d.ts | 5 + .../components/@mkl/mixins/page-scroll.js | 33 + miniprogram/components/@mkl/mixins/touch.d.ts | 1 + miniprogram/components/@mkl/mixins/touch.js | 36 + .../components/@mkl/mixins/transition.d.ts | 1 + .../components/@mkl/mixins/transition.js | 118 ++ .../components/@mkl/multi-select/index.d.ts | 1 + .../components/@mkl/multi-select/index.js | 145 ++ .../components/@mkl/multi-select/index.json | 6 + .../components/@mkl/multi-select/index.wxml | 1 + .../components/@mkl/multi-select/index.wxss | 1 + .../components/@mkl/picker-column/index.d.ts | 1 + .../components/@mkl/picker-column/index.js | 123 ++ .../components/@mkl/picker-column/index.json | 3 + .../components/@mkl/picker-column/index.wxml | 22 + .../components/@mkl/picker-column/index.wxs | 8 + .../components/@mkl/picker-column/index.wxss | 1 + miniprogram/components/@mkl/picker/index.d.ts | 1 + miniprogram/components/@mkl/picker/index.js | 145 ++ miniprogram/components/@mkl/picker/index.json | 7 + miniprogram/components/@mkl/picker/index.wxml | 19 + miniprogram/components/@mkl/picker/index.wxss | 1 + .../components/@mkl/picker/shared.d.ts | 21 + miniprogram/components/@mkl/picker/shared.js | 21 + .../components/@mkl/picker/toolbar.wxml | 28 + miniprogram/components/@mkl/sticky/index.d.ts | 1 + miniprogram/components/@mkl/sticky/index.js | 105 ++ miniprogram/components/@mkl/sticky/index.json | 3 + miniprogram/components/@mkl/sticky/index.wxml | 7 + miniprogram/components/@mkl/sticky/index.wxs | 37 + miniprogram/components/@mkl/sticky/index.wxss | 1 + miniprogram/components/@mkl/tab/index.d.ts | 1 + miniprogram/components/@mkl/tab/index.js | 59 + miniprogram/components/@mkl/tab/index.json | 3 + miniprogram/components/@mkl/tab/index.wxml | 4 + miniprogram/components/@mkl/tab/index.wxss | 21 + miniprogram/components/@mkl/tabs/index.d.ts | 1 + miniprogram/components/@mkl/tabs/index.js | 255 +++ miniprogram/components/@mkl/tabs/index.json | 7 + miniprogram/components/@mkl/tabs/index.wxml | 26 + miniprogram/components/@mkl/tabs/index.wxs | 64 + miniprogram/components/@mkl/tabs/index.wxss | 134 ++ miniprogram/components/@mkl/wxs/add-unit.wxs | 14 + miniprogram/components/@mkl/wxs/array.wxs | 5 + miniprogram/components/@mkl/wxs/bem.wxs | 38 + miniprogram/components/@mkl/wxs/memoize.wxs | 54 + miniprogram/components/@mkl/wxs/object.wxs | 13 + miniprogram/components/@mkl/wxs/utils.wxs | 10 + miniprogram/components/chatroom/chatroom.js | 336 ++++ miniprogram/components/chatroom/chatroom.json | 4 + miniprogram/components/chatroom/chatroom.wxml | 85 + miniprogram/components/chatroom/chatroom.wxss | 161 ++ miniprogram/components/chatroom/photo.png | Bin 0 -> 3692 bytes miniprogram/ec-canvas/ec-canvas.js | 250 +++ miniprogram/ec-canvas/ec-canvas.json | 4 + miniprogram/ec-canvas/ec-canvas.wxml | 4 + miniprogram/ec-canvas/ec-canvas.wxss | 4 + miniprogram/ec-canvas/echarts.js | 22 + miniprogram/ec-canvas/wx-canvas.js | 121 ++ miniprogram/images/biyan.png | Bin 0 -> 579 bytes miniprogram/images/bottom.png | Bin 0 -> 1280 bytes miniprogram/images/core.png | Bin 0 -> 1091 bytes miniprogram/images/cz_1.png | Bin 0 -> 1960 bytes miniprogram/images/cz_2.png | Bin 0 -> 1317 bytes miniprogram/images/dingwei.png | Bin 0 -> 4176 bytes miniprogram/images/early.png | Bin 0 -> 3302 bytes miniprogram/images/fanhui.png | Bin 0 -> 1304 bytes miniprogram/images/foot_1.png | Bin 0 -> 1225 bytes miniprogram/images/foot_2.png | Bin 0 -> 1218 bytes miniprogram/images/foot_3.png | Bin 0 -> 1922 bytes miniprogram/images/foot_4.png | Bin 0 -> 1749 bytes miniprogram/images/foot_5.png | Bin 0 -> 1856 bytes miniprogram/images/foot_6.png | Bin 0 -> 1623 bytes miniprogram/images/foot_7.png | Bin 0 -> 2650 bytes miniprogram/images/footer_1.png | Bin 0 -> 1237 bytes miniprogram/images/footer_2.png | Bin 0 -> 1270 bytes miniprogram/images/footer_3.png | Bin 0 -> 1886 bytes miniprogram/images/footer_4.png | Bin 0 -> 1914 bytes miniprogram/images/footer_5.png | Bin 0 -> 1764 bytes miniprogram/images/footer_6.png | Bin 0 -> 1727 bytes miniprogram/images/footer_7.png | Bin 0 -> 2092 bytes miniprogram/images/guodu.gif | Bin 0 -> 2538 bytes miniprogram/images/i_location.png | Bin 0 -> 4541 bytes miniprogram/images/i_mechanics.png | Bin 0 -> 4895 bytes miniprogram/images/i_personnel.png | Bin 0 -> 4250 bytes miniprogram/images/icon_1.png | Bin 0 -> 3365 bytes miniprogram/images/icon_2.png | Bin 0 -> 2592 bytes miniprogram/images/icon_3.png | Bin 0 -> 3580 bytes miniprogram/images/icon_4.png | Bin 0 -> 3215 bytes miniprogram/images/icon_5.png | Bin 0 -> 2647 bytes miniprogram/images/icons_1.png | Bin 0 -> 1965 bytes miniprogram/images/icons_2.png | Bin 0 -> 1342 bytes miniprogram/images/icons_3.png | Bin 0 -> 1989 bytes miniprogram/images/icons_4.png | Bin 0 -> 1723 bytes miniprogram/images/icons_5.png | Bin 0 -> 1435 bytes miniprogram/images/img_1.png | Bin 0 -> 2178 bytes miniprogram/images/img_10.png | Bin 0 -> 3681 bytes miniprogram/images/img_11.png | Bin 0 -> 3630 bytes miniprogram/images/img_12.png | Bin 0 -> 3549 bytes miniprogram/images/img_2.png | Bin 0 -> 1838 bytes miniprogram/images/img_3.png | Bin 0 -> 1800 bytes miniprogram/images/img_4.png | Bin 0 -> 1346 bytes miniprogram/images/img_5.png | Bin 0 -> 1888 bytes miniprogram/images/img_6.png | Bin 0 -> 2125 bytes miniprogram/images/img_7.png | Bin 0 -> 1482 bytes miniprogram/images/img_8.png | Bin 0 -> 1991 bytes miniprogram/images/img_9.png | Bin 0 -> 3523 bytes miniprogram/images/jt.png | Bin 0 -> 2899 bytes miniprogram/images/left.png | Bin 0 -> 3404 bytes miniprogram/images/lw_1.png | Bin 0 -> 1545 bytes miniprogram/images/lw_2.png | Bin 0 -> 1521 bytes miniprogram/images/lw_3.png | Bin 0 -> 1794 bytes miniprogram/images/lw_4.png | Bin 0 -> 1669 bytes miniprogram/images/lw_5.png | Bin 0 -> 1462 bytes miniprogram/images/lw_6.png | Bin 0 -> 1378 bytes miniprogram/images/lw_7.png | Bin 0 -> 1299 bytes miniprogram/images/lw_8.png | Bin 0 -> 1740 bytes miniprogram/images/middl_right.png | Bin 0 -> 3159 bytes miniprogram/images/middle_left.png | Bin 0 -> 3123 bytes miniprogram/images/quanping.png | Bin 0 -> 1289 bytes miniprogram/images/right.png | Bin 0 -> 1320 bytes miniprogram/images/s_1.png | Bin 0 -> 2515 bytes miniprogram/images/s_10.png | Bin 0 -> 1953 bytes miniprogram/images/s_11.png | Bin 0 -> 1912 bytes miniprogram/images/s_12.png | Bin 0 -> 1887 bytes miniprogram/images/s_13.png | Bin 0 -> 2016 bytes miniprogram/images/s_14.png | Bin 0 -> 1961 bytes miniprogram/images/s_15.png | Bin 0 -> 1914 bytes miniprogram/images/s_16.png | Bin 0 -> 2124 bytes miniprogram/images/s_17.png | Bin 0 -> 2081 bytes miniprogram/images/s_18.png | Bin 0 -> 1699 bytes miniprogram/images/s_2.png | Bin 0 -> 2078 bytes miniprogram/images/s_3.png | Bin 0 -> 2529 bytes miniprogram/images/s_4.png | Bin 0 -> 2098 bytes miniprogram/images/s_5.png | Bin 0 -> 2048 bytes miniprogram/images/s_6.png | Bin 0 -> 1549 bytes miniprogram/images/s_7.png | Bin 0 -> 1787 bytes miniprogram/images/s_8.png | Bin 0 -> 1624 bytes miniprogram/images/s_9.png | Bin 0 -> 1477 bytes miniprogram/images/set.png | Bin 0 -> 2260 bytes miniprogram/images/sliding_up.png | Bin 0 -> 3376 bytes miniprogram/images/user_3.png | Bin 0 -> 4920 bytes miniprogram/images/video.png | Bin 0 -> 1660 bytes miniprogram/images/warning.png | Bin 0 -> 1408 bytes miniprogram/images/wl_fg.png | Bin 0 -> 1961 bytes miniprogram/images/yj_01.png | Bin 0 -> 556 bytes .../@vant/weapp/action-sheet/index.js | 64 + .../@vant/weapp/action-sheet/index.json | 8 + .../@vant/weapp/action-sheet/index.wxml | 67 + .../@vant/weapp/action-sheet/index.wxss | 1 + .../miniprogram_npm/@vant/weapp/area/index.js | 257 +++ .../@vant/weapp/area/index.json | 6 + .../@vant/weapp/area/index.wxml | 18 + .../@vant/weapp/area/index.wxss | 1 + .../@vant/weapp/button/index.js | 81 + .../@vant/weapp/button/index.json | 7 + .../@vant/weapp/button/index.wxml | 68 + .../@vant/weapp/button/index.wxss | 1 + .../@vant/weapp/calendar/calendar.wxml | 57 + .../weapp/calendar/components/header/index.js | 18 + .../calendar/components/header/index.json | 3 + .../calendar/components/header/index.wxml | 16 + .../calendar/components/header/index.wxss | 1 + .../weapp/calendar/components/month/index.js | 167 ++ .../calendar/components/month/index.json | 3 + .../calendar/components/month/index.wxml | 39 + .../weapp/calendar/components/month/index.wxs | 67 + .../calendar/components/month/index.wxss | 1 + .../@vant/weapp/calendar/index.js | 318 ++++ .../@vant/weapp/calendar/index.json | 9 + .../@vant/weapp/calendar/index.wxml | 31 + .../@vant/weapp/calendar/index.wxs | 37 + .../@vant/weapp/calendar/index.wxss | 1 + .../@vant/weapp/calendar/utils.js | 91 + .../@vant/weapp/calendar/utils.wxs | 25 + .../miniprogram_npm/@vant/weapp/card/index.js | 51 + .../@vant/weapp/card/index.json | 6 + .../@vant/weapp/card/index.wxml | 50 + .../@vant/weapp/card/index.wxss | 1 + .../@vant/weapp/cell-group/index.js | 12 + .../@vant/weapp/cell-group/index.json | 3 + .../@vant/weapp/cell-group/index.wxml | 9 + .../@vant/weapp/cell-group/index.wxss | 1 + .../miniprogram_npm/@vant/weapp/cell/index.js | 39 + .../@vant/weapp/cell/index.json | 6 + .../@vant/weapp/cell/index.wxml | 45 + .../@vant/weapp/cell/index.wxss | 1 + .../@vant/weapp/checkbox-group/index.js | 42 + .../@vant/weapp/checkbox-group/index.json | 3 + .../@vant/weapp/checkbox-group/index.wxml | 1 + .../@vant/weapp/checkbox-group/index.wxss | 1 + .../@vant/weapp/checkbox/index.js | 83 + .../@vant/weapp/checkbox/index.json | 6 + .../@vant/weapp/checkbox/index.wxml | 20 + .../@vant/weapp/checkbox/index.wxs | 20 + .../@vant/weapp/checkbox/index.wxss | 1 + .../@vant/weapp/circle/canvas.js | 47 + .../@vant/weapp/circle/index.js | 209 +++ .../@vant/weapp/circle/index.json | 3 + .../@vant/weapp/circle/index.wxml | 9 + .../@vant/weapp/circle/index.wxss | 1 + .../miniprogram_npm/@vant/weapp/col/index.js | 28 + .../@vant/weapp/col/index.json | 3 + .../@vant/weapp/col/index.wxml | 8 + .../@vant/weapp/col/index.wxss | 1 + .../@vant/weapp/collapse-item/index.js | 114 ++ .../@vant/weapp/collapse-item/index.json | 6 + .../@vant/weapp/collapse-item/index.wxml | 44 + .../@vant/weapp/collapse-item/index.wxss | 1 + .../@vant/weapp/collapse/index.js | 53 + .../@vant/weapp/collapse/index.json | 3 + .../@vant/weapp/collapse/index.wxml | 3 + .../@vant/weapp/collapse/index.wxss | 1 + .../@vant/weapp/common/color.js | 10 + .../@vant/weapp/common/component.js | 118 ++ .../@vant/weapp/common/index.wxss | 1 + .../@vant/weapp/common/style/clearfix.wxss | 1 + .../@vant/weapp/common/style/ellipsis.wxss | 1 + .../@vant/weapp/common/style/hairline.wxss | 1 + .../weapp/common/style/mixins/clearfix.wxss | 0 .../weapp/common/style/mixins/ellipsis.wxss | 0 .../weapp/common/style/mixins/hairline.wxss | 0 .../@vant/weapp/common/style/theme.wxss | 0 .../@vant/weapp/common/style/var.wxss | 0 .../@vant/weapp/common/utils.js | 42 + .../@vant/weapp/common/version.js | 36 + .../@vant/weapp/count-down/index.js | 103 ++ .../@vant/weapp/count-down/index.json | 3 + .../@vant/weapp/count-down/index.wxml | 4 + .../@vant/weapp/count-down/index.wxss | 1 + .../@vant/weapp/count-down/utils.js | 65 + .../@vant/weapp/datetime-picker/index.js | 377 ++++ .../@vant/weapp/datetime-picker/index.json | 6 + .../@vant/weapp/datetime-picker/index.wxml | 16 + .../@vant/weapp/datetime-picker/index.wxss | 1 + .../@vant/weapp/definitions/index.js | 2 + .../@vant/weapp/definitions/weapp.js | 2 + .../@vant/weapp/dialog/dialog.js | 85 + .../@vant/weapp/dialog/index.js | 111 ++ .../@vant/weapp/dialog/index.json | 7 + .../@vant/weapp/dialog/index.wxml | 71 + .../@vant/weapp/dialog/index.wxss | 1 + .../@vant/weapp/divider/index.js | 35 + .../@vant/weapp/divider/index.json | 4 + .../@vant/weapp/divider/index.wxml | 8 + .../@vant/weapp/divider/index.wxss | 1 + .../@vant/weapp/dropdown-item/index.js | 115 ++ .../@vant/weapp/dropdown-item/index.json | 8 + .../@vant/weapp/dropdown-item/index.wxml | 48 + .../@vant/weapp/dropdown-item/index.wxss | 1 + .../@vant/weapp/dropdown-menu/index.js | 133 ++ .../@vant/weapp/dropdown-menu/index.json | 3 + .../@vant/weapp/dropdown-menu/index.wxml | 23 + .../@vant/weapp/dropdown-menu/index.wxs | 16 + .../@vant/weapp/dropdown-menu/index.wxss | 1 + .../@vant/weapp/field/index.js | 147 ++ .../@vant/weapp/field/index.json | 7 + .../@vant/weapp/field/index.wxml | 105 ++ .../@vant/weapp/field/index.wxs | 21 + .../@vant/weapp/field/index.wxss | 1 + .../@vant/weapp/field/props.js | 66 + .../@vant/weapp/goods-action-button/index.js | 44 + .../weapp/goods-action-button/index.json | 6 + .../weapp/goods-action-button/index.wxml | 30 + .../weapp/goods-action-button/index.wxss | 1 + .../@vant/weapp/goods-action-icon/index.js | 24 + .../@vant/weapp/goods-action-icon/index.json | 7 + .../@vant/weapp/goods-action-icon/index.wxml | 38 + .../@vant/weapp/goods-action-icon/index.wxss | 1 + .../@vant/weapp/goods-action/index.js | 35 + .../@vant/weapp/goods-action/index.json | 3 + .../@vant/weapp/goods-action/index.wxml | 5 + .../@vant/weapp/goods-action/index.wxss | 1 + .../@vant/weapp/grid-item/index.js | 85 + .../@vant/weapp/grid-item/index.json | 6 + .../@vant/weapp/grid-item/index.wxml | 22 + .../@vant/weapp/grid-item/index.wxss | 1 + .../miniprogram_npm/@vant/weapp/grid/index.js | 67 + .../@vant/weapp/grid/index.json | 3 + .../@vant/weapp/grid/index.wxml | 3 + .../@vant/weapp/grid/index.wxss | 1 + .../miniprogram_npm/@vant/weapp/icon/index.js | 29 + .../@vant/weapp/icon/index.json | 6 + .../@vant/weapp/icon/index.wxml | 20 + .../@vant/weapp/icon/index.wxss | 1 + .../@vant/weapp/image/index.js | 106 ++ .../@vant/weapp/image/index.json | 7 + .../@vant/weapp/image/index.wxml | 33 + .../@vant/weapp/image/index.wxss | 1 + .../@vant/weapp/index-anchor/index.js | 33 + .../@vant/weapp/index-anchor/index.json | 3 + .../@vant/weapp/index-anchor/index.wxml | 14 + .../@vant/weapp/index-anchor/index.wxss | 1 + .../@vant/weapp/index-bar/index.js | 279 +++ .../@vant/weapp/index-bar/index.json | 3 + .../@vant/weapp/index-bar/index.wxml | 22 + .../@vant/weapp/index-bar/index.wxss | 1 + .../miniprogram_npm/@vant/weapp/info/index.js | 10 + .../@vant/weapp/info/index.json | 3 + .../@vant/weapp/info/index.wxml | 7 + .../@vant/weapp/info/index.wxss | 1 + .../@vant/weapp/loading/index.js | 18 + .../@vant/weapp/loading/index.json | 3 + .../@vant/weapp/loading/index.wxml | 18 + .../@vant/weapp/loading/index.wxss | 1 + .../@vant/weapp/mixins/basic.js | 37 + .../@vant/weapp/mixins/button.js | 18 + .../@vant/weapp/mixins/link.js | 23 + .../@vant/weapp/mixins/open-type.js | 28 + .../@vant/weapp/mixins/page-scroll.js | 40 + .../@vant/weapp/mixins/touch.js | 39 + .../@vant/weapp/mixins/transition.js | 161 ++ .../@vant/weapp/nav-bar/index.js | 75 + .../@vant/weapp/nav-bar/index.json | 6 + .../@vant/weapp/nav-bar/index.wxml | 41 + .../@vant/weapp/nav-bar/index.wxss | 1 + .../@vant/weapp/notice-bar/index.js | 140 ++ .../@vant/weapp/notice-bar/index.json | 6 + .../@vant/weapp/notice-bar/index.wxml | 37 + .../@vant/weapp/notice-bar/index.wxss | 1 + .../@vant/weapp/notify/index.js | 66 + .../@vant/weapp/notify/index.json | 6 + .../@vant/weapp/notify/index.wxml | 20 + .../@vant/weapp/notify/index.wxss | 1 + .../@vant/weapp/notify/notify.js | 61 + .../@vant/weapp/overlay/index.js | 24 + .../@vant/weapp/overlay/index.json | 6 + .../@vant/weapp/overlay/index.wxml | 10 + .../@vant/weapp/overlay/index.wxss | 1 + .../@vant/weapp/panel/index.js | 12 + .../@vant/weapp/panel/index.json | 6 + .../@vant/weapp/panel/index.wxml | 19 + .../@vant/weapp/panel/index.wxss | 1 + .../@vant/weapp/picker-column/index.js | 131 ++ .../@vant/weapp/picker-column/index.json | 3 + .../@vant/weapp/picker-column/index.wxml | 22 + .../@vant/weapp/picker-column/index.wxs | 8 + .../@vant/weapp/picker-column/index.wxss | 1 + .../@vant/weapp/picker/index.js | 175 ++ .../@vant/weapp/picker/index.json | 7 + .../@vant/weapp/picker/index.wxml | 41 + .../@vant/weapp/picker/index.wxss | 1 + .../@vant/weapp/picker/shared.js | 24 + .../@vant/weapp/picker/toolbar.wxml | 28 + .../@vant/weapp/popup/index.js | 85 + .../@vant/weapp/popup/index.json | 7 + .../@vant/weapp/popup/index.wxml | 24 + .../@vant/weapp/popup/index.wxss | 1 + .../@vant/weapp/progress/index.js | 29 + .../@vant/weapp/progress/index.json | 3 + .../@vant/weapp/progress/index.wxml | 20 + .../@vant/weapp/progress/index.wxs | 5 + .../@vant/weapp/progress/index.wxss | 1 + .../@vant/weapp/radio-group/index.js | 41 + .../@vant/weapp/radio-group/index.json | 3 + .../@vant/weapp/radio-group/index.wxml | 1 + .../@vant/weapp/radio-group/index.wxss | 1 + .../@vant/weapp/radio/index.js | 53 + .../@vant/weapp/radio/index.json | 6 + .../@vant/weapp/radio/index.wxml | 29 + .../@vant/weapp/radio/index.wxss | 1 + .../miniprogram_npm/@vant/weapp/rate/index.js | 110 ++ .../@vant/weapp/rate/index.json | 6 + .../@vant/weapp/rate/index.wxml | 34 + .../@vant/weapp/rate/index.wxss | 1 + .../miniprogram_npm/@vant/weapp/row/index.js | 43 + .../@vant/weapp/row/index.json | 3 + .../@vant/weapp/row/index.wxml | 3 + .../@vant/weapp/row/index.wxss | 1 + .../@vant/weapp/search/index.js | 81 + .../@vant/weapp/search/index.json | 6 + .../@vant/weapp/search/index.wxml | 50 + .../@vant/weapp/search/index.wxss | 1 + .../@vant/weapp/sidebar-item/index.js | 34 + .../@vant/weapp/sidebar-item/index.json | 6 + .../@vant/weapp/sidebar-item/index.wxml | 19 + .../@vant/weapp/sidebar-item/index.wxss | 1 + .../@vant/weapp/sidebar/index.js | 45 + .../@vant/weapp/sidebar/index.json | 3 + .../@vant/weapp/sidebar/index.wxml | 3 + .../@vant/weapp/sidebar/index.wxss | 1 + .../@vant/weapp/skeleton/index.js | 48 + .../@vant/weapp/skeleton/index.json | 4 + .../@vant/weapp/skeleton/index.wxml | 29 + .../@vant/weapp/skeleton/index.wxss | 1 + .../@vant/weapp/slider/index.js | 113 ++ .../@vant/weapp/slider/index.json | 3 + .../@vant/weapp/slider/index.wxml | 30 + .../@vant/weapp/slider/index.wxs | 20 + .../@vant/weapp/slider/index.wxss | 1 + .../@vant/weapp/stepper/index.js | 214 +++ .../@vant/weapp/stepper/index.json | 3 + .../@vant/weapp/stepper/index.wxml | 37 + .../@vant/weapp/stepper/index.wxss | 1 + .../@vant/weapp/steps/index.js | 35 + .../@vant/weapp/steps/index.json | 6 + .../@vant/weapp/steps/index.wxml | 54 + .../@vant/weapp/steps/index.wxss | 1 + .../@vant/weapp/sticky/index.js | 119 ++ .../@vant/weapp/sticky/index.json | 3 + .../@vant/weapp/sticky/index.wxml | 8 + .../@vant/weapp/sticky/index.wxs | 37 + .../@vant/weapp/sticky/index.wxss | 1 + .../@vant/weapp/submit-bar/index.js | 61 + .../@vant/weapp/submit-bar/index.json | 7 + .../@vant/weapp/submit-bar/index.wxml | 44 + .../@vant/weapp/submit-bar/index.wxss | 1 + .../@vant/weapp/swipe-cell/index.js | 161 ++ .../@vant/weapp/swipe-cell/index.json | 3 + .../@vant/weapp/swipe-cell/index.wxml | 20 + .../@vant/weapp/swipe-cell/index.wxss | 1 + .../@vant/weapp/switch/index.js | 59 + .../@vant/weapp/switch/index.json | 6 + .../@vant/weapp/switch/index.wxml | 11 + .../@vant/weapp/switch/index.wxss | 1 + .../miniprogram_npm/@vant/weapp/tab/index.js | 61 + .../@vant/weapp/tab/index.json | 3 + .../@vant/weapp/tab/index.wxml | 8 + .../@vant/weapp/tab/index.wxss | 1 + .../@vant/weapp/tabbar-item/index.js | 50 + .../@vant/weapp/tabbar-item/index.json | 7 + .../@vant/weapp/tabbar-item/index.wxml | 30 + .../@vant/weapp/tabbar-item/index.wxss | 1 + .../@vant/weapp/tabbar/index.js | 67 + .../@vant/weapp/tabbar/index.json | 3 + .../@vant/weapp/tabbar/index.wxml | 8 + .../@vant/weapp/tabbar/index.wxss | 1 + .../miniprogram_npm/@vant/weapp/tabs/index.js | 329 ++++ .../@vant/weapp/tabs/index.json | 7 + .../@vant/weapp/tabs/index.wxml | 63 + .../@vant/weapp/tabs/index.wxs | 78 + .../@vant/weapp/tabs/index.wxss | 1 + .../miniprogram_npm/@vant/weapp/tag/index.js | 23 + .../@vant/weapp/tag/index.json | 6 + .../@vant/weapp/tag/index.wxml | 14 + .../@vant/weapp/tag/index.wxss | 1 + .../@vant/weapp/toast/index.js | 31 + .../@vant/weapp/toast/index.json | 9 + .../@vant/weapp/toast/index.wxml | 33 + .../@vant/weapp/toast/index.wxss | 1 + .../@vant/weapp/toast/toast.js | 92 + .../@vant/weapp/transition/index.js | 15 + .../@vant/weapp/transition/index.json | 3 + .../@vant/weapp/transition/index.wxml | 8 + .../@vant/weapp/transition/index.wxss | 1 + .../@vant/weapp/tree-select/index.js | 69 + .../@vant/weapp/tree-select/index.json | 8 + .../@vant/weapp/tree-select/index.wxml | 39 + .../@vant/weapp/tree-select/index.wxs | 12 + .../@vant/weapp/tree-select/index.wxss | 1 + .../@vant/weapp/uploader/index.js | 226 +++ .../@vant/weapp/uploader/index.json | 7 + .../@vant/weapp/uploader/index.wxml | 68 + .../@vant/weapp/uploader/index.wxss | 1 + .../@vant/weapp/uploader/shared.js | 33 + .../@vant/weapp/uploader/utils.js | 91 + .../@vant/weapp/wxs/add-unit.wxs | 14 + .../miniprogram_npm/@vant/weapp/wxs/array.wxs | 5 + .../miniprogram_npm/@vant/weapp/wxs/bem.wxs | 38 + .../@vant/weapp/wxs/memoize.wxs | 54 + .../@vant/weapp/wxs/object.wxs | 13 + .../miniprogram_npm/@vant/weapp/wxs/utils.wxs | 10 + miniprogram/newComponents/number/index.js | 55 + miniprogram/newComponents/number/index.json | 4 + miniprogram/newComponents/number/index.wxml | 6 + miniprogram/newComponents/number/index.wxss | 46 + .../newComponents/safety-bar-chart/index.js | 264 +++ .../newComponents/safety-bar-chart/index.json | 6 + .../newComponents/safety-bar-chart/index.wxml | 4 + .../newComponents/safety-bar-chart/index.wxss | 5 + .../newComponents/safety-bar-charts/index.js | 273 +++ .../safety-bar-charts/index.json | 6 + .../safety-bar-charts/index.wxml | 4 + .../safety-bar-charts/index.wxss | 5 + .../newComponents/safety-bar-chartss/index.js | 230 +++ .../safety-bar-chartss/index.json | 6 + .../safety-bar-chartss/index.wxml | 4 + .../safety-bar-chartss/index.wxss | 5 + .../newComponents/safety-pie-chart/index.js | 177 ++ .../newComponents/safety-pie-chart/index.json | 6 + .../newComponents/safety-pie-chart/index.wxml | 4 + .../newComponents/safety-pie-chart/index.wxss | 6 + .../newComponents/safety-pie-charts/index.js | 191 +++ .../safety-pie-charts/index.json | 6 + .../safety-pie-charts/index.wxml | 4 + .../safety-pie-charts/index.wxss | 6 + .../newComponents/select-person/index.js | 113 ++ .../newComponents/select-person/index.json | 4 + .../newComponents/select-person/index.wxml | 41 + .../newComponents/select-person/index.wxss | 108 ++ miniprogram/pageage/AIWarningList/index.js | 139 ++ miniprogram/pageage/AIWarningList/index.json | 6 + miniprogram/pageage/AIWarningList/index.wxml | 54 + miniprogram/pageage/AIWarningList/index.wxss | 4 + miniprogram/pageage/AIvideoAnalysis/index.js | 203 +++ .../pageage/AIvideoAnalysis/index.json | 7 + .../pageage/AIvideoAnalysis/index.wxml | 122 ++ .../pageage/AIvideoAnalysis/index.wxss | 4 + .../pageage/Material-Management/index.js | 752 ++++++++ .../pageage/Material-Management/index.json | 7 + .../pageage/Material-Management/index.wxml | 339 ++++ .../pageage/Material-Management/index.wxss | 230 +++ .../pageage/Progress-management/index.js | 567 ++++++ .../pageage/Progress-management/index.json | 8 + .../pageage/Progress-management/index.wxml | 185 ++ .../pageage/Progress-management/index.wxss | 181 ++ .../pageage/Security-control-echarts/index.js | 66 + .../Security-control-echarts/index.json | 3 + .../Security-control-echarts/index.wxml | 2 + .../Security-control-echarts/index.wxss | 1 + miniprogram/pageage/biangeng/index.js | 339 ++++ miniprogram/pageage/biangeng/index.json | 7 + miniprogram/pageage/biangeng/index.wxml | 130 ++ miniprogram/pageage/biangeng/index.wxss | 8 + miniprogram/pageage/dangerousProject/index.js | 267 +++ .../pageage/dangerousProject/index.json | 7 + .../pageage/dangerousProject/index.wxml | 114 ++ .../pageage/dangerousProject/index.wxss | 5 + miniprogram/pageage/educations-add/index.js | 353 ++++ miniprogram/pageage/educations-add/index.json | 6 + miniprogram/pageage/educations-add/index.wxml | 80 + miniprogram/pageage/educations-add/index.wxss | 30 + .../pageage/educations-details/index.js | 272 +++ .../pageage/educations-details/index.json | 6 + .../pageage/educations-details/index.wxml | 106 ++ .../pageage/educations-details/index.wxss | 31 + miniprogram/pageage/educations-list/index.js | 292 ++++ .../pageage/educations-list/index.json | 7 + .../pageage/educations-list/index.wxml | 165 ++ .../pageage/educations-list/index.wxss | 150 ++ .../lw-baobiaochaxun/lw-baobiaochaxun.js | 149 ++ .../lw-baobiaochaxun/lw-baobiaochaxun.json | 9 + .../lw-baobiaochaxun/lw-baobiaochaxun.wxml | 84 + .../lw-baobiaochaxun/lw-baobiaochaxun.wxss | 77 + .../pageage/lw-gerenxinxi/lw-gerenxinxi.js | 97 ++ .../pageage/lw-gerenxinxi/lw-gerenxinxi.json | 8 + .../pageage/lw-gerenxinxi/lw-gerenxinxi.wxml | 88 + .../pageage/lw-gerenxinxi/lw-gerenxinxi.wxss | 75 + miniprogram/pageage/lw-index/lw-index.js | 151 ++ miniprogram/pageage/lw-index/lw-index.json | 9 + miniprogram/pageage/lw-index/lw-index.wxml | 100 ++ miniprogram/pageage/lw-index/lw-index.wxss | 35 + .../pageage/lw-jibenxinxi/lw-jibenxinxi.js | 480 ++++++ .../pageage/lw-jibenxinxi/lw-jibenxinxi.json | 14 + .../pageage/lw-jibenxinxi/lw-jibenxinxi.wxml | 139 ++ .../pageage/lw-jibenxinxi/lw-jibenxinxi.wxss | 261 +++ .../addSafetyInspect/index.js | 399 +++++ .../addSafetyInspect/index.json | 6 + .../addSafetyInspect/index.wxml | 143 ++ .../addSafetyInspect/index.wxss | 7 + .../problemRectification/index.js | 226 +++ .../problemRectification/index.json | 4 + .../problemRectification/index.wxml | 99 ++ .../problemRectification/index.wxss | 1 + .../problemRectificationGR/index.js | 309 ++++ .../problemRectificationGR/index.json | 6 + .../problemRectificationGR/index.wxml | 126 ++ .../problemRectificationGR/index.wxss | 1 + .../safetyManagement/securityCheck/index.js | 361 ++++ .../safetyManagement/securityCheck/index.json | 7 + .../safetyManagement/securityCheck/index.wxml | 148 ++ .../safetyManagement/securityCheck/index.wxss | 1 + .../safetyManagement/securityCheckGR/index.js | 262 +++ .../securityCheckGR/index.json | 4 + .../securityCheckGR/index.wxml | 111 ++ .../securityCheckGR/index.wxss | 1 + .../securityCheckRectified/index.js | 130 ++ .../securityCheckRectified/index.json | 4 + .../securityCheckRectified/index.wxml | 53 + .../securityCheckRectified/index.wxss | 1 + .../samplingAddRetestingDeliver/index.js | 274 +++ .../samplingAddRetestingDeliver/index.json | 6 + .../samplingAddRetestingDeliver/index.wxml | 114 ++ .../samplingAddRetestingDeliver/index.wxss | 1 + .../pageage/samplingRetesting/index.js | 283 +++ .../pageage/samplingRetesting/index.json | 6 + .../pageage/samplingRetesting/index.wxml | 60 + .../pageage/samplingRetesting/index.wxss | 1 + .../pageage/samplingRetestingDeliver/index.js | 335 ++++ .../samplingRetestingDeliver/index.json | 6 + .../samplingRetestingDeliver/index.wxml | 114 ++ .../samplingRetestingDeliver/index.wxss | 1 + .../pageage/samplingRetestingDetail/index.js | 141 ++ .../samplingRetestingDetail/index.json | 6 + .../samplingRetestingDetail/index.wxml | 102 ++ .../samplingRetestingDetail/index.wxss | 29 + .../pageage/samplingRetestingUpload/index.js | 293 ++++ .../samplingRetestingUpload/index.json | 6 + .../samplingRetestingUpload/index.wxml | 152 ++ .../samplingRetestingUpload/index.wxss | 29 + .../pageage/shipinquanping/shipingquanping.js | 191 +++ .../shipinquanping/shipingquanping.json | 3 + .../shipinquanping/shipingquanping.wxml | 34 + .../shipinquanping/shipingquanping.wxss | 135 ++ .../pageage/suishoupai-psh/suishoupai-psh.js | 38 + .../suishoupai-psh/suishoupai-psh.json | 3 + .../suishoupai-psh/suishoupai-psh.wxml | 3 + .../suishoupai-psh/suishoupai-psh.wxss | 1 + miniprogram/pageage/suishoupai/suishoupai.js | 38 + .../pageage/suishoupai/suishoupai.json | 3 + .../pageage/suishoupai/suishoupai.wxml | 3 + .../pageage/suishoupai/suishoupai.wxss | 1 + .../pageage/technical-management/index.js | 807 +++++++++ .../pageage/technical-management/index.json | 16 + .../pageage/technical-management/index.wxml | 283 +++ .../pageage/technical-management/index.wxss | 207 +++ miniprogram/pageage/vehicleManage/index.js | 140 ++ miniprogram/pageage/vehicleManage/index.json | 7 + miniprogram/pageage/vehicleManage/index.wxml | 123 ++ miniprogram/pageage/vehicleManage/index.wxss | 18 + .../pageage/voucherManagement/index.js | 167 ++ .../pageage/voucherManagement/index.json | 7 + .../pageage/voucherManagement/index.wxml | 109 ++ .../pageage/voucherManagement/index.wxss | 17 + .../pageage/voucherManagementAddto/index.js | 202 +++ .../pageage/voucherManagementAddto/index.json | 6 + .../pageage/voucherManagementAddto/index.wxml | 62 + .../pageage/voucherManagementAddto/index.wxss | 14 + .../xiangmuhuanjing/xiangmuhuanjing.js | 922 ++++++++++ .../xiangmuhuanjing/xiangmuhuanjing.json | 14 + .../xiangmuhuanjing/xiangmuhuanjing.wxml | 125 ++ .../xiangmuhuanjing/xiangmuhuanjing.wxss | 68 + .../pageage/xiangmushipin/xiangmushipin.js | 171 ++ .../pageage/xiangmushipin/xiangmushipin.json | 14 + .../pageage/xiangmushipin/xiangmushipin.wxml | 135 ++ .../pageage/xiangmushipin/xiangmushipin.wxss | 99 ++ .../pageage/xiangmuyujing/xiangmuyujing.js | 1391 +++++++++++++++ .../pageage/xiangmuyujing/xiangmuyujing.json | 14 + .../pageage/xiangmuyujing/xiangmuyujing.wxml | 283 +++ .../pageage/xiangmuyujing/xiangmuyujing.wxss | 200 +++ .../pageage/yujingxinxi/yujingxinxi.js | 220 +++ .../pageage/yujingxinxi/yujingxinxi.json | 11 + .../pageage/yujingxinxi/yujingxinxi.wxml | 140 ++ .../pageage/yujingxinxi/yujingxinxi.wxss | 148 ++ miniprogram/pages/Concrete-usage/index.js | 70 + miniprogram/pages/Concrete-usage/index.json | 4 + miniprogram/pages/Concrete-usage/index.wxml | 58 + miniprogram/pages/Concrete-usage/index.wxss | 48 + miniprogram/pages/Construction-Log/index.js | 247 +++ miniprogram/pages/Construction-Log/index.json | 4 + miniprogram/pages/Construction-Log/index.wxml | 93 + miniprogram/pages/Construction-Log/index.wxss | 73 + miniprogram/pages/Highlight-photos/index.js | 193 +++ miniprogram/pages/Highlight-photos/index.json | 6 + miniprogram/pages/Highlight-photos/index.wxml | 111 ++ miniprogram/pages/Highlight-photos/index.wxss | 93 + miniprogram/pages/Information-review/index.js | 108 ++ .../pages/Information-review/index.json | 4 + .../pages/Information-review/index.wxml | 183 ++ .../pages/Information-review/index.wxss | 104 ++ .../Personnel-information-binding/index.js | 87 + .../Personnel-information-binding/index.json | 4 + .../Personnel-information-binding/index.wxml | 21 + .../Personnel-information-binding/index.wxss | 21 + miniprogram/pages/Quality-Assurance/index.js | 447 +++++ .../pages/Quality-Assurance/index.json | 4 + .../pages/Quality-Assurance/index.wxml | 596 +++++++ .../pages/Quality-Assurance/index.wxss | 141 ++ .../pages/Security-control-echarts/index.js | 357 ++++ .../pages/Security-control-echarts/index.json | 5 + .../pages/Security-control-echarts/index.wxml | 124 ++ .../pages/Security-control-echarts/index.wxss | 79 + .../index.js | 269 +++ .../index.json | 6 + .../index.wxml | 91 + .../index.wxss | 89 + .../components/bar-chart-warning/index.js | 252 +++ .../components/bar-chart-warning/index.json | 6 + .../components/bar-chart-warning/index.wxml | 4 + .../components/bar-chart-warning/index.wxss | 6 + .../pages/components/bar-chart/index.js | 206 +++ .../pages/components/bar-chart/index.json | 6 + .../pages/components/bar-chart/index.wxml | 4 + .../pages/components/bar-chart/index.wxss | 6 + .../components/curve-echarts-copy/index.js | 187 ++ .../components/curve-echarts-copy/index.json | 4 + .../components/curve-echarts-copy/index.wxml | 5 + .../components/curve-echarts-copy/index.wxss | 1 + .../pages/components/curve-echarts/index.js | 148 ++ .../pages/components/curve-echarts/index.json | 4 + .../pages/components/curve-echarts/index.wxml | 5 + .../pages/components/curve-echarts/index.wxss | 1 + .../pages/components/deep-select/index.js | 73 + .../pages/components/deep-select/index.json | 4 + .../pages/components/deep-select/index.wxml | 14 + .../pages/components/deep-select/index.wxss | 103 ++ .../components/file-uploader-copy/index.js | 82 + .../components/file-uploader-copy/index.json | 4 + .../components/file-uploader-copy/index.wxml | 18 + .../components/file-uploader-copy/index.wxss | 143 ++ .../pages/components/file-uploader/index.js | 89 + .../pages/components/file-uploader/index.json | 4 + .../pages/components/file-uploader/index.wxml | 14 + .../pages/components/file-uploader/index.wxss | 143 ++ .../pages/components/pie-chart/index.js | 140 ++ .../pages/components/pie-chart/index.json | 4 + .../pages/components/pie-chart/index.wxml | 4 + .../pages/components/pie-chart/index.wxss | 5 + .../pages/components/project-select/index.js | 96 ++ .../components/project-select/index.json | 4 + .../components/project-select/index.wxml | 18 + .../components/project-select/index.wxss | 49 + .../pz-screen-training-index/index.js | 122 ++ .../pz-screen-training-index/index.json | 4 + .../pz-screen-training-index/index.wxml | 46 + .../pz-screen-training-index/index.wxss | 107 ++ .../components/pz-screen-training/index.js | 107 ++ .../components/pz-screen-training/index.json | 4 + .../components/pz-screen-training/index.wxml | 37 + .../components/pz-screen-training/index.wxss | 104 ++ .../pages/components/pz-screen/index.js | 107 ++ .../pages/components/pz-screen/index.json | 4 + .../pages/components/pz-screen/index.wxml | 37 + .../pages/components/pz-screen/index.wxss | 104 ++ .../pages/components/select-btn/index.js | 28 + .../pages/components/select-btn/index.json | 4 + .../pages/components/select-btn/index.wxml | 5 + .../pages/components/select-btn/index.wxss | 36 + .../pages/components/select-date/index.js | 62 + .../pages/components/select-date/index.json | 4 + .../pages/components/select-date/index.wxml | 18 + .../pages/components/select-date/index.wxss | 13 + miniprogram/pages/components/sign/sign.js | 205 +++ miniprogram/pages/components/sign/sign.json | 8 + miniprogram/pages/components/sign/sign.wxml | 65 + miniprogram/pages/components/sign/sign.wxss | 98 ++ .../components/voucher-date-copy/index.js | 133 ++ .../components/voucher-date-copy/index.json | 6 + .../components/voucher-date-copy/index.wxml | 68 + .../components/voucher-date-copy/index.wxss | 68 + .../pages/components/voucher-date/index.js | 92 + .../pages/components/voucher-date/index.json | 4 + .../pages/components/voucher-date/index.wxml | 54 + .../pages/components/voucher-date/index.wxss | 68 + .../components/voucher-many-select/index.js | 83 + .../components/voucher-many-select/index.json | 4 + .../components/voucher-many-select/index.wxml | 60 + .../components/voucher-many-select/index.wxss | 102 ++ .../pages/components/voucher-select/index.js | 103 ++ .../components/voucher-select/index.json | 4 + .../components/voucher-select/index.wxml | 55 + .../components/voucher-select/index.wxss | 68 + .../components/voucher-selected/index.js | 92 + .../components/voucher-selected/index.json | 4 + .../components/voucher-selected/index.wxml | 56 + .../components/voucher-selected/index.wxss | 69 + .../pages/components/voucher-selects/index.js | 95 + .../components/voucher-selects/index.json | 4 + .../components/voucher-selects/index.wxml | 55 + .../components/voucher-selects/index.wxss | 68 + .../pages/construction-details/index.js | 135 ++ .../pages/construction-details/index.json | 6 + .../pages/construction-details/index.wxml | 756 ++++++++ .../pages/construction-details/index.wxss | 77 + miniprogram/pages/construction/index.js | 512 ++++++ miniprogram/pages/construction/index.json | 6 + miniprogram/pages/construction/index.wxml | 791 +++++++++ miniprogram/pages/construction/index.wxss | 89 + miniprogram/pages/deepExcavation/index.js | 589 +++++++ miniprogram/pages/deepExcavation/index.json | 9 + miniprogram/pages/deepExcavation/index.wxml | 186 ++ miniprogram/pages/deepExcavation/index.wxss | 8 + .../pages/gengduogongneng/gengduogongneng.js | 209 +++ .../gengduogongneng/gengduogongneng.json | 12 + .../gengduogongneng/gengduogongneng.wxml | 195 +++ .../gengduogongneng/gengduogongneng.wxss | 23 + .../gongchengliebiao/gongchengliebiao.js | 596 +++++++ .../gongchengliebiao/gongchengliebiao.json | 16 + .../gongchengliebiao/gongchengliebiao.wxml | 166 ++ .../gongchengliebiao/gongchengliebiao.wxss | 323 ++++ miniprogram/pages/hnt-strong/index.js | 291 ++++ miniprogram/pages/hnt-strong/index.json | 6 + miniprogram/pages/hnt-strong/index.wxml | 91 + miniprogram/pages/hnt-strong/index.wxss | 69 + miniprogram/pages/learn-page/index.js | 88 + miniprogram/pages/learn-page/index.json | 4 + miniprogram/pages/learn-page/index.wxml | 20 + miniprogram/pages/learn-page/index.wxss | 23 + miniprogram/pages/login/login.js | 144 ++ miniprogram/pages/login/login.json | 5 + miniprogram/pages/login/login.wxml | 58 + miniprogram/pages/login/login.wxss | 58 + miniprogram/pages/map/map.js | 693 ++++++++ miniprogram/pages/map/map.json | 12 + miniprogram/pages/map/map.wxml | 241 +++ miniprogram/pages/map/map.wxss | 254 +++ miniprogram/pages/measures-Chakan/index.js | 187 ++ miniprogram/pages/measures-Chakan/index.json | 4 + miniprogram/pages/measures-Chakan/index.wxml | 289 ++++ miniprogram/pages/measures-Chakan/index.wxss | 45 + miniprogram/pages/measures/index.js | 66 + miniprogram/pages/measures/index.json | 4 + miniprogram/pages/measures/index.wxml | 261 +++ miniprogram/pages/measures/index.wxss | 40 + .../newAddPage/letterCommitment/index.js | 201 +++ .../newAddPage/letterCommitment/index.json | 4 + .../newAddPage/letterCommitment/index.wxml | 251 +++ .../newAddPage/letterCommitment/index.wxss | 71 + .../safetyBriefingLearning/index.js | 613 +++++++ .../safetyBriefingLearning/index.json | 7 + .../safetyBriefingLearning/index.wxml | 102 ++ .../safetyBriefingLearning/index.wxss | 68 + .../newAddPage/safetyManagement/index.js | 559 ++++++ .../newAddPage/safetyManagement/index.json | 7 + .../newAddPage/safetyManagement/index.wxml | 371 ++++ .../newAddPage/safetyManagement/index.wxss | 1 + .../newAddPage2/letterCommitment/index.js | 210 +++ .../newAddPage2/letterCommitment/index.json | 4 + .../newAddPage2/letterCommitment/index.wxml | 251 +++ .../newAddPage2/letterCommitment/index.wxss | 71 + .../safetyBriefingLearning/index.js | 670 ++++++++ .../safetyBriefingLearning/index.json | 7 + .../safetyBriefingLearning/index.wxml | 102 ++ .../safetyBriefingLearning/index.wxss | 68 + miniprogram/pages/ranyuanguanli-map/map.js | 336 ++++ miniprogram/pages/ranyuanguanli-map/map.json | 13 + miniprogram/pages/ranyuanguanli-map/map.wxml | 199 +++ miniprogram/pages/ranyuanguanli-map/map.wxss | 277 +++ .../pages/renyuanguanli/renyuanguanli.js | 577 +++++++ .../pages/renyuanguanli/renyuanguanli.json | 16 + .../pages/renyuanguanli/renyuanguanli.wxml | 267 +++ .../pages/renyuanguanli/renyuanguanli.wxss | 207 +++ .../pages/saft-education-user-bind/index.js | 468 +++++ .../pages/saft-education-user-bind/index.json | 8 + .../pages/saft-education-user-bind/index.wxml | 88 + .../pages/saft-education-user-bind/index.wxss | 31 + miniprogram/pages/saft-qr-view/index.js | 178 ++ miniprogram/pages/saft-qr-view/index.json | 3 + miniprogram/pages/saft-qr-view/index.wxml | 2 + miniprogram/pages/saft-qr-view/index.wxss | 1 + .../pages/shebeiguanli-map/jixiedingwei.js | 670 ++++++++ .../pages/shebeiguanli-map/jixiedingwei.json | 18 + .../pages/shebeiguanli-map/jixiedingwei.wxml | 210 +++ .../pages/shebeiguanli-map/jixiedingwei.wxss | 454 +++++ .../pages/shebieguanli-jxsb/shajiangguan.js | 224 +++ .../pages/shebieguanli-jxsb/shajiangguan.json | 15 + .../pages/shebieguanli-jxsb/shajiangguan.wxml | 241 +++ .../pages/shebieguanli-jxsb/shajiangguan.wxss | 261 +++ miniprogram/pages/shebieguanli-tzsb/taji.js | 249 +++ miniprogram/pages/shebieguanli-tzsb/taji.json | 15 + miniprogram/pages/shebieguanli-tzsb/taji.wxml | 297 ++++ miniprogram/pages/shebieguanli-tzsb/taji.wxss | 132 ++ miniprogram/pages/tempRegistration/index.js | 860 ++++++++++ miniprogram/pages/tempRegistration/index.json | 6 + miniprogram/pages/tempRegistration/index.wxml | 136 ++ miniprogram/pages/tempRegistration/index.wxss | 47 + miniprogram/pages/temporaryToExamine/index.js | 517 ++++++ .../pages/temporaryToExamine/index.json | 11 + .../pages/temporaryToExamine/index.wxml | 402 +++++ .../pages/temporaryToExamine/index.wxss | 167 ++ .../pages/updatePassword/updatePassword.js | 162 ++ .../pages/updatePassword/updatePassword.json | 14 + .../pages/updatePassword/updatePassword.wxml | 61 + .../pages/updatePassword/updatePassword.wxss | 0 miniprogram/pages/winter-training/index.js | 252 +++ miniprogram/pages/winter-training/index.json | 6 + miniprogram/pages/winter-training/index.wxml | 70 + miniprogram/pages/winter-training/index.wxss | 48 + .../pages/xiangmugaikuang/xiangmugaikuang.js | 694 ++++++++ .../xiangmugaikuang/xiangmugaikuang.json | 17 + .../xiangmugaikuang/xiangmugaikuang.wxml | 279 +++ .../xiangmugaikuang/xiangmugaikuang.wxss | 153 ++ miniprogram/sitemap.json | 7 + miniprogram/style/guide.wxss | 144 ++ project.config.json | 286 ++++ project.private.config.json | 7 + 941 files changed, 64594 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/construction.iml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 cloudfunctions/callback/config.json create mode 100644 cloudfunctions/callback/index.js create mode 100644 cloudfunctions/callback/package.json create mode 100644 cloudfunctions/echo/config.json create mode 100644 cloudfunctions/echo/index.js create mode 100644 cloudfunctions/echo/package.json create mode 100644 cloudfunctions/login/config.json create mode 100644 cloudfunctions/login/index.js create mode 100644 cloudfunctions/login/package.json create mode 100644 cloudfunctions/openapi/config.json create mode 100644 cloudfunctions/openapi/index.js create mode 100644 cloudfunctions/openapi/package.json create mode 100644 miniprogram/app.js create mode 100644 miniprogram/app.js.mine create mode 100644 miniprogram/app.json create mode 100644 miniprogram/app.wxss create mode 100644 miniprogram/components/@mkl/cell/index.d.ts create mode 100644 miniprogram/components/@mkl/cell/index.js create mode 100644 miniprogram/components/@mkl/cell/index.json create mode 100644 miniprogram/components/@mkl/cell/index.wxml create mode 100644 miniprogram/components/@mkl/cell/index.wxss create mode 100644 miniprogram/components/@mkl/collapse-item/index.d.ts create mode 100644 miniprogram/components/@mkl/collapse-item/index.js create mode 100644 miniprogram/components/@mkl/collapse-item/index.json create mode 100644 miniprogram/components/@mkl/collapse-item/index.wxml create mode 100644 miniprogram/components/@mkl/collapse-item/index.wxss create mode 100644 miniprogram/components/@mkl/collapse/index.d.ts create mode 100644 miniprogram/components/@mkl/collapse/index.js create mode 100644 miniprogram/components/@mkl/collapse/index.json create mode 100644 miniprogram/components/@mkl/collapse/index.wxml create mode 100644 miniprogram/components/@mkl/collapse/index.wxss create mode 100644 miniprogram/components/@mkl/common/color.d.ts create mode 100644 miniprogram/components/@mkl/common/color.js create mode 100644 miniprogram/components/@mkl/common/component.d.ts create mode 100644 miniprogram/components/@mkl/common/component.js create mode 100644 miniprogram/components/@mkl/common/index.wxss create mode 100644 miniprogram/components/@mkl/common/style/clearfix.wxss create mode 100644 miniprogram/components/@mkl/common/style/ellipsis.wxss create mode 100644 miniprogram/components/@mkl/common/style/hairline.wxss create mode 100644 miniprogram/components/@mkl/common/style/mixins/clearfix.wxss create mode 100644 miniprogram/components/@mkl/common/style/mixins/ellipsis.wxss create mode 100644 miniprogram/components/@mkl/common/style/mixins/hairline.wxss create mode 100644 miniprogram/components/@mkl/common/style/theme.wxss create mode 100644 miniprogram/components/@mkl/common/style/var.wxss create mode 100644 miniprogram/components/@mkl/common/utils.d.ts create mode 100644 miniprogram/components/@mkl/common/utils.js create mode 100644 miniprogram/components/@mkl/common/version.d.ts create mode 100644 miniprogram/components/@mkl/common/version.js create mode 100644 miniprogram/components/@mkl/icon/index.d.ts create mode 100644 miniprogram/components/@mkl/icon/index.js create mode 100644 miniprogram/components/@mkl/icon/index.json create mode 100644 miniprogram/components/@mkl/icon/index.wxml create mode 100644 miniprogram/components/@mkl/icon/index.wxss create mode 100644 miniprogram/components/@mkl/info/index.d.ts create mode 100644 miniprogram/components/@mkl/info/index.js create mode 100644 miniprogram/components/@mkl/info/index.json create mode 100644 miniprogram/components/@mkl/info/index.wxml create mode 100644 miniprogram/components/@mkl/info/index.wxss create mode 100644 miniprogram/components/@mkl/loading/index.d.ts create mode 100644 miniprogram/components/@mkl/loading/index.js create mode 100644 miniprogram/components/@mkl/loading/index.json create mode 100644 miniprogram/components/@mkl/loading/index.wxml create mode 100644 miniprogram/components/@mkl/loading/index.wxss create mode 100644 miniprogram/components/@mkl/mixins/basic.d.ts create mode 100644 miniprogram/components/@mkl/mixins/basic.js create mode 100644 miniprogram/components/@mkl/mixins/button.d.ts create mode 100644 miniprogram/components/@mkl/mixins/button.js create mode 100644 miniprogram/components/@mkl/mixins/link.d.ts create mode 100644 miniprogram/components/@mkl/mixins/link.js create mode 100644 miniprogram/components/@mkl/mixins/open-type.d.ts create mode 100644 miniprogram/components/@mkl/mixins/open-type.js create mode 100644 miniprogram/components/@mkl/mixins/page-scroll.d.ts create mode 100644 miniprogram/components/@mkl/mixins/page-scroll.js create mode 100644 miniprogram/components/@mkl/mixins/touch.d.ts create mode 100644 miniprogram/components/@mkl/mixins/touch.js create mode 100644 miniprogram/components/@mkl/mixins/transition.d.ts create mode 100644 miniprogram/components/@mkl/mixins/transition.js create mode 100644 miniprogram/components/@mkl/multi-select/index.d.ts create mode 100644 miniprogram/components/@mkl/multi-select/index.js create mode 100644 miniprogram/components/@mkl/multi-select/index.json create mode 100644 miniprogram/components/@mkl/multi-select/index.wxml create mode 100644 miniprogram/components/@mkl/multi-select/index.wxss create mode 100644 miniprogram/components/@mkl/picker-column/index.d.ts create mode 100644 miniprogram/components/@mkl/picker-column/index.js create mode 100644 miniprogram/components/@mkl/picker-column/index.json create mode 100644 miniprogram/components/@mkl/picker-column/index.wxml create mode 100644 miniprogram/components/@mkl/picker-column/index.wxs create mode 100644 miniprogram/components/@mkl/picker-column/index.wxss create mode 100644 miniprogram/components/@mkl/picker/index.d.ts create mode 100644 miniprogram/components/@mkl/picker/index.js create mode 100644 miniprogram/components/@mkl/picker/index.json create mode 100644 miniprogram/components/@mkl/picker/index.wxml create mode 100644 miniprogram/components/@mkl/picker/index.wxss create mode 100644 miniprogram/components/@mkl/picker/shared.d.ts create mode 100644 miniprogram/components/@mkl/picker/shared.js create mode 100644 miniprogram/components/@mkl/picker/toolbar.wxml create mode 100644 miniprogram/components/@mkl/sticky/index.d.ts create mode 100644 miniprogram/components/@mkl/sticky/index.js create mode 100644 miniprogram/components/@mkl/sticky/index.json create mode 100644 miniprogram/components/@mkl/sticky/index.wxml create mode 100644 miniprogram/components/@mkl/sticky/index.wxs create mode 100644 miniprogram/components/@mkl/sticky/index.wxss create mode 100644 miniprogram/components/@mkl/tab/index.d.ts create mode 100644 miniprogram/components/@mkl/tab/index.js create mode 100644 miniprogram/components/@mkl/tab/index.json create mode 100644 miniprogram/components/@mkl/tab/index.wxml create mode 100644 miniprogram/components/@mkl/tab/index.wxss create mode 100644 miniprogram/components/@mkl/tabs/index.d.ts create mode 100644 miniprogram/components/@mkl/tabs/index.js create mode 100644 miniprogram/components/@mkl/tabs/index.json create mode 100644 miniprogram/components/@mkl/tabs/index.wxml create mode 100644 miniprogram/components/@mkl/tabs/index.wxs create mode 100644 miniprogram/components/@mkl/tabs/index.wxss create mode 100644 miniprogram/components/@mkl/wxs/add-unit.wxs create mode 100644 miniprogram/components/@mkl/wxs/array.wxs create mode 100644 miniprogram/components/@mkl/wxs/bem.wxs create mode 100644 miniprogram/components/@mkl/wxs/memoize.wxs create mode 100644 miniprogram/components/@mkl/wxs/object.wxs create mode 100644 miniprogram/components/@mkl/wxs/utils.wxs create mode 100644 miniprogram/components/chatroom/chatroom.js create mode 100644 miniprogram/components/chatroom/chatroom.json create mode 100644 miniprogram/components/chatroom/chatroom.wxml create mode 100644 miniprogram/components/chatroom/chatroom.wxss create mode 100644 miniprogram/components/chatroom/photo.png create mode 100644 miniprogram/ec-canvas/ec-canvas.js create mode 100644 miniprogram/ec-canvas/ec-canvas.json create mode 100644 miniprogram/ec-canvas/ec-canvas.wxml create mode 100644 miniprogram/ec-canvas/ec-canvas.wxss create mode 100644 miniprogram/ec-canvas/echarts.js create mode 100644 miniprogram/ec-canvas/wx-canvas.js create mode 100644 miniprogram/images/biyan.png create mode 100644 miniprogram/images/bottom.png create mode 100644 miniprogram/images/core.png create mode 100644 miniprogram/images/cz_1.png create mode 100644 miniprogram/images/cz_2.png create mode 100644 miniprogram/images/dingwei.png create mode 100644 miniprogram/images/early.png create mode 100644 miniprogram/images/fanhui.png create mode 100644 miniprogram/images/foot_1.png create mode 100644 miniprogram/images/foot_2.png create mode 100644 miniprogram/images/foot_3.png create mode 100644 miniprogram/images/foot_4.png create mode 100644 miniprogram/images/foot_5.png create mode 100644 miniprogram/images/foot_6.png create mode 100644 miniprogram/images/foot_7.png create mode 100644 miniprogram/images/footer_1.png create mode 100644 miniprogram/images/footer_2.png create mode 100644 miniprogram/images/footer_3.png create mode 100644 miniprogram/images/footer_4.png create mode 100644 miniprogram/images/footer_5.png create mode 100644 miniprogram/images/footer_6.png create mode 100644 miniprogram/images/footer_7.png create mode 100644 miniprogram/images/guodu.gif create mode 100644 miniprogram/images/i_location.png create mode 100644 miniprogram/images/i_mechanics.png create mode 100644 miniprogram/images/i_personnel.png create mode 100644 miniprogram/images/icon_1.png create mode 100644 miniprogram/images/icon_2.png create mode 100644 miniprogram/images/icon_3.png create mode 100644 miniprogram/images/icon_4.png create mode 100644 miniprogram/images/icon_5.png create mode 100644 miniprogram/images/icons_1.png create mode 100644 miniprogram/images/icons_2.png create mode 100644 miniprogram/images/icons_3.png create mode 100644 miniprogram/images/icons_4.png create mode 100644 miniprogram/images/icons_5.png create mode 100644 miniprogram/images/img_1.png create mode 100644 miniprogram/images/img_10.png create mode 100644 miniprogram/images/img_11.png create mode 100644 miniprogram/images/img_12.png create mode 100644 miniprogram/images/img_2.png create mode 100644 miniprogram/images/img_3.png create mode 100644 miniprogram/images/img_4.png create mode 100644 miniprogram/images/img_5.png create mode 100644 miniprogram/images/img_6.png create mode 100644 miniprogram/images/img_7.png create mode 100644 miniprogram/images/img_8.png create mode 100644 miniprogram/images/img_9.png create mode 100644 miniprogram/images/jt.png create mode 100644 miniprogram/images/left.png create mode 100644 miniprogram/images/lw_1.png create mode 100644 miniprogram/images/lw_2.png create mode 100644 miniprogram/images/lw_3.png create mode 100644 miniprogram/images/lw_4.png create mode 100644 miniprogram/images/lw_5.png create mode 100644 miniprogram/images/lw_6.png create mode 100644 miniprogram/images/lw_7.png create mode 100644 miniprogram/images/lw_8.png create mode 100644 miniprogram/images/middl_right.png create mode 100644 miniprogram/images/middle_left.png create mode 100644 miniprogram/images/quanping.png create mode 100644 miniprogram/images/right.png create mode 100644 miniprogram/images/s_1.png create mode 100644 miniprogram/images/s_10.png create mode 100644 miniprogram/images/s_11.png create mode 100644 miniprogram/images/s_12.png create mode 100644 miniprogram/images/s_13.png create mode 100644 miniprogram/images/s_14.png create mode 100644 miniprogram/images/s_15.png create mode 100644 miniprogram/images/s_16.png create mode 100644 miniprogram/images/s_17.png create mode 100644 miniprogram/images/s_18.png create mode 100644 miniprogram/images/s_2.png create mode 100644 miniprogram/images/s_3.png create mode 100644 miniprogram/images/s_4.png create mode 100644 miniprogram/images/s_5.png create mode 100644 miniprogram/images/s_6.png create mode 100644 miniprogram/images/s_7.png create mode 100644 miniprogram/images/s_8.png create mode 100644 miniprogram/images/s_9.png create mode 100644 miniprogram/images/set.png create mode 100644 miniprogram/images/sliding_up.png create mode 100644 miniprogram/images/user_3.png create mode 100644 miniprogram/images/video.png create mode 100644 miniprogram/images/warning.png create mode 100644 miniprogram/images/wl_fg.png create mode 100644 miniprogram/images/yj_01.png create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/action-sheet/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/action-sheet/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/action-sheet/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/action-sheet/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/area/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/area/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/area/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/area/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/button/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/button/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/button/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/button/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/calendar.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/index.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/utils.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/calendar/utils.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/card/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/card/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/card/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/card/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/cell-group/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/cell-group/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/cell-group/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/cell-group/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/cell/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/cell/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/cell/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/cell/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/checkbox-group/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/checkbox-group/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/checkbox/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/checkbox/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/checkbox/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/checkbox/index.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/checkbox/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/circle/canvas.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/circle/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/circle/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/circle/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/circle/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/col/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/col/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/col/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/col/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/collapse-item/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/collapse-item/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/collapse-item/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/collapse-item/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/collapse/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/collapse/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/collapse/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/collapse/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/common/color.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/common/component.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/common/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/common/style/hairline.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/common/style/theme.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/common/style/var.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/common/utils.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/common/version.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/count-down/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/count-down/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/count-down/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/count-down/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/count-down/utils.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/datetime-picker/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/datetime-picker/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/definitions/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/definitions/weapp.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/dialog/dialog.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/dialog/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/dialog/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/dialog/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/dialog/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/divider/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/divider/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/divider/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/divider/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/dropdown-item/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/dropdown-item/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/dropdown-menu/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/dropdown-menu/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/field/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/field/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/field/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/field/index.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/field/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/field/props.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/goods-action-button/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/goods-action-button/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/goods-action-button/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/goods-action-button/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/goods-action-icon/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/goods-action-icon/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/goods-action/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/goods-action/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/goods-action/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/goods-action/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/grid-item/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/grid-item/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/grid-item/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/grid-item/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/grid/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/grid/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/grid/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/grid/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/icon/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/icon/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/icon/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/icon/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/image/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/image/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/image/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/image/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/index-anchor/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/index-anchor/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/index-anchor/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/index-anchor/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/index-bar/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/index-bar/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/index-bar/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/index-bar/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/info/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/info/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/info/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/info/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/loading/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/loading/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/loading/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/loading/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/mixins/basic.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/mixins/button.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/mixins/link.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/mixins/open-type.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/mixins/page-scroll.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/mixins/touch.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/mixins/transition.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/nav-bar/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/nav-bar/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/nav-bar/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/nav-bar/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/notice-bar/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/notice-bar/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/notice-bar/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/notice-bar/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/notify/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/notify/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/notify/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/notify/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/notify/notify.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/overlay/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/overlay/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/overlay/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/overlay/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/panel/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/panel/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/panel/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/panel/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/picker-column/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/picker-column/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/picker-column/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/picker-column/index.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/picker-column/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/picker/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/picker/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/picker/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/picker/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/picker/shared.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/picker/toolbar.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/popup/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/popup/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/popup/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/popup/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/progress/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/progress/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/progress/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/progress/index.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/progress/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/radio-group/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/radio-group/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/radio-group/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/radio-group/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/radio/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/radio/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/radio/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/radio/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/rate/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/rate/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/rate/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/rate/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/row/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/row/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/row/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/row/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/search/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/search/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/search/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/search/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/sidebar-item/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/sidebar-item/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/sidebar-item/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/sidebar-item/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/sidebar/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/sidebar/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/sidebar/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/sidebar/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/skeleton/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/skeleton/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/skeleton/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/skeleton/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/slider/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/slider/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/slider/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/slider/index.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/slider/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/stepper/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/stepper/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/stepper/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/stepper/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/steps/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/steps/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/steps/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/steps/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/sticky/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/sticky/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/sticky/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/sticky/index.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/sticky/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/submit-bar/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/submit-bar/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/submit-bar/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/submit-bar/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/swipe-cell/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/swipe-cell/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/swipe-cell/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/swipe-cell/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/switch/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/switch/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/switch/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/switch/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tab/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tab/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tab/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tab/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tabbar-item/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tabbar-item/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tabbar-item/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tabbar-item/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tabbar/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tabbar/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tabbar/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tabbar/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tabs/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tabs/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tabs/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tabs/index.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tabs/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tag/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tag/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tag/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tag/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/toast/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/toast/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/toast/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/toast/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/toast/toast.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/transition/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/transition/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/transition/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/transition/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tree-select/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tree-select/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tree-select/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tree-select/index.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/tree-select/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/uploader/index.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/uploader/index.json create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/uploader/index.wxml create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/uploader/index.wxss create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/uploader/shared.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/uploader/utils.js create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/wxs/add-unit.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/wxs/array.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/wxs/bem.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/wxs/memoize.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/wxs/object.wxs create mode 100644 miniprogram/miniprogram_npm/@vant/weapp/wxs/utils.wxs create mode 100644 miniprogram/newComponents/number/index.js create mode 100644 miniprogram/newComponents/number/index.json create mode 100644 miniprogram/newComponents/number/index.wxml create mode 100644 miniprogram/newComponents/number/index.wxss create mode 100644 miniprogram/newComponents/safety-bar-chart/index.js create mode 100644 miniprogram/newComponents/safety-bar-chart/index.json create mode 100644 miniprogram/newComponents/safety-bar-chart/index.wxml create mode 100644 miniprogram/newComponents/safety-bar-chart/index.wxss create mode 100644 miniprogram/newComponents/safety-bar-charts/index.js create mode 100644 miniprogram/newComponents/safety-bar-charts/index.json create mode 100644 miniprogram/newComponents/safety-bar-charts/index.wxml create mode 100644 miniprogram/newComponents/safety-bar-charts/index.wxss create mode 100644 miniprogram/newComponents/safety-bar-chartss/index.js create mode 100644 miniprogram/newComponents/safety-bar-chartss/index.json create mode 100644 miniprogram/newComponents/safety-bar-chartss/index.wxml create mode 100644 miniprogram/newComponents/safety-bar-chartss/index.wxss create mode 100644 miniprogram/newComponents/safety-pie-chart/index.js create mode 100644 miniprogram/newComponents/safety-pie-chart/index.json create mode 100644 miniprogram/newComponents/safety-pie-chart/index.wxml create mode 100644 miniprogram/newComponents/safety-pie-chart/index.wxss create mode 100644 miniprogram/newComponents/safety-pie-charts/index.js create mode 100644 miniprogram/newComponents/safety-pie-charts/index.json create mode 100644 miniprogram/newComponents/safety-pie-charts/index.wxml create mode 100644 miniprogram/newComponents/safety-pie-charts/index.wxss create mode 100644 miniprogram/newComponents/select-person/index.js create mode 100644 miniprogram/newComponents/select-person/index.json create mode 100644 miniprogram/newComponents/select-person/index.wxml create mode 100644 miniprogram/newComponents/select-person/index.wxss create mode 100644 miniprogram/pageage/AIWarningList/index.js create mode 100644 miniprogram/pageage/AIWarningList/index.json create mode 100644 miniprogram/pageage/AIWarningList/index.wxml create mode 100644 miniprogram/pageage/AIWarningList/index.wxss create mode 100644 miniprogram/pageage/AIvideoAnalysis/index.js create mode 100644 miniprogram/pageage/AIvideoAnalysis/index.json create mode 100644 miniprogram/pageage/AIvideoAnalysis/index.wxml create mode 100644 miniprogram/pageage/AIvideoAnalysis/index.wxss create mode 100644 miniprogram/pageage/Material-Management/index.js create mode 100644 miniprogram/pageage/Material-Management/index.json create mode 100644 miniprogram/pageage/Material-Management/index.wxml create mode 100644 miniprogram/pageage/Material-Management/index.wxss create mode 100644 miniprogram/pageage/Progress-management/index.js create mode 100644 miniprogram/pageage/Progress-management/index.json create mode 100644 miniprogram/pageage/Progress-management/index.wxml create mode 100644 miniprogram/pageage/Progress-management/index.wxss create mode 100644 miniprogram/pageage/Security-control-echarts/index.js create mode 100644 miniprogram/pageage/Security-control-echarts/index.json create mode 100644 miniprogram/pageage/Security-control-echarts/index.wxml create mode 100644 miniprogram/pageage/Security-control-echarts/index.wxss create mode 100644 miniprogram/pageage/biangeng/index.js create mode 100644 miniprogram/pageage/biangeng/index.json create mode 100644 miniprogram/pageage/biangeng/index.wxml create mode 100644 miniprogram/pageage/biangeng/index.wxss create mode 100644 miniprogram/pageage/dangerousProject/index.js create mode 100644 miniprogram/pageage/dangerousProject/index.json create mode 100644 miniprogram/pageage/dangerousProject/index.wxml create mode 100644 miniprogram/pageage/dangerousProject/index.wxss create mode 100644 miniprogram/pageage/educations-add/index.js create mode 100644 miniprogram/pageage/educations-add/index.json create mode 100644 miniprogram/pageage/educations-add/index.wxml create mode 100644 miniprogram/pageage/educations-add/index.wxss create mode 100644 miniprogram/pageage/educations-details/index.js create mode 100644 miniprogram/pageage/educations-details/index.json create mode 100644 miniprogram/pageage/educations-details/index.wxml create mode 100644 miniprogram/pageage/educations-details/index.wxss create mode 100644 miniprogram/pageage/educations-list/index.js create mode 100644 miniprogram/pageage/educations-list/index.json create mode 100644 miniprogram/pageage/educations-list/index.wxml create mode 100644 miniprogram/pageage/educations-list/index.wxss create mode 100644 miniprogram/pageage/lw-baobiaochaxun/lw-baobiaochaxun.js create mode 100644 miniprogram/pageage/lw-baobiaochaxun/lw-baobiaochaxun.json create mode 100644 miniprogram/pageage/lw-baobiaochaxun/lw-baobiaochaxun.wxml create mode 100644 miniprogram/pageage/lw-baobiaochaxun/lw-baobiaochaxun.wxss create mode 100644 miniprogram/pageage/lw-gerenxinxi/lw-gerenxinxi.js create mode 100644 miniprogram/pageage/lw-gerenxinxi/lw-gerenxinxi.json create mode 100644 miniprogram/pageage/lw-gerenxinxi/lw-gerenxinxi.wxml create mode 100644 miniprogram/pageage/lw-gerenxinxi/lw-gerenxinxi.wxss create mode 100644 miniprogram/pageage/lw-index/lw-index.js create mode 100644 miniprogram/pageage/lw-index/lw-index.json create mode 100644 miniprogram/pageage/lw-index/lw-index.wxml create mode 100644 miniprogram/pageage/lw-index/lw-index.wxss create mode 100644 miniprogram/pageage/lw-jibenxinxi/lw-jibenxinxi.js create mode 100644 miniprogram/pageage/lw-jibenxinxi/lw-jibenxinxi.json create mode 100644 miniprogram/pageage/lw-jibenxinxi/lw-jibenxinxi.wxml create mode 100644 miniprogram/pageage/lw-jibenxinxi/lw-jibenxinxi.wxss create mode 100644 miniprogram/pageage/safetyManagement/addSafetyInspect/index.js create mode 100644 miniprogram/pageage/safetyManagement/addSafetyInspect/index.json create mode 100644 miniprogram/pageage/safetyManagement/addSafetyInspect/index.wxml create mode 100644 miniprogram/pageage/safetyManagement/addSafetyInspect/index.wxss create mode 100644 miniprogram/pageage/safetyManagement/problemRectification/index.js create mode 100644 miniprogram/pageage/safetyManagement/problemRectification/index.json create mode 100644 miniprogram/pageage/safetyManagement/problemRectification/index.wxml create mode 100644 miniprogram/pageage/safetyManagement/problemRectification/index.wxss create mode 100644 miniprogram/pageage/safetyManagement/problemRectificationGR/index.js create mode 100644 miniprogram/pageage/safetyManagement/problemRectificationGR/index.json create mode 100644 miniprogram/pageage/safetyManagement/problemRectificationGR/index.wxml create mode 100644 miniprogram/pageage/safetyManagement/problemRectificationGR/index.wxss create mode 100644 miniprogram/pageage/safetyManagement/securityCheck/index.js create mode 100644 miniprogram/pageage/safetyManagement/securityCheck/index.json create mode 100644 miniprogram/pageage/safetyManagement/securityCheck/index.wxml create mode 100644 miniprogram/pageage/safetyManagement/securityCheck/index.wxss create mode 100644 miniprogram/pageage/safetyManagement/securityCheckGR/index.js create mode 100644 miniprogram/pageage/safetyManagement/securityCheckGR/index.json create mode 100644 miniprogram/pageage/safetyManagement/securityCheckGR/index.wxml create mode 100644 miniprogram/pageage/safetyManagement/securityCheckGR/index.wxss create mode 100644 miniprogram/pageage/safetyManagement/securityCheckRectified/index.js create mode 100644 miniprogram/pageage/safetyManagement/securityCheckRectified/index.json create mode 100644 miniprogram/pageage/safetyManagement/securityCheckRectified/index.wxml create mode 100644 miniprogram/pageage/safetyManagement/securityCheckRectified/index.wxss create mode 100644 miniprogram/pageage/samplingAddRetestingDeliver/index.js create mode 100644 miniprogram/pageage/samplingAddRetestingDeliver/index.json create mode 100644 miniprogram/pageage/samplingAddRetestingDeliver/index.wxml create mode 100644 miniprogram/pageage/samplingAddRetestingDeliver/index.wxss create mode 100644 miniprogram/pageage/samplingRetesting/index.js create mode 100644 miniprogram/pageage/samplingRetesting/index.json create mode 100644 miniprogram/pageage/samplingRetesting/index.wxml create mode 100644 miniprogram/pageage/samplingRetesting/index.wxss create mode 100644 miniprogram/pageage/samplingRetestingDeliver/index.js create mode 100644 miniprogram/pageage/samplingRetestingDeliver/index.json create mode 100644 miniprogram/pageage/samplingRetestingDeliver/index.wxml create mode 100644 miniprogram/pageage/samplingRetestingDeliver/index.wxss create mode 100644 miniprogram/pageage/samplingRetestingDetail/index.js create mode 100644 miniprogram/pageage/samplingRetestingDetail/index.json create mode 100644 miniprogram/pageage/samplingRetestingDetail/index.wxml create mode 100644 miniprogram/pageage/samplingRetestingDetail/index.wxss create mode 100644 miniprogram/pageage/samplingRetestingUpload/index.js create mode 100644 miniprogram/pageage/samplingRetestingUpload/index.json create mode 100644 miniprogram/pageage/samplingRetestingUpload/index.wxml create mode 100644 miniprogram/pageage/samplingRetestingUpload/index.wxss create mode 100644 miniprogram/pageage/shipinquanping/shipingquanping.js create mode 100644 miniprogram/pageage/shipinquanping/shipingquanping.json create mode 100644 miniprogram/pageage/shipinquanping/shipingquanping.wxml create mode 100644 miniprogram/pageage/shipinquanping/shipingquanping.wxss create mode 100644 miniprogram/pageage/suishoupai-psh/suishoupai-psh.js create mode 100644 miniprogram/pageage/suishoupai-psh/suishoupai-psh.json create mode 100644 miniprogram/pageage/suishoupai-psh/suishoupai-psh.wxml create mode 100644 miniprogram/pageage/suishoupai-psh/suishoupai-psh.wxss create mode 100644 miniprogram/pageage/suishoupai/suishoupai.js create mode 100644 miniprogram/pageage/suishoupai/suishoupai.json create mode 100644 miniprogram/pageage/suishoupai/suishoupai.wxml create mode 100644 miniprogram/pageage/suishoupai/suishoupai.wxss create mode 100644 miniprogram/pageage/technical-management/index.js create mode 100644 miniprogram/pageage/technical-management/index.json create mode 100644 miniprogram/pageage/technical-management/index.wxml create mode 100644 miniprogram/pageage/technical-management/index.wxss create mode 100644 miniprogram/pageage/vehicleManage/index.js create mode 100644 miniprogram/pageage/vehicleManage/index.json create mode 100644 miniprogram/pageage/vehicleManage/index.wxml create mode 100644 miniprogram/pageage/vehicleManage/index.wxss create mode 100644 miniprogram/pageage/voucherManagement/index.js create mode 100644 miniprogram/pageage/voucherManagement/index.json create mode 100644 miniprogram/pageage/voucherManagement/index.wxml create mode 100644 miniprogram/pageage/voucherManagement/index.wxss create mode 100644 miniprogram/pageage/voucherManagementAddto/index.js create mode 100644 miniprogram/pageage/voucherManagementAddto/index.json create mode 100644 miniprogram/pageage/voucherManagementAddto/index.wxml create mode 100644 miniprogram/pageage/voucherManagementAddto/index.wxss create mode 100644 miniprogram/pageage/xiangmuhuanjing/xiangmuhuanjing.js create mode 100644 miniprogram/pageage/xiangmuhuanjing/xiangmuhuanjing.json create mode 100644 miniprogram/pageage/xiangmuhuanjing/xiangmuhuanjing.wxml create mode 100644 miniprogram/pageage/xiangmuhuanjing/xiangmuhuanjing.wxss create mode 100644 miniprogram/pageage/xiangmushipin/xiangmushipin.js create mode 100644 miniprogram/pageage/xiangmushipin/xiangmushipin.json create mode 100644 miniprogram/pageage/xiangmushipin/xiangmushipin.wxml create mode 100644 miniprogram/pageage/xiangmushipin/xiangmushipin.wxss create mode 100644 miniprogram/pageage/xiangmuyujing/xiangmuyujing.js create mode 100644 miniprogram/pageage/xiangmuyujing/xiangmuyujing.json create mode 100644 miniprogram/pageage/xiangmuyujing/xiangmuyujing.wxml create mode 100644 miniprogram/pageage/xiangmuyujing/xiangmuyujing.wxss create mode 100644 miniprogram/pageage/yujingxinxi/yujingxinxi.js create mode 100644 miniprogram/pageage/yujingxinxi/yujingxinxi.json create mode 100644 miniprogram/pageage/yujingxinxi/yujingxinxi.wxml create mode 100644 miniprogram/pageage/yujingxinxi/yujingxinxi.wxss create mode 100644 miniprogram/pages/Concrete-usage/index.js create mode 100644 miniprogram/pages/Concrete-usage/index.json create mode 100644 miniprogram/pages/Concrete-usage/index.wxml create mode 100644 miniprogram/pages/Concrete-usage/index.wxss create mode 100644 miniprogram/pages/Construction-Log/index.js create mode 100644 miniprogram/pages/Construction-Log/index.json create mode 100644 miniprogram/pages/Construction-Log/index.wxml create mode 100644 miniprogram/pages/Construction-Log/index.wxss create mode 100644 miniprogram/pages/Highlight-photos/index.js create mode 100644 miniprogram/pages/Highlight-photos/index.json create mode 100644 miniprogram/pages/Highlight-photos/index.wxml create mode 100644 miniprogram/pages/Highlight-photos/index.wxss create mode 100644 miniprogram/pages/Information-review/index.js create mode 100644 miniprogram/pages/Information-review/index.json create mode 100644 miniprogram/pages/Information-review/index.wxml create mode 100644 miniprogram/pages/Information-review/index.wxss create mode 100644 miniprogram/pages/Personnel-information-binding/index.js create mode 100644 miniprogram/pages/Personnel-information-binding/index.json create mode 100644 miniprogram/pages/Personnel-information-binding/index.wxml create mode 100644 miniprogram/pages/Personnel-information-binding/index.wxss create mode 100644 miniprogram/pages/Quality-Assurance/index.js create mode 100644 miniprogram/pages/Quality-Assurance/index.json create mode 100644 miniprogram/pages/Quality-Assurance/index.wxml create mode 100644 miniprogram/pages/Quality-Assurance/index.wxss create mode 100644 miniprogram/pages/Security-control-echarts/index.js create mode 100644 miniprogram/pages/Security-control-echarts/index.json create mode 100644 miniprogram/pages/Security-control-echarts/index.wxml create mode 100644 miniprogram/pages/Security-control-echarts/index.wxss create mode 100644 miniprogram/pages/Standard-maintenance-room-monitoring/index.js create mode 100644 miniprogram/pages/Standard-maintenance-room-monitoring/index.json create mode 100644 miniprogram/pages/Standard-maintenance-room-monitoring/index.wxml create mode 100644 miniprogram/pages/Standard-maintenance-room-monitoring/index.wxss create mode 100644 miniprogram/pages/components/bar-chart-warning/index.js create mode 100644 miniprogram/pages/components/bar-chart-warning/index.json create mode 100644 miniprogram/pages/components/bar-chart-warning/index.wxml create mode 100644 miniprogram/pages/components/bar-chart-warning/index.wxss create mode 100644 miniprogram/pages/components/bar-chart/index.js create mode 100644 miniprogram/pages/components/bar-chart/index.json create mode 100644 miniprogram/pages/components/bar-chart/index.wxml create mode 100644 miniprogram/pages/components/bar-chart/index.wxss create mode 100644 miniprogram/pages/components/curve-echarts-copy/index.js create mode 100644 miniprogram/pages/components/curve-echarts-copy/index.json create mode 100644 miniprogram/pages/components/curve-echarts-copy/index.wxml create mode 100644 miniprogram/pages/components/curve-echarts-copy/index.wxss create mode 100644 miniprogram/pages/components/curve-echarts/index.js create mode 100644 miniprogram/pages/components/curve-echarts/index.json create mode 100644 miniprogram/pages/components/curve-echarts/index.wxml create mode 100644 miniprogram/pages/components/curve-echarts/index.wxss create mode 100644 miniprogram/pages/components/deep-select/index.js create mode 100644 miniprogram/pages/components/deep-select/index.json create mode 100644 miniprogram/pages/components/deep-select/index.wxml create mode 100644 miniprogram/pages/components/deep-select/index.wxss create mode 100644 miniprogram/pages/components/file-uploader-copy/index.js create mode 100644 miniprogram/pages/components/file-uploader-copy/index.json create mode 100644 miniprogram/pages/components/file-uploader-copy/index.wxml create mode 100644 miniprogram/pages/components/file-uploader-copy/index.wxss create mode 100644 miniprogram/pages/components/file-uploader/index.js create mode 100644 miniprogram/pages/components/file-uploader/index.json create mode 100644 miniprogram/pages/components/file-uploader/index.wxml create mode 100644 miniprogram/pages/components/file-uploader/index.wxss create mode 100644 miniprogram/pages/components/pie-chart/index.js create mode 100644 miniprogram/pages/components/pie-chart/index.json create mode 100644 miniprogram/pages/components/pie-chart/index.wxml create mode 100644 miniprogram/pages/components/pie-chart/index.wxss create mode 100644 miniprogram/pages/components/project-select/index.js create mode 100644 miniprogram/pages/components/project-select/index.json create mode 100644 miniprogram/pages/components/project-select/index.wxml create mode 100644 miniprogram/pages/components/project-select/index.wxss create mode 100644 miniprogram/pages/components/pz-screen-training-index/index.js create mode 100644 miniprogram/pages/components/pz-screen-training-index/index.json create mode 100644 miniprogram/pages/components/pz-screen-training-index/index.wxml create mode 100644 miniprogram/pages/components/pz-screen-training-index/index.wxss create mode 100644 miniprogram/pages/components/pz-screen-training/index.js create mode 100644 miniprogram/pages/components/pz-screen-training/index.json create mode 100644 miniprogram/pages/components/pz-screen-training/index.wxml create mode 100644 miniprogram/pages/components/pz-screen-training/index.wxss create mode 100644 miniprogram/pages/components/pz-screen/index.js create mode 100644 miniprogram/pages/components/pz-screen/index.json create mode 100644 miniprogram/pages/components/pz-screen/index.wxml create mode 100644 miniprogram/pages/components/pz-screen/index.wxss create mode 100644 miniprogram/pages/components/select-btn/index.js create mode 100644 miniprogram/pages/components/select-btn/index.json create mode 100644 miniprogram/pages/components/select-btn/index.wxml create mode 100644 miniprogram/pages/components/select-btn/index.wxss create mode 100644 miniprogram/pages/components/select-date/index.js create mode 100644 miniprogram/pages/components/select-date/index.json create mode 100644 miniprogram/pages/components/select-date/index.wxml create mode 100644 miniprogram/pages/components/select-date/index.wxss create mode 100644 miniprogram/pages/components/sign/sign.js create mode 100644 miniprogram/pages/components/sign/sign.json create mode 100644 miniprogram/pages/components/sign/sign.wxml create mode 100644 miniprogram/pages/components/sign/sign.wxss create mode 100644 miniprogram/pages/components/voucher-date-copy/index.js create mode 100644 miniprogram/pages/components/voucher-date-copy/index.json create mode 100644 miniprogram/pages/components/voucher-date-copy/index.wxml create mode 100644 miniprogram/pages/components/voucher-date-copy/index.wxss create mode 100644 miniprogram/pages/components/voucher-date/index.js create mode 100644 miniprogram/pages/components/voucher-date/index.json create mode 100644 miniprogram/pages/components/voucher-date/index.wxml create mode 100644 miniprogram/pages/components/voucher-date/index.wxss create mode 100644 miniprogram/pages/components/voucher-many-select/index.js create mode 100644 miniprogram/pages/components/voucher-many-select/index.json create mode 100644 miniprogram/pages/components/voucher-many-select/index.wxml create mode 100644 miniprogram/pages/components/voucher-many-select/index.wxss create mode 100644 miniprogram/pages/components/voucher-select/index.js create mode 100644 miniprogram/pages/components/voucher-select/index.json create mode 100644 miniprogram/pages/components/voucher-select/index.wxml create mode 100644 miniprogram/pages/components/voucher-select/index.wxss create mode 100644 miniprogram/pages/components/voucher-selected/index.js create mode 100644 miniprogram/pages/components/voucher-selected/index.json create mode 100644 miniprogram/pages/components/voucher-selected/index.wxml create mode 100644 miniprogram/pages/components/voucher-selected/index.wxss create mode 100644 miniprogram/pages/components/voucher-selects/index.js create mode 100644 miniprogram/pages/components/voucher-selects/index.json create mode 100644 miniprogram/pages/components/voucher-selects/index.wxml create mode 100644 miniprogram/pages/components/voucher-selects/index.wxss create mode 100644 miniprogram/pages/construction-details/index.js create mode 100644 miniprogram/pages/construction-details/index.json create mode 100644 miniprogram/pages/construction-details/index.wxml create mode 100644 miniprogram/pages/construction-details/index.wxss create mode 100644 miniprogram/pages/construction/index.js create mode 100644 miniprogram/pages/construction/index.json create mode 100644 miniprogram/pages/construction/index.wxml create mode 100644 miniprogram/pages/construction/index.wxss create mode 100644 miniprogram/pages/deepExcavation/index.js create mode 100644 miniprogram/pages/deepExcavation/index.json create mode 100644 miniprogram/pages/deepExcavation/index.wxml create mode 100644 miniprogram/pages/deepExcavation/index.wxss create mode 100644 miniprogram/pages/gengduogongneng/gengduogongneng.js create mode 100644 miniprogram/pages/gengduogongneng/gengduogongneng.json create mode 100644 miniprogram/pages/gengduogongneng/gengduogongneng.wxml create mode 100644 miniprogram/pages/gengduogongneng/gengduogongneng.wxss create mode 100644 miniprogram/pages/gongchengliebiao/gongchengliebiao.js create mode 100644 miniprogram/pages/gongchengliebiao/gongchengliebiao.json create mode 100644 miniprogram/pages/gongchengliebiao/gongchengliebiao.wxml create mode 100644 miniprogram/pages/gongchengliebiao/gongchengliebiao.wxss create mode 100644 miniprogram/pages/hnt-strong/index.js create mode 100644 miniprogram/pages/hnt-strong/index.json create mode 100644 miniprogram/pages/hnt-strong/index.wxml create mode 100644 miniprogram/pages/hnt-strong/index.wxss create mode 100644 miniprogram/pages/learn-page/index.js create mode 100644 miniprogram/pages/learn-page/index.json create mode 100644 miniprogram/pages/learn-page/index.wxml create mode 100644 miniprogram/pages/learn-page/index.wxss create mode 100644 miniprogram/pages/login/login.js create mode 100644 miniprogram/pages/login/login.json create mode 100644 miniprogram/pages/login/login.wxml create mode 100644 miniprogram/pages/login/login.wxss create mode 100644 miniprogram/pages/map/map.js create mode 100644 miniprogram/pages/map/map.json create mode 100644 miniprogram/pages/map/map.wxml create mode 100644 miniprogram/pages/map/map.wxss create mode 100644 miniprogram/pages/measures-Chakan/index.js create mode 100644 miniprogram/pages/measures-Chakan/index.json create mode 100644 miniprogram/pages/measures-Chakan/index.wxml create mode 100644 miniprogram/pages/measures-Chakan/index.wxss create mode 100644 miniprogram/pages/measures/index.js create mode 100644 miniprogram/pages/measures/index.json create mode 100644 miniprogram/pages/measures/index.wxml create mode 100644 miniprogram/pages/measures/index.wxss create mode 100644 miniprogram/pages/newAddPage/letterCommitment/index.js create mode 100644 miniprogram/pages/newAddPage/letterCommitment/index.json create mode 100644 miniprogram/pages/newAddPage/letterCommitment/index.wxml create mode 100644 miniprogram/pages/newAddPage/letterCommitment/index.wxss create mode 100644 miniprogram/pages/newAddPage/safetyBriefingLearning/index.js create mode 100644 miniprogram/pages/newAddPage/safetyBriefingLearning/index.json create mode 100644 miniprogram/pages/newAddPage/safetyBriefingLearning/index.wxml create mode 100644 miniprogram/pages/newAddPage/safetyBriefingLearning/index.wxss create mode 100644 miniprogram/pages/newAddPage/safetyManagement/index.js create mode 100644 miniprogram/pages/newAddPage/safetyManagement/index.json create mode 100644 miniprogram/pages/newAddPage/safetyManagement/index.wxml create mode 100644 miniprogram/pages/newAddPage/safetyManagement/index.wxss create mode 100644 miniprogram/pages/newAddPage2/letterCommitment/index.js create mode 100644 miniprogram/pages/newAddPage2/letterCommitment/index.json create mode 100644 miniprogram/pages/newAddPage2/letterCommitment/index.wxml create mode 100644 miniprogram/pages/newAddPage2/letterCommitment/index.wxss create mode 100644 miniprogram/pages/newAddPage2/safetyBriefingLearning/index.js create mode 100644 miniprogram/pages/newAddPage2/safetyBriefingLearning/index.json create mode 100644 miniprogram/pages/newAddPage2/safetyBriefingLearning/index.wxml create mode 100644 miniprogram/pages/newAddPage2/safetyBriefingLearning/index.wxss create mode 100644 miniprogram/pages/ranyuanguanli-map/map.js create mode 100644 miniprogram/pages/ranyuanguanli-map/map.json create mode 100644 miniprogram/pages/ranyuanguanli-map/map.wxml create mode 100644 miniprogram/pages/ranyuanguanli-map/map.wxss create mode 100644 miniprogram/pages/renyuanguanli/renyuanguanli.js create mode 100644 miniprogram/pages/renyuanguanli/renyuanguanli.json create mode 100644 miniprogram/pages/renyuanguanli/renyuanguanli.wxml create mode 100644 miniprogram/pages/renyuanguanli/renyuanguanli.wxss create mode 100644 miniprogram/pages/saft-education-user-bind/index.js create mode 100644 miniprogram/pages/saft-education-user-bind/index.json create mode 100644 miniprogram/pages/saft-education-user-bind/index.wxml create mode 100644 miniprogram/pages/saft-education-user-bind/index.wxss create mode 100644 miniprogram/pages/saft-qr-view/index.js create mode 100644 miniprogram/pages/saft-qr-view/index.json create mode 100644 miniprogram/pages/saft-qr-view/index.wxml create mode 100644 miniprogram/pages/saft-qr-view/index.wxss create mode 100644 miniprogram/pages/shebeiguanli-map/jixiedingwei.js create mode 100644 miniprogram/pages/shebeiguanli-map/jixiedingwei.json create mode 100644 miniprogram/pages/shebeiguanli-map/jixiedingwei.wxml create mode 100644 miniprogram/pages/shebeiguanli-map/jixiedingwei.wxss create mode 100644 miniprogram/pages/shebieguanli-jxsb/shajiangguan.js create mode 100644 miniprogram/pages/shebieguanli-jxsb/shajiangguan.json create mode 100644 miniprogram/pages/shebieguanli-jxsb/shajiangguan.wxml create mode 100644 miniprogram/pages/shebieguanli-jxsb/shajiangguan.wxss create mode 100644 miniprogram/pages/shebieguanli-tzsb/taji.js create mode 100644 miniprogram/pages/shebieguanli-tzsb/taji.json create mode 100644 miniprogram/pages/shebieguanli-tzsb/taji.wxml create mode 100644 miniprogram/pages/shebieguanli-tzsb/taji.wxss create mode 100644 miniprogram/pages/tempRegistration/index.js create mode 100644 miniprogram/pages/tempRegistration/index.json create mode 100644 miniprogram/pages/tempRegistration/index.wxml create mode 100644 miniprogram/pages/tempRegistration/index.wxss create mode 100644 miniprogram/pages/temporaryToExamine/index.js create mode 100644 miniprogram/pages/temporaryToExamine/index.json create mode 100644 miniprogram/pages/temporaryToExamine/index.wxml create mode 100644 miniprogram/pages/temporaryToExamine/index.wxss create mode 100644 miniprogram/pages/updatePassword/updatePassword.js create mode 100644 miniprogram/pages/updatePassword/updatePassword.json create mode 100644 miniprogram/pages/updatePassword/updatePassword.wxml create mode 100644 miniprogram/pages/updatePassword/updatePassword.wxss create mode 100644 miniprogram/pages/winter-training/index.js create mode 100644 miniprogram/pages/winter-training/index.json create mode 100644 miniprogram/pages/winter-training/index.wxml create mode 100644 miniprogram/pages/winter-training/index.wxss create mode 100644 miniprogram/pages/xiangmugaikuang/xiangmugaikuang.js create mode 100644 miniprogram/pages/xiangmugaikuang/xiangmugaikuang.json create mode 100644 miniprogram/pages/xiangmugaikuang/xiangmugaikuang.wxml create mode 100644 miniprogram/pages/xiangmugaikuang/xiangmugaikuang.wxss create mode 100644 miniprogram/sitemap.json create mode 100644 miniprogram/style/guide.wxss create mode 100644 project.config.json create mode 100644 project.private.config.json diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/construction.iml b/.idea/construction.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/construction.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..22b3b03 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/cloudfunctions/callback/config.json b/cloudfunctions/callback/config.json new file mode 100644 index 0000000..43aa5fc --- /dev/null +++ b/cloudfunctions/callback/config.json @@ -0,0 +1,7 @@ +{ + "permissions": { + "openapi": [ + "customerServiceMessage.send" + ] + } +} \ No newline at end of file diff --git a/cloudfunctions/callback/index.js b/cloudfunctions/callback/index.js new file mode 100644 index 0000000..c80f887 --- /dev/null +++ b/cloudfunctions/callback/index.js @@ -0,0 +1,26 @@ +const cloud = require('wx-server-sdk') + +cloud.init({ + // API 调用都保持和云函数当前所在环境一致 + env: cloud.DYNAMIC_CURRENT_ENV +}) + +// 云函数入口函数 +exports.main = async (event, context) => { + + console.log(event) + + const { OPENID } = cloud.getWXContext() + + const result = await cloud.openapi.customerServiceMessage.send({ + touser: OPENID, + msgtype: 'text', + text: { + content: '收到:' + event.Content, + } + }) + + console.log(result) + + return result +} diff --git a/cloudfunctions/callback/package.json b/cloudfunctions/callback/package.json new file mode 100644 index 0000000..dd8f14a --- /dev/null +++ b/cloudfunctions/callback/package.json @@ -0,0 +1,14 @@ +{ + "name": "callback", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "wx-server-sdk": "~2.1.2" + } +} \ No newline at end of file diff --git a/cloudfunctions/echo/config.json b/cloudfunctions/echo/config.json new file mode 100644 index 0000000..16348ce --- /dev/null +++ b/cloudfunctions/echo/config.json @@ -0,0 +1,5 @@ +{ + "permissions": { + "openapi": [] + } +} diff --git a/cloudfunctions/echo/index.js b/cloudfunctions/echo/index.js new file mode 100644 index 0000000..4f83878 --- /dev/null +++ b/cloudfunctions/echo/index.js @@ -0,0 +1,8 @@ +const cloud = require('wx-server-sdk') + +exports.main = async (event, context) => { + // event.userInfo 是已废弃的保留字段,在此不做展示 + // 获取 OPENID 等微信上下文请使用 cloud.getWXContext() + delete event.userInfo + return event +} diff --git a/cloudfunctions/echo/package.json b/cloudfunctions/echo/package.json new file mode 100644 index 0000000..1e62da3 --- /dev/null +++ b/cloudfunctions/echo/package.json @@ -0,0 +1,14 @@ +{ + "name": "echo", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "wx-server-sdk": "~2.1.2" + } +} \ No newline at end of file diff --git a/cloudfunctions/login/config.json b/cloudfunctions/login/config.json new file mode 100644 index 0000000..16348ce --- /dev/null +++ b/cloudfunctions/login/config.json @@ -0,0 +1,5 @@ +{ + "permissions": { + "openapi": [] + } +} diff --git a/cloudfunctions/login/index.js b/cloudfunctions/login/index.js new file mode 100644 index 0000000..46c44aa --- /dev/null +++ b/cloudfunctions/login/index.js @@ -0,0 +1,36 @@ +// 云函数模板 +// 部署:在 cloud-functions/login 文件夹右击选择 “上传并部署” + +const cloud = require('wx-server-sdk') + +// 初始化 cloud +cloud.init({ + // API 调用都保持和云函数当前所在环境一致 + env: cloud.DYNAMIC_CURRENT_ENV +}) + +/** + * 这个示例将经自动鉴权过的小程序用户 openid 返回给小程序端 + * + * event 参数包含小程序端调用传入的 data + * + */ +exports.main = async (event, context) => { + console.log(event) + console.log(context) + + // 可执行其他自定义逻辑 + // console.log 的内容可以在云开发云函数调用日志查看 + + // 获取 WX Context (微信调用上下文),包括 OPENID、APPID、及 UNIONID(需满足 UNIONID 获取条件)等信息 + const wxContext = cloud.getWXContext() + + return { + event, + openid: wxContext.OPENID, + appid: wxContext.APPID, + unionid: wxContext.UNIONID, + env: wxContext.ENV, + } +} + diff --git a/cloudfunctions/login/package.json b/cloudfunctions/login/package.json new file mode 100644 index 0000000..3c5d61a --- /dev/null +++ b/cloudfunctions/login/package.json @@ -0,0 +1,14 @@ +{ + "name": "login", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "wx-server-sdk": "~2.1.2" + } +} diff --git a/cloudfunctions/openapi/config.json b/cloudfunctions/openapi/config.json new file mode 100644 index 0000000..0074569 --- /dev/null +++ b/cloudfunctions/openapi/config.json @@ -0,0 +1,15 @@ +{ + "permissions": { + "openapi": [ + "wxacode.get", + "subscribeMessage.send", + "subscribeMessage.addTemplate", + "templateMessage.send", + "templateMessage.addTemplate", + "templateMessage.deleteTemplate", + "templateMessage.getTemplateList", + "templateMessage.getTemplateLibraryById", + "templateMessage.getTemplateLibraryList" + ] + } +} \ No newline at end of file diff --git a/cloudfunctions/openapi/index.js b/cloudfunctions/openapi/index.js new file mode 100644 index 0000000..1ae21a4 --- /dev/null +++ b/cloudfunctions/openapi/index.js @@ -0,0 +1,87 @@ +// 云函数入口文件 +const cloud = require('wx-server-sdk') + +cloud.init() + +// 云函数入口函数 +exports.main = async (event, context) => { + console.log(event) + switch (event.action) { + case 'requestSubscribeMessage': { + return requestSubscribeMessage(event) + } + case 'sendSubscribeMessage': { + return sendSubscribeMessage(event) + } + case 'getWXACode': { + return getWXACode(event) + } + case 'getOpenData': { + return getOpenData(event) + } + default: { + return + } + } +} + +async function requestSubscribeMessage(event) { + // 此处为模板 ID,开发者需要到小程序管理后台 - 订阅消息 - 公共模板库中添加模板, + // 然后在我的模板中找到对应模板的 ID,填入此处 + return '请到管理后台申请模板 ID 然后在此替换' // 如 'N_J6F05_bjhqd6zh2h1LHJ9TAv9IpkCiAJEpSw0PrmQ' +} + +async function sendSubscribeMessage(event) { + const { OPENID } = cloud.getWXContext() + + const { templateId } = event + + const sendResult = await cloud.openapi.subscribeMessage.send({ + touser: OPENID, + templateId, + miniprogram_state: 'developer', + page: 'pages/openapi/openapi', + // 此处字段应修改为所申请模板所要求的字段 + data: { + thing1: { + value: '咖啡', + }, + time3: { + value: '2020-01-01 00:00', + }, + } + }) + + return sendResult +} + +async function getWXACode(event) { + + // 此处将获取永久有效的小程序码,并将其保存在云文件存储中,最后返回云文件 ID 给前端使用 + + const wxacodeResult = await cloud.openapi.wxacode.get({ + path: 'pages/openapi/openapi', + }) + + const fileExtensionMatches = wxacodeResult.contentType.match(/\/([^\/]+)/) + const fileExtension = (fileExtensionMatches && fileExtensionMatches[1]) || 'jpg' + + const uploadResult = await cloud.uploadFile({ + // 云文件路径,此处为演示采用一个固定名称 + cloudPath: `wxacode_default_openapi_page.${fileExtension}`, + // 要上传的文件内容可直接传入图片 Buffer + fileContent: wxacodeResult.buffer, + }) + + if (!uploadResult.fileID) { + throw new Error(`upload failed with empty fileID and storage server status code ${uploadResult.statusCode}`) + } + + return uploadResult.fileID +} + +async function getOpenData(event) { + return cloud.getOpenData({ + list: event.openData.list, + }) +} diff --git a/cloudfunctions/openapi/package.json b/cloudfunctions/openapi/package.json new file mode 100644 index 0000000..fc486e1 --- /dev/null +++ b/cloudfunctions/openapi/package.json @@ -0,0 +1,14 @@ +{ + "name": "openapi", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "wx-server-sdk": "~2.1.2" + } +} diff --git a/miniprogram/app.js b/miniprogram/app.js new file mode 100644 index 0000000..5db79b0 --- /dev/null +++ b/miniprogram/app.js @@ -0,0 +1,152 @@ +//app.js + +//全局分享 +!function(){ + var PageTmp = Page; + Page =function (pageConfig) { + // 设置全局默认分享 + pageConfig = Object.assign({ + //右上角分享功能 + onShareAppMessage () { + return { + title: '智慧工地优管',//分享标题 + path: '/pages/login/login',//分享用户点开后页面 + success (res) { + console.log('分享成功!') + } + } + } + },pageConfig); + PageTmp(pageConfig); + }; +}(); + +App({ + globalData: { + paramDeptId:'', + userProjectId:'', + appId: "wxc44b5d588f599758", + // 智慧工地后台接口访问域名 + // reqUrl:"http://wxw.ngrok.makalu.cc", + //reqUrl:'https://jaapplets.makalu.cc', + //reqUrl:'https://sxyanzhu.com/jhwxapp', + //reqUrl:'https://cf.makalu.cc', + reqUrl:'http://127.0.0.1:8091', + + //御景路数字化集成管控平台接口访问域名 + szhUrl:'https://szh.makalu.cc', + // szhUrl:'http://127.0.0.1:9004', + // szhUrl:'http://192.168.31.49:9004', + + //劳务实名制平台接口访问域名 + smzUrl:'https://smz.makalu.cc', + + //安全智管平台接口访问域名 + aqzgUrl:'https://aqzg.makalu.cc', + + //地图相关参数 + + + scale:'', + initialLon:'', + initialLat:'', + markers:[], + //页面跳转参数 + type:'', + value1:'省', + value2:'市/区', + value3:'公司', + projectInfoList:{}, + projectId:'', + projectName:'', + companyName:'', + deptId:'', + }, + + onLaunch: function () { + if (!wx.cloud) { + console.error('请使用 2.2.3 或以上的基础库以使用云能力') + } else { + wx.cloud.init({ + // env 参数说明: + // env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源 + // 此处请填入环境 ID, 环境 ID 可打开云控制台查看 + // 如不填则使用默认环境(第一个创建的环境) + // env: 'my-env-id', + traceUser: true, + }) + } + this.update(); + }, + onLoad(){ + + }, + /** + * 获取用户openid + */ + getOPenId:function () { + wx.login({ + success :res=>{ + console.log(res) + wx.request({ + url: this.globalData.reqUrl+'/weixin/userLogin/getOpenId', + data:{ + "code": res.code, + "appId":"wxc44b5d588f599758", + }, + success:(res)=>{ + wx.setStorageSync('openId', res.data.openid) + } + }) + } + }) +}, + //页面弹窗 + toast: function (msg) { + wx.showToast({ + title: msg, + icon: 'none', + duration: 2000, + mask: true + }); + }, + + //版本更新 + update(){ + //使用更新对象之前判断是否可用 + if (wx.canIUse('getUpdateManager')){ + const updateManager = wx.getUpdateManager() + updateManager.onCheckForUpdate(function (res) { + // 请求完新版本信息的回调 + console.log(res.hasUpdate)//res.hasUpdate返回boolean类型 + if (res.hasUpdate) { + updateManager.onUpdateReady(function () { + wx.showModal({ + title: '更新提示', + content: '新版本已经准备好,是否重启当前应用?', + success(res) { + if (res.confirm) { + // 新的版本已经下载好,调用applyUpdate应用新版本并重启 + updateManager.applyUpdate() + } + } + }) + }) + // 新版本下载失败时执行 + updateManager.onUpdateFailed(function () { + wx.showModal({ + title: '发现新版本', + content: '请删除当前小程序,重新搜索打开...', + }) + }) + } + }) + }else{ + //如果小程序需要在最新的微信版本体验,如下提示 + wx.showModal({ + title: '更新提示', + content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。' + }) + } + } +}) diff --git a/miniprogram/app.js.mine b/miniprogram/app.js.mine new file mode 100644 index 0000000..9aefa08 --- /dev/null +++ b/miniprogram/app.js.mine @@ -0,0 +1,71 @@ +//app.js + +//全局分享 +!function(){ + var PageTmp = Page; + Page =function (pageConfig) { + // 设置全局默认分享 + pageConfig = Object.assign({ + //右上角分享功能 + onShareAppMessage () { + return { + title: '智能工地+',//分享标题 + path: '/pages/login/login',//分享用户点开后页面 + success (res) { + console.log('分享成功!') + } + } + } + },pageConfig); + PageTmp(pageConfig); + }; +}(); + +App({ + globalData: { + paramDeptId:'', + //请求地址参数 + //reqUrl:"http://192.168.31.126:9981", + //reqUrl:'https://zngdtest.makalu.cc/', + reqUrl:'https://zngd.makalu.cc', + //地图相关参数 + scale:'', + initialLon:'', + initialLat:'', + markers:[], + //页面跳转参数 + type:'', + value1:'省', + value2:'市/区', + value3:'公司', + projectInfoList:{}, + projectId:'', + projectName:'', + }, + + onLaunch: function () { + if (!wx.cloud) { + console.error('请使用 2.2.3 或以上的基础库以使用云能力') + } else { + wx.cloud.init({ + // env 参数说明: + // env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源 + // 此处请填入环境 ID, 环境 ID 可打开云控制台查看 + // 如不填则使用默认环境(第一个创建的环境) + // env: 'my-env-id', + traceUser: true, + }) + } + }, + + //页面弹窗 + toast: function (msg) { + wx.showToast({ + title: msg, + icon: 'none', + duration: 2000, + mask: true + }); + } + +}) \ No newline at end of file diff --git a/miniprogram/app.json b/miniprogram/app.json new file mode 100644 index 0000000..e37697a --- /dev/null +++ b/miniprogram/app.json @@ -0,0 +1,147 @@ +{ + "pages": [ + "pages/login/login", + "pages/gongchengliebiao/gongchengliebiao", + "pages/gengduogongneng/gengduogongneng", + "pages/xiangmugaikuang/xiangmugaikuang", + "pages/renyuanguanli/renyuanguanli", + "pages/shebieguanli-tzsb/taji", + "pages/shebieguanli-jxsb/shajiangguan", + "pages/ranyuanguanli-map/map", + "pages/map/map", + "pages/shebeiguanli-map/jixiedingwei", + "pages/deepExcavation/index", + "pages/Information-review/index", + "pages/newAddPage/safetyManagement/index", + "pages/learn-page/index", + "pages/Personnel-information-binding/index", + "pages/winter-training/index", + "pages/saft-qr-view/index", + "pages/saft-education-user-bind/index", + "pages/temporaryToExamine/index", + "pages/tempRegistration/index", + "pages/newAddPage/safetyBriefingLearning/index", + "pages/newAddPage2/safetyBriefingLearning/index", + "pages/Highlight-photos/index", + "pages/newAddPage/letterCommitment/index", + "pages/newAddPage2/letterCommitment/index", + "pages/Security-control-echarts/index", + "pages/Concrete-usage/index", + "pages/Quality-Assurance/index", + "pages/Standard-maintenance-room-monitoring/index", + "pages/hnt-strong/index", + "pages/construction/index", + "pages/Construction-Log/index", + "pages/construction-details/index", + "pages/measures/index", + "pages/measures-Chakan/index", + "pages/updatePassword/updatePassword" + ], + "subpackages": [ + { + "root": "pageage", + "name": "pageage", + "pages": [ + "educations-add/index", + "educations-details/index", + "educations-list/index", + "xiangmuhuanjing/xiangmuhuanjing", + "xiangmuyujing/xiangmuyujing", + "yujingxinxi/yujingxinxi", + "xiangmushipin/xiangmushipin", + "AIvideoAnalysis/index", + "AIWarningList/index", + "vehicleManage/index", + "shipinquanping/shipingquanping", + "voucherManagement/index", + "voucherManagementAddto/index", + "biangeng/index", + "suishoupai/suishoupai", + "suishoupai-psh/suishoupai-psh", + + "lw-index/lw-index", + "lw-baobiaochaxun/lw-baobiaochaxun", + "lw-gerenxinxi/lw-gerenxinxi", + "lw-jibenxinxi/lw-jibenxinxi", + "safetyManagement/securityCheckGR/index", + "safetyManagement/securityCheck/index", + "safetyManagement/problemRectificationGR/index", + "safetyManagement/problemRectification/index", + "safetyManagement/securityCheckRectified/index", + "safetyManagement/addSafetyInspect/index", + "Security-control-echarts/index", + "dangerousProject/index", + "samplingRetesting/index", + "samplingRetestingDeliver/index", + "samplingRetestingUpload/index", + "samplingAddRetestingDeliver/index", + "samplingRetestingDetail/index", + "Progress-management/index", + "Material-Management/index", + "technical-management/index" + ], + "independent": false + } + ], + "usingComponents": { + "van-row": "@vant/weapp/row", + "van-col": "@vant/weapp/col", + "van-popup": "@vant/weapp/popup/index", + "van-picker": "@vant/weapp/picker/index", + "van-uploader": "@vant/weapp/uploader/index", + "van-datetime-picker": "@vant/weapp/datetime-picker/index", + "van-radio": "@vant/weapp/radio/index", + "van-radio-group": "@vant/weapp/radio-group/index", + "van-toast": "@vant/weapp/toast/index", + "ec-canvas": "ec-canvas/ec-canvas", + "van-sticky": "@vant/weapp/sticky", + "van-calendar": "@vant/weapp/calendar/index", + "van-icon": "@vant/weapp/icon/index", + "van-image": "@vant/weapp/image/index", + "pie-chart": "pages/components/pie-chart/index", + "deep-select": "pages/components/deep-select/index", + "select-btn": "pages/components/select-btn/index", + "bar-chart": "pages/components/bar-chart/index", + "bar-chart-warning": "pages/components/bar-chart-warning/index", + "pz-screen": "pages/components/pz-screen/index", + "pz-screen-training": "pages/components/pz-screen-training/index", + "pz-screen-training-index": "pages/components/pz-screen-training-index/index", + "select-date": "pages/components/select-date/index", + "voucher-select": "pages/components/voucher-select/index", + "voucher-selects": "pages/components/voucher-selects/index", + "voucher-selected": "pages/components/voucher-selected/index", + "voucher-date": "pages/components/voucher-date/index", + "voucher-date-copy": "pages/components/voucher-date-copy/index", + "file-uploader": "pages/components/file-uploader/index", + "project-select": "pages/components/project-select/index", + "safety-pie-chart": "./newComponents/safety-pie-chart/index", + "safety-pie-charts": "./newComponents/safety-pie-charts/index", + "safety-bar-chart": "./newComponents/safety-bar-chart/index", + "safety-bar-charts": "./newComponents/safety-bar-charts/index", + "safety-bar-chartss": "./newComponents/safety-bar-chartss/index", + "file-uploader-copy": "pages/components/file-uploader-copy/index", + "voucher-many-select": "pages/components/voucher-many-select/index", + "sign": "pages/components/sign/sign", + "safety-number": "./newComponents/number/index", + "select-person": "./newComponents/select-person/index", + "van-dropdown-menu": "@vant/weapp/dropdown-menu/index", + "van-dropdown-item": "@vant/weapp/dropdown-item/index", + "curve-echarts": "pages/components/curve-echarts/index", + "curve-echarts-copy": "pages/components/curve-echarts-copy/index" + }, + "window": { + "backgroundTextStyle": "light", + "navigationBarBackgroundColor": "#191d28", + "navigationBarTextStyle": "white" + }, + "style": "v2", + "sitemapLocation": "sitemap.json", + "permission": { + "scope.userLocation": { + "desc": "你的位置信息将用于小程序位置接口的效果展示" + } + }, + "requiredPrivateInfos": [ + "getLocation" + ] +} \ No newline at end of file diff --git a/miniprogram/app.wxss b/miniprogram/app.wxss new file mode 100644 index 0000000..1c21a07 --- /dev/null +++ b/miniprogram/app.wxss @@ -0,0 +1,1525 @@ +/**app.wxss**/ +.container { + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + padding: 200rpx 0; + box-sizing: border-box; + +} +page{ + background: #191d28; + color: #ffffff; + font-size: 30rpx; +} + +/* 自定义顶部样式 */ +.header_title{ + position: fixed; + width:100%; + z-index: 5; + margin: 0; + padding: 85rpx 0 30rpx; + background: #191d28; +} +/* 自定义顶部样式 */ +.header_title_saft{ + width:100%; + z-index: 5; + margin: 0; + padding: 85rpx 0 30rpx; + background: #191d28; +} +.header_name{ + text-align: center; +} +.header_img{ + padding-left: 30rpx; + padding-top: 10rpx; +} +.header_fh{ + font-size: 28rpx; + position: relative; + top: -5rpx; +} +.header_img image{ + width: 30rpx; + height:30rpx; +} + +/* 中间内容用含有max_content 的 view 包起来 */ +.max_content{ + padding: 166rpx 0 180rpx; +} +.min_content{ + padding: 166rpx 0 20rpx; +} +.max_new_content{ + padding: 0 0 120rpx; +} + +/* 左侧菜单 */ +.left_max{ + padding-top: 180rpx; +} +.left_head{ + width: 140rpx; + height: 140rpx; + margin: auto; + background: #2b345b; + border-radius: 50%; +} +.left_head image{ + width: 140rpx; + height: 140rpx; + border-radius: 50%; +} +.left_info{ + font-size: 28rpx; + padding-top: 10rpx; +} +.left_info_name{ + padding: 10rpx; +} +.left_info_dept{ + text-align: center; + margin-bottom: 40rpx; +} +.left_manage_max{ + padding: 50rpx 0; +} +.left_manage_min{ + padding: 0 5%; + margin-top: 40rpx; +} +.left_manage{ + padding: 20rpx 20rpx 15rpx; + background: #2b345b; + border-radius: 100rpx; + font-size: 28rpx; +} +.left_manage:active{ + background: #232a4a; +} +.left_pro{ + position: relative; + top: -10rpx; + padding-left: 20rpx; +} +.left_icon{ + width: 40rpx; + height: 40rpx; +} +.left_flaot{ + width: 40rpx; + height: 40rpx; + float: right; +} +.left_password{ + text-align: center; + padding-bottom: 5rpx; +} +.left_sign{ + text-align: center; + padding-bottom: 5rpx; + color: #F56C6C; +} + +/* 底部导航 */ +.van-tabbar.van-tabbar--fixed{ + background-image: linear-gradient(#33426b, #202b47); +} +.van-tabbar.van-tabbar--fixed:after { + border-width: 0px 0; +} + +/* 页面公用部分样式 */ +.video_add{ + padding: 20rpx 30rpx; +} +.video_address{ + background:#30343f; + padding:0 20rpx; + border-radius:50rpx; + font-size: 28rpx; +} +.video_address_min{ + background:url("http://fileimg.makalu.cc/CORE_B1C818B4CF2C44FE9D96624589329EBC.png") no-repeat left/40rpx; + height: 80rpx; + line-height: 80rpx; + padding-left: 50rpx; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + word-break: break-all; +} +/* 清除上浮 */ +.clearfix:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} +.gif{ + margin:400rpx auto 0; + text-align: center; +} +.gif image{ + width: 60rpx; + height: 60rpx; +} +.gif view{ + padding-top: 20rpx; +} + +/* 建安公司新页面 */ +.modify_video_nav{ + background: #32416a; + margin-top: 20rpx; + display: flex; + align-items: center; + justify-content: space-evenly; + padding: 25rpx 0; + color: #7c95d7; +} +.modify_video_nav .active{ + color: #ffffff; +} +.modify_video_nav .active text{ + padding: 15rpx 0; + border-bottom: 3px solid #5c9efe; +} +.modify_echarts_max{ + margin-top: 30rpx; + padding:0 20rpx; +} +.modify_echarts_min{ + background:#1e2336 ; + font-size: 28rpx; + padding: 30rpx; +} +.modify_echarts_title_min{ + padding: 10rpx; + display: flex; + justify-content: space-between; + align-items: center; +} +.modify_eharts_title{ + height: 40rpx; + line-height: 40rpx; + padding-left: 40rpx; + background: url("http://fileimg.makalu.cc/CORE_52887EE6A33042408E11C2174974ABA1.png") no-repeat left/35rpx; +} +.modify_list_btn{ + font-size: 28rpx; + color: #7a8fce; +} +.modify_video_work_area{ + margin-top: 20rpx; + padding:10rpx 30rpx; +} +.modify_video_work_area{ + height: 40rpx; + line-height: 40rpx; + padding-left: 40rpx; + font-size: 28rpx; + background: url("http://fileimg.makalu.cc/CORE_52887EE6A33042408E11C2174974ABA1.png") no-repeat left/35rpx; +} + +.video_ai_survey{ + padding: 15rpx ; +} +.ai_video_con{ + display: flex; + justify-content: space-between; + align-items: center; + padding: 30rpx 0 30rpx 30rpx; + color: #ffffff; +} +.ai_video_con_title{ + display: flex; + align-items: center; +} +.ai_video_con_title image{ + width: 40rpx; + height: 40rpx; +} +.ai_video_con_title text{ + padding-left: 15rpx; +} +.ai_video_con_number text{ + font-size: 35rpx; + font-weight: bold; + color: #00ecfe; +} + +.video_list_max{ + padding: 15rpx; +} +.ai_warning_list{ + padding: 30rpx 0; + border-bottom: 1px solid #404a74; + display: flex; + align-items: center; +} +.ai_warning_list_img{ + width: 220rpx; + height: 180rpx; + border-radius: 8rpx; +} +.ai_warning_list_con{ + padding-left: 20rpx; + font-size: 30rpx; + width: calc(100% - 240rpx); +} +.ai_warning_list_con .ai_warning_list_project{ + padding: 5rpx 0; + color: #ffffff; + font-weight: bold; +} +.ai_warning_list_con view{ + padding: 7rpx 0; + +} +.ai_warning_list_reason text{ + color: #ff8909; +} +.ai_warning_list_position text{ + color: #00a8ff; +} +.ai_warning_list_time{ + font-size: 26rpx; + display: flex; + align-items: center; + justify-content: space-between; +} +.ai_warning_list_time_date{ + color: #89a3ed; +} +.ai_warning_list_video_btn{ + background: #404a74; + font-size: 22rpx; + border-radius: 5rpx; + color: #ffffff; + padding: 5rpx 10rpx !important; + display: flex; + align-items: center; +} +.ai_warning_list_video_btn image{ + width: 22rpx; + height: 22rpx; + margin-right: 10rpx; +} + +.video_icon text{ + font-size: 36rpx; + color: #00a8ff; +} +.video_num{ + padding:0 30rpx; + height: 120rpx; +} +.video_icon { + font-size: 28rpx; + text-align: center; + padding: 30rpx 0; +} +.video_icon image{ + width: 40rpx; + height: 40rpx; + position: relative; + top: 10rpx; +} + +.vehicle_video_nav_max{ + padding:10rpx 20rpx; +} +.vehicle_video_nav_min{ + background: #1c2232; + display: flex; + align-items: center; +} +.vehicle_video_nav{ + padding: 20rpx; + font-size: 28rpx; +} +.vehicle_video_nav.active{ + background: #2b345b; + border-radius: 10rpx; +} +.modify_vehicle_video{ + padding: 30rpx 10rpx 0; +} +.modify_vehicle_video video{ + width: 100%; + height: 350rpx; + border-radius: 10rpx; +} + +.modify_list_license_plate_max{ + padding:30rpx 5rpx; +} +.modify_list_license_plate{ + border: 2px solid #2b4169; + text-align: center; + padding: 10rpx 0; + background: #1f253b; +} +.modify_list_license_direction{ + padding: 30rpx 10rpx 10rpx; + font-size: 28rpx; + color:#8ba3ed; +} +.modify_list_photos_max{ + padding: 20rpx 10rpx; +} +.modify_list_photos_min{ + width: 100%; + height: 220rpx; + background: #232943 url("http://fileimg.makalu.cc/WEB_6F3E3915E1A44AF6BE55F4B1BE0E277F.png") no-repeat center/130rpx 130rpx; + border-radius: 10rpx; +} +.modify_list_photos_min image{ + width: 100%; + height: 100%; + border-radius: 10rpx; +} +.modify_list_photos_time{ + padding: 20rpx 0 0; + font-size: 28rpx; + text-align: center; +} + +/* 安全管控 */ +.deep_select{ + padding: 15rpx; +} +.deep_select_padding{ + padding: 15rpx; +} +.deep_point_position{ + display: flex; + justify-content: space-evenly; + align-items: center; + font-size: 28rpx; + color: #737478; + padding: 20rpx 0; + margin-bottom: 30rpx; +} +.deep_point_position .active{ + color: #88a2ec; +} +.deep_point_position .active text{ + color: #08d6eb; +} +.deep_modular_max{ + padding:50rpx 30rpx; +} +.deep_modular_min{ + background: #1e2336; + margin-bottom: 30rpx; +} +.deep_modular_title{ + padding:20rpx 20rpx; + display: flex; + align-items: center; + justify-content: space-between; + font-size: 28rpx; +} +.deep_qingxie{ + background: url("http://fileimg.makalu.cc/WEB_EE67AE44D92E4894AEF2AAD8A511CFE1.png") no-repeat left/30rpx 30rpx; + padding-left: 40rpx; +} +.deep_weiyi{ + background: url("http://fileimg.makalu.cc/WEB_80265DAD5962462DA855FE1E6E735650.png") no-repeat left/30rpx 30rpx; + padding-left: 40rpx; +} +.modify_video_nav_af{ + margin: 0; +} + +.modify_video_add{ + margin-bottom: 30rpx; +} +.dangerous_node{ + display: flex; + align-items: center; + justify-content: space-evenly; + padding: 40rpx 0; +} +.dangerous_node_min{ + text-align: center; +} +.dangerous_node_number{ + font-size: 38rpx; + padding: 15rpx 0; +} +.cyan{ + color: #08d6ed; +} +.blue{ + color: #1879da; +} +.orange{ + color: #fd9729; +} +.dangerous_node_title{ + display: flex; + align-items: center; + justify-content: center; + padding-top: 15rpx; +} +.dangerous_node_title image{ + width: 40rpx; + height: 40rpx; + margin-right: 15rpx; +} + +.timeline_max{ + padding: 30rpx 30rpx 30rpx 40rpx; +} +.timeline_for{ + padding-bottom: 50rpx; + border-left: 1px solid #1d2b52; +} +.timeline_for_title{ + padding-bottom: 20rpx; + display: flex; + align-items: center; + position: relative; +} +.timeline_for_dot{ + width: 20rpx; + height: 20rpx; + background: #ff0000; + position: absolute; + left: -10rpx; + border-radius: 50%; +} +.timeline_for_text{ + padding-left: 40rpx; +} +.timeline_for_list{ + padding: 10rpx 0 10rpx 40rpx; + display: flex; + align-items: center; + color: #d4d9ec; +} + +.timeline_for_time{ + color: #43aeff; +} +.timeline_for_state_1{ + height: 40rpx; + width: 160rpx; + text-align: center; + line-height: 40rpx; + font-size: 24rpx; + background: url("http://fileimg.makalu.cc/WEB_F5E44186F6C44161B99491284E33EEE6.png") no-repeat center/100% 100%; +} +.timeline_for_state_2{ + height: 40rpx; + width: 160rpx; + text-align: center; + line-height: 40rpx; + font-size: 24rpx; + background: url("http://fileimg.makalu.cc/WEB_345B9059DAD1492EB37EC4814EB340F0.png") no-repeat center/100% 100%; +} +.timeline_for_file{ + padding: 10rpx 0 10rpx 40rpx; + font-size: 28rpx; + color: #d4d9ec; + display: flex; +} +.timeline_for_list_title{ + width: 140rpx; + padding-top: 10rpx; +} + +.timeline_for_list_file{ + padding-top: 10rpx; + width: calc(100% - 140rpx); +} +.zs_level_list_label{ + padding:0 10rpx; +} +.zs_level_list_label view{ + padding: 10rpx 0; + color: #7f91f5; + text-decoration: underline; +} +.zs_level_list_label view:active{ + color: #4f6aff; +} + +.pz_list_max{ + padding: 30rpx 10rpx; +} +.pz_list_for{ + padding: 30rpx; + background: #1e2336; + margin-bottom: 30rpx; +} +.pz_list_for_list{ + padding: 10rpx 0 ; +} + + +.modify_video_add{ + margin-bottom: 30rpx; +} +.dangerous_node{ + display: flex; + align-items: center; + justify-content: space-evenly; + padding: 40rpx 0; +} +.dangerous_node_min{ + text-align: center; +} +.dangerous_node_number{ + font-size: 38rpx; + padding: 15rpx 0; +} +.cyan{ + color: #08d6ed; +} +.blue{ + color: #1879da; +} +.orange{ + color: #fd9729; +} +.dangerous_node_title{ + display: flex; + align-items: center; + justify-content: center; + padding-top: 15rpx; +} +.dangerous_node_title image{ + width: 40rpx; + height: 40rpx; + margin-right: 15rpx; +} + +.timeline_max{ + padding: 30rpx 30rpx 30rpx 40rpx; +} +.timeline_for{ + padding-bottom: 50rpx; + border-left: 2px solid #3c59a8; +} +.timeline_for_title{ + padding-bottom: 20rpx; + display: flex; + align-items: center; + position: relative; +} + +.timeline_for_dot{ + width: 20rpx; + height: 20rpx; + border: 1px solid #b2badf; + background: #191d28; + position: absolute; + left: -14rpx; + border-radius: 50%; +} +.dot_blue{ + border: 1px solid #1680d6; + background: #1680d6; +} +.dot_red{ + border: 1px solid #ff0000; + background: #ff0000; +} + +.timeline_for_time{ + color: #43aeff; +} +.timeline_for_state_1{ + height: 40rpx; + width: 160rpx; + text-align: center; + line-height: 40rpx; + font-size: 24rpx; + background: url("http://fileimg.makalu.cc/WEB_F5E44186F6C44161B99491284E33EEE6.png") no-repeat center/100% 100%; +} +.timeline_for_state_2{ + height: 40rpx; + width: 160rpx; + text-align: center; + line-height: 40rpx; + font-size: 24rpx; + background: url("http://fileimg.makalu.cc/WEB_345B9059DAD1492EB37EC4814EB340F0.png") no-repeat center/100% 100%; +} +.timeline_for_file{ + padding: 10rpx 0 10rpx 40rpx; + font-size: 28rpx; + color: #d4d9ec; + display: flex; +} +.timeline_for_list_title{ + width: 140rpx; + padding-top: 10rpx; +} + +.timeline_for_list_file{ + padding-top: 10rpx; + width: calc(100% - 140rpx); +} +.zs_level_list_label{ + padding:0 10rpx; +} +.zs_level_list_label view{ + padding: 10rpx 0; + color: #7f91f5; + text-decoration: underline; +} +.zs_level_list_label view:active{ + color: #4f6aff; +} + + + + +.timeline_for_text{ + padding-left: 40rpx; +} +.timeline_for_list{ + padding: 10rpx 0 10rpx 40rpx; + display: flex; + align-items: center; + font-size: 28rpx; + color: #d4d9ec; +} + + + +.pz_list_max{ + padding: 30rpx 10rpx; +} +.pz_list_for{ + padding: 30rpx; + background: #1e2336; + margin-bottom: 30rpx; +} +.pz_list_for_list{ + padding: 10rpx 0 ; +} + + + + + + +/* 2022-12-22 新增样式 */ +.add_to_btn{ + position: fixed; + width: 100%; + height: 100%; + bottom: 0; + left: 0; + background: #212737; + height: 100rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; +} +.add_to_btn image{ + width: 36rpx; + height: 36rpx; + margin-right: 15rpx; +} +.add_to_btn:active{ + background: #1e2336; +} + +.ai_video_popup video{ + height: 500rpx; + width: 100%; +} +/* 凭证管理新增 */ +.add_max{ + padding: 30rpx 40rpx; +} +.add_title{ + color: #8ca0e7; + padding:0 15rpx 30rpx; +} +.add_textarea{ + height: 150rpx ; + width:calc(100% - 40rpx); + background: #212737; + border-radius: 10rpx; + padding: 20rpx; +} +.add_btn{ + padding-top: 100rpx; + display: flex; + justify-content: space-evenly; + align-items: center; +} +.add_btn_qx{ + background: #3f424b; + height:80rpx; + width: 250rpx; + text-align: center; + line-height: 80rpx; + border-radius: 10rpx; +} +.add_btn_qx:active{ + background: #3a3e49; +} +.add_btn_bc{ + background: #523fa8; + height:80rpx; + width: 250rpx; + text-align: center; + line-height: 80rpx; + border-radius: 10rpx; +} +.add_btn_bc:active{ + background: #4a35aa; +} + + +.van-picker__mask { + background-image: none !important; +} +.van-hairline--top-bottom:after { + border-top: 1px solid #3a4c8b !important; + border-bottom: 1px solid #3a4c8b !important; +} + + + +.van-picker { + background: none !important; +} + + + + + +/* 2023-5-4 新样式 */ +.module_max{ + margin-top: 30rpx; + padding:0 30rpx; +} + +.module_min{ + background:#1e2336 ; + font-size: 30rpx; + padding: 30rpx 20rpx; + border-radius: 15rpx; +} +.module_title{ + height: 40rpx; + line-height: 40rpx; + padding-left: 40rpx; + background: url("http://fileimg.makalu.cc/CORE_52887EE6A33042408E11C2174974ABA1.png") no-repeat left/35rpx; +} +.safety_inspect{ + padding:30rpx 20rpx; +} +.safety_inspect_title{ + color: #e9fbf9; + font-size: 26rpx; + padding: 20rpx; + background: url("http://fileimg.makalu.cc/WEB_F9046A91C12646ECAEB6024455C35F15.png") no-repeat left/15rpx 30rpx; +} +.safety_prop{ + display: flex; + align-items: center; + padding: 20rpx 0 20rpx 20rpx; + color: #cbdaff; + background: url("http://fileimg.makalu.cc/WEB_23ADD5DCCD3C42BA9FF57BE9838766B4.png") no-repeat left/15rpx 25rpx; +} +.safety_prop_val{ + color: #687a92; +} +.safety_prop_val text{ + color: #ffffff; + font-size: 32rpx; +} +.safety_issue{ + padding-top: 20rpx; +} +.safety_issue_number{ + padding:0 20rpx; + height: 50rpx; + display: flex; + align-items: center; + background: url("http://fileimg.makalu.cc/WEB_FD18DB06491847FA913067FF7B812FBA.png") no-repeat left/100% 100%; +} +.safety_deep{ + display: flex; + align-items: center; + justify-content: space-around; +} +.safety_deep_row{ + display: flex; + align-items: center; + padding: 40rpx 0; +} +.safety_deep_img{ + height: 110rpx; + width: 110rpx; + text-align: center; + line-height: 140rpx; +} +.safety_deep_img_1{ + background: url("http://fileimg.makalu.cc/WEB_F2CA2559EEB9456791461DBC9F8026C8.png") no-repeat center/100rpx 100rpx; +} +.safety_deep_img_2{ + background: url("http://fileimg.makalu.cc/WEB_93D3C5384E774B77AA5B105BE448F2D8.png") no-repeat center/100rpx 100rpx; +} +.safety_deep_img image{ + width: 50rpx; + height: 50rpx; +} +.safety_deep_col{ + padding-left: 10rpx; + color: #cbdaff; +} +.safety_deep_col_text{ + padding: 10rpx 0; +} +.safety_deep_col_number text{ + font-size: 34rpx; + color: #80cefc; + font-weight: bold; +} +.safety_deep_col_green text{ + color: #62efbb; +} + + +.safety_electric{ + color: #cbdaff; + display: flex; + align-items: center; + justify-content: center; + padding: 20rpx 0; + font-size: 26rpx; +} +.safety_electric_threshold{ + color: #ff0000; + font-size: 26rpx; +} +.safety_electric_row{ + display: flex; + align-items: center; + padding: 30rpx 0 30rpx 10rpx; +} +.safety_electric_threshold text{ + padding-right: 5rpx; + font-size: 32rpx; +} +.safety_electric_img{ + height: 110rpx; + width: 110rpx; + text-align: center; + line-height: 140rpx; + background: url("http://fileimg.makalu.cc/WEB_2FECA878591045B39AEBB41FE248C97B.png") no-repeat center/100rpx 100rpx; +} +.safety_electric_img image{ + height: 50rpx; + width: 50rpx; +} +.safety_electric_col{ + padding-left: 15rpx; + color: #cbdaff; +} +.safety_electric_number text{ + font-size: 34rpx; + color: #80cefc; + font-weight: bold; +} +.safety_deep_col_blue text{ + color: #028ffb; +} + +.module_title_flex{ + display: flex; + align-items: center; + justify-content: space-between; +} +.module_see_info{ + font-size: 26rpx; + color: #028ffb; + display: flex; + align-items: center; +} +.module_see_info:active{ + color: #39a6fa; +} +.safety_highlights{ + padding: 30rpx 0; +} +.safety_highlights_img{ + padding: 20rpx 10rpx; + text-align: center; +} +.safety_highlights_img image{ + width: 270rpx; + height: 270rpx; +} + + +/* 施工安全交底学习 */ +.study_min{ + font-size: 30rpx; + padding: 30rpx; + +} +.study_video { + width: 100%; +} +swiper-item video{ + width: 100%; + height: 100%; +} +.study_examination_questions{ + padding: 15rpx 30rpx; +} +.study_examination_questions_con{ + display:inline-table; + width: 100% ; + +} +.study_examination_questions_topic{ + white-space: normal; +} +.study_examination_questions_radio{ + padding:30rpx 15rpx; +} +.study_examination_questions_list{ + padding: 20rpx 0; + display: flex; + color: #69709a; +} +.study_examination_questions_list.active{ + color: #899ef1; +} +.study_examination_questions_list.error{ + color: #ff0000; +} +.study_radio{ + width: 30rpx; + height: 30rpx; + border: 1px solid #69709a; + border-radius: 3rpx; + color: #171e28; + position: relative; + top: 7rpx; +} +.study_examination_questions_list.active .study_radio{ + border: 1px solid #899ef1; + color: #899ef1; +} +.study_examination_questions_list.error .study_radio{ + border: 1px solid #ff0000; + color: #ff0000; +} + +.study_radio_subject{ + width: calc(100% - 50rpx); + padding-left: 20rpx; + white-space: normal; +} +.study_video_tips{ + padding: 30rpx; + font-size: 28rpx; + color: #028ffb; +} +.answer_result{ + background: #232e49; + padding: 30rpx; + font-size: 35rpx; + border-radius: 10rpx +} +.switch_button{ + padding:50rpx 30rpx; + display: flex; + align-items: center; + justify-content: space-around; +} +.switch_button button{ + width: 250rpx !important; + font-weight: 400 !important; + background: #3f424b; + color: #ffffff; +} +.switch_button_to{ + background: #5140a6 !important; +} + +/* 承诺书 */ +.cns_rich_text_title{ + padding: 30rpx 50rpx; + color: #00a8ff; +} +.cns_rich_content{ + padding: 30rpx 30rpx 0; +} +.cns_rich_text{ + padding: 0 20rpx; + background: #1e2336; + color: #cdd9ff; +} +.cns_confirm{ + padding: 30rpx; +} +.cns_confirm_title{ + padding: 20rpx; + color: #00a8ff; +} +.cns_confirm_text{ + padding: 20rpx; +} +.cns_confirm_sign{ + padding: 20rpx 0; +} +.cns_confirm_sign_case{ + height: 300rpx; + background: rgba(255,255,255,0.1); +} + + +/* 安全管理 安全检查 */ +.inspect_max{ + padding: 30rpx; +} +.inspect_list{ + padding: 20rpx 0; +} +.inspect_for{ + padding: 20rpx 0; + font-size: 30rpx; +} +.inspect_for_bgd{ + background: #1e2336; + padding:0 30rpx; + border-radius: 10rpx 10rpx 0 0; +} +.inspect_list_title{ + border-bottom: 1px solid #323b86; + height: 80rpx; + display: flex; + justify-content: space-between; + align-items: center; +} +.inspect_list_title_label{ + display: flex; + align-items: center; + width: calc(100% - 150rpx); +} +.inspect_list_title_width{ + width: 100%; +} + +.module_title_text{ + width: calc(100% - 150rpx); + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.inspect_list_title_state{ + width: 150rpx; + font-size: 26rpx; + text-align: right; +} +.inspect_list_title_state text{ + padding:5rpx 10rpx; + border-radius: 20rpx 0 20rpx 0; +} +.state_colour_0{ + background: #f3642a; +} +.state_colour_1{ + background: #359a00; +} +.state_colour_2{ + background: #404a6d; + color: #8aa4ee; +} +.inspect_list_title_number{ + width: 80rpx; + height: 80rpx; + border-bottom: 1px solid #6879fd; + text-align: center; + line-height: 80rpx; + color: #6879fd; +} +.inspect_list_title_text{ + width: calc(100% - 80rpx); + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.inspect_list_info{ + padding: 30rpx 5rpx; + color: #d5dbeb; +} +.inspect_list_info_details{ + display: flex; + align-items: center; +} +.inspect_list_info_img{ + width: 150rpx; +} +.inspect_list_info_img_text{ + text-align: center; + color: #89a3ee; + padding-top: 5rpx; + padding-right: 20rpx; +} +.inspect_list_info_data{ + width: calc(100% - 150rpx); +} +.inspect_list_info_data_num{ + display: flex; + align-items: center; + padding: 10rpx 0; +} +.inspect_list_info_data_rec{ + width: calc(100% - 300rpx); +} +.inspect_list_info_data_prop_rec{ + padding: 5rpx 0; + color: #d5dbeb; +} +.inspect_list_info_padding{ + padding: 6px 0; + color: #d5dbeb; +} +.inspect_list_info_flex{ + display: flex; + justify-content: space-between; + align-items: center; +} +.inspect_list_info_upload{ + background-image: linear-gradient(to right, #884cf9 , #7457ff); + padding: 2rpx 15rpx; + border-radius: 30rpx; +} + + +.inspect_list_info_data_num_option { + width: 50%; +} +.inspect_list_info_data_prop{ + padding: 10rpx 0; +} +.color_orange{ + color: #fd8401; +} +.color_green{ + color: #1ab400 ; +} +.color_blue { + color: #45affb; +} +.color_purple{ + color: #89a3ee; +} +.color_type{ + color: #65779b; +} +.inspect_list_info_position{ + padding-top: 20rpx; +} +.inspect_list_info_data_bgd{ + padding:20rpx 30rpx; + background: #313a57; + border-radius: 0 0 10rpx 10rpx; + color: #d5dbeb; +} +.inspect_add_to{ + position: fixed; + right: 30rpx; + bottom: 50rpx; + width: 120rpx; + height: 120rpx; + border-radius: 50%; + background: #273252; + text-align: center; + font-size: 26rpx; + color: #b0ccf5 +} +.inspect_add_to image{ + width: 40rpx; + height: 40rpx; +} +.add_to_font_size{ + font-size: 50rpx !important; +} +/* 问题整改 */ +.inspect_overview_max{ + background: #191d28; + padding-bottom: 30rpx; +} +.inspect_overview{ + background: #1e222e; + padding:0 30rpx; +} +.module_title_padding{ + padding: 30rpx 0 30rpx 40rpx; + border-bottom: 1px solid #303c84; +} +.inspect_overview_list_max{ + padding: 20rpx 0 20rpx 20rpx; +} +.inspect_overview_list{ + padding: 20rpx 0; +} +.problem_list_max{ + padding-bottom: 50rpx; +} +.problem_list_for{ + margin-bottom: 25rpx; +} +.problem_list_title{ + padding: 30rpx; + background: #313b56; +} +.problem_list_title:active{ + background: #29375e +} +.problem_list_content{ + padding:0 30rpx; + background: #1d212d; +} +.problem_list_content_title{ + background: url("http://fileimg.makalu.cc/WEB_80CDF4BF20E1432EAB6469D9E0252224.png") no-repeat left/7rpx 30rpx; + padding:30rpx 20rpx; +} +.problem_list_info{ + padding:10rpx 20rpx; +} +.problem_list_info_title{ + color: #83a5ef +} +.problem_list_info_con{ + padding: 20rpx 10rpx; +} +.problem_list_img{ + padding: 15rpx 0; +} + +.problem_list_module_border{ + border-top: 1px solid #343a86; +} +.problem_list_btn_max{ + padding: 30rpx; + display: flex; + justify-content: flex-end; + align-items: center; +} +.problem_list_btn{ + background: #30384b; + padding: 13rpx 40rpx; + margin: 0 10rpx; + border-radius: 6rpx; + color: #879ff9; +} +.problem_list_btn:active{ + background: #384461; +} +.problem_list_btn_confirm{ + color: #ffffff; + background: #495679; +} +.problem_list_btn_confirm:active{ + background: rgb(61, 76, 124); +} +.problem_list_info_input{ + padding: 20rpx 0; +} +.problem_submit_to{ + padding: 40rpx ; + display: flex; + align-items: center; + justify-content: space-around; +} +.problem_submit_to_btn{ + padding: 20rpx 0; + width: 220rpx; + text-align: center; + border-radius: 10rpx; + background: #3e4148; +} +.problem_submit_to_btn:active{ + background: #292d35; +} +.problem_submit_to_save{ + background: #513ea7; +} +.problem_submit_to_save:active{ + background: #372a70; +} + +/* 新增安全检查 */ +.inspect_info{ + padding: 30rpx; + background: #1e222e; + margin-bottom: 30rpx; +} +.inspect_info_list{ + padding: 10rpx 0; +} +.inspect_info_title{ + padding: 10rpx 0; + color: #83a5ef +} +.inspect_info_type{ + padding: 20rpx 0; + display: flex; + justify-content: space-around; +} +.inspect_info_type view{ + width: 30%; + padding: 18rpx 0; + background: #262c3c; + text-align: center; + border-radius: 10rpx; + color: #6a77a3; +} +.inspect_info_type .active{ + color: #ffffff; + background: #576691; +} +.inspect_input_fill_in{ + height: 90rpx; + background: #212737; + border-radius: 10rpx; + padding: 0 30rpx; +} +.inspect_info_content{ + padding: 20rpx 0; +} +.module_see_info_delete{ + font-size: 26rpx; + color: #ff0000; + display: flex; + align-items: center; +} + +.inspect_new_issues_max{ + padding: 30rpx 0; +} +.inspect_new_issues{ + width: 300rpx; + border-radius: 100rpx; + padding: 20rpx 0; + background: #252d41; + margin: auto; + text-align: center; + color: #89a3ed; + font-size: 34rpx; +} + +.check_issue_finish_btn{ + position: relative; + top:10rpx; + right: 0rpx; + text-align: center; + line-height: 100rpx; + width: 230rpx; + color: #fff; + height: 100rpx; + background-color: #495679; +} +.voucher_select_max{ + padding:0 25rpx; + display: flex; + align-items: center; + background: #212737; + height: 90rpx; + border-radius: 10rpx; +} + +.voucher_select_min{ + width: calc(100% - 30rpx); + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.result_project_name{ + padding: 50rpx 0; + text-align: center; +} +/* 全部下拉选择器 */ +.hj_float{ + float: right; + padding: 5rpx 50rpx 5rpx 20rpx; + background: #2e355f url("http://fileimg.makalu.cc/CORE_5F23F4664AAE44A0BD72BE4BB4C66083.png") no-repeat right/35rpx; + border-radius: 40rpx; + } + .hj_float:active{ + background: #2e355f url("http://fileimg.makalu.cc/CORE_5F23F4664AAE44A0BD72BE4BB4C66083.png") no-repeat right/35rpx; + } + .van-popup--bottom.van-popup--round{ + border-radius: 0 !important + } + .van-popup{ + background-color: var(--popup-background-color,#232a44) !important + } + .van-action-sheet__cancel,.van-action-sheet__item{ + background-color: var(--popup-background-color,#232a44) !important; + color: #0ad7ec; + } + .password-icon{ + width: 40rpx; + height: 40rpx; + position: absolute; + right: 60rpx; + margin-top: -45rpx; + } + .pass{ + padding-right: 25rpx; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/miniprogram/components/@mkl/cell/index.d.ts b/miniprogram/components/@mkl/cell/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram/components/@mkl/cell/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram/components/@mkl/cell/index.js b/miniprogram/components/@mkl/cell/index.js new file mode 100644 index 0000000..b55b75c --- /dev/null +++ b/miniprogram/components/@mkl/cell/index.js @@ -0,0 +1,37 @@ +import { link } from '../mixins/link'; +import { VantComponent } from '../common/component'; +VantComponent({ + classes: [ + 'title-class', + 'label-class', + 'value-class', + 'right-icon-class', + 'hover-class', + ], + mixins: [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, + border: { + type: Boolean, + value: true, + }, + }, + methods: { + onClick(event) { + this.$emit('click', event.detail); + this.jumpLink(); + }, + }, +}); diff --git a/miniprogram/components/@mkl/cell/index.json b/miniprogram/components/@mkl/cell/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/miniprogram/components/@mkl/cell/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/miniprogram/components/@mkl/cell/index.wxml b/miniprogram/components/@mkl/cell/index.wxml new file mode 100644 index 0000000..afaaaf8 --- /dev/null +++ b/miniprogram/components/@mkl/cell/index.wxml @@ -0,0 +1,45 @@ + + + + + + + + {{ title }} + + + + + {{ label }} + + + + + {{ value }} + + + + + + + + diff --git a/miniprogram/components/@mkl/cell/index.wxss b/miniprogram/components/@mkl/cell/index.wxss new file mode 100644 index 0000000..7afd1c4 --- /dev/null +++ b/miniprogram/components/@mkl/cell/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-cell{position:relative;display:-webkit-flex;display:flex;box-sizing:border-box;width:100%;padding:10px 16px;padding:var(--cell-vertical-padding,10px) var(--cell-horizontal-padding,16px);font-size:14px;font-size:var(--cell-font-size,14px);line-height:24px;line-height:var(--cell-line-height,24px);color:#323233;color:var(--cell-text-color,#323233);background-color:#fff;background-color:var(--cell-background-color,#fff)}.van-cell:after{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:auto;right:0;bottom:0;left:16px;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-cell--borderless:after{display:none}.van-cell-group{background-color:#fff;background-color:var(--cell-background-color,#fff)}.van-cell__label{margin-top:3px;margin-top:var(--cell-label-margin-top,3px);font-size:12px;font-size:var(--cell-label-font-size,12px);line-height:18px;line-height:var(--cell-label-line-height,18px);color:#969799;color:var(--cell-label-color,#969799)}.van-cell__value{overflow:hidden;text-align:right;vertical-align:middle;color:#969799;color:var(--cell-value-color,#969799)}.van-cell__title,.van-cell__value{-webkit-flex:1;flex:1}.van-cell__title:empty,.van-cell__value:empty{display:none}.van-cell__left-icon-wrap,.van-cell__right-icon-wrap{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;height:24px;height:var(--cell-line-height,24px);font-size:16px;font-size:var(--cell-icon-size,16px)}.van-cell__left-icon-wrap{margin-right:5px}.van-cell__right-icon-wrap{margin-left:5px;color:#969799;color:var(--cell-right-icon-color,#969799)}.van-cell__left-icon{vertical-align:middle}.van-cell__left-icon,.van-cell__right-icon{line-height:24px;line-height:var(--cell-line-height,24px)}.van-cell--clickable.van-cell--hover{background-color:#f2f3f5;background-color:var(--cell-active-color,#f2f3f5)}.van-cell--required{overflow:visible}.van-cell--required:before{position:absolute;content:"*";left:8px;left:var(--padding-xs,8px);font-size:14px;font-size:var(--cell-font-size,14px);color:#ee0a24;color:var(--cell-required-color,#ee0a24)}.van-cell--center{-webkit-align-items:center;align-items:center}.van-cell--large{padding-top:12px;padding-top:var(--cell-large-vertical-padding,12px);padding-bottom:12px;padding-bottom:var(--cell-large-vertical-padding,12px)}.van-cell--large .van-cell__title{font-size:16px;font-size:var(--cell-large-title-font-size,16px)}.van-cell--large .van-cell__value{font-size:16px;font-size:var(--cell-large-value-font-size,16px)}.van-cell--large .van-cell__label{font-size:14px;font-size:var(--cell-large-label-font-size,14px)} \ No newline at end of file diff --git a/miniprogram/components/@mkl/collapse-item/index.d.ts b/miniprogram/components/@mkl/collapse-item/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram/components/@mkl/collapse-item/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram/components/@mkl/collapse-item/index.js b/miniprogram/components/@mkl/collapse-item/index.js new file mode 100644 index 0000000..6f7de46 --- /dev/null +++ b/miniprogram/components/@mkl/collapse-item/index.js @@ -0,0 +1,92 @@ +import { VantComponent } from "../common/component"; +const nextTick = () => new Promise((resolve) => setTimeout(resolve, 20)); +VantComponent({ + classes: ["title-class", "content-class"], + relation: { + name: "collapse", + type: "ancestor", + current: "collapse-item", + }, + props: { + name: null, + title: null, + value: null, + icon: String, + label: String, + disabled: Boolean, + clickable: Boolean, + border: { + type: Boolean, + value: true, + }, + isLink: { + type: Boolean, + value: true, + }, + }, + data: { + contentHeight: 0, + expanded: false, + transition: false, + }, + mounted() { + this.updateExpanded() + .then(nextTick) + .then(() => { + const data = { transition: true }; + if (this.data.expanded) { + data.contentHeight = "auto"; + } + this.setData(data); + }); + }, + methods: { + updateExpanded() { + if (!this.parent) { + return Promise.resolve(); + } + const { value, accordion } = this.parent.data; + const { children = [] } = this.parent; + const { name } = this.data; + const index = children.indexOf(this); + const currentName = name == null ? index : name; + const expanded = accordion ? value === currentName : (value || []).some((name) => name === currentName); + const stack = []; + if (expanded !== this.data.expanded) { + stack.push(this.updateStyle(expanded)); + } + stack.push(this.set({ index, expanded })); + return Promise.all(stack); + }, + updateStyle(expanded) { + return this.getRect(".van-collapse-item__content") + .then((rect) => rect.height) + .then((height) => { + if (expanded) { + return this.set({ + contentHeight: height ? `${height}px` : "auto", + }); + } + return this.set({ contentHeight: `${height}px` }) + .then(nextTick) + .then(() => this.set({ contentHeight: 0 })); + }); + }, + onClick() { + if (this.data.disabled) { + return; + } + const { name, expanded } = this.data; + const index = this.parent.children.indexOf(this); + const currentName = name == null ? index : name; + this.parent.switch(currentName, !expanded); + }, + onTransitionEnd() { + if (this.data.expanded) { + this.setData({ + contentHeight: "auto", + }); + } + }, + }, +}); diff --git a/miniprogram/components/@mkl/collapse-item/index.json b/miniprogram/components/@mkl/collapse-item/index.json new file mode 100644 index 0000000..0e5425c --- /dev/null +++ b/miniprogram/components/@mkl/collapse-item/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-cell": "../cell/index" + } +} diff --git a/miniprogram/components/@mkl/collapse-item/index.wxml b/miniprogram/components/@mkl/collapse-item/index.wxml new file mode 100644 index 0000000..9d813f5 --- /dev/null +++ b/miniprogram/components/@mkl/collapse-item/index.wxml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/components/@mkl/collapse-item/index.wxss b/miniprogram/components/@mkl/collapse-item/index.wxss new file mode 100644 index 0000000..bdcf6c2 --- /dev/null +++ b/miniprogram/components/@mkl/collapse-item/index.wxss @@ -0,0 +1,60 @@ +@import "../common/index.wxss"; +.van-collapse-item__title .van-cell__right-icon { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; +} +.van-collapse-item__title--expanded .van-cell__right-icon { + -webkit-transform: rotate(-90deg); + transform: rotate(-90deg); +} +.van-collapse-item__title--disabled .van-cell, +.van-collapse-item__title--disabled .van-cell__right-icon { + color: #c8c9cc !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 0.3s ease-in-out; +} +.van-collapse-item__content { + padding: 0 25rpx; + color: #969799; + font-size: 13px; + line-height: 1.5; +} + +.mkl-collapse { + padding: 0 25rpx; + margin-bottom: 40rpx; +} + +.mkl-cell { + background: #fff; + padding: 25rpx; + border-radius: 20rpx; + /* border-top-left-radius: 20rpx; + border-top-right-radius: 20rpx; */ + box-shadow: 0px 0px 10px #ddd; + /* margin-bottom: 40rpx; */ +} + +.mkl-cell__expanded { + border-radius: 20rpx 20rpx 0 0; +} + +.mkl-cell__bottom { + height: 40rpx; +} +.mkl-collapse-container { + box-shadow: 0px 0px 10px #ddd; + transition: height 0.2s; + border-radius: 0 0 20rpx 20rpx; + background: #f5f5f5; +} diff --git a/miniprogram/components/@mkl/collapse/index.d.ts b/miniprogram/components/@mkl/collapse/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram/components/@mkl/collapse/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram/components/@mkl/collapse/index.js b/miniprogram/components/@mkl/collapse/index.js new file mode 100644 index 0000000..33dae31 --- /dev/null +++ b/miniprogram/components/@mkl/collapse/index.js @@ -0,0 +1,47 @@ +import { VantComponent } from '../common/component'; +VantComponent({ + relation: { + name: 'collapse-item', + type: 'descendant', + current: 'collapse', + }, + props: { + value: { + type: null, + observer: 'updateExpanded', + }, + accordion: { + type: Boolean, + observer: 'updateExpanded', + }, + border: { + type: Boolean, + value: true, + }, + }, + methods: { + updateExpanded() { + this.children.forEach((child) => { + child.updateExpanded(); + }); + }, + switch(name, expanded) { + const { accordion, value } = this.data; + const changeItem = name; + if (!accordion) { + name = expanded + ? (value || []).concat(name) + : (value || []).filter((activeName) => activeName !== name); + } else { + name = expanded ? name : ''; + } + if (expanded) { + this.$emit('open', changeItem); + } else { + this.$emit('close', changeItem); + } + this.$emit('change', name); + this.$emit('input', name); + }, + }, +}); diff --git a/miniprogram/components/@mkl/collapse/index.json b/miniprogram/components/@mkl/collapse/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram/components/@mkl/collapse/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram/components/@mkl/collapse/index.wxml b/miniprogram/components/@mkl/collapse/index.wxml new file mode 100644 index 0000000..7ea46bc --- /dev/null +++ b/miniprogram/components/@mkl/collapse/index.wxml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/miniprogram/components/@mkl/collapse/index.wxss b/miniprogram/components/@mkl/collapse/index.wxss new file mode 100644 index 0000000..1bd831f --- /dev/null +++ b/miniprogram/components/@mkl/collapse/index.wxss @@ -0,0 +1 @@ +@import "../common/index.wxss"; diff --git a/miniprogram/components/@mkl/common/color.d.ts b/miniprogram/components/@mkl/common/color.d.ts new file mode 100644 index 0000000..386f307 --- /dev/null +++ b/miniprogram/components/@mkl/common/color.d.ts @@ -0,0 +1,7 @@ +export declare const RED = "#ee0a24"; +export declare const BLUE = "#1989fa"; +export declare const WHITE = "#fff"; +export declare const GREEN = "#07c160"; +export declare const ORANGE = "#ff976a"; +export declare const GRAY = "#323233"; +export declare const GRAY_DARK = "#969799"; diff --git a/miniprogram/components/@mkl/common/color.js b/miniprogram/components/@mkl/common/color.js new file mode 100644 index 0000000..6b285bd --- /dev/null +++ b/miniprogram/components/@mkl/common/color.js @@ -0,0 +1,7 @@ +export const RED = '#ee0a24'; +export const BLUE = '#1989fa'; +export const WHITE = '#fff'; +export const GREEN = '#07c160'; +export const ORANGE = '#ff976a'; +export const GRAY = '#323233'; +export const GRAY_DARK = '#969799'; diff --git a/miniprogram/components/@mkl/common/component.d.ts b/miniprogram/components/@mkl/common/component.d.ts new file mode 100644 index 0000000..307a96c --- /dev/null +++ b/miniprogram/components/@mkl/common/component.d.ts @@ -0,0 +1,3 @@ +import { VantComponentOptions, CombinedComponentInstance } from '../definitions/index'; +declare function VantComponent(vantOptions?: VantComponentOptions>): void; +export { VantComponent }; diff --git a/miniprogram/components/@mkl/common/component.js b/miniprogram/components/@mkl/common/component.js new file mode 100644 index 0000000..4868a06 --- /dev/null +++ b/miniprogram/components/@mkl/common/component.js @@ -0,0 +1,101 @@ +import { basic } from '../mixins/basic'; +const relationFunctions = { + ancestor: { + linked(parent) { + this.parent = parent; + }, + unlinked() { + this.parent = null; + }, + }, + descendant: { + linked(child) { + this.children = this.children || []; + this.children.push(child); + }, + unlinked(child) { + this.children = (this.children || []).filter((it) => it !== child); + }, + }, +}; +function mapKeys(source, target, map) { + Object.keys(map).forEach((key) => { + if (source[key]) { + target[map[key]] = source[key]; + } + }); +} +function makeRelation(options, vantOptions, relation) { + const { type, name, linked, unlinked, linkChanged } = relation; + const { beforeCreate, destroyed } = vantOptions; + if (type === 'descendant') { + options.created = function () { + beforeCreate && beforeCreate.bind(this)(); + this.children = this.children || []; + }; + options.detached = function () { + this.children = []; + destroyed && destroyed.bind(this)(); + }; + } + options.relations = Object.assign(options.relations || {}, { + [`../${name}/index`]: { + type, + linked(node) { + relationFunctions[type].linked.bind(this)(node); + linked && linked.bind(this)(node); + }, + linkChanged(node) { + linkChanged && linkChanged.bind(this)(node); + }, + unlinked(node) { + relationFunctions[type].unlinked.bind(this)(node); + unlinked && unlinked.bind(this)(node); + }, + }, + }); +} +function VantComponent(vantOptions = {}) { + const options = {}; + mapKeys(vantOptions, options, { + data: 'data', + props: 'properties', + mixins: 'behaviors', + methods: 'methods', + beforeCreate: 'created', + created: 'attached', + mounted: 'ready', + relations: 'relations', + destroyed: 'detached', + classes: 'externalClasses', + }); + const { relation } = vantOptions; + if (relation) { + makeRelation(options, vantOptions, relation); + } + // add default externalClasses + options.externalClasses = options.externalClasses || []; + options.externalClasses.push('custom-class'); + // add default behaviors + options.behaviors = options.behaviors || []; + options.behaviors.push(basic); + // map field to form-field behavior + if (vantOptions.field) { + options.behaviors.push('wx://form-field'); + } + if (options.properties) { + Object.keys(options.properties).forEach((name) => { + if (Array.isArray(options.properties[name])) { + // miniprogram do not allow multi type + options.properties[name] = null; + } + }); + } + // add default options + options.options = { + multipleSlots: true, + addGlobalClass: true, + }; + Component(options); +} +export { VantComponent }; diff --git a/miniprogram/components/@mkl/common/index.wxss b/miniprogram/components/@mkl/common/index.wxss new file mode 100644 index 0000000..6e6891f --- /dev/null +++ b/miniprogram/components/@mkl/common/index.wxss @@ -0,0 +1 @@ +.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{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3}.van-clearfix:after{display:table;clear:both;content:""}.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{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #eee;-webkit-transform:scale(.5);transform:scale(.5)}.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/miniprogram/components/@mkl/common/style/clearfix.wxss b/miniprogram/components/@mkl/common/style/clearfix.wxss new file mode 100644 index 0000000..a0ca838 --- /dev/null +++ b/miniprogram/components/@mkl/common/style/clearfix.wxss @@ -0,0 +1 @@ +.van-clearfix:after{display:table;clear:both;content:""} \ No newline at end of file diff --git a/miniprogram/components/@mkl/common/style/ellipsis.wxss b/miniprogram/components/@mkl/common/style/ellipsis.wxss new file mode 100644 index 0000000..1e9dbc9 --- /dev/null +++ b/miniprogram/components/@mkl/common/style/ellipsis.wxss @@ -0,0 +1 @@ +.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{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3} \ No newline at end of file diff --git a/miniprogram/components/@mkl/common/style/hairline.wxss b/miniprogram/components/@mkl/common/style/hairline.wxss new file mode 100644 index 0000000..f64e2f8 --- /dev/null +++ b/miniprogram/components/@mkl/common/style/hairline.wxss @@ -0,0 +1 @@ +.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{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #eee;-webkit-transform:scale(.5);transform:scale(.5)}.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/miniprogram/components/@mkl/common/style/mixins/clearfix.wxss b/miniprogram/components/@mkl/common/style/mixins/clearfix.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram/components/@mkl/common/style/mixins/ellipsis.wxss b/miniprogram/components/@mkl/common/style/mixins/ellipsis.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram/components/@mkl/common/style/mixins/hairline.wxss b/miniprogram/components/@mkl/common/style/mixins/hairline.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram/components/@mkl/common/style/theme.wxss b/miniprogram/components/@mkl/common/style/theme.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram/components/@mkl/common/style/var.wxss b/miniprogram/components/@mkl/common/style/var.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram/components/@mkl/common/utils.d.ts b/miniprogram/components/@mkl/common/utils.d.ts new file mode 100644 index 0000000..411e4aa --- /dev/null +++ b/miniprogram/components/@mkl/common/utils.d.ts @@ -0,0 +1,8 @@ +/// +export declare function isDef(value: any): boolean; +export declare function isObj(x: any): boolean; +export declare function isNumber(value: any): boolean; +export declare function range(num: number, min: number, max: number): number; +export declare function nextTick(fn: Function): void; +export declare function getSystemInfoSync(): WechatMiniprogram.GetSystemInfoSyncResult; +export declare function addUnit(value?: string | number): string | undefined; diff --git a/miniprogram/components/@mkl/common/utils.js b/miniprogram/components/@mkl/common/utils.js new file mode 100644 index 0000000..cc0f8f1 --- /dev/null +++ b/miniprogram/components/@mkl/common/utils.js @@ -0,0 +1,32 @@ +export function isDef(value) { + return value !== undefined && value !== null; +} +export function isObj(x) { + const type = typeof x; + return x !== null && (type === 'object' || type === 'function'); +} +export function isNumber(value) { + return /^\d+(\.\d+)?$/.test(value); +} +export function range(num, min, max) { + return Math.min(Math.max(num, min), max); +} +export function nextTick(fn) { + setTimeout(() => { + fn(); + }, 1000 / 30); +} +let systemInfo = null; +export function getSystemInfoSync() { + if (systemInfo == null) { + systemInfo = wx.getSystemInfoSync(); + } + return systemInfo; +} +export function addUnit(value) { + if (!isDef(value)) { + return undefined; + } + value = String(value); + return isNumber(value) ? `${value}px` : value; +} diff --git a/miniprogram/components/@mkl/common/version.d.ts b/miniprogram/components/@mkl/common/version.d.ts new file mode 100644 index 0000000..d4c6fe2 --- /dev/null +++ b/miniprogram/components/@mkl/common/version.d.ts @@ -0,0 +1,2 @@ +export declare function canIUseModel(): boolean; +export declare function canIUseFormFieldButton(): boolean; diff --git a/miniprogram/components/@mkl/common/version.js b/miniprogram/components/@mkl/common/version.js new file mode 100644 index 0000000..01f24f8 --- /dev/null +++ b/miniprogram/components/@mkl/common/version.js @@ -0,0 +1,31 @@ +import { getSystemInfoSync } from './utils'; +function compareVersion(v1, v2) { + v1 = v1.split('.'); + v2 = v2.split('.'); + const len = Math.max(v1.length, v2.length); + while (v1.length < len) { + v1.push('0'); + } + while (v2.length < len) { + v2.push('0'); + } + for (let i = 0; i < len; i++) { + const num1 = parseInt(v1[i], 10); + const num2 = parseInt(v2[i], 10); + if (num1 > num2) { + return 1; + } + if (num1 < num2) { + return -1; + } + } + return 0; +} +export function canIUseModel() { + const system = getSystemInfoSync(); + return compareVersion(system.SDKVersion, '2.9.3') >= 0; +} +export function canIUseFormFieldButton() { + const system = getSystemInfoSync(); + return compareVersion(system.SDKVersion, '2.10.3') >= 0; +} diff --git a/miniprogram/components/@mkl/icon/index.d.ts b/miniprogram/components/@mkl/icon/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram/components/@mkl/icon/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram/components/@mkl/icon/index.js b/miniprogram/components/@mkl/icon/index.js new file mode 100644 index 0000000..bee576c --- /dev/null +++ b/miniprogram/components/@mkl/icon/index.js @@ -0,0 +1,27 @@ +import { VantComponent } from '../common/component'; +VantComponent({ + props: { + dot: Boolean, + info: null, + size: null, + color: String, + customStyle: String, + classPrefix: { + type: String, + value: 'van-icon', + }, + name: { + type: String, + observer(val) { + this.setData({ + isImageName: val.indexOf('/') !== -1, + }); + }, + }, + }, + methods: { + onClick() { + this.$emit('click'); + }, + }, +}); diff --git a/miniprogram/components/@mkl/icon/index.json b/miniprogram/components/@mkl/icon/index.json new file mode 100644 index 0000000..bf0ebe0 --- /dev/null +++ b/miniprogram/components/@mkl/icon/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-info": "../info/index" + } +} diff --git a/miniprogram/components/@mkl/icon/index.wxml b/miniprogram/components/@mkl/icon/index.wxml new file mode 100644 index 0000000..fe4065a --- /dev/null +++ b/miniprogram/components/@mkl/icon/index.wxml @@ -0,0 +1,20 @@ + + + + + + diff --git a/miniprogram/components/@mkl/icon/index.wxss b/miniprogram/components/@mkl/icon/index.wxss new file mode 100644 index 0000000..cf2c506 --- /dev/null +++ b/miniprogram/components/@mkl/icon/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';@font-face{font-weight:400;font-family:vant-icon;font-style:normal;font-display:auto;src:url(https://img.yzcdn.cn/vant/vant-icon-d3825a.woff2) format("woff2"),url(https://img.yzcdn.cn/vant/vant-icon-d3825a.woff) format("woff"),url(https://img.yzcdn.cn/vant/vant-icon-d3825a.ttf) format("truetype")}.van-icon{position:relative;font:normal normal normal 14px/1 vant-icon;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}.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-circle:before{content:"\F03A"}.van-icon-comment-o:before{content:"\F03B"}.van-icon-comment:before{content:"\F03C"}.van-icon-completed:before{content:"\F03D"}.van-icon-contact:before{content:"\F03E"}.van-icon-coupon-o:before{content:"\F03F"}.van-icon-coupon:before{content:"\F040"}.van-icon-credit-pay:before{content:"\F041"}.van-icon-cross:before{content:"\F042"}.van-icon-debit-pay:before{content:"\F043"}.van-icon-delete:before{content:"\F044"}.van-icon-descending:before{content:"\F045"}.van-icon-description:before{content:"\F046"}.van-icon-desktop-o:before{content:"\F047"}.van-icon-diamond-o:before{content:"\F048"}.van-icon-diamond:before{content:"\F049"}.van-icon-discount:before{content:"\F04A"}.van-icon-down:before{content:"\F04B"}.van-icon-ecard-pay:before{content:"\F04C"}.van-icon-edit:before{content:"\F04D"}.van-icon-ellipsis:before{content:"\F04E"}.van-icon-empty:before{content:"\F04F"}.van-icon-envelop-o:before{content:"\F050"}.van-icon-exchange:before{content:"\F051"}.van-icon-expand-o:before{content:"\F052"}.van-icon-expand:before{content:"\F053"}.van-icon-eye-o:before{content:"\F054"}.van-icon-eye:before{content:"\F055"}.van-icon-fail:before{content:"\F056"}.van-icon-failure:before{content:"\F057"}.van-icon-filter-o:before{content:"\F058"}.van-icon-fire-o:before{content:"\F059"}.van-icon-fire:before{content:"\F05A"}.van-icon-flag-o:before{content:"\F05B"}.van-icon-flower-o:before{content:"\F05C"}.van-icon-free-postage:before{content:"\F05D"}.van-icon-friends-o:before{content:"\F05E"}.van-icon-friends:before{content:"\F05F"}.van-icon-gem-o:before{content:"\F060"}.van-icon-gem:before{content:"\F061"}.van-icon-gift-card-o:before{content:"\F062"}.van-icon-gift-card:before{content:"\F063"}.van-icon-gift-o:before{content:"\F064"}.van-icon-gift:before{content:"\F065"}.van-icon-gold-coin-o:before{content:"\F066"}.van-icon-gold-coin:before{content:"\F067"}.van-icon-good-job-o:before{content:"\F068"}.van-icon-good-job:before{content:"\F069"}.van-icon-goods-collect-o:before{content:"\F06A"}.van-icon-goods-collect:before{content:"\F06B"}.van-icon-graphic:before{content:"\F06C"}.van-icon-home-o:before{content:"\F06D"}.van-icon-hot-o:before{content:"\F06E"}.van-icon-hot-sale-o:before{content:"\F06F"}.van-icon-hot-sale:before{content:"\F070"}.van-icon-hot:before{content:"\F071"}.van-icon-hotel-o:before{content:"\F072"}.van-icon-idcard:before{content:"\F073"}.van-icon-info-o:before{content:"\F074"}.van-icon-info:before{content:"\F075"}.van-icon-invition:before{content:"\F076"}.van-icon-label-o:before{content:"\F077"}.van-icon-label:before{content:"\F078"}.van-icon-like-o:before{content:"\F079"}.van-icon-like:before{content:"\F07A"}.van-icon-live:before{content:"\F07B"}.van-icon-location-o:before{content:"\F07C"}.van-icon-location:before{content:"\F07D"}.van-icon-lock:before{content:"\F07E"}.van-icon-logistics:before{content:"\F07F"}.van-icon-manager-o:before{content:"\F080"}.van-icon-manager:before{content:"\F081"}.van-icon-map-marked:before{content:"\F082"}.van-icon-medal-o:before{content:"\F083"}.van-icon-medal:before{content:"\F084"}.van-icon-more-o:before{content:"\F085"}.van-icon-more:before{content:"\F086"}.van-icon-music-o:before{content:"\F087"}.van-icon-music:before{content:"\F088"}.van-icon-new-arrival-o:before{content:"\F089"}.van-icon-new-arrival:before{content:"\F08A"}.van-icon-new-o:before{content:"\F08B"}.van-icon-new:before{content:"\F08C"}.van-icon-newspaper-o:before{content:"\F08D"}.van-icon-notes-o:before{content:"\F08E"}.van-icon-orders-o:before{content:"\F08F"}.van-icon-other-pay:before{content:"\F090"}.van-icon-paid:before{content:"\F091"}.van-icon-passed:before{content:"\F092"}.van-icon-pause-circle-o:before{content:"\F093"}.van-icon-pause-circle:before{content:"\F094"}.van-icon-pause:before{content:"\F095"}.van-icon-peer-pay:before{content:"\F096"}.van-icon-pending-payment:before{content:"\F097"}.van-icon-phone-circle-o:before{content:"\F098"}.van-icon-phone-circle:before{content:"\F099"}.van-icon-phone-o:before{content:"\F09A"}.van-icon-phone:before{content:"\F09B"}.van-icon-photo-o:before{content:"\F09C"}.van-icon-photo:before{content:"\F09D"}.van-icon-photograph:before{content:"\F09E"}.van-icon-play-circle-o:before{content:"\F09F"}.van-icon-play-circle:before{content:"\F0A0"}.van-icon-play:before{content:"\F0A1"}.van-icon-plus:before{content:"\F0A2"}.van-icon-point-gift-o:before{content:"\F0A3"}.van-icon-point-gift:before{content:"\F0A4"}.van-icon-points:before{content:"\F0A5"}.van-icon-printer:before{content:"\F0A6"}.van-icon-qr-invalid:before{content:"\F0A7"}.van-icon-qr:before{content:"\F0A8"}.van-icon-question-o:before{content:"\F0A9"}.van-icon-question:before{content:"\F0AA"}.van-icon-records:before{content:"\F0AB"}.van-icon-refund-o:before{content:"\F0AC"}.van-icon-replay:before{content:"\F0AD"}.van-icon-scan:before{content:"\F0AE"}.van-icon-search:before{content:"\F0AF"}.van-icon-send-gift-o:before{content:"\F0B0"}.van-icon-send-gift:before{content:"\F0B1"}.van-icon-service-o:before{content:"\F0B2"}.van-icon-service:before{content:"\F0B3"}.van-icon-setting-o:before{content:"\F0B4"}.van-icon-setting:before{content:"\F0B5"}.van-icon-share:before{content:"\F0B6"}.van-icon-shop-collect-o:before{content:"\F0B7"}.van-icon-shop-collect:before{content:"\F0B8"}.van-icon-shop-o:before{content:"\F0B9"}.van-icon-shop:before{content:"\F0BA"}.van-icon-shopping-cart-o:before{content:"\F0BB"}.van-icon-shopping-cart:before{content:"\F0BC"}.van-icon-shrink:before{content:"\F0BD"}.van-icon-sign:before{content:"\F0BE"}.van-icon-smile-comment-o:before{content:"\F0BF"}.van-icon-smile-comment:before{content:"\F0C0"}.van-icon-smile-o:before{content:"\F0C1"}.van-icon-smile:before{content:"\F0C2"}.van-icon-star-o:before{content:"\F0C3"}.van-icon-star:before{content:"\F0C4"}.van-icon-stop-circle-o:before{content:"\F0C5"}.van-icon-stop-circle:before{content:"\F0C6"}.van-icon-stop:before{content:"\F0C7"}.van-icon-success:before{content:"\F0C8"}.van-icon-thumb-circle-o:before{content:"\F0C9"}.van-icon-thumb-circle:before{content:"\F0CA"}.van-icon-todo-list-o:before{content:"\F0CB"}.van-icon-todo-list:before{content:"\F0CC"}.van-icon-tosend:before{content:"\F0CD"}.van-icon-tv-o:before{content:"\F0CE"}.van-icon-umbrella-circle:before{content:"\F0CF"}.van-icon-underway-o:before{content:"\F0D0"}.van-icon-underway:before{content:"\F0D1"}.van-icon-upgrade:before{content:"\F0D2"}.van-icon-user-circle-o:before{content:"\F0D3"}.van-icon-user-o:before{content:"\F0D4"}.van-icon-video-o:before{content:"\F0D5"}.van-icon-video:before{content:"\F0D6"}.van-icon-vip-card-o:before{content:"\F0D7"}.van-icon-vip-card:before{content:"\F0D8"}.van-icon-volume-o:before{content:"\F0D9"}.van-icon-volume:before{content:"\F0DA"}.van-icon-wap-home-o:before{content:"\F0DB"}.van-icon-wap-home:before{content:"\F0DC"}.van-icon-wap-nav:before{content:"\F0DD"}.van-icon-warn-o:before{content:"\F0DE"}.van-icon-warning-o:before{content:"\F0DF"}.van-icon-warning:before{content:"\F0E0"}.van-icon-weapp-nav:before{content:"\F0E1"}.van-icon-wechat:before{content:"\F0E2"}.van-icon-youzan-shield:before{content:"\F0E3"}:host{display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}.van-icon--image{width:1em;height:1em}.van-icon__image{width:100%;height:100%}.van-icon__info{z-index:1} \ No newline at end of file diff --git a/miniprogram/components/@mkl/info/index.d.ts b/miniprogram/components/@mkl/info/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram/components/@mkl/info/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram/components/@mkl/info/index.js b/miniprogram/components/@mkl/info/index.js new file mode 100644 index 0000000..489f39c --- /dev/null +++ b/miniprogram/components/@mkl/info/index.js @@ -0,0 +1,8 @@ +import { VantComponent } from '../common/component'; +VantComponent({ + props: { + dot: Boolean, + info: null, + customStyle: String, + }, +}); diff --git a/miniprogram/components/@mkl/info/index.json b/miniprogram/components/@mkl/info/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram/components/@mkl/info/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram/components/@mkl/info/index.wxml b/miniprogram/components/@mkl/info/index.wxml new file mode 100644 index 0000000..3112dfc --- /dev/null +++ b/miniprogram/components/@mkl/info/index.wxml @@ -0,0 +1,7 @@ + + +{{ dot ? '' : info }} diff --git a/miniprogram/components/@mkl/info/index.wxss b/miniprogram/components/@mkl/info/index.wxss new file mode 100644 index 0000000..6d44b8e --- /dev/null +++ b/miniprogram/components/@mkl/info/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-info{position:absolute;top:0;right:0;box-sizing:border-box;white-space:nowrap;text-align:center;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);-webkit-transform-origin:100%;transform-origin:100%;min-width:16px;min-width:var(--info-size,16px);padding:0 3px;padding:var(--info-padding,0 3px);color:#fff;color:var(--info-color,#fff);font-weight:500;font-weight:var(--info-font-weight,500);font-size:12px;font-size:var(--info-font-size,12px);font-family:Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif;font-family:var(--info-font-family,Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif);line-height:14px;line-height:calc(var(--info-size, 16px) - var(--info-border-width, 1px)*2);background-color:#ee0a24;background-color:var(--info-background-color,#ee0a24);border:1px solid #fff;border:var(--info-border-width,1px) solid var(--white,#fff);border-radius:16px;border-radius:var(--info-size,16px)}.van-info--dot{min-width:0;border-radius:100%;width:8px;width:var(--info-dot-size,8px);height:8px;height:var(--info-dot-size,8px);background-color:#ee0a24;background-color:var(--info-dot-color,#ee0a24)} \ No newline at end of file diff --git a/miniprogram/components/@mkl/loading/index.d.ts b/miniprogram/components/@mkl/loading/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram/components/@mkl/loading/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram/components/@mkl/loading/index.js b/miniprogram/components/@mkl/loading/index.js new file mode 100644 index 0000000..2049447 --- /dev/null +++ b/miniprogram/components/@mkl/loading/index.js @@ -0,0 +1,16 @@ +import { VantComponent } from '../common/component'; +VantComponent({ + props: { + color: String, + vertical: Boolean, + type: { + type: String, + value: 'circular', + }, + size: String, + textSize: String, + }, + data: { + array12: Array.from({ length: 12 }), + }, +}); diff --git a/miniprogram/components/@mkl/loading/index.json b/miniprogram/components/@mkl/loading/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram/components/@mkl/loading/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram/components/@mkl/loading/index.wxml b/miniprogram/components/@mkl/loading/index.wxml new file mode 100644 index 0000000..e934288 --- /dev/null +++ b/miniprogram/components/@mkl/loading/index.wxml @@ -0,0 +1,18 @@ + + + + + + + + + + diff --git a/miniprogram/components/@mkl/loading/index.wxss b/miniprogram/components/@mkl/loading/index.wxss new file mode 100644 index 0000000..f28a6b4 --- /dev/null +++ b/miniprogram/components/@mkl/loading/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';:host{font-size:0;line-height:1}.van-loading{display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;color:#c8c9cc;color:var(--loading-spinner-color,#c8c9cc)}.van-loading__spinner{position:relative;box-sizing:border-box;width:30px;width:var(--loading-spinner-size,30px);max-width:100%;max-height:100%;height:30px;height:var(--loading-spinner-size,30px);-webkit-animation:van-rotate .8s linear infinite;animation:van-rotate .8s linear infinite;-webkit-animation:van-rotate var(--loading-spinner-animation-duration,.8s) linear infinite;animation:van-rotate var(--loading-spinner-animation-duration,.8s) linear infinite}.van-loading__spinner--spinner{-webkit-animation-timing-function:steps(12);animation-timing-function:steps(12)}.van-loading__spinner--circular{border:1px solid transparent;border-top-color:initial;border-radius:100%}.van-loading__text{margin-left:8px;margin-left:var(--padding-xs,8px);color:#969799;color:var(--loading-text-color,#969799);font-size:14px;font-size:var(--loading-text-font-size,14px);line-height:20px;line-height:var(--loading-text-line-height,20px)}.van-loading__text:empty{display:none}.van-loading--vertical{-webkit-flex-direction:column;flex-direction:column}.van-loading--vertical .van-loading__text{margin:8px 0 0;margin:var(--padding-xs,8px) 0 0}.van-loading__dot{position:absolute;top:0;left:0;width:100%;height:100%}.van-loading__dot:before{display:block;width:2px;height:25%;margin:0 auto;background-color:currentColor;border-radius:40%;content:" "}.van-loading__dot:first-of-type{-webkit-transform:rotate(30deg);transform:rotate(30deg);opacity:1}.van-loading__dot:nth-of-type(2){-webkit-transform:rotate(60deg);transform:rotate(60deg);opacity:.9375}.van-loading__dot:nth-of-type(3){-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:.875}.van-loading__dot:nth-of-type(4){-webkit-transform:rotate(120deg);transform:rotate(120deg);opacity:.8125}.van-loading__dot:nth-of-type(5){-webkit-transform:rotate(150deg);transform:rotate(150deg);opacity:.75}.van-loading__dot:nth-of-type(6){-webkit-transform:rotate(180deg);transform:rotate(180deg);opacity:.6875}.van-loading__dot:nth-of-type(7){-webkit-transform:rotate(210deg);transform:rotate(210deg);opacity:.625}.van-loading__dot:nth-of-type(8){-webkit-transform:rotate(240deg);transform:rotate(240deg);opacity:.5625}.van-loading__dot:nth-of-type(9){-webkit-transform:rotate(270deg);transform:rotate(270deg);opacity:.5}.van-loading__dot:nth-of-type(10){-webkit-transform:rotate(300deg);transform:rotate(300deg);opacity:.4375}.van-loading__dot:nth-of-type(11){-webkit-transform:rotate(330deg);transform:rotate(330deg);opacity:.375}.van-loading__dot:nth-of-type(12){-webkit-transform:rotate(1turn);transform:rotate(1turn);opacity:.3125}@-webkit-keyframes van-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes van-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}} \ No newline at end of file diff --git a/miniprogram/components/@mkl/mixins/basic.d.ts b/miniprogram/components/@mkl/mixins/basic.d.ts new file mode 100644 index 0000000..b273369 --- /dev/null +++ b/miniprogram/components/@mkl/mixins/basic.d.ts @@ -0,0 +1 @@ +export declare const basic: string; diff --git a/miniprogram/components/@mkl/mixins/basic.js b/miniprogram/components/@mkl/mixins/basic.js new file mode 100644 index 0000000..8a25f16 --- /dev/null +++ b/miniprogram/components/@mkl/mixins/basic.js @@ -0,0 +1,27 @@ +export const basic = Behavior({ + methods: { + $emit(...args) { + this.triggerEvent(...args); + }, + set(data, callback) { + this.setData(data, callback); + return new Promise((resolve) => wx.nextTick(resolve)); + }, + getRect(selector, all) { + return new Promise((resolve) => { + wx.createSelectorQuery() + .in(this) + [all ? 'selectAll' : 'select'](selector) + .boundingClientRect((rect) => { + if (all && Array.isArray(rect) && rect.length) { + resolve(rect); + } + if (!all && rect) { + resolve(rect); + } + }) + .exec(); + }); + }, + }, +}); diff --git a/miniprogram/components/@mkl/mixins/button.d.ts b/miniprogram/components/@mkl/mixins/button.d.ts new file mode 100644 index 0000000..b51db87 --- /dev/null +++ b/miniprogram/components/@mkl/mixins/button.d.ts @@ -0,0 +1 @@ +export declare const button: string; diff --git a/miniprogram/components/@mkl/mixins/button.js b/miniprogram/components/@mkl/mixins/button.js new file mode 100644 index 0000000..732fa5c --- /dev/null +++ b/miniprogram/components/@mkl/mixins/button.js @@ -0,0 +1,15 @@ +export const button = Behavior({ + externalClasses: ['hover-class'], + properties: { + id: String, + lang: String, + businessId: Number, + sessionFrom: String, + sendMessageTitle: String, + sendMessagePath: String, + sendMessageImg: String, + showMessageCard: Boolean, + appParameter: String, + ariaLabel: String, + }, +}); diff --git a/miniprogram/components/@mkl/mixins/link.d.ts b/miniprogram/components/@mkl/mixins/link.d.ts new file mode 100644 index 0000000..d58043b --- /dev/null +++ b/miniprogram/components/@mkl/mixins/link.d.ts @@ -0,0 +1 @@ +export declare const link: string; diff --git a/miniprogram/components/@mkl/mixins/link.js b/miniprogram/components/@mkl/mixins/link.js new file mode 100644 index 0000000..f215742 --- /dev/null +++ b/miniprogram/components/@mkl/mixins/link.js @@ -0,0 +1,17 @@ +export const link = Behavior({ + properties: { + url: String, + linkType: { + type: String, + value: 'navigateTo', + }, + }, + methods: { + jumpLink(urlKey = 'url') { + const url = this.data[urlKey]; + if (url) { + wx[this.data.linkType]({ url }); + } + }, + }, +}); diff --git a/miniprogram/components/@mkl/mixins/open-type.d.ts b/miniprogram/components/@mkl/mixins/open-type.d.ts new file mode 100644 index 0000000..64b023d --- /dev/null +++ b/miniprogram/components/@mkl/mixins/open-type.d.ts @@ -0,0 +1 @@ +export declare const openType: string; diff --git a/miniprogram/components/@mkl/mixins/open-type.js b/miniprogram/components/@mkl/mixins/open-type.js new file mode 100644 index 0000000..454c937 --- /dev/null +++ b/miniprogram/components/@mkl/mixins/open-type.js @@ -0,0 +1,25 @@ +export const openType = Behavior({ + properties: { + openType: String, + }, + methods: { + bindGetUserInfo(event) { + this.$emit('getuserinfo', event.detail); + }, + bindContact(event) { + this.$emit('contact', event.detail); + }, + bindGetPhoneNumber(event) { + this.$emit('getphonenumber', event.detail); + }, + bindError(event) { + this.$emit('error', event.detail); + }, + bindLaunchApp(event) { + this.$emit('launchapp', event.detail); + }, + bindOpenSetting(event) { + this.$emit('opensetting', event.detail); + }, + }, +}); diff --git a/miniprogram/components/@mkl/mixins/page-scroll.d.ts b/miniprogram/components/@mkl/mixins/page-scroll.d.ts new file mode 100644 index 0000000..7e9a80f --- /dev/null +++ b/miniprogram/components/@mkl/mixins/page-scroll.d.ts @@ -0,0 +1,5 @@ +/// +declare type IPageScrollOption = WechatMiniprogram.Page.IPageScrollOption; +declare type Scroller = (event: IPageScrollOption) => void; +export declare const pageScrollMixin: (scroller: Scroller) => string; +export {}; diff --git a/miniprogram/components/@mkl/mixins/page-scroll.js b/miniprogram/components/@mkl/mixins/page-scroll.js new file mode 100644 index 0000000..d4e9199 --- /dev/null +++ b/miniprogram/components/@mkl/mixins/page-scroll.js @@ -0,0 +1,33 @@ +function getCurrentPage() { + const pages = getCurrentPages(); + return pages[pages.length - 1] || {}; +} +function onPageScroll(event) { + const { vanPageScroller = [] } = getCurrentPage(); + vanPageScroller.forEach((scroller) => { + if (typeof scroller === 'function') { + scroller(event); + } + }); +} +export const pageScrollMixin = (scroller) => + Behavior({ + attached() { + const page = getCurrentPage(); + if (Array.isArray(page.vanPageScroller)) { + page.vanPageScroller.push(scroller.bind(this)); + } else { + page.vanPageScroller = + typeof page.onPageScroll === 'function' + ? [page.onPageScroll.bind(page), scroller.bind(this)] + : [scroller.bind(this)]; + } + page.onPageScroll = onPageScroll; + }, + detached() { + const page = getCurrentPage(); + page.vanPageScroller = (page.vanPageScroller || []).filter( + (item) => item !== scroller + ); + }, + }); diff --git a/miniprogram/components/@mkl/mixins/touch.d.ts b/miniprogram/components/@mkl/mixins/touch.d.ts new file mode 100644 index 0000000..35ee831 --- /dev/null +++ b/miniprogram/components/@mkl/mixins/touch.d.ts @@ -0,0 +1 @@ +export declare const touch: string; diff --git a/miniprogram/components/@mkl/mixins/touch.js b/miniprogram/components/@mkl/mixins/touch.js new file mode 100644 index 0000000..f29a92d --- /dev/null +++ b/miniprogram/components/@mkl/mixins/touch.js @@ -0,0 +1,36 @@ +const MIN_DISTANCE = 10; +function getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal'; + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical'; + } + return ''; +} +export const touch = Behavior({ + methods: { + resetTouchStatus() { + this.direction = ''; + this.deltaX = 0; + this.deltaY = 0; + this.offsetX = 0; + this.offsetY = 0; + }, + touchStart(event) { + this.resetTouchStatus(); + const touch = event.touches[0]; + this.startX = touch.clientX; + this.startY = touch.clientY; + }, + touchMove(event) { + const touch = event.touches[0]; + this.deltaX = touch.clientX - this.startX; + this.deltaY = touch.clientY - this.startY; + this.offsetX = Math.abs(this.deltaX); + this.offsetY = Math.abs(this.deltaY); + this.direction = + this.direction || getDirection(this.offsetX, this.offsetY); + }, + }, +}); diff --git a/miniprogram/components/@mkl/mixins/transition.d.ts b/miniprogram/components/@mkl/mixins/transition.d.ts new file mode 100644 index 0000000..d735ac9 --- /dev/null +++ b/miniprogram/components/@mkl/mixins/transition.d.ts @@ -0,0 +1 @@ +export declare const transition: (showDefaultValue: boolean) => string; diff --git a/miniprogram/components/@mkl/mixins/transition.js b/miniprogram/components/@mkl/mixins/transition.js new file mode 100644 index 0000000..0285058 --- /dev/null +++ b/miniprogram/components/@mkl/mixins/transition.js @@ -0,0 +1,118 @@ +import { isObj } from '../common/utils'; +const getClassNames = (name) => ({ + enter: `van-${name}-enter van-${name}-enter-active enter-class enter-active-class`, + 'enter-to': `van-${name}-enter-to van-${name}-enter-active enter-to-class enter-active-class`, + leave: `van-${name}-leave van-${name}-leave-active leave-class leave-active-class`, + 'leave-to': `van-${name}-leave-to van-${name}-leave-active leave-to-class leave-active-class`, +}); +const nextTick = () => new Promise((resolve) => setTimeout(resolve, 1000 / 30)); +export const transition = function (showDefaultValue) { + return Behavior({ + properties: { + customStyle: String, + // @ts-ignore + show: { + type: Boolean, + value: showDefaultValue, + observer: 'observeShow', + }, + // @ts-ignore + duration: { + type: null, + value: 300, + observer: 'observeDuration', + }, + name: { + type: String, + value: 'fade', + }, + }, + data: { + type: '', + inited: false, + display: false, + }, + methods: { + observeShow(value, old) { + if (value === old) { + return; + } + value ? this.enter() : this.leave(); + }, + enter() { + const { duration, name } = this.data; + const classNames = getClassNames(name); + const currentDuration = isObj(duration) ? duration.enter : duration; + this.status = 'enter'; + this.$emit('before-enter'); + Promise.resolve() + .then(nextTick) + .then(() => { + this.checkStatus('enter'); + this.$emit('enter'); + this.setData({ + inited: true, + display: true, + classes: classNames.enter, + currentDuration, + }); + }) + .then(nextTick) + .then(() => { + this.checkStatus('enter'); + this.transitionEnded = false; + this.setData({ + classes: classNames['enter-to'], + }); + }) + .catch(() => {}); + }, + leave() { + if (!this.data.display) { + return; + } + const { duration, name } = this.data; + const classNames = getClassNames(name); + const currentDuration = isObj(duration) ? duration.leave : duration; + this.status = 'leave'; + this.$emit('before-leave'); + Promise.resolve() + .then(nextTick) + .then(() => { + this.checkStatus('leave'); + this.$emit('leave'); + this.setData({ + classes: classNames.leave, + currentDuration, + }); + }) + .then(nextTick) + .then(() => { + this.checkStatus('leave'); + this.transitionEnded = false; + setTimeout(() => this.onTransitionEnd(), currentDuration); + this.setData({ + classes: classNames['leave-to'], + }); + }) + .catch(() => {}); + }, + checkStatus(status) { + if (status !== this.status) { + throw new Error(`incongruent status: ${status}`); + } + }, + onTransitionEnd() { + if (this.transitionEnded) { + return; + } + this.transitionEnded = true; + this.$emit(`after-${this.status}`); + const { show, display } = this.data; + if (!show && display) { + this.setData({ display: false }); + } + }, + }, + }); +}; diff --git a/miniprogram/components/@mkl/multi-select/index.d.ts b/miniprogram/components/@mkl/multi-select/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram/components/@mkl/multi-select/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram/components/@mkl/multi-select/index.js b/miniprogram/components/@mkl/multi-select/index.js new file mode 100644 index 0000000..55b7c32 --- /dev/null +++ b/miniprogram/components/@mkl/multi-select/index.js @@ -0,0 +1,145 @@ +import { VantComponent } from "../common/component"; +import { pickerProps } from "../picker/shared"; +const COLUMNSPLACEHOLDERCODE = "000000"; +VantComponent({ + classes: ["active-class", "toolbar-class", "column-class"], + props: Object.assign(Object.assign({}, pickerProps), { + value: { + type: Array, + observer(value) { + this.value = value; + this.getSelect(); + this.setValues(); + }, + }, + columns: { + type: Array, + value: [], + observer(value) { + this.getSelect(); + this.setValues(); + }, + }, + }), + + data: { + displayColumns: [], + typeToColumnsPlaceholder: {}, + }, + mounted() { + // setTimeout(() => { + // this.setValues(); + // }, 0); + }, + methods: { + getPicker() { + if (this.picker == null) { + this.picker = this.selectComponent(".van-multi-select__picker"); + } + return this.picker; + }, + onCancel(event) { + this.emit("cancel", event.detail); + }, + onConfirm(event) { + const detail = event.detail; + const values = this.parseOutputValues(detail.value); + this.emit("confirm", {text:values.map((x) => x.text),value: values.map((x) => x.key), index:detail.index }); + }, + emit(type, detail) { + detail.values = detail.value; + delete detail.value; + this.$emit(type, detail); + }, + // parse output columns data + parseOutputValues(values) { + return values.map((value, index) => { + return { + key: value.key, + text: value.text, + }; + }); + }, + onChange(event) { + const { index, picker, value } = event.detail; + this.select = { value, index }; + this.setValues(); + const values = this.parseOutputValues(value); + this.$emit("change", { + picker, + values: values, + value: values.map((x) => x.key), + text: values.map((x) => x.text), + index, + }); + }, + //初始化赋值核心方法 + getSelect(columns = this.data.columns, index = 0, displayColumns = []) { + if (this.value && this.value.length > 0) { + const key = this.value[index]; + + if (columns && columns.length > 0) { + let selectColumn = columns.find((x) => key == x.key); + if (selectColumn) { + displayColumns.push(selectColumn); + if (selectColumn.childs && selectColumn.childs.length > 0) { + this.getSelect(selectColumn.childs, index + 1, displayColumns); + } + } + } + this.select = { + index: this.value.length - 1, + value: displayColumns, + }; + + } + }, + getColumns(columns = this.data.columns, index = 0, displayColumns = [], select) { + if (columns && columns.length > 0) { + let defaultIndex = 0; + if (select) { + if (index <= select.index) { + const val = select.value[index]; + if(val&&val.key){ + columns.forEach((x, i) => { + if (x.key == val.key) { + defaultIndex = i; + } + }); + } + } + } + displayColumns.push({ + values: columns, + defaultIndex: defaultIndex, + }); + let firstColumn = columns[defaultIndex]; + if (firstColumn.childs && firstColumn.childs.length > 0) { + index++; + this.getColumns(firstColumn.childs, index, displayColumns, select); + } + } + return displayColumns; + }, + setValues() { + // const picker = this.getPicker(); + // if (!picker) { + // return; + // } + + let { select } = this; + const stack = this.getColumns(undefined, undefined, undefined, select); + this.setData({ + displayColumns: stack, + }); + }, + getValues() { + const picker = this.getPicker(); + return picker ? picker.getValues().filter((value) => !!value) : []; + }, + reset(value) { + this.value = value || []; + return this.setValues(); + }, + }, +}); diff --git a/miniprogram/components/@mkl/multi-select/index.json b/miniprogram/components/@mkl/multi-select/index.json new file mode 100644 index 0000000..a778e91 --- /dev/null +++ b/miniprogram/components/@mkl/multi-select/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-picker": "../picker/index" + } +} diff --git a/miniprogram/components/@mkl/multi-select/index.wxml b/miniprogram/components/@mkl/multi-select/index.wxml new file mode 100644 index 0000000..c27f388 --- /dev/null +++ b/miniprogram/components/@mkl/multi-select/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/miniprogram/components/@mkl/multi-select/index.wxss b/miniprogram/components/@mkl/multi-select/index.wxss new file mode 100644 index 0000000..99694d6 --- /dev/null +++ b/miniprogram/components/@mkl/multi-select/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss'; \ No newline at end of file diff --git a/miniprogram/components/@mkl/picker-column/index.d.ts b/miniprogram/components/@mkl/picker-column/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram/components/@mkl/picker-column/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram/components/@mkl/picker-column/index.js b/miniprogram/components/@mkl/picker-column/index.js new file mode 100644 index 0000000..5ea335f --- /dev/null +++ b/miniprogram/components/@mkl/picker-column/index.js @@ -0,0 +1,123 @@ +import { VantComponent } from '../common/component'; +import { isObj, range } from '../common/utils'; +const DEFAULT_DURATION = 200; +VantComponent({ + classes: ['active-class'], + props: { + valueKey: String, + className: String, + itemHeight: Number, + visibleItemCount: Number, + initialOptions: { + type: Array, + value: [], + }, + defaultIndex: { + type: Number, + value: 0, + observer(value) { + this.setIndex(value); + }, + }, + }, + data: { + startY: 0, + offset: 0, + duration: 0, + startOffset: 0, + options: [], + currentIndex: 0, + }, + created() { + const { defaultIndex, initialOptions } = this.data; + this.set({ + currentIndex: defaultIndex, + options: initialOptions, + }).then(() => { + this.setIndex(defaultIndex); + }); + }, + methods: { + getCount() { + return this.data.options.length; + }, + onTouchStart(event) { + this.setData({ + startY: event.touches[0].clientY, + startOffset: this.data.offset, + duration: 0, + }); + }, + onTouchMove(event) { + const { data } = this; + const deltaY = event.touches[0].clientY - data.startY; + this.setData({ + offset: range( + data.startOffset + deltaY, + -(this.getCount() * data.itemHeight), + data.itemHeight + ), + }); + }, + onTouchEnd() { + const { data } = this; + if (data.offset !== data.startOffset) { + this.setData({ duration: DEFAULT_DURATION }); + const index = range( + Math.round(-data.offset / data.itemHeight), + 0, + this.getCount() - 1 + ); + this.setIndex(index, true); + } + }, + onClickItem(event) { + const { index } = event.currentTarget.dataset; + this.setIndex(index, true); + }, + adjustIndex(index) { + const { data } = this; + const count = this.getCount(); + index = range(index, 0, count); + for (let i = index; i < count; i++) { + if (!this.isDisabled(data.options[i])) return i; + } + for (let i = index - 1; i >= 0; i--) { + if (!this.isDisabled(data.options[i])) return i; + } + }, + isDisabled(option) { + return isObj(option) && option.disabled; + }, + getOptionText(option) { + const { data } = this; + return isObj(option) && data.valueKey in option + ? option[data.valueKey] + : option; + }, + setIndex(index, userAction) { + const { data } = this; + index = this.adjustIndex(index) || 0; + const offset = -index * data.itemHeight; + if (index !== data.currentIndex) { + return this.set({ offset, currentIndex: index }).then(() => { + userAction && this.$emit('change', index); + }); + } + return this.set({ offset }); + }, + setValue(value) { + const { options } = this.data; + for (let i = 0; i < options.length; i++) { + if (this.getOptionText(options[i]) === value) { + return this.setIndex(i); + } + } + return Promise.resolve(); + }, + getValue() { + const { data } = this; + return data.options[data.currentIndex]; + }, + }, +}); diff --git a/miniprogram/components/@mkl/picker-column/index.json b/miniprogram/components/@mkl/picker-column/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram/components/@mkl/picker-column/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram/components/@mkl/picker-column/index.wxml b/miniprogram/components/@mkl/picker-column/index.wxml new file mode 100644 index 0000000..f052ed9 --- /dev/null +++ b/miniprogram/components/@mkl/picker-column/index.wxml @@ -0,0 +1,22 @@ + + + + + {{ getOptionText(option, valueKey) }} + + diff --git a/miniprogram/components/@mkl/picker-column/index.wxs b/miniprogram/components/@mkl/picker-column/index.wxs new file mode 100644 index 0000000..3c8fc68 --- /dev/null +++ b/miniprogram/components/@mkl/picker-column/index.wxs @@ -0,0 +1,8 @@ +function isObj(x) { + var type = typeof x; + return x !== null && (type === 'object' || type === 'function'); +} + +module.exports = function (option, valueKey) { + return isObj(option) && option[valueKey] != null ? option[valueKey] : option; +} diff --git a/miniprogram/components/@mkl/picker-column/index.wxss b/miniprogram/components/@mkl/picker-column/index.wxss new file mode 100644 index 0000000..c5c6910 --- /dev/null +++ b/miniprogram/components/@mkl/picker-column/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-picker-column{overflow:hidden;text-align:center;color:#000;color:var(--picker-option-text-color,#000);font-size:16px;font-size:var(--picker-option-font-size,16px)}.van-picker-column__item{padding:0 5px}.van-picker-column__item--selected{font-weight:500;font-weight:var(--font-weight-bold,500);color:#323233;color:var(--picker-option-selected-text-color,#323233)}.van-picker-column__item--disabled{opacity:.3;opacity:var(--picker-option-disabled-opacity,.3)} \ No newline at end of file diff --git a/miniprogram/components/@mkl/picker/index.d.ts b/miniprogram/components/@mkl/picker/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram/components/@mkl/picker/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram/components/@mkl/picker/index.js b/miniprogram/components/@mkl/picker/index.js new file mode 100644 index 0000000..e1b3541 --- /dev/null +++ b/miniprogram/components/@mkl/picker/index.js @@ -0,0 +1,145 @@ +import { VantComponent } from '../common/component'; +import { pickerProps } from './shared'; +VantComponent({ + classes: ['active-class', 'toolbar-class', 'column-class'], + props: Object.assign(Object.assign({}, pickerProps), { + valueKey: { + type: String, + value: 'text', + }, + toolbarPosition: { + type: String, + value: 'top', + }, + defaultIndex: { + type: Number, + value: 0, + }, + columns: { + type: Array, + value: [], + observer(columns = []) { + this.simple = columns.length && !columns[0].values; + this.children = this.selectAllComponents('.van-picker__column'); + if (Array.isArray(this.children) && this.children.length) { + this.setColumns().catch(() => {}); + } + }, + }, + }), + beforeCreate() { + this.children = []; + }, + methods: { + noop() {}, + setColumns() { + const { data } = this; + const columns = this.simple ? [{ values: data.columns }] : data.columns; + const stack = columns.map((column, index) => + this.setColumnValues(index, column.values) + ); + return Promise.all(stack); + }, + emit(event) { + const { type } = event.currentTarget.dataset; + if (this.simple) { + this.$emit(type, { + value: this.getColumnValue(0), + index: this.getColumnIndex(0), + }); + } else { + this.$emit(type, { + value: this.getValues(), + index: this.getIndexes(), + }); + } + }, + onChange(event) { + if (this.simple) { + this.$emit('change', { + picker: this, + value: this.getColumnValue(0), + index: this.getColumnIndex(0), + }); + } else { + this.$emit('change', { + picker: this, + value: this.getValues(), + index: event.currentTarget.dataset.index, + }); + } + }, + // get column instance by index + getColumn(index) { + return this.children[index]; + }, + // get column value by index + getColumnValue(index) { + const column = this.getColumn(index); + return column && column.getValue(); + }, + // set column value by index + setColumnValue(index, value) { + const column = this.getColumn(index); + if (column == null) { + return Promise.reject(new Error('setColumnValue: 对应列不存在')); + } + return column.setValue(value); + }, + // get column option index by column index + getColumnIndex(columnIndex) { + return (this.getColumn(columnIndex) || {}).data.currentIndex; + }, + // set column option index by column index + setColumnIndex(columnIndex, optionIndex) { + const column = this.getColumn(columnIndex); + if (column == null) { + return Promise.reject(new Error('setColumnIndex: 对应列不存在')); + } + return column.setIndex(optionIndex); + }, + // get options of column by index + getColumnValues(index) { + return (this.children[index] || {}).data.options; + }, + // set options of column by index + setColumnValues(index, options, needReset = true) { + const column = this.children[index]; + if (column == null) { + return Promise.reject(new Error('setColumnValues: 对应列不存在')); + } + const isSame = + JSON.stringify(column.data.options) === JSON.stringify(options); + if (isSame) { + return Promise.resolve(); + } + return column.set({ options }).then(() => { + if (needReset) { + column.setIndex(0); + } + }); + }, + // get values of all columns + getValues() { + return this.children.map((child) => child.getValue()); + }, + // set values of all columns + setValues(values) { + const stack = values.map((value, index) => + this.setColumnValue(index, value) + ); + return Promise.all(stack); + }, + // get indexes of all columns + getIndexes() { + return this.children.map((child) => child.data.currentIndex); + }, + // set indexes of all columns + setIndexes(indexes) { + const stack = indexes.map((optionIndex, columnIndex) => + this.setColumnIndex(columnIndex, optionIndex) + ); + return Promise.all(stack); + }, + }, +}); diff --git a/miniprogram/components/@mkl/picker/index.json b/miniprogram/components/@mkl/picker/index.json new file mode 100644 index 0000000..2fcec89 --- /dev/null +++ b/miniprogram/components/@mkl/picker/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "picker-column": "../picker-column/index", + "loading": "../loading/index" + } +} diff --git a/miniprogram/components/@mkl/picker/index.wxml b/miniprogram/components/@mkl/picker/index.wxml new file mode 100644 index 0000000..21b6999 --- /dev/null +++ b/miniprogram/components/@mkl/picker/index.wxml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + function isSimple(columns) { + return columns.length && !columns[0].values; + } + module.exports = isSimple; + \ No newline at end of file diff --git a/miniprogram/components/@mkl/picker/index.wxss b/miniprogram/components/@mkl/picker/index.wxss new file mode 100644 index 0000000..784c2b0 --- /dev/null +++ b/miniprogram/components/@mkl/picker/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-picker{position:relative;overflow:hidden;-webkit-text-size-adjust:100%;-webkit-user-select:none;user-select:none;background-color:#fff;background-color:var(--picker-background-color,#fff)}.van-picker__toolbar{display:-webkit-flex;display:flex;-webkit-justify-content:space-between;justify-content:space-between;height:44px;height:var(--picker-toolbar-height,44px);line-height:44px;line-height:var(--picker-toolbar-height,44px)}.van-picker__cancel,.van-picker__confirm{padding:0 16px;padding:var(--picker-action-padding,0 16px);font-size:14px;font-size:var(--picker-action-font-size,14px);color:#1989fa;color:var(--picker-action-text-color,#1989fa)}.van-picker__cancel--hover,.van-picker__confirm--hover{background-color:#f2f3f5;background-color:var(--picker-action-active-color,#f2f3f5)}.van-picker__title{max-width:50%;text-align:center;font-weight:500;font-weight:var(--font-weight-bold,500);font-size:16px;font-size:var(--picker-option-font-size,16px)}.van-picker__columns{position:relative;display:-webkit-flex;display:flex}.van-picker__column{-webkit-flex:1 1;flex:1 1;width:0}.van-picker__loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;background-color:hsla(0,0%,100%,.9);background-color:var(--picker-loading-mask-color,hsla(0,0%,100%,.9))}.van-picker__mask{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;background-image:linear-gradient(180deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4)),linear-gradient(0deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4));background-repeat:no-repeat;background-position:top,bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:none}.van-picker__frame,.van-picker__loading .van-loading{position:absolute;top:50%;left:0;z-index:1;width:100%;-webkit-transform:translateY(-50%);transform:translateY(-50%);pointer-events:none} \ No newline at end of file diff --git a/miniprogram/components/@mkl/picker/shared.d.ts b/miniprogram/components/@mkl/picker/shared.d.ts new file mode 100644 index 0000000..c548045 --- /dev/null +++ b/miniprogram/components/@mkl/picker/shared.d.ts @@ -0,0 +1,21 @@ +export declare const pickerProps: { + title: StringConstructor; + loading: BooleanConstructor; + showToolbar: BooleanConstructor; + cancelButtonText: { + type: StringConstructor; + value: string; + }; + confirmButtonText: { + type: StringConstructor; + value: string; + }; + visibleItemCount: { + type: NumberConstructor; + value: number; + }; + itemHeight: { + type: NumberConstructor; + value: number; + }; +}; diff --git a/miniprogram/components/@mkl/picker/shared.js b/miniprogram/components/@mkl/picker/shared.js new file mode 100644 index 0000000..a8c96a8 --- /dev/null +++ b/miniprogram/components/@mkl/picker/shared.js @@ -0,0 +1,21 @@ +export const 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, + }, +}; diff --git a/miniprogram/components/@mkl/picker/toolbar.wxml b/miniprogram/components/@mkl/picker/toolbar.wxml new file mode 100644 index 0000000..4fa9db5 --- /dev/null +++ b/miniprogram/components/@mkl/picker/toolbar.wxml @@ -0,0 +1,28 @@ + diff --git a/miniprogram/components/@mkl/sticky/index.d.ts b/miniprogram/components/@mkl/sticky/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram/components/@mkl/sticky/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram/components/@mkl/sticky/index.js b/miniprogram/components/@mkl/sticky/index.js new file mode 100644 index 0000000..7333995 --- /dev/null +++ b/miniprogram/components/@mkl/sticky/index.js @@ -0,0 +1,105 @@ +import { VantComponent } from "../common/component"; +import { pageScrollMixin } from "../mixins/page-scroll"; +const ROOT_ELEMENT = ".van-sticky"; +VantComponent({ + props: { + zIndex: { + type: Number, + value: 99, + }, + offsetTop: { + type: Number, + value: 0, + observer: "onScroll", + }, + disabled: { + type: Boolean, + observer: "onScroll", + }, + container: { + type: null, + observer: "onScroll", + }, + scrollTop: { + type: null, + observer(val) { + this.onScroll({ scrollTop: val }); + }, + }, + }, + mixins: [ + pageScrollMixin(function (event) { + if (this.data.scrollTop != null) { + return; + } + this.onScroll(event); + }), + ], + data: { + height: 0, + fixed: false, + transform: 0, + }, + mounted() { + this.onScroll(); + }, + methods: { + onScroll({ scrollTop } = {}) { + const { container, offsetTop, disabled } = this.data; + if (disabled) { + this.setDataAfterDiff({ + fixed: false, + transform: 0, + }); + return; + } + this.scrollTop = scrollTop || this.scrollTop; + if (typeof container === "function") { + Promise.all([this.getRect(ROOT_ELEMENT), this.getContainerRect()]).then(([root, container]) => { + if (offsetTop + root.height > container.height + container.top) { + this.setDataAfterDiff({ + fixed: false, + transform: container.height - root.height, + }); + } else if (offsetTop >= root.top) { + this.setDataAfterDiff({ + fixed: true, + height: root.height, + transform: 0, + }); + } else { + this.setDataAfterDiff({ fixed: false, transform: 0 }); + } + }); + return; + } + this.getRect(ROOT_ELEMENT).then((root) => { + if (offsetTop >= root.top) { + this.setDataAfterDiff({ fixed: true, height: root.height }); + this.transform = 0; + } else { + this.setDataAfterDiff({ fixed: false }); + } + }); + }, + setDataAfterDiff(data) { + wx.nextTick(() => { + const diff = Object.keys(data).reduce((prev, key) => { + if (data[key] !== this.data[key]) { + prev[key] = data[key]; + } + return prev; + }, {}); + this.setData(diff); + this.$emit("scroll", { + scrollTop: this.scrollTop, + isFixed: data.fixed || this.data.fixed, + }); + }); + }, + getContainerRect() { + const nodesRef = this.data.container(); + return new Promise((resolve) => nodesRef.boundingClientRect(resolve).exec()); + }, + }, +}); diff --git a/miniprogram/components/@mkl/sticky/index.json b/miniprogram/components/@mkl/sticky/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram/components/@mkl/sticky/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram/components/@mkl/sticky/index.wxml b/miniprogram/components/@mkl/sticky/index.wxml new file mode 100644 index 0000000..0a26c7c --- /dev/null +++ b/miniprogram/components/@mkl/sticky/index.wxml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/miniprogram/components/@mkl/sticky/index.wxs b/miniprogram/components/@mkl/sticky/index.wxs new file mode 100644 index 0000000..18efe14 --- /dev/null +++ b/miniprogram/components/@mkl/sticky/index.wxs @@ -0,0 +1,37 @@ +/* eslint-disable */ +function wrapStyle(data) { + var style = ''; + + if (data.transform) { + style += 'transform: translate3d(0, ' + data.transform + 'px, 0);'; + } + + if (data.fixed) { + style += 'top: ' + data.offsetTop + 'px;'; + } + + if (data.zIndex) { + style += 'z-index: ' + data.zIndex + ';'; + } + + return style; +} + +function containerStyle(data) { + var style = ''; + + if (data.fixed) { + style += 'height: ' + data.height + 'px;'; + } + + if (data.zIndex) { + style += 'z-index: ' + data.zIndex + ';'; + } + + return style; +} + +module.exports = { + wrapStyle: wrapStyle, + containerStyle: containerStyle +}; diff --git a/miniprogram/components/@mkl/sticky/index.wxss b/miniprogram/components/@mkl/sticky/index.wxss new file mode 100644 index 0000000..5269387 --- /dev/null +++ b/miniprogram/components/@mkl/sticky/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-sticky{position:relative}.van-sticky-wrap--fixed{position:fixed;right:0;left:0} \ No newline at end of file diff --git a/miniprogram/components/@mkl/tab/index.d.ts b/miniprogram/components/@mkl/tab/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram/components/@mkl/tab/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram/components/@mkl/tab/index.js b/miniprogram/components/@mkl/tab/index.js new file mode 100644 index 0000000..ed8fffb --- /dev/null +++ b/miniprogram/components/@mkl/tab/index.js @@ -0,0 +1,59 @@ +import { VantComponent } from "../common/component"; +VantComponent({ + relation: { + name: "tabs", + type: "ancestor", + current: "tab", + }, + props: { + dot: { + type: Boolean, + observer: "update", + }, + info: { + type: null, + observer: "update", + }, + title: { + type: String, + observer: "update", + }, + disabled: { + type: Boolean, + observer: "update", + }, + titleStyle: { + type: String, + observer: "update", + }, + name: { + type: [Number, String], + value: "", + }, + }, + data: { + active: false, + }, + methods: { + getComputedName() { + if (this.data.name !== "") { + return this.data.name; + } + return this.index; + }, + updateRender(active, parent) { + const { data: parentData } = parent; + this.inited = this.inited || active; + this.setData({ + active, + shouldRender: this.inited || !parentData.lazyRender, + shouldShow: active || parentData.animated, + }); + }, + update() { + if (this.parent) { + this.parent.updateTabs(); + } + }, + }, +}); diff --git a/miniprogram/components/@mkl/tab/index.json b/miniprogram/components/@mkl/tab/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram/components/@mkl/tab/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram/components/@mkl/tab/index.wxml b/miniprogram/components/@mkl/tab/index.wxml new file mode 100644 index 0000000..71e56c9 --- /dev/null +++ b/miniprogram/components/@mkl/tab/index.wxml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/miniprogram/components/@mkl/tab/index.wxss b/miniprogram/components/@mkl/tab/index.wxss new file mode 100644 index 0000000..55af244 --- /dev/null +++ b/miniprogram/components/@mkl/tab/index.wxss @@ -0,0 +1,21 @@ +/* @import "../common/index.wxss"; */ +:host { + -webkit-flex-shrink: 0; + flex-shrink: 0; + width: 100%; +} +.van-tab__pane, +:host { + box-sizing: border-box; +} +.van-tab__pane { + overflow-y: auto; + -webkit-overflow-scrolling: touch; +} +.van-tab__pane--active { + height: auto; +} +.van-tab__pane--inactive { + height: 0; + overflow: visible; +} diff --git a/miniprogram/components/@mkl/tabs/index.d.ts b/miniprogram/components/@mkl/tabs/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram/components/@mkl/tabs/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram/components/@mkl/tabs/index.js b/miniprogram/components/@mkl/tabs/index.js new file mode 100644 index 0000000..2e58fae --- /dev/null +++ b/miniprogram/components/@mkl/tabs/index.js @@ -0,0 +1,255 @@ +import { VantComponent } from "../common/component"; +import { touch } from "../mixins/touch"; +import { isDef, addUnit } from "../common/utils"; +VantComponent({ + mixins: [touch], + classes: ["nav-class", "tab-class", "tab-active-class", "line-class"], + relation: { + name: "tab", + type: "descendant", + current: "tabs", + linked(target) { + target.index = this.children.length - 1; + this.updateTabs(); + }, + unlinked() { + this.children = this.children.map((child, index) => { + child.index = index; + return child; + }); + this.updateTabs(); + }, + }, + props: { + color: { + type: String, + observer: "setLine", + }, + sticky: Boolean, + animated: { + type: Boolean, + observer() { + this.children.forEach((child, index) => child.updateRender(index === this.data.currentIndex, this)); + }, + }, + swipeable: Boolean, + lineWidth: { + type: [String, Number], + value: -1, + observer: "setLine", + }, + lineHeight: { + type: [String, Number], + value: -1, + observer: "setLine", + }, + titleActiveColor: String, + titleInactiveColor: String, + active: { + type: [String, Number], + value: 0, + observer(name) { + if (name !== this.getCurrentName()) { + this.setCurrentIndexByName(name); + } + }, + }, + type: { + type: String, + value: "line", + }, + border: { + type: Boolean, + value: true, + }, + ellipsis: { + type: Boolean, + value: true, + }, + duration: { + type: Number, + value: 0.3, + }, + zIndex: { + type: Number, + value: 1, + }, + swipeThreshold: { + type: Number, + value: 4, + observer(value) { + this.setData({ + scrollable: this.children.length > value || !this.data.ellipsis, + }); + }, + }, + offsetTop: { + type: Number, + value: 0, + }, + lazyRender: { + type: Boolean, + value: true, + }, + }, + data: { + tabs: [], + lineStyle: "", + scrollLeft: 0, + scrollable: false, + trackStyle: "", + currentIndex: null, + container: null, + }, + mounted() { + wx.nextTick(() => { + this.setLine(true); + this.scrollIntoView(); + }); + }, + methods: { + updateContainer() { + this.setData({ + container: () => this.createSelectorQuery().select(".van-tabs"), + }); + }, + updateTabs() { + const { children = [], data } = this; + this.setData({ + tabs: children.map((child) => child.data), + scrollable: this.children.length > data.swipeThreshold || !data.ellipsis, + }); + this.setCurrentIndexByName(this.getCurrentName() || data.active); + }, + trigger(eventName, child) { + const { currentIndex } = this.data; + const currentChild = child || this.children[currentIndex]; + if (!isDef(currentChild)) { + return; + } + this.$emit(eventName, { + index: currentChild.index, + name: currentChild.getComputedName(), + title: currentChild.data.title, + }); + }, + onTap(event) { + const { index } = event.currentTarget.dataset; + const child = this.children[index]; + if (child.data.disabled) { + this.trigger("disabled", child); + } else { + this.setCurrentIndex(index); + wx.nextTick(() => { + this.trigger("click"); + }); + } + }, + // correct the index of active tab + setCurrentIndexByName(name) { + const { children = [] } = this; + const matched = children.filter((child) => child.getComputedName() === name); + if (matched.length) { + this.setCurrentIndex(matched[0].index); + } + }, + setCurrentIndex(currentIndex) { + const { data, children = [] } = this; + if (!isDef(currentIndex) || currentIndex >= children.length || currentIndex < 0) { + return; + } + children.forEach((item, index) => { + const active = index === currentIndex; + if (active !== item.data.active || !item.inited) { + item.updateRender(active, this); + } + }); + if (currentIndex === data.currentIndex) { + return; + } + const shouldEmitChange = data.currentIndex !== null; + this.setData({ currentIndex }); + wx.nextTick(() => { + this.setLine(); + this.scrollIntoView(); + this.updateContainer(); + this.trigger("input"); + if (shouldEmitChange) { + this.trigger("change"); + } + }); + }, + getCurrentName() { + const activeTab = this.children[this.data.currentIndex]; + if (activeTab) { + return activeTab.getComputedName(); + } + }, + setLine(skipTransition) { + if (this.data.type !== "line") { + return; + } + const { color, duration, currentIndex, lineWidth, lineHeight } = this.data; + this.getRect(".van-tab", true).then((rects = []) => { + const rect = rects[currentIndex]; + if (rect == null) { + return; + } + const width = lineWidth !== -1 ? lineWidth : rect.width / 2; + const height = lineHeight !== -1 ? `height: ${addUnit(lineHeight)}; border-radius: ${addUnit(lineHeight)};` : ""; + let left = rects.slice(0, currentIndex).reduce((prev, curr) => prev + curr.width, 0); + left += (rect.width - width) / 2; + const transition = skipTransition ? "" : `transition-duration: ${duration}s; -webkit-transition-duration: ${duration}s;`; + this.setData({ + lineStyle: ` + ${height} + width: ${addUnit(width)}; + background-color: ${color}; + -webkit-transform: translateX(${left}px); + transform: translateX(${left}px); + ${transition} + `, + }); + }); + }, + // scroll active tab into view + scrollIntoView() { + const { currentIndex, scrollable } = this.data; + if (!scrollable) { + return; + } + Promise.all([this.getRect(".van-tab", true), this.getRect(".van-tabs__nav")]).then(([tabRects, navRect]) => { + const tabRect = tabRects[currentIndex]; + const offsetLeft = tabRects.slice(0, currentIndex).reduce((prev, curr) => prev + curr.width, 0); + this.setData({ + scrollLeft: offsetLeft - (navRect.width - tabRect.width) / 2, + }); + }); + }, + onTouchScroll(event) { + this.$emit("scroll", event.detail); + }, + onTouchStart(event) { + if (!this.data.swipeable) return; + this.touchStart(event); + }, + onTouchMove(event) { + if (!this.data.swipeable) return; + this.touchMove(event); + }, + // watch swipe touch end + onTouchEnd() { + if (!this.data.swipeable) return; + const { tabs, currentIndex } = this.data; + const { direction, deltaX, offsetX } = this; + const minSwipeDistance = 50; + if (direction === "horizontal" && offsetX >= minSwipeDistance) { + if (deltaX > 0 && currentIndex !== 0) { + this.setCurrentIndex(currentIndex - 1); + } else if (deltaX < 0 && currentIndex !== tabs.length - 1) { + this.setCurrentIndex(currentIndex + 1); + } + } + }, + }, +}); diff --git a/miniprogram/components/@mkl/tabs/index.json b/miniprogram/components/@mkl/tabs/index.json new file mode 100644 index 0000000..19c0bc3 --- /dev/null +++ b/miniprogram/components/@mkl/tabs/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-info": "../info/index", + "van-sticky": "../sticky/index" + } +} diff --git a/miniprogram/components/@mkl/tabs/index.wxml b/miniprogram/components/@mkl/tabs/index.wxml new file mode 100644 index 0000000..150c9dd --- /dev/null +++ b/miniprogram/components/@mkl/tabs/index.wxml @@ -0,0 +1,26 @@ + + + + + + + + + + + + {{ item.title }} + + + + + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/components/@mkl/tabs/index.wxs b/miniprogram/components/@mkl/tabs/index.wxs new file mode 100644 index 0000000..eeed7fc --- /dev/null +++ b/miniprogram/components/@mkl/tabs/index.wxs @@ -0,0 +1,64 @@ +/* eslint-disable */ +function tabClass(active, ellipsis) { + var classes = ["tab-class"]; + + if (active) { + classes.push("tab-active-class"); + } + + if (ellipsis) { + classes.push("van-ellipsis"); + } + + return classes.join(" "); +} + +function tabStyle(active, ellipsis, color, type, disabled, activeColor, inactiveColor, swipeThreshold, scrollable) { + var styles = []; + var isCard = type === "card"; + // card theme color + if (color && isCard) { + styles.push("border-color:" + color); + + if (!disabled) { + if (active) { + styles.push("background-color:" + color); + } else { + styles.push("color:" + color); + } + } + } + + var titleColor = active ? activeColor : inactiveColor; + if (titleColor) { + styles.push("color:" + titleColor); + } + + if (scrollable && ellipsis) { + styles.push("flex-basis:" + 88 / swipeThreshold + "%"); + } + + return styles.join(";"); +} + +function tabCardTypeBorderStyle(color, type) { + var isCard = type === "card"; + var styles = []; + if (isCard && color) { + styles.push("border-color:" + color); + } + return styles.join(";"); +} + +function trackStyle(data) { + if (!data.animated) { + return ""; + } + + return ["transform: translate3d(" + -100 * data.currentIndex + "%, 0, 0)", "-webkit-transition-duration: " + data.duration + "s", "transition-duration: " + data.duration + "s"].join(";"); +} + +module.exports.tabClass = tabClass; +module.exports.tabStyle = tabStyle; +module.exports.trackStyle = trackStyle; +module.exports.tabCardTypeBorderStyle = tabCardTypeBorderStyle; diff --git a/miniprogram/components/@mkl/tabs/index.wxss b/miniprogram/components/@mkl/tabs/index.wxss new file mode 100644 index 0000000..9de5325 --- /dev/null +++ b/miniprogram/components/@mkl/tabs/index.wxss @@ -0,0 +1,134 @@ +/* @import "../common/index.wxss"; */ +.van-tabs { + position: relative; + -webkit-tap-highlight-color: transparent; +} +.van-tabs__wrap { + display: -webkit-flex; + display: flex; + overflow: hidden; +} +.van-tabs__wrap--scrollable .van-tab { + -webkit-flex: 0 0 22%; + flex: 0 0 22%; +} +.van-tabs__scroll { + background-color: #fff; +} +.van-tabs__scroll--line { + box-sizing: initial; + height: calc(100% + 15px); +} +.van-tabs__scroll--card { + margin: 0 16px; +} +.van-tabs__scroll::-webkit-scrollbar { + display: none; +} +.van-tabs__nav { + position: relative; + display: -webkit-flex; + display: flex; + -webkit-user-select: none; + user-select: none; +} +.van-tabs__nav--card { + box-sizing: border-box; + height: 30px; + border: 1px solid #ee0a24; + border-radius: 2px; +} +.van-tabs__nav--card .van-tab { + color: #ee0a24; + line-height: 28px; + border-right: 1px solid #ee0a24; +} +.van-tabs__nav--card .van-tab:last-child { + border-right: none; +} +.van-tabs__nav--card .van-tab.van-tab--active { + color: #fff; + background-color: #ee0a24; +} +.van-tabs__nav--card .van-tab--disabled { + color: #c8c9cc; +} +.van-tabs__line { + position: absolute; + bottom: 0; + left: 0; + z-index: 1; + height: 3px; + border-radius: 3px; + background-color: #ee0a24; +} +.van-tabs__track { + position: relative; + width: 100%; + height: 100%; +} +.van-tabs__track--animated { + display: -webkit-flex; + display: flex; + transition-property: -webkit-transform; + transition-property: transform; + transition-property: transform, -webkit-transform; +} +.van-tabs__content { + overflow: hidden; +} +.van-tabs--line .van-tabs__wrap { + height: 44px; +} +.van-tabs--card .van-tabs__wrap { + height: 30px; +} +.van-tab { + position: relative; + -webkit-flex: 1; + flex: 1; + box-sizing: border-box; + min-width: 0; + padding: 0 5px; + text-align: center; + cursor: pointer; + /* color: #646566; + font-size: 14px; + line-height: 44px; */ +} +/* .van-tab--active { + font-weight: 500; + color: #323233; +} */ +.mkl-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + font-size: 30rpx; + color: #999; + background: #ffffff; + height: 100rpx; + line-height: 100rpx; +} +.van-tab--active .mkl-ellipsis .mkl-active { + /* font-weight: 500; + color: #323233; */ + background: url("http://fileimg.makalu.cc/CORE_38D582DD840F4816B1F14D964F0046E9.png") no-repeat bottom/100% 15rpx; + font-size: 30rpx; + color: #000; + font-weight: bold; +} +.van-tab--disabled { + color: #c8c9cc; +} +.van-tab--complete { + -webkit-flex: 1 0 auto !important; + flex: 1 0 auto !important; +} +.van-tab__title__info { + position: relative !important; + top: -1px !important; + display: inline-block; + -webkit-transform: translateX(0) !important; + transform: translateX(0) !important; +} diff --git a/miniprogram/components/@mkl/wxs/add-unit.wxs b/miniprogram/components/@mkl/wxs/add-unit.wxs new file mode 100644 index 0000000..27a22d8 --- /dev/null +++ b/miniprogram/components/@mkl/wxs/add-unit.wxs @@ -0,0 +1,14 @@ +/* eslint-disable */ +var REGEXP = getRegExp('^\d+(\.\d+)?$'); + +function addUnit(value) { + if (value == null) { + return undefined; + } + + return REGEXP.test('' + value) ? value + 'px' : value; +} + +module.exports = { + addUnit: addUnit +}; diff --git a/miniprogram/components/@mkl/wxs/array.wxs b/miniprogram/components/@mkl/wxs/array.wxs new file mode 100644 index 0000000..610089c --- /dev/null +++ b/miniprogram/components/@mkl/wxs/array.wxs @@ -0,0 +1,5 @@ +function isArray(array) { + return array && array.constructor === 'Array'; +} + +module.exports.isArray = isArray; diff --git a/miniprogram/components/@mkl/wxs/bem.wxs b/miniprogram/components/@mkl/wxs/bem.wxs new file mode 100644 index 0000000..93b2777 --- /dev/null +++ b/miniprogram/components/@mkl/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; diff --git a/miniprogram/components/@mkl/wxs/memoize.wxs b/miniprogram/components/@mkl/wxs/memoize.wxs new file mode 100644 index 0000000..261ae67 --- /dev/null +++ b/miniprogram/components/@mkl/wxs/memoize.wxs @@ -0,0 +1,54 @@ +/** + * Simple memoize + * wxs doesn't support fn.apply, so this memoize only support up to 2 args + */ + +function isPrimitive(value) { + var type = typeof value; + return ( + type === 'boolean' || + type === 'number' || + type === 'string' || + type === 'undefined' || + value === null + ); +} + +// mock simple fn.call in wxs +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['key' + i] = args[i]; + } + return JSON.stringify(obj); +} + +function memoize(fn) { + var cache = {}; + + return function() { + var key = serializer(arguments); + if (cache[key] === undefined) { + cache[key] = call(fn, arguments); + } + + return cache[key]; + }; +} + +module.exports.memoize = memoize; diff --git a/miniprogram/components/@mkl/wxs/object.wxs b/miniprogram/components/@mkl/wxs/object.wxs new file mode 100644 index 0000000..e077107 --- /dev/null +++ b/miniprogram/components/@mkl/wxs/object.wxs @@ -0,0 +1,13 @@ +/* eslint-disable */ +var REGEXP = getRegExp('{|}|"', 'g'); + +function keys(obj) { + return JSON.stringify(obj) + .replace(REGEXP, '') + .split(',') + .map(function(item) { + return item.split(':')[0]; + }); +} + +module.exports.keys = keys; diff --git a/miniprogram/components/@mkl/wxs/utils.wxs b/miniprogram/components/@mkl/wxs/utils.wxs new file mode 100644 index 0000000..d5c9d8c --- /dev/null +++ b/miniprogram/components/@mkl/wxs/utils.wxs @@ -0,0 +1,10 @@ +/* eslint-disable */ +var bem = require('./bem.wxs').bem; +var memoize = require('./memoize.wxs').memoize; +var addUnit = require('./add-unit.wxs').addUnit; + +module.exports = { + bem: memoize(bem), + memoize: memoize, + addUnit: addUnit +}; diff --git a/miniprogram/components/chatroom/chatroom.js b/miniprogram/components/chatroom/chatroom.js new file mode 100644 index 0000000..5e716b0 --- /dev/null +++ b/miniprogram/components/chatroom/chatroom.js @@ -0,0 +1,336 @@ +const FATAL_REBUILD_TOLERANCE = 10 +const SETDATA_SCROLL_TO_BOTTOM = { + scrollTop: 100000, + scrollWithAnimation: true, +} + +Component({ + properties: { + envId: String, + collection: String, + groupId: String, + groupName: String, + userInfo: Object, + onGetUserInfo: { + type: Function, + }, + getOpenID: { + type: Function, + }, + }, + + data: { + chats: [], + textInputValue: '', + openId: '', + scrollTop: 0, + scrollToMessage: '', + hasKeyboard: false, + }, + + methods: { + onGetUserInfo(e) { + this.properties.onGetUserInfo(e) + }, + + getOpenID() { + return this.properties.getOpenID() + }, + + mergeCommonCriteria(criteria) { + return { + groupId: this.data.groupId, + ...criteria, + } + }, + + async initRoom() { + this.try(async () => { + await this.initOpenID() + + const { envId, collection } = this.properties + const db = this.db = wx.cloud.database({ + env: envId, + }) + const _ = db.command + + const { data: initList } = await db.collection(collection).where(this.mergeCommonCriteria()).orderBy('sendTimeTS', 'desc').get() + + console.log('init query chats', initList) + + this.setData({ + chats: initList.reverse(), + scrollTop: 10000, + }) + + this.initWatch(initList.length ? { + sendTimeTS: _.gt(initList[initList.length - 1].sendTimeTS), + } : {}) + }, '初始化失败') + }, + + async initOpenID() { + return this.try(async () => { + const openId = await this.getOpenID() + + this.setData({ + openId, + }) + }, '初始化 openId 失败') + }, + + async initWatch(criteria) { + this.try(() => { + const { collection } = this.properties + const db = this.db + const _ = db.command + + console.warn(`开始监听`, criteria) + this.messageListener = db.collection(collection).where(this.mergeCommonCriteria(criteria)).watch({ + onChange: this.onRealtimeMessageSnapshot.bind(this), + onError: e => { + if (!this.inited || this.fatalRebuildCount >= FATAL_REBUILD_TOLERANCE) { + this.showError(this.inited ? '监听错误,已断开' : '初始化监听失败', e, '重连', () => { + this.initWatch(this.data.chats.length ? { + sendTimeTS: _.gt(this.data.chats[this.data.chats.length - 1].sendTimeTS), + } : {}) + }) + } else { + this.initWatch(this.data.chats.length ? { + sendTimeTS: _.gt(this.data.chats[this.data.chats.length - 1].sendTimeTS), + } : {}) + } + }, + }) + }, '初始化监听失败') + }, + + onRealtimeMessageSnapshot(snapshot) { + console.warn(`收到消息`, snapshot) + + if (snapshot.type === 'init') { + this.setData({ + chats: [ + ...this.data.chats, + ...[...snapshot.docs].sort((x, y) => x.sendTimeTS - y.sendTimeTS), + ], + }) + this.scrollToBottom() + this.inited = true + } else { + let hasNewMessage = false + let hasOthersMessage = false + const chats = [...this.data.chats] + for (const docChange of snapshot.docChanges) { + switch (docChange.queueType) { + case 'enqueue': { + hasOthersMessage = docChange.doc._openid !== this.data.openId + const ind = chats.findIndex(chat => chat._id === docChange.doc._id) + if (ind > -1) { + if (chats[ind].msgType === 'image' && chats[ind].tempFilePath) { + chats.splice(ind, 1, { + ...docChange.doc, + tempFilePath: chats[ind].tempFilePath, + }) + } else chats.splice(ind, 1, docChange.doc) + } else { + hasNewMessage = true + chats.push(docChange.doc) + } + break + } + } + } + this.setData({ + chats: chats.sort((x, y) => x.sendTimeTS - y.sendTimeTS), + }) + if (hasOthersMessage || hasNewMessage) { + this.scrollToBottom() + } + } + }, + + async onConfirmSendText(e) { + this.try(async () => { + if (!e.detail.value) { + return + } + + const { collection } = this.properties + const db = this.db + const _ = db.command + + const doc = { + _id: `${Math.random()}_${Date.now()}`, + groupId: this.data.groupId, + avatar: this.data.userInfo.avatarUrl, + nickName: this.data.userInfo.nickName, + msgType: 'text', + textContent: e.detail.value, + sendTime: new Date(), + sendTimeTS: Date.now(), // fallback + } + + this.setData({ + textInputValue: '', + chats: [ + ...this.data.chats, + { + ...doc, + _openid: this.data.openId, + writeStatus: 'pending', + }, + ], + }) + this.scrollToBottom(true) + + await db.collection(collection).add({ + data: doc, + }) + + this.setData({ + chats: this.data.chats.map(chat => { + if (chat._id === doc._id) { + return { + ...chat, + writeStatus: 'written', + } + } else return chat + }), + }) + }, '发送文字失败') + }, + + async onChooseImage(e) { + wx.chooseImage({ + count: 1, + sourceType: ['album', 'camera'], + success: async res => { + const { envId, collection } = this.properties + const doc = { + _id: `${Math.random()}_${Date.now()}`, + groupId: this.data.groupId, + avatar: this.data.userInfo.avatarUrl, + nickName: this.data.userInfo.nickName, + msgType: 'image', + sendTime: new Date(), + sendTimeTS: Date.now(), // fallback + } + + this.setData({ + chats: [ + ...this.data.chats, + { + ...doc, + _openid: this.data.openId, + tempFilePath: res.tempFilePaths[0], + writeStatus: 0, + }, + ] + }) + this.scrollToBottom(true) + + const uploadTask = wx.cloud.uploadFile({ + cloudPath: `${this.data.openId}/${Math.random()}_${Date.now()}.${res.tempFilePaths[0].match(/\.(\w+)$/)[1]}`, + filePath: res.tempFilePaths[0], + config: { + env: envId, + }, + success: res => { + this.try(async () => { + await this.db.collection(collection).add({ + data: { + ...doc, + imgFileID: res.fileID, + }, + }) + }, '发送图片失败') + }, + fail: e => { + this.showError('发送图片失败', e) + }, + }) + + uploadTask.onProgressUpdate(({ progress }) => { + this.setData({ + chats: this.data.chats.map(chat => { + if (chat._id === doc._id) { + return { + ...chat, + writeStatus: progress, + } + } else return chat + }) + }) + }) + }, + }) + }, + + onMessageImageTap(e) { + wx.previewImage({ + urls: [e.target.dataset.fileid], + }) + }, + + scrollToBottom(force) { + if (force) { + console.log('force scroll to bottom') + this.setData(SETDATA_SCROLL_TO_BOTTOM) + return + } + + this.createSelectorQuery().select('.body').boundingClientRect(bodyRect => { + this.createSelectorQuery().select(`.body`).scrollOffset(scroll => { + if (scroll.scrollTop + bodyRect.height * 3 > scroll.scrollHeight) { + console.log('should scroll to bottom') + this.setData(SETDATA_SCROLL_TO_BOTTOM) + } + }).exec() + }).exec() + }, + + async onScrollToUpper() { + if (this.db && this.data.chats.length) { + const { collection } = this.properties + const _ = this.db.command + const { data } = await this.db.collection(collection).where(this.mergeCommonCriteria({ + sendTimeTS: _.lt(this.data.chats[0].sendTimeTS), + })).orderBy('sendTimeTS', 'desc').get() + this.data.chats.unshift(...data.reverse()) + this.setData({ + chats: this.data.chats, + scrollToMessage: `item-${data.length}`, + scrollWithAnimation: false, + }) + } + }, + + async try(fn, title) { + try { + await fn() + } catch (e) { + this.showError(title, e) + } + }, + + showError(title, content, confirmText, confirmCallback) { + console.error(title, content) + wx.showModal({ + title, + content: content.toString(), + showCancel: confirmText ? true : false, + confirmText, + success: res => { + res.confirm && confirmCallback() + }, + }) + }, + }, + + ready() { + global.chatroom = this + this.initRoom() + this.fatalRebuildCount = 0 + }, +}) diff --git a/miniprogram/components/chatroom/chatroom.json b/miniprogram/components/chatroom/chatroom.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/miniprogram/components/chatroom/chatroom.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/components/chatroom/chatroom.wxml b/miniprogram/components/chatroom/chatroom.wxml new file mode 100644 index 0000000..056a44c --- /dev/null +++ b/miniprogram/components/chatroom/chatroom.wxml @@ -0,0 +1,85 @@ + + + + + + {{groupName}} + + + + + + + + + + {{item.nickName}} + + + {{item.writeStatus}}% + + + + + + ··· + {{item.textContent}} + + + + + + + + + + + + + + + + + + + + + diff --git a/miniprogram/components/chatroom/chatroom.wxss b/miniprogram/components/chatroom/chatroom.wxss new file mode 100644 index 0000000..d726127 --- /dev/null +++ b/miniprogram/components/chatroom/chatroom.wxss @@ -0,0 +1,161 @@ +.chatroom { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; +} + +.chatroom .header { + flex-basis: fit-content; + display: flex; + flex-direction: row; + border-bottom: 1px solid #ddd; + padding: 20rpx 0 30rpx; + font-size: 30rpx; + /* background: rgb(34, 187, 47); + color: rgba(255, 255, 255, 1) */ + /* font-family: 'Microsoft YaHei' */ +} + +.chatroom .header .left { + flex: 1; +} + +.chatroom .header .middle { + flex: 2; + text-align: center; +} + +.chatroom .header .right { + flex: 1; +} + +.chatroom .body { + flex: 2; + display: flex; + flex-direction: column; + background: rgb(237,237,237); + padding-bottom: 16rpx; +} + +.body .message { + display: flex; + flex-direction: row; + position: relative; + margin: 12rpx 0; +} + +.body .message.message__self { + flex-direction: row-reverse; +} + +.body .message .avatar { + position: relative; + top: 5rpx; + width: 60rpx; + height: 60rpx; + border-radius: 5rpx; + margin: 15rpx; +} + +.body .message .main { + flex: 1; + display: flex; + flex-direction: column; + align-items: flex-start; +} + +.body .message.message__self .main { + align-items: flex-end; +} + +.body .message .nickname { + font-size: 24rpx; + color: #444; +} + +.body .message .text-content { + border: 1px solid transparent; + border-radius: 3px; + background-color: #fff; + margin: 2px 0 0 0; + padding: 4px 10px; + font-size: 30rpx; + display: inline-block; +} + +.body .message.message__self .text-content { + background-color: paleturquoise; +} + +.body .message .text-wrapper { + display: flex; + flex-direction: row; + align-items: center; + max-width: 80%; +} + +.body .message.message__self .text-wrapper .loading{ + font-size: 16rpx; + margin-right: 18rpx; +} + +.body .message .image-wrapper { + display: flex; + flex-direction: row; + align-items: center; +} + +.body .message .image-content { + max-width: 240rpx; + max-height: 240rpx; +} + +.body .message.message__self .image-wrapper .loading { + font-size: 20rpx; + margin-right: 18rpx; +} + +.chatroom .footer { + flex-basis: fit-content; + display: flex; + flex-direction: row; + border-top: 1px solid #ddd; + font-size: 10rpx; + padding: 20rpx 30rpx; + background: rgb(246,246,246); +} + +.chatroom .footer .message-sender { + flex: 1; + display: flex; + flex-direction: row; +} + +.message-sender .text-input { + flex: 1; + font-size: 16px; + border: 1px solid transparent; + border-radius: 5px; + padding: 3px 6px; + margin: 0 10px 0 5px; + background: #fff; +} + +.message-sender .btn-send-image { + width: 50rpx; + height: 50rpx; + align-self: center; +} + +button { + font-size: 30rpx; +} + +button.userinfo { + background: darkturquoise; + color: aliceblue; + padding: 0 100rpx; + border: 1px solid #ddd; + border-radius: 20px; +} diff --git a/miniprogram/components/chatroom/photo.png b/miniprogram/components/chatroom/photo.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc4f34e37a9ce66476da8f57d3e97fdc4ec7136 GIT binary patch literal 3692 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 NgQcMXRpJE2KL9|q)@=X) literal 0 HcmV?d00001 diff --git a/miniprogram/ec-canvas/ec-canvas.js b/miniprogram/ec-canvas/ec-canvas.js new file mode 100644 index 0000000..37ff834 --- /dev/null +++ b/miniprogram/ec-canvas/ec-canvas.js @@ -0,0 +1,250 @@ +import WxCanvas from './wx-canvas'; +import * as echarts from './echarts'; + +let ctx; + +function compareVersion(v1, v2) { + v1 = v1.split('.') + v2 = v2.split('.') + const len = Math.max(v1.length, v2.length) + + while (v1.length < len) { + v1.push('0') + } + while (v2.length < len) { + v2.push('0') + } + + for (let i = 0; i < len; i++) { + const num1 = parseInt(v1[i]) + const num2 = parseInt(v2[i]) + + if (num1 > num2) { + return 1 + } else if (num1 < num2) { + return -1 + } + } + return 0 +} + +Component({ + properties: { + canvasId: { + type: String, + value: 'ec-canvas' + }, + + ec: { + type: Object + }, + + forceUseOldCanvas: { + type: Boolean, + value: false + } + }, + + data: { + isUseNewCanvas: false + }, + + ready: function () { + // Disable prograssive because drawImage doesn't support DOM as parameter + // See https://developers.weixin.qq.com/miniprogram/dev/api/canvas/CanvasContext.drawImage.html + echarts.registerPreprocessor(option => { + if (option && option.series) { + if (option.series.length > 0) { + option.series.forEach(series => { + series.progressive = 0; + }); + } + else if (typeof option.series === 'object') { + option.series.progressive = 0; + } + } + }); + + if (!this.data.ec) { + console.warn('组件需绑定 ec 变量,例:'); + return; + } + + if (!this.data.ec.lazyLoad) { + this.init(); + } + }, + + methods: { + init: function (callback) { + const version = wx.getSystemInfoSync().SDKVersion + + const canUseNewCanvas = compareVersion(version, '2.9.0') >= 0; + const forceUseOldCanvas = this.data.forceUseOldCanvas; + const isUseNewCanvas = canUseNewCanvas && !forceUseOldCanvas; + this.setData({ isUseNewCanvas }); + + if (forceUseOldCanvas && canUseNewCanvas) { + console.warn('开发者强制使用旧canvas,建议关闭'); + } + + if (isUseNewCanvas) { + // console.log('微信基础库版本大于2.9.0,开始使用'); + // 2.9.0 可以使用 + this.initByNewWay(callback); + } else { + const isValid = compareVersion(version, '1.9.91') >= 0 + if (!isValid) { + console.error('微信基础库版本过低,需大于等于 1.9.91。' + + '参见:https://github.com/ecomfe/echarts-for-weixin' + + '#%E5%BE%AE%E4%BF%A1%E7%89%88%E6%9C%AC%E8%A6%81%E6%B1%82'); + return; + } else { + console.warn('建议将微信基础库调整大于等于2.9.0版本。升级后绘图将有更好性能'); + this.initByOldWay(callback); + } + } + }, + + initByOldWay(callback) { + // 1.9.91 <= version < 2.9.0:原来的方式初始化 + ctx = wx.createCanvasContext(this.data.canvasId, this); + const canvas = new WxCanvas(ctx, this.data.canvasId, false); + + echarts.setCanvasCreator(() => { + return canvas; + }); + // const canvasDpr = wx.getSystemInfoSync().pixelRatio // 微信旧的canvas不能传入dpr + const canvasDpr = 1 + var query = wx.createSelectorQuery().in(this); + query.select('.ec-canvas').boundingClientRect(res => { + if (typeof callback === 'function') { + this.chart = callback(canvas, res.width, res.height, canvasDpr); + } + else if (this.data.ec && typeof this.data.ec.onInit === 'function') { + this.chart = this.data.ec.onInit(canvas, res.width, res.height, canvasDpr); + } + else { + this.triggerEvent('init', { + canvas: canvas, + width: res.width, + height: res.height, + canvasDpr: canvasDpr // 增加了dpr,可方便外面echarts.init + }); + } + }).exec(); + }, + + initByNewWay(callback) { + // version >= 2.9.0:使用新的方式初始化 + const query = wx.createSelectorQuery().in(this) + query + .select('.ec-canvas') + .fields({ node: true, size: true }) + .exec(res => { + const canvasNode = res[0].node + this.canvasNode = canvasNode + + const canvasDpr = wx.getSystemInfoSync().pixelRatio + const canvasWidth = res[0].width + const canvasHeight = res[0].height + + const ctx = canvasNode.getContext('2d') + + const canvas = new WxCanvas(ctx, this.data.canvasId, true, canvasNode) + echarts.setCanvasCreator(() => { + return canvas + }) + + if (typeof callback === 'function') { + this.chart = callback(canvas, canvasWidth, canvasHeight, canvasDpr) + } else if (this.data.ec && typeof this.data.ec.onInit === 'function') { + this.chart = this.data.ec.onInit(canvas, canvasWidth, canvasHeight, canvasDpr) + } else { + this.triggerEvent('init', { + canvas: canvas, + width: canvasWidth, + height: canvasHeight, + dpr: canvasDpr + }) + } + }) + }, + canvasToTempFilePath(opt) { + if (this.data.isUseNewCanvas) { + // 新版 + const query = wx.createSelectorQuery().in(this) + query + .select('.ec-canvas') + .fields({ node: true, size: true }) + .exec(res => { + const canvasNode = res[0].node + opt.canvas = canvasNode + wx.canvasToTempFilePath(opt) + }) + } else { + // 旧的 + if (!opt.canvasId) { + opt.canvasId = this.data.canvasId; + } + ctx.draw(true, () => { + wx.canvasToTempFilePath(opt, this); + }); + } + }, + + touchStart(e) { + if (this.chart && e.touches.length > 0) { + var touch = e.touches[0]; + var handler = this.chart.getZr().handler; + handler.dispatch('mousedown', { + zrX: touch.x, + zrY: touch.y + }); + handler.dispatch('mousemove', { + zrX: touch.x, + zrY: touch.y + }); + handler.processGesture(wrapTouch(e), 'start'); + } + }, + + touchMove(e) { + if (this.chart && e.touches.length > 0) { + var touch = e.touches[0]; + var handler = this.chart.getZr().handler; + handler.dispatch('mousemove', { + zrX: touch.x, + zrY: touch.y + }); + handler.processGesture(wrapTouch(e), 'change'); + } + }, + + touchEnd(e) { + if (this.chart) { + const touch = e.changedTouches ? e.changedTouches[0] : {}; + var handler = this.chart.getZr().handler; + handler.dispatch('mouseup', { + zrX: touch.x, + zrY: touch.y + }); + handler.dispatch('click', { + zrX: touch.x, + zrY: touch.y + }); + handler.processGesture(wrapTouch(e), 'end'); + } + } + } +}); + +function wrapTouch(event) { + for (let i = 0; i < event.touches.length; ++i) { + const touch = event.touches[i]; + touch.offsetX = touch.x; + touch.offsetY = touch.y; + } + return event; +} diff --git a/miniprogram/ec-canvas/ec-canvas.json b/miniprogram/ec-canvas/ec-canvas.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/miniprogram/ec-canvas/ec-canvas.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/ec-canvas/ec-canvas.wxml b/miniprogram/ec-canvas/ec-canvas.wxml new file mode 100644 index 0000000..88826d9 --- /dev/null +++ b/miniprogram/ec-canvas/ec-canvas.wxml @@ -0,0 +1,4 @@ + + + + diff --git a/miniprogram/ec-canvas/ec-canvas.wxss b/miniprogram/ec-canvas/ec-canvas.wxss new file mode 100644 index 0000000..0d64b10 --- /dev/null +++ b/miniprogram/ec-canvas/ec-canvas.wxss @@ -0,0 +1,4 @@ +.ec-canvas { + width: 100%; + height: 100%; +} diff --git a/miniprogram/ec-canvas/echarts.js b/miniprogram/ec-canvas/echarts.js new file mode 100644 index 0000000..68264a5 --- /dev/null +++ b/miniprogram/ec-canvas/echarts.js @@ -0,0 +1,22 @@ + +/* +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + + +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.echarts={})}(this,function(t){"use strict";var e=2311,n=function(){return e++},v="object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?{browser:{},os:{},node:!1,wxa:!0,canvasSupported:!0,svgSupported:!1,touchEventsSupported:!0,domSupported:!1}:"undefined"==typeof document&&"undefined"!=typeof self?{browser:{},os:{},node:!1,worker:!0,canvasSupported:!0,domSupported:!1}:"undefined"==typeof navigator?{browser:{},os:{},node:!0,worker:!1,canvasSupported:!0,svgSupported:!0,domSupported:!1}:function(t){var e={},i=t.match(/Firefox\/([\d.]+)/),n=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(e.firefox=!0,e.version=i[1]);n&&(e.ie=!0,e.version=n[1]);o&&(e.edge=!0,e.version=o[1]);a&&(e.weChat=!0);return{browser:e,os:{},node:!1,canvasSupported:!!document.createElement("canvas").getContext,svgSupported:"undefined"!=typeof SVGRect,touchEventsSupported:"ontouchstart"in window&&!e.ie&&!e.edge,pointerEventsSupported:"onpointerdown"in window&&(e.edge||e.ie&&11<=e.version),domSupported:"undefined"!=typeof document}}(navigator.userAgent);var s={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1},l={"[object Int8Array]":1,"[object Uint8Array]":1,"[object Uint8ClampedArray]":1,"[object Int16Array]":1,"[object Uint16Array]":1,"[object Int32Array]":1,"[object Uint32Array]":1,"[object Float32Array]":1,"[object Float64Array]":1},u=Object.prototype.toString,i=Array.prototype,r=i.forEach,h=i.filter,o=i.slice,c=i.map,d=i.reduce,a={};function f(t,e){"createCanvas"===t&&(y=null),a[t]=e}function D(t){if(null==t||"object"!=typeof t)return t;var e=t,i=u.call(t);if("[object Array]"===i){if(!$(t)){e=[];for(var n=0,o=t.length;n>1)%2;s.cssText=["position:absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","width:0","height:0",n[l]+":0",o[u]+":0",n[1-l]+":auto",o[1-u]+":auto",""].join("!important;"),t.appendChild(r),i.push(r)}return i}(t,r),r);if(s)return s(zt,n,o),i.zrX=zt[0],void(i.zrY=zt[1])}i.zrX=i.zrY=0}function Vt(t){return t||window.event}function Gt(t,e,i){if(null!=(e=Vt(e)).zrX)return e;var n=e.type;if(n&&0<=n.indexOf("touch")){var o="touchend"!==n?e.targetTouches[0]:e.changedTouches[0];o&&Rt(t,o,e,i)}else Rt(t,e,e,i),e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3;var a=e.button;return null==e.which&&void 0!==a&&Ot.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}function Ft(t,e,i,n){Nt?t.addEventListener(e,i,n):t.attachEvent("on"+e,i)}var Wt=Nt?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0};function Ht(t){return 2===t.which||3===t.which}function Zt(){this._track=[]}function Ut(t){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1];return Math.sqrt(e*e+i*i)}Zt.prototype={constructor:Zt,recognize:function(t,e,i){return this._doTrack(t,e,i),this._recognize(t)},clear:function(){return this._track.length=0,this},_doTrack:function(t,e,i){var n=t.touches;if(n){for(var o={points:[],touches:[],target:e,event:t},a=0,r=n.length;an.getWidth()||i<0||i>n.getHeight()}Kt.prototype={constructor:Kt,setHandlerProxy:function(e){this.proxy&&this.proxy.dispose(),e&&(E($t,function(t){e.on&&e.on(t,this[t],this)},this),e.handler=this),this.proxy=e},mousemove:function(t){var e=t.zrX,i=t.zrY,n=Qt(this,e,i),o=this._hovered,a=o.target;a&&!a.__zr&&(a=(o=this.findHover(o.x,o.y)).target);var r=this._hovered=n?{x:e,y:i}:this.findHover(e,i),s=r.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),a&&s!==a&&this.dispatchToElement(o,"mouseout",t),this.dispatchToElement(r,"mousemove",t),s&&s!==a&&this.dispatchToElement(r,"mouseover",t)},mouseout:function(t){var e=t.zrEventControl,i=t.zrIsToLocalDOM;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&(i||this.trigger("globalout",{type:"globalout",event:t}))},resize:function(t){this._hovered={}},dispatch:function(t,e){var i=this[t];i&&i.call(this,e)},dispose:function(){this.proxy.dispose(),this.storage=this.proxy=this.painter=null},setCursorStyle:function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},dispatchToElement:function(t,e,i){var n=(t=t||{}).target;if(!n||!n.silent){for(var o="on"+e,a=function(t,e,i){return{type:t,event:i,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:i.zrX,offsetY:i.zrY,gestureEvent:i.gestureEvent,pinchX:i.pinchX,pinchY:i.pinchY,pinchScale:i.pinchScale,wheelDelta:i.zrDelta,zrByTouch:i.zrByTouch,which:i.which,stop:jt}}(e,t,i);n&&(n[o]&&(a.cancelBubble=n[o].call(n,a)),n.trigger(e,a),n=n.parent,!a.cancelBubble););a.cancelBubble||(this.trigger(e,a),this.painter&&this.painter.eachOtherLayer(function(t){"function"==typeof t[o]&&t[o].call(t,a),t.trigger&&t.trigger(e,a)}))}},findHover:function(t,e,i){for(var n=this.storage.getDisplayList(),o={x:t,y:e},a=n.length-1;0<=a;a--){var r;if(n[a]!==i&&!n[a].ignore&&(r=Jt(n[a],t,e))&&(o.topTarget||(o.topTarget=n[a]),r!==Yt)){o.target=n[a];break}}return o},processGesture:function(t,e){this._gestureMgr||(this._gestureMgr=new Zt);var i=this._gestureMgr;"start"===e&&i.clear();var n=i.recognize(t,this.findHover(t.zrX,t.zrY,null).target,this.proxy.dom);if("end"===e&&i.clear(),n){var o=n.type;t.gestureEvent=o,this.dispatchToElement({target:n.target},o,n.event)}}},E(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(r){Kt.prototype[r]=function(t){var e,i,n=t.zrX,o=t.zrY,a=Qt(this,n,o);if("mouseup"===r&&a||(i=(e=this.findHover(n,o)).target),"mousedown"===r)this._downEl=i,this._downPoint=[t.zrX,t.zrY],this._upEl=i;else if("mouseup"===r)this._upEl=i;else if("click"===r){if(this._downEl!==this._upEl||!this._downPoint||4=this._maxSize&&0>4|(3840&n)>>8,240&n|(240&n)>>4,15&n|(15&n)<<4,1),ze(t,e),e):void Pe(e,0,0,0,1):7===o.length?0<=(n=parseInt(o.substr(1),16))&&n<=16777215?(Pe(e,(16711680&n)>>16,(65280&n)>>8,255&n,1),ze(t,e),e):void Pe(e,0,0,0,1):void 0;var a=o.indexOf("("),r=o.indexOf(")");if(-1!==a&&r+1===o.length){var s=o.substr(0,a),l=o.substr(a+1,r-(a+1)).split(","),u=1;switch(s){case"rgba":if(4!==l.length)return void Pe(e,0,0,0,1);u=Ce(l.pop());case"rgb":return 3!==l.length?void Pe(e,0,0,0,1):(Pe(e,De(l[0]),De(l[1]),De(l[2]),u),ze(t,e),e);case"hsla":return 4!==l.length?void Pe(e,0,0,0,1):(l[3]=Ce(l[3]),Be(l,e),ze(t,e),e);case"hsl":return 3!==l.length?void Pe(e,0,0,0,1):(Be(l,e),ze(t,e),e);default:return}}Pe(e,0,0,0,1)}}function Be(t,e){var i=(parseFloat(t[0])%360+360)%360/360,n=Ce(t[1]),o=Ce(t[2]),a=o<=.5?o*(n+1):o+n-o*n,r=2*o-a;return Pe(e=e||[],Te(255*Le(r,a,i+1/3)),Te(255*Le(r,a,i)),Te(255*Le(r,a,i-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Ve(t,e){var i=Re(t);if(i){for(var n=0;n<3;n++)i[n]=e<0?i[n]*(1-e)|0:(255-i[n])*e+i[n]|0,255e);i++);i=Math.min(i-1,u-2)}C=e;var n=g[(D=i)+1]-g[i];if(0!=n)if(S=(e-g[i])/n,l)if(I=m[i],M=m[0===i?i:i-1],T=m[u-2=i.x&&t<=i.x+i.width&&e>=i.y&&e<=i.y+i.height},clone:function(){return new Mi(this.x,this.y,this.width,this.height)},copy:function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},plain:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}}},Mi.create=function(t){return new Mi(t.x,t.y,t.width,t.height)};var Ii=function(t){for(var e in t=t||{},mi.call(this,t),t)t.hasOwnProperty(e)&&(this[e]=t[e]);this._children=[],this.__storage=null,this.__dirty=!0};Ii.prototype={constructor:Ii,isGroup:!0,type:"group",silent:!1,children:function(){return this._children.slice()},childAt:function(t){return this._children[t]},childOfName:function(t){for(var e=this._children,i=0;i>>1])<0?l=a:s=1+a;var u=n-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;0>>1);0>>1);a(t,e[i+h])<0?l=h:r=h+1}return l}function Pi(p,g){var r,s,m=Ai,l=0,v=[];function e(t){var e=r[t],i=s[t],n=r[t+1],o=s[t+1];s[t]=i+o,t===l-3&&(r[t+1]=r[t+2],s[t+1]=s[t+2]),l--;var a=ki(p[n],p,e,i,0,g);e+=a,0!==(i-=a)&&0!==(o=Li(p[e+i-1],p,n,o,o-1,g))&&(i<=o?function(t,e,i,n){var o=0;for(o=0;os[t+1])break;e(t)}},this.forceMergeRuns=function(){for(;1>=1;return t+e}(o);do{if((a=Di(t,i,n,e))=e.maxIterations){t+=e.ellipsis;break}var s=0===r?yn(t,o,e.ascCharWidth,e.cnCharWidth):0f)return{lines:[],width:0,height:0};C.textWidth=hn(C.text,w);var S=x.textWidth,M=null==S||"auto"===S;if("string"==typeof S&&"%"===S.charAt(S.length-1))C.percentWidth=S,u.push(C),S=0;else{if(M){S=C.textWidth;var I=x.textBackgroundColor,T=I&&I.image;T&&nn(T=Qi(T))&&(S=Math.max(S,T.width*b/T.height))}var A=_?_[1]+_[3]:0;S+=A;var D=null!=d?d-v:null;null!=D&&Dn[0]){for(r=0;rt);r++);a=i[n[r]]}if(n.splice(r+1,0,t),!(i[t]=e).virtual)if(a){var l=a.dom;l.nextSibling?s.insertBefore(e.dom,l.nextSibling):s.appendChild(e.dom)}else s.firstChild?s.insertBefore(e.dom,s.firstChild):s.appendChild(e.dom)}else fi("Layer of zlevel "+t+" is not valid")},eachLayer:function(t,e){var i,n,o=this._zlevelList;for(n=0;n=a.length&&a.push({option:t})}}),a}function Go(t){var r=Q();ko(t,function(t,e){var i=t.exist;i&&r.set(i.id,t)}),ko(t,function(t,e){var i=t.option;Y(!i||null==i.id||!r.get(i.id)||r.get(i.id)===t,"id duplicates: "+(i&&i.id)),i&&null!=i.id&&r.set(i.id,t),t.keyInfo||(t.keyInfo={})}),ko(t,function(t,e){var i=t.exist,n=t.option,o=t.keyInfo;if(Po(n)){if(o.name=null!=n.name?n.name+"":i?i.name:Oo+e,i)o.id=i.id;else if(null!=n.id)o.id=n.id+"";else for(var a=0;o.id="\0"+o.name+"\0"+a++,r.get(o.id););r.set(o.id,t)}})}function Fo(t){var e=t.name;return!(!e||!e.indexOf(Oo))}function Wo(t){return Po(t)&&t.id&&0===(t.id+"").indexOf("\0_ec_\0")}function Ho(e,t){return null!=t.dataIndexInside?t.dataIndexInside:null!=t.dataIndex?k(t.dataIndex)?N(t.dataIndex,function(t){return e.indexOfRawIndex(t)}):e.indexOfRawIndex(t.dataIndex):null!=t.name?k(t.name)?N(t.name,function(t){return e.indexOfName(t)}):e.indexOfName(t.name):void 0}function Zo(){var e="__\0ec_inner_"+Uo+++"_"+Math.random().toFixed(5);return function(t){return t[e]||(t[e]={})}}var Uo=0;function Xo(s,l,u){if(z(l)){var t={};t[l+"Index"]=0,l=t}var e=u&&u.defaultMainType;!e||Yo(l,e+"Index")||Yo(l,e+"Id")||Yo(l,e+"Name")||(l[e+"Index"]=0);var h={};return ko(l,function(t,e){t=l[e];if("dataIndex"!==e&&"dataIndexInside"!==e){var i=e.match(/^(\w+)(Index|Id|Name)$/)||[],n=i[1],o=(i[2]||"").toLowerCase();if(!(!n||!o||null==t||"index"===o&&"none"===t||u&&u.includeMainTypes&&_(u.includeMainTypes,n)<0)){var a={mainType:n};"index"===o&&"all"===t||(a[o]=t);var r=s.queryComponents(a);h[n+"Models"]=r,h[n+"Model"]=r[0]}}else h[e]=t}),h}function Yo(t,e){return t&&t.hasOwnProperty(e)}function jo(t,e,i){t.setAttribute?t.setAttribute(e,i):t[e]=i}function qo(t){return"auto"===t?v.domSupported?"html":"richText":t||"html"}function Ko(t,i){var n=Q(),o=[];return E(t,function(t){var e=i(t);(n.get(e)||(o.push(e),n.set(e,[]))).push(t)}),{keys:o,buckets:n}}var $o=".",Jo="___EC__COMPONENT__CONTAINER___";function Qo(t){var e={main:"",sub:""};return t&&(t=t.split($o),e.main=t[0]||"",e.sub=t[1]||""),e}function ta(t){(t.$constructor=t).extend=function(t){function e(){t.$constructor?t.$constructor.apply(this,arguments):i.apply(this,arguments)}var i=this;return L(e.prototype,t),e.extend=this.extend,e.superCall=na,e.superApply=oa,w(e,this),e.superClass=i,e}}var ea=0;function ia(t){var e=["__\0is_clz",ea++,Math.random().toFixed(3)].join("_");t.prototype[e]=!0,t.isInstance=function(t){return!(!t||!t[e])}}function na(t,e){var i=U(arguments,2);return this.superClass.prototype[e].apply(t,i)}function oa(t,e,i){return this.superClass.prototype[e].apply(t,i)}function aa(i,t){t=t||{};var o={};if(i.registerClass=function(t,e){if(e)if(function(t){Y(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t),'componentType "'+t+'" illegal')}(e),(e=Qo(e)).sub){if(e.sub!==Jo){(function(t){var e=o[t.main];e&&e[Jo]||((e=o[t.main]={})[Jo]=!0);return e})(e)[e.sub]=t}}else o[e.main]=t;return t},i.getClass=function(t,e,i){var n=o[t];if(n&&n[Jo]&&(n=e?n[e]:null),i&&!n)throw new Error(e?"Component "+t+"."+(e||"")+" not exists. Load it first.":t+".type should be specified.");return n},i.getClassesByMainType=function(t){t=Qo(t);var i=[],e=o[t.main];return e&&e[Jo]?E(e,function(t,e){e!==Jo&&i.push(t)}):i.push(e),i},i.hasClass=function(t){return t=Qo(t),!!o[t.main]},i.getAllClassMainTypes=function(){var i=[];return E(o,function(t,e){i.push(e)}),i},i.hasSubTypes=function(t){t=Qo(t);var e=o[t.main];return e&&e[Jo]},i.parseClassType=Qo,t.registerWhenExtend){var n=i.extend;n&&(i.extend=function(t){var e=n.call(this,t);return i.registerClass(e,t.type)})}return i}function ra(s){for(var t=0;tthis._ux||tr(e-this._yi)>this._uy||this._len<5;return this.addData(Za.L,t,e),this._ctx&&i&&(this._needsDash()?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),i&&(this._xi=t,this._yi=e),this},bezierCurveTo:function(t,e,i,n,o,a){return this.addData(Za.C,t,e,i,n,o,a),this._ctx&&(this._needsDash()?this._dashedBezierTo(t,e,i,n,o,a):this._ctx.bezierCurveTo(t,e,i,n,o,a)),this._xi=o,this._yi=a,this},quadraticCurveTo:function(t,e,i,n){return this.addData(Za.Q,t,e,i,n),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(t,e,i,n):this._ctx.quadraticCurveTo(t,e,i,n)),this._xi=i,this._yi=n,this},arc:function(t,e,i,n,o,a){return this.addData(Za.A,t,e,i,i,n,o-n,0,a?0:1),this._ctx&&this._ctx.arc(t,e,i,n,o,a),this._xi=$a(o)*i+t,this._yi=Ja(o)*i+e,this},arcTo:function(t,e,i,n,o){return this._ctx&&this._ctx.arcTo(t,e,i,n,o),this},rect:function(t,e,i,n){return this._ctx&&this._ctx.rect(t,e,i,n),this.addData(Za.R,t,e,i,n),this},closePath:function(){this.addData(Za.Z);var t=this._ctx,e=this._x0,i=this._y0;return t&&(this._needsDash()&&this._dashedLineTo(e,i),t.closePath()),this._xi=e,this._yi=i,this},fill:function(t){t&&t.fill(),this.toStatic()},stroke:function(t){t&&t.stroke(),this.toStatic()},setLineDash:function(t){if(t instanceof Array){this._lineDash=t;for(var e=this._dashIdx=0,i=0;ie.length&&(this._expandData(),e=this.data);for(var i=0;il||tr(r-o)>u||c===h-1)&&(t.lineTo(a,r),n=a,o=r);break;case Za.C:t.bezierCurveTo(s[c++],s[c++],s[c++],s[c++],s[c++],s[c++]),n=s[c-2],o=s[c-1];break;case Za.Q:t.quadraticCurveTo(s[c++],s[c++],s[c++],s[c++]),n=s[c-2],o=s[c-1];break;case Za.A:var f=s[c++],p=s[c++],g=s[c++],m=s[c++],v=s[c++],y=s[c++],x=s[c++],_=s[c++],w=m=pr[n=0]+t&&r<=pr[1]+t?h:0}if(a){l=n;n=sr(o),o=sr(l)}else n=sr(n),o=sr(o);oMath.PI/2&&p<1.5*Math.PI&&(h=-h),c+=h)}}return c}function xr(t,e,i,n,o){for(var a=0,r=0,s=0,l=0,u=0,h=0;hMath.abs(a[1])?0=e[1])return i[1]}else{if(t>=e[0])return i[0];if(t<=e[1])return i[1]}else{if(t===e[0])return i[0];if(t===e[1])return i[1]}return(t-e[0])/o*a+i[0]}function Pl(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?function(t){return t.replace(/^\s+|\s+$/g,"")}(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function Nl(t,e,i){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),i?t:+t}function Ol(t){return t.sort(function(t,e){return t-e}),t}function El(t){if(t=+t,isNaN(t))return 0;for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}function zl(t){var e=t.toString(),i=e.indexOf("e");if(0h&&(h=u[d],c=d);++s[c],u[c]=0,++l}return s[e]/o}var Vl=9007199254740991;function Gl(t){var e=2*Math.PI;return(t%e+e)%e}function Fl(t){return-Ll"'])/g,tu={"&":"&","<":"<",">":">",'"':""","'":"'"};function eu(t){return null==t?"":(t+"").replace(Ql,function(t,e){return tu[e]})}function iu(t,e){return"{"+t+(null==e?"":e)+"}"}var nu=["a","b","c","d","e","f","g"];function ou(t,e,i){k(e)||(e=[e]);var n=e.length;if(!n)return"";for(var o=e[0].$vars||[],a=0;a':'':{renderMode:o,content:"{marker"+a+"|} ",style:{color:i}}:""}function su(t,e){return"0000".substr(0,e-(t+="").length)+t}function lu(t,e,i){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var n=Hl(e),o=i?"UTC":"",a=n["get"+o+"FullYear"](),r=n["get"+o+"Month"]()+1,s=n["get"+o+"Date"](),l=n["get"+o+"Hours"](),u=n["get"+o+"Minutes"](),h=n["get"+o+"Seconds"](),c=n["get"+o+"Milliseconds"]();return t=t.replace("MM",su(r,2)).replace("M",r).replace("yyyy",a).replace("yy",a%100).replace("dd",su(s,2)).replace("d",s).replace("hh",su(l,2)).replace("h",l).replace("mm",su(u,2)).replace("m",u).replace("ss",su(h,2)).replace("s",h).replace("SSS",su(c,3))}function uu(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}var hu=gn;var cu=(Object.freeze||Object)({addCommas:Kl,toCamelCase:$l,normalizeCssArray:Jl,encodeHTML:eu,formatTpl:ou,formatTplSimple:au,getTooltipMarker:ru,formatTime:lu,capitalFirst:uu,truncateText:hu,getTextBoundingRect:function(t){return cn(t.text,t.font,t.textAlign,t.textVerticalAlign,t.textPadding,t.textLineHeight,t.rich,t.truncate)},getTextRect:function(t,e,i,n,o,a,r,s){return cn(t,e,i,n,o,s,a,r)}}),du=E,fu=["left","right","top","bottom","width","height"],pu=[["width","left","right"],["height","top","bottom"]];function gu(h,c,d,f,p){var g=0,m=0;null==f&&(f=1/0),null==p&&(p=1/0);var v=0;c.eachChild(function(t,e){var i,n,o=t.position,a=t.getBoundingRect(),r=c.childAt(e+1),s=r&&r.getBoundingRect();if("horizontal"===h){var l=a.width+(s?-s.x+a.x:0);v=f<(i=g+l)||t.newline?(g=0,i=l,m+=v+d,a.height):Math.max(v,a.height)}else{var u=a.height+(s?-s.y+a.y:0);v=p<(n=m+u)||t.newline?(g+=v+d,m=0,n=u,a.width):Math.max(v,a.width)}t.newline||(o[0]=g,o[1]=m,"horizontal"===h?g=i+d:m=n+d)})}var mu=gu;T(gu,"vertical"),T(gu,"horizontal");function vu(t,e,i){i=Jl(i||0);var n=e.width,o=e.height,a=Pl(t.left,n),r=Pl(t.top,o),s=Pl(t.right,n),l=Pl(t.bottom,o),u=Pl(t.width,n),h=Pl(t.height,o),c=i[2]+i[0],d=i[1]+i[3],f=t.aspect;switch(isNaN(u)&&(u=n-s-d-a),isNaN(h)&&(h=o-l-c-r),null!=f&&(isNaN(u)&&isNaN(h)&&(n/oe)return t[n];return t[i-1]}(s,i):r;if((l=l||r)&&l.length){var u=l[o];return t&&(a[t]=u),n.colorIdx=(o+1)%l.length,u}}},Pu="original",Nu="arrayRows",Ou="objectRows",Eu="keyedColumns",zu="unknown",Ru="typedArray",Bu="column",Vu="row";function Gu(t){this.fromDataset=t.fromDataset,this.data=t.data||(t.sourceFormat===Eu?{}:[]),this.sourceFormat=t.sourceFormat||zu,this.seriesLayoutBy=t.seriesLayoutBy||Bu,this.dimensionsDefine=t.dimensionsDefine,this.encodeDefine=t.encodeDefine&&Q(t.encodeDefine),this.startIndex=t.startIndex||0,this.dimensionsDetectCount=t.dimensionsDetectCount}Gu.seriesDataToSource=function(t){return new Gu({data:t,sourceFormat:V(t)?Ru:Pu,fromDataset:!1})},ia(Gu);var Fu={Must:1,Might:2,Not:3},Wu=Zo();function Hu(t){var e=t.option,i=e.data,n=V(i)?Ru:Pu,o=!1,a=e.seriesLayoutBy,r=e.sourceHeader,s=e.dimensions,l=ju(t);if(l){var u=l.option;i=u.source,n=Wu(l).sourceFormat,o=!0,a=a||u.seriesLayoutBy,null==r&&(r=u.sourceHeader),s=s||u.dimensions}var h=function(t,e,i,n,o){if(!t)return{dimensionsDefine:Zu(o)};var a,r;if(e===Nu)"auto"===n||null==n?Uu(function(t){null!=t&&"-"!==t&&(z(t)?null==r&&(r=1):r=0)},i,t,10):r=n?1:0,o||1!==r||(o=[],Uu(function(t,e){o[e]=null!=t?t:""},i,t)),a=o?o.length:i===Vu?t.length:t[0]?t[0].length:null;else if(e===Ou)o=o||function(t){var e,i=0;for(;i":"\n",f="richText"===c,p={},g=0;function i(t){return{renderMode:c,content:eu(Kl(t)),style:p}}var m=this.getData(),a=m.mapDimension("defaultedTooltip",!0),n=a.length,r=this.getRawValue(o),s=k(r),v=m.getItemVisual(o,"color");R(v)&&v.colorStops&&(v=(v.colorStops[0]||{}).color),v=v||"transparent";var l=(1":"",n=i+u.join(i||", ");return{renderMode:c,content:n,style:p}}(r):i(n?Bh(m,o,a[0]):s?r[0]:r)).content,u=d.seriesIndex+"at"+g,y=ru({color:v,type:"item",renderMode:c,markerId:u});p[u]=v,++g;var x=m.getName(o),_=this.name;Fo(this)||(_=""),_=_?eu(_)+(h?": ":e):"";var w="string"==typeof y?y:y.content;return{html:h?w+_+l:_+w+(x?eu(x)+": "+l:l),markers:p}},isAnimationEnabled:function(){if(v.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),t},restoreData:function(){this.dataTask.dirty()},getColorFromPalette:function(t,e,i){var n=this.ecModel,o=ku.getColorFromPalette.call(this,t,e,i);return o=o||n.getColorFromPalette(t,e,i)},coordDimToDataDim:function(t){return this.getRawData().mapDimension(t,!0)},getProgressive:function(){return this.get("progressive")},getProgressiveThreshold:function(){return this.get("progressiveThreshold")},getAxisTooltipData:null,getTooltipPosition:null,pipeTask:null,preventIncremental:null,pipelineContext:null});function nc(t){var e=t.name;Fo(t)||(t.name=function(t){var i=t.getRawData(),e=i.mapDimension("seriesName",!0),n=[];return E(e,function(t){var e=i.getDimensionInfo(t);e.displayName&&n.push(e.displayName)}),n.join(" ")}(t)||e)}function oc(t){return t.model.getRawData().count()}function ac(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),rc}function rc(t,e){t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function sc(e,i){E(e.CHANGABLE_METHODS,function(t){e.wrapMethod(t,T(lc,i))})}function lc(t){var e=uc(t);e&&e.setOutputEnd(this.count())}function uc(t){var e=(t.ecModel||{}).scheduler,i=e&&e.getPipeline(t.uid);if(i){var n=i.currentTask;if(n){var o=n.agentStubMap;o&&(n=o.get(t.uid))}return n}}b(ic,Fh),b(ic,ku);var hc=function(){this.group=new Ii,this.uid=Cl("viewComponent")};hc.prototype={constructor:hc,init:function(t,e){},render:function(t,e,i,n){},dispose:function(){},filterForExposedEvent:null};var cc=hc.prototype;cc.updateView=cc.updateLayout=cc.updateVisual=function(t,e,i,n){},ta(hc),aa(hc,{registerWhenExtend:!0});function dc(){var s=Zo();return function(t){var e=s(t),i=t.pipelineContext,n=e.large,o=e.progressiveRender,a=e.large=i.large,r=e.progressiveRender=i.progressiveRender;return!!(n^a||o^r)&&"reset"}}var fc=Zo(),pc=dc();function gc(){this.group=new Ii,this.uid=Cl("viewChart"),this.renderTask=Wh({plan:xc,reset:_c}),this.renderTask.context={view:this}}var mc=gc.prototype={type:"chart",init:function(t,e){},render:function(t,e,i,n){},highlight:function(t,e,i,n){yc(t.getData(),n,"emphasis")},downplay:function(t,e,i,n){yc(t.getData(),n,"normal")},remove:function(t,e){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null,filterForExposedEvent:null};function vc(t,e,i){if(t&&(t.trigger(e,i),t.isGroup&&!qs(t)))for(var n=0,o=t.childCount();nc?i+=p(g("data.partialData"),{displayCnt:c}):i+=g("data.allData");for(var r=[],s=0;si.blockIndex?i.step:null,a=n&&n.modDataCount;return{step:o,modBy:null!=a?Math.ceil(a/o):null,modDataCount:a}}},Nc.getPipeline=function(t){return this._pipelineMap.get(t)},Nc.updateStreamModes=function(t,e){var i=this._pipelineMap.get(t.uid),n=t.getData().count(),o=i.progressiveEnabled&&e.incrementalPrepareRender&&n>=i.threshold,a=t.get("large")&&n>=t.get("largeThreshold"),r="mod"===t.get("progressiveChunkMode")?n:null;t.pipelineContext=i.context={progressiveRender:o,modDataCount:r,large:a}},Nc.restorePipelines=function(t){var n=this,o=n._pipelineMap=Q();t.eachSeries(function(t){var e=t.getProgressive(),i=t.uid;o.set(i,{id:i,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:e&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(e||700),count:0}),Uc(n,t,t.dataTask)})},Nc.prepareStageTasks=function(){var i=this._stageTaskMap,n=this.ecInstance.getModel(),o=this.api;E(this._allHandlers,function(t){var e=i.get(t.uid)||i.set(t.uid,[]);t.reset&&function(n,o,t,a,r){var s=t.seriesTaskMap||(t.seriesTaskMap=Q()),e=o.seriesType,i=o.getTargetSeries;o.createOnAllSeries?a.eachRawSeries(l):e?a.eachRawSeriesByType(e,l):i&&i(a,r).each(l);function l(t){var e=t.uid,i=s.get(e)||s.set(e,Wh({plan:Gc,reset:Fc,count:Zc}));i.context={model:t,ecModel:a,api:r,useClearVisual:o.isVisual&&!o.isLayout,plan:o.plan,reset:o.reset,scheduler:n},Uc(n,t,i)}var u=n._pipelineMap;s.each(function(t,e){u.get(e)||(t.dispose(),s.removeKey(e))})}(this,t,e,n,o),t.overallReset&&function(n,t,e,i,o){var a=e.overallTask=e.overallTask||Wh({reset:zc});a.context={ecModel:i,api:o,overallReset:t.overallReset,scheduler:n};var r=a.agentStubMap=a.agentStubMap||Q(),s=t.seriesType,l=t.getTargetSeries,u=!0,h=t.modifyOutputEnd;s?i.eachRawSeriesByType(s,c):l?l(i,o).each(c):(u=!1,E(i.getSeries(),c));function c(t){var e=t.uid,i=r.get(e);i||(i=r.set(e,Wh({reset:Rc,onDirty:Vc})),a.dirty()),i.context={model:t,overallProgress:u,modifyOutputEnd:h},i.agent=a,i.__block=u,Uc(n,t,i)}var d=n._pipelineMap;r.each(function(t,e){d.get(e)||(t.dispose(),a.dirty(),r.removeKey(e))})}(this,t,e,n,o)},this)},Nc.prepareView=function(t,e,i,n){var o=t.renderTask,a=o.context;a.model=e,a.ecModel=i,a.api=n,o.__block=!t.incrementalPrepareRender,Uc(this,e,o)},Nc.performDataProcessorTasks=function(t,e){Oc(this,this._dataProcessorHandlers,t,e,{block:!0})},Nc.performVisualTasks=function(t,e,i){Oc(this,this._visualHandlers,t,e,i)},Nc.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e|=t.dataTask.perform()}),this.unfinished|=e},Nc.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})};var Ec=Nc.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)};function zc(t){t.overallReset(t.ecModel,t.api,t.payload)}function Rc(t,e){return t.overallProgress&&Bc}function Bc(){this.agent.dirty(),this.getDownstream().dirty()}function Vc(){this.agent&&this.agent.dirty()}function Gc(t){return t.plan&&t.plan(t.model,t.ecModel,t.api,t.payload)}function Fc(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=Eo(t.reset(t.model,t.ecModel,t.api,t.payload));return 1t.get("hoverLayerThreshold")&&!v.node&&t.eachSeries(function(t){if(!t.preventUsingHoverLayer){var e=i._chartsMap[t.__viewId];e.__alive&&e.group.traverse(function(t){t.useHoverLayer=!0})}})}(n,t),Lc(n._zr.dom,t)}function Ud(e,i){wd(Qd,function(t){t(e,i)})}Pd.resize=function(t){if(!this._disposed){this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var i=e.resetOption("media"),n=t&&t.silent;this[Td]=!0,i&&Ed(this),Od.update.call(this),this[Td]=!1,Vd.call(this,n),Gd.call(this,n)}}},Pd.showLoading=function(t,e){if(!this._disposed&&(Sd(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),nf[t])){var i=nf[t](this._api,e),n=this._zr;this._loadingFX=i,n.add(i)}},Pd.hideLoading=function(){this._disposed||(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},Pd.makeActionFromEvent=function(t){var e=L({},t);return e.type=Kd[t.type],e},Pd.dispatchAction=function(t,e){this._disposed||(Sd(e)||(e={silent:!!e}),qd[t.type]&&this._model&&(this[Td]?this._pendingActions.push(t):(Bd.call(this,t,e.silent),e.flush?this._zr.flush(!0):!1!==e.flush&&v.browser.weChat&&this._throttledZrFlush(),Vd.call(this,e.silent),Gd.call(this,e.silent))))},Pd.appendData=function(t){if(!this._disposed){var e=t.seriesIndex;this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0}},Pd.on=Cd("on",!1),Pd.off=Cd("off",!1),Pd.one=Cd("one",!1);var Xd=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];function Yd(t,e){var i=t.get("z"),n=t.get("zlevel");e.group.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=n&&(t.zlevel=n))})}function jd(){this.eventInfo}Pd._initEvents=function(){wd(Xd,function(u){function t(t){var e,i=this.getModel(),n=t.target;if("globalout"===u)e={};else if(n&&null!=n.dataIndex){var o=n.dataModel||i.getSeriesByIndex(n.seriesIndex);e=o&&o.getDataParams(n.dataIndex,n.dataType,n)||{}}else n&&n.eventData&&(e=L({},n.eventData));if(e){var a=e.componentType,r=e.componentIndex;"markLine"!==a&&"markPoint"!==a&&"markArea"!==a||(a="series",r=e.seriesIndex);var s=a&&null!=r&&i.getComponent(a,r),l=s&&this["series"===s.mainType?"_chartsMap":"_componentsMap"][s.__viewId];e.event=t,e.type=u,this._ecEventProcessor.eventInfo={targetEl:n,packedEvent:e,model:s,view:l},this.trigger(u,e)}}t.zrEventfulCallAtLast=!0,this._zr.on(u,t,this)},this),wd(Kd,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},Pd.isDisposed=function(){return this._disposed},Pd.clear=function(){this._disposed||this.setOption({series:[]},!0)},Pd.dispose=function(){if(!this._disposed){this._disposed=!0,jo(this.getDom(),lf,"");var e=this._api,i=this._model;wd(this._componentsViews,function(t){t.dispose(i,e)}),wd(this._chartsViews,function(t){t.dispose(i,e)}),this._zr.dispose(),delete of[this.id]}},b(kd,Ct),jd.prototype={constructor:jd,normalizeQuery:function(t){var s={},l={},u={};if(z(t)){var e=Md(t);s.mainType=e.main||null,s.subType=e.sub||null}else{var h=["Index","Name","Id"],c={name:1,dataIndex:1,dataType:1};E(t,function(t,e){for(var i=!1,n=0;nx[1]&&(x[1]=y)}e&&(this._nameList[d]=e[f])}this._rawCount=this._count=l,this._extent={},Uf(this)},Hf._initDataFromProvider=function(t,e){if(!(e<=t)){for(var i,n=this._chunkSize,o=this._rawData,a=this._storage,r=this.dimensions,s=r.length,l=this._dimensionInfos,u=this._nameList,h=this._idList,c=this._rawExtent,d=this._nameRepeatCount={},f=this._chunkCount,p=0;pM[1]&&(M[1]=S)}if(!o.pure){var I=u[v];if(m&&null==I)if(null!=m.name)u[v]=I=m.name;else if(null!=i){var T=r[i],A=a[T][y];if(A){I=A[x];var D=l[T].ordinalMeta;D&&D.categories.length&&(I=D.categories[I])}}var C=null==m?null:m.id;null==C&&null!=I&&(d[I]=d[I]||0,0=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,i=e[t];if(null!=i&&it))return a;o=a-1}}return-1},Hf.indicesOfNearest=function(t,e,i){var n=[];if(!this._storage[t])return n;null==i&&(i=1/0);for(var o=1/0,a=-1,r=0,s=0,l=this.count();st[I][1])&&(M=!1)}M&&(a[r++]=this.getRawIndex(m))}return rw[1]&&(w[1]=_)}}}return o},Hf.downSample=function(t,e,i,n){for(var o=$f(this,[t]),a=o._storage,r=[],s=Math.floor(1/e),l=a[t],u=this.count(),h=this._chunkSize,c=o._rawExtent[t],d=new(Bf(this))(u),f=0,p=0;pc[1]&&(c[1]=x),d[f++]=_}return o._count=f,o._indices=d,o.getRawIndex=jf,o},Hf.getItemModel=function(t){var e=this.hostModel;return new Il(this.getRawDataItem(t),e,e&&e.ecModel)},Hf.diff=function(e){var i=this;return new Tf(e?e.getIndices():[],this.getIndices(),function(t){return qf(e,t)},function(t){return qf(i,t)})},Hf.getVisual=function(t){var e=this._visual;return e&&e[t]},Hf.setVisual=function(t,e){if(Pf(t))for(var i in t)t.hasOwnProperty(i)&&this.setVisual(i,t[i]);else this._visual=this._visual||{},this._visual[t]=e},Hf.setLayout=function(t,e){if(Pf(t))for(var i in t)t.hasOwnProperty(i)&&this.setLayout(i,t[i]);else this._layout[t]=e},Hf.getLayout=function(t){return this._layout[t]},Hf.getItemLayout=function(t){return this._itemLayouts[t]},Hf.setItemLayout=function(t,e,i){this._itemLayouts[t]=i?L(this._itemLayouts[t]||{},e):e},Hf.clearItemLayouts=function(){this._itemLayouts.length=0},Hf.getItemVisual=function(t,e,i){var n=this._itemVisuals[t],o=n&&n[e];return null!=o||i?o:this.getVisual(e)},Hf.setItemVisual=function(t,e,i){var n=this._itemVisuals[t]||{},o=this.hasItemVisual;if(this._itemVisuals[t]=n,Pf(e))for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a],o[a]=!0);else n[e]=i,o[e]=!0},Hf.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};function tp(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType}function ep(t,e,i){Gu.isInstance(e)||(e=Gu.seriesDataToSource(e)),i=i||{},t=(t||[]).slice();for(var n=(i.dimsDef||[]).slice(),o=Q(),a=Q(),l=[],r=function(t,e,i,n){var o=Math.max(t.dimensionsDetectCount||1,e.length,i.length,n||0);return E(e,function(t){var e=t.dimsDef;e&&(o=Math.max(o,e.length))}),o}(e,t,n,i.dimCount),s=0;s=e[0]&&t<=e[1]},cp.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},cp.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},cp.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},cp.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},cp.prototype.getExtent=function(){return this._extent.slice()},cp.prototype.setExtent=function(t,e){var i=this._extent;isNaN(t)||(i[0]=t),isNaN(e)||(i[1]=e)},cp.prototype.isBlank=function(){return this._isBlank},cp.prototype.setBlank=function(t){this._isBlank=t},cp.prototype.getLabel=null,ta(cp),aa(cp,{registerWhenExtend:!0}),dp.createByAxisModel=function(t){var e=t.option,i=e.data,n=i&&N(i,gp);return new dp({categories:n,needCollect:!n,deduplication:!1!==e.dedplication})};var fp=dp.prototype;function pp(t){return t._map||(t._map=Q(t.categories))}function gp(t){return R(t)&&null!=t.value?t.value:t+""}fp.getOrdinal=function(t){return pp(this).get(t)},fp.parseAndCollect=function(t){var e,i=this._needCollect;if("string"!=typeof t&&!i)return t;if(i&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var n=pp(this);return null==(e=n.get(t))&&(i?(e=this.categories.length,this.categories[e]=t,n.set(t,e)):e=NaN),e};var mp=cp.prototype,vp=cp.extend({type:"ordinal",init:function(t,e){t&&!k(t)||(t=new dp({categories:t})),this._ordinalMeta=t,this._extent=e||[0,t.categories.length-1]},parse:function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},contain:function(t){return t=this.parse(t),mp.contain.call(this,t)&&null!=this._ordinalMeta.categories[t]},normalize:function(t){return mp.normalize.call(this,this.parse(t))},scale:function(t){return Math.round(mp.scale.call(this,t))},getTicks:function(){for(var t=[],e=this._extent,i=e[0];i<=e[1];)t.push(i),i++;return t},getLabel:function(t){if(!this.isBlank())return this._ordinalMeta.categories[t]},count:function(){return this._extent[1]-this._extent[0]+1},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},getOrdinalMeta:function(){return this._ordinalMeta},niceTicks:et,niceExtent:et});vp.create=function(){return new vp};var yp=Nl;function xp(t){return zl(t)+2}function _p(t,e,i){t[e]=Math.max(Math.min(t[e],i[1]),i[0])}function wp(t,e){isFinite(t[0])||(t[0]=e[0]),isFinite(t[1])||(t[1]=e[1]),_p(t,0,e),_p(t,1,e),t[0]>t[1]&&(t[0]=t[1])}var bp=Nl,Sp=cp.extend({type:"interval",_interval:0,_intervalPrecision:2,setExtent:function(t,e){var i=this._extent;isNaN(t)||(i[0]=parseFloat(t)),isNaN(e)||(i[1]=parseFloat(e))},unionExtent:function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),Sp.prototype.setExtent.call(this,e[0],e[1])},getInterval:function(){return this._interval},setInterval:function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=xp(t)},getTicks:function(t){var e=this._interval,i=this._extent,n=this._niceExtent,o=this._intervalPrecision,a=[];if(!e)return a;i[0]s&&(t?a.push(s+e):a.push(i[1])),a},getMinorTicks:function(t){for(var e=this.getTicks(!0),i=[],n=this.getExtent(),o=1;on[0]&&h>>1;t[o][1]>1^-(1&s),l=l>>1^-(1&l),o=s+=o,a=l+=a,n.push([s/i,l/i])}return n}bg.prototype={constructor:bg,properties:null,getBoundingRect:function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,i=[e,e],n=[-e,-e],o=[],a=[],r=this.geometries,s=0;ss[1];d(e[0].coord,s[0])&&(n?e[0].coord=s[0]:e.shift());n&&d(s[0],e[0].coord)&&e.unshift({coord:s[0]});d(s[1],a.coord)&&(n?a.coord=s[1]:e.pop());n&&d(a.coord,s[1])&&e.push({coord:s[1]});function d(t,e){return t=Nl(t),e=Nl(e),c?en[0]&&(n[0]=a[0]),a[1]>n[1]&&(n[1]=a[1])}return{min:e?i:n,max:e?n:i}}var pm=Sr.extend({type:"ec-polyline",shape:{points:[],smooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},style:{fill:null,stroke:"#000"},brush:Wr(Sr.prototype.brush),buildPath:function(t,e){var i=e.points,n=0,o=i.length,a=fm(i,e.smoothConstraint);if(e.connectNulls){for(;0n)return!1;return!0}(a,e))){var r=e.mapDimension(a.dim),s={};return E(a.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(r,t))}}}}function Sm(t,e,i){if("cartesian2d"!==t.type)return vm(t,e,i);var n=t.getBaseAxis().isHorizontal(),o=mm(t,e,i);if(!i.get("clip",!0)){var a=o.shape,r=Math.max(a.width,a.height);n?(a.y-=r,a.height+=2*r):(a.x-=r,a.width+=2*r)}return o}gc.extend({type:"line",init:function(){var t=new Ii,e=new $g;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},render:function(t,e,i){var n=t.coordinateSystem,o=this.group,a=t.getData(),r=t.getModel("lineStyle"),s=t.getModel("areaStyle"),l=a.mapArray(a.getItemLayout),u="polar"===n.type,h=this._coordSys,c=this._symbolDraw,d=this._polyline,f=this._polygon,p=this._lineGroup,g=t.get("animation"),m=!s.isEmpty(),v=s.get("origin"),y=function(t,e,i){if(!i.valueDim)return[];for(var n=[],o=0,a=e.count();oh[c-1].coord&&(h.reverse(),d.reverse());var f=h[0].coord-10,p=h[c-1].coord+10,g=p-f;if(g<.001)return"transparent";E(h,function(t){t.offset=(t.coord-f)/g}),h.push({offset:c?h[c-1].offset:.5,color:d[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:d[0]||"transparent"});var m=new cs(0,0,0,0,h,!0);return m[n]=f,m[n+"2"]=p,m}}}(a,n)||a.getVisual("color");d.useStyle(C(r.getLineStyle(),{fill:"none",stroke:M,lineJoin:"bevel"}));var I=t.get("smooth");if(I=_m(t.get("smooth")),d.setShape({smooth:I,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),f){var T=a.getCalculationInfo("stackedOnSeries"),A=0;f.useStyle(C(s.getAreaStyle(),{fill:M,opacity:.7,lineJoin:"bevel"})),T&&(A=_m(T.get("smooth"))),f.setShape({smooth:I,stackedOnSmooth:A,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")})}this._data=a,this._coordSys=n,this._stackedOnPoints=y,this._points=l,this._step=S,this._valueOrigin=v},dispose:function(){},highlight:function(t,e,i,n){var o=t.getData(),a=Ho(o,n);if(!(a instanceof Array)&&null!=a&&0<=a){var r=o.getItemGraphicEl(a);if(!r){var s=o.getItemLayout(a);if(!s)return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(s[0],s[1]))return;(r=new Fg(o,a)).position=s,r.setZ(t.get("zlevel"),t.get("z")),r.ignore=isNaN(s[0])||isNaN(s[1]),r.__temp=!0,o.setItemGraphicEl(a,r),r.stopSymbolAnimation(!0),this.group.add(r)}r.highlight()}else gc.prototype.highlight.call(this,t,e,i,n)},downplay:function(t,e,i,n){var o=t.getData(),a=Ho(o,n);if(null!=a&&0<=a){var r=o.getItemGraphicEl(a);r&&(r.__temp?(o.setItemGraphicEl(a,null),this.group.remove(r)):r.downplay())}else gc.prototype.downplay.call(this,t,e,i,n)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new pm({shape:{points:t},silent:!0,z2:10}),this._lineGroup.add(e),this._polyline=e},_newPolygon:function(t,e){var i=this._polygon;return i&&this._lineGroup.remove(i),i=new gm({shape:{points:t,stackedOnPoints:e},silent:!0}),this._lineGroup.add(i),this._polygon=i},_updateAnimation:function(t,e,i,n,o,a){var r=this._polyline,s=this._polygon,l=t.hostModel,u=function(t,e,i,n,o,a,r,s){for(var l=function(t,e){var i=[];return e.diff(t).add(function(t){i.push({cmd:"+",idx:t})}).update(function(t,e){i.push({cmd:"=",idx:e,idx1:t})}).remove(function(t){i.push({cmd:"-",idx:t})}).execute(),i}(t,e),u=[],h=[],c=[],d=[],f=[],p=[],g=[],m=im(o,e,r),v=im(a,t,s),y=0;ye&&(e=t[i]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,i=0;ie[1]&&e.reverse(),e},getOtherAxis:function(){this.grid.getOtherAxis()},pointToData:function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},toLocalCoord:null,toGlobalCoord:null},w(km,Eg);var Pm={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#333",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}},Nm={};Nm.categoryAxis=m({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},Pm),Nm.valueAxis=m({boundaryGap:[0,0],splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#eee",width:1}}},Pm),Nm.timeAxis=C({scale:!0,min:"dataMin",max:"dataMax"},Nm.valueAxis),Nm.logAxis=C({scale:!0,logBase:10},Nm.valueAxis);function Om(a,t,r,e){E(Em,function(o){t.extend({type:a+"Axis."+o,mergeDefaultAndTheme:function(t,e){var i=this.layoutMode,n=i?_u(t):{};m(t,e.getTheme().get(o+"Axis")),m(t,this.getDefaultOption()),t.type=r(a,t),i&&xu(t,n,i)},optionUpdated:function(){"category"===this.option.type&&(this.__ordinalMeta=dp.createByAxisModel(this))},getCategories:function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},getOrdinalMeta:function(){return this.__ordinalMeta},defaultOption:p([{},Nm[o+"Axis"],e],!0)})}),Tu.registerSubTypeDefaulter(a+"Axis",T(r,a))}var Em=["value","category","time","log"],zm=Tu.extend({type:"cartesian2dAxis",axis:null,init:function(){zm.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){zm.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){zm.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});function Rm(t,e){return e.type||(e.data?"category":"value")}m(zm.prototype,sg);var Bm={offset:0};function Vm(t,e){return t.getCoordSysModel()===e}function Gm(t,e,i){this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this._initCartesian(t,e,i),this.model=t}Om("x",zm,Rm,Bm),Om("y",zm,Rm,Bm),Tu.extend({type:"grid",dependencies:["xAxis","yAxis"],layoutMode:"box",coordinateSystem:null,defaultOption:{show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:60,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"}});var Fm=Gm.prototype;function Wm(t,e,i,n){i.getAxesOnZeroOf=function(){return o?[o]:[]};var o,a=t[e],r=i.model,s=r.get("axisLine.onZero"),l=r.get("axisLine.onZeroAxisIndex");if(s){if(null!=l)Hm(a[l])&&(o=a[l]);else for(var u in a)if(a.hasOwnProperty(u)&&Hm(a[u])&&!n[h(a[u])]){o=a[u];break}o&&(n[h(o)]=!0)}function h(t){return t.dim+"_"+t.index}}function Hm(t){return t&&"category"!==t.type&&"time"!==t.type&&function(t){var e=t.scale.getExtent(),i=e[0],n=e[1];return!(0u[1]?-1:1,c=["start"===a?u[0]-h*l:"end"===a?u[1]+h*l:(u[0]+u[1])/2,ev(a)?t.labelOffset+r*l:0],d=e.get("nameRotate");null!=d&&(d=d*jm/180),ev(a)?n=$m(t.rotation,null!=d?d:t.rotation,r):(n=function(t,e,i,n){var o,a,r=Gl(i-t.rotation),s=n[0]>n[1],l="start"===e&&!s||"start"!==e&&s;o=Fl(r-jm/2)?(a=l?"bottom":"top","center"):Fl(r-1.5*jm)?(a=l?"top":"bottom","center"):(a="middle",r<1.5*jm&&jm/2l[1]&&l.reverse(),(null==r||r>l[1])&&(r=l[1]),r=i.r0}}});var jv=Math.PI/180;function qv(o,t,e,i,n,a,r,s,l,u){function h(t,e,i){for(var n=t;nl+r);n++)if(o[n].y+=i,to[n].y+o[n].height)return void c(n,i/2);c(e-1,i/2)}function c(t,e){for(var i=t;0<=i&&!(o[i].y-eo[i-1].y+o[i-1].height));i--);}function d(t,e,i,n,o,a){for(var r=e?Number.MAX_VALUE:0,s=0,l=t.length;s=e?v.push(o[y]):m.push(o[y]);d(m,!1,t,e,i,n),d(v,!0,t,e,i,n)}function Kv(t){return"center"===t.position}function $v(L,k,P,t,N,e){var O,E,z=L.getData(),R=[],B=!1,V=(L.get("minShowLabelAngle")||0)*jv;z.each(function(t){var e=z.getItemLayout(t),i=z.getItemModel(t),n=i.getModel("label"),o=n.get("position")||i.get("emphasis.label.position"),a=n.get("distanceToLabelLine"),r=n.get("alignTo"),s=Pl(n.get("margin"),P),l=n.get("bleedMargin"),u=n.getFont(),h=i.getModel("labelLine"),c=h.get("length");c=Pl(c,P);var d=h.get("length2");if(d=Pl(d,P),!(e.anglei[0]&&isFinite(u)&&isFinite(i[0]););else{var h=o.getTicks().length-1;f"+N(t,function(t,e){var i=o.get(o.mapDimension(t.dim),n);return eu(t.name+" : "+i)}).join("
")},defaultOption:{zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{width:2,type:"solid"},label:{position:"top"},symbol:"emptyCircle",symbolSize:4}});Mf({type:"radar",render:function(l,t,e){var i=l.coordinateSystem,g=this.group,m=l.getData(),s=this._data;function u(t,e){var i=t.getItemVisual(e,"symbol")||"circle",n=t.getItemVisual(e,"color");if("none"!==i){var o=function(t){return k(t)||(t=[+t,+t]),t}(t.getItemVisual(e,"symbolSize")),a=mg(i,-1,-1,2,2,n);return a.attr({style:{strokeNoScale:!0},z2:100,scale:[o[0]/2,o[1]/2]}),a}}function h(t,e,i,n,o,a){i.removeAll();for(var r=0;r"+eu(n+" : "+i)},getTooltipPosition:function(t){if(null!=t){var e=this.getData().getName(t),i=this.coordinateSystem,n=i.getRegion(e);return n&&i.dataToPoint(n.center)}},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},defaultOption:{zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,dataRangeHoverLink:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}}}}),Vv);var Ay="\0_ec_interaction_mutex";function Dy(t,e){return!!Cy(t)[e]}function Cy(t){return t[Ay]||(t[Ay]={})}function Ly(i){this.pointerChecker,this._zr=i,this._opt={};var t=A,n=t(ky,this),o=t(Py,this),a=t(Ny,this),r=t(Oy,this),s=t(Ey,this);Ct.call(this),this.setPointerChecker=function(t){this.pointerChecker=t},this.enable=function(t,e){this.disable(),this._opt=C(D(e)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),null==t&&(t=!0),!0!==t&&"move"!==t&&"pan"!==t||(i.on("mousedown",n),i.on("mousemove",o),i.on("mouseup",a)),!0!==t&&"scale"!==t&&"zoom"!==t||(i.on("mousewheel",r),i.on("pinch",s))},this.disable=function(){i.off("mousedown",n),i.off("mousemove",o),i.off("mouseup",a),i.off("mousewheel",r),i.off("pinch",s)},this.dispose=this.disable,this.isDragging=function(){return this._dragging},this.isPinching=function(){return this._pinching}}function ky(t){if(!(Ht(t)||t.target&&t.target.draggable)){var e=t.offsetX,i=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,i)&&(this._x=e,this._y=i,this._dragging=!0)}}function Py(t){if(this._dragging&&By("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!Dy(this._zr,"globalPan")){var e=t.offsetX,i=t.offsetY,n=this._x,o=this._y,a=e-n,r=i-o;this._x=e,this._y=i,this._opt.preventDefaultMouseMove&&Wt(t.event),Ry(this,"pan","moveOnMouseMove",t,{dx:a,dy:r,oldX:n,oldY:o,newX:e,newY:i})}}function Ny(t){Ht(t)||(this._dragging=!1)}function Oy(t){var e=By("zoomOnMouseWheel",t,this._opt),i=By("moveOnMouseWheel",t,this._opt),n=t.wheelDelta,o=Math.abs(n),a=t.offsetX,r=t.offsetY;if(0!==n&&(e||i)){if(e){var s=3x.x)||(m-=Math.PI);var b=v?"left":"right",S=a.labelModel.get("rotate"),M=S*(Math.PI/180);g.setStyle({textPosition:a.labelModel.get("position")||b,textRotation:null==S?-m:M,textOrigin:"center",verticalAlign:"middle"})}if(s.parentNode&&s.parentNode!==u){var I=i.__edge;sl(I=I||(i.__edge=new ls({shape:Px(a,f,f),style:C({opacity:0,strokeNoScale:!0},a.lineStyle)})),{shape:Px(a,d,p),style:{opacity:1}},o),n.add(I)}}function kx(t,e,i,n,o,a){for(var r,s=t.tree.getNodeByDataIndex(e),l=t.tree.root,u=s.getModel(),h=(a=Cx(s,u,a),s.parentNode===l?s:s.parentNode||s);null==(r=h.getLayout());)h=h.parentNode===l?h:h.parentNode||h;sl(i,{position:[r.x+1,r.y+1]},o,function(){n.remove(i),t.setItemGraphicEl(e,null)}),i.fadeOut(null,{keepLabel:!0});var c=i.__edge;c&&sl(c,{shape:Px(a,r,r),style:{opacity:0}},o,function(){n.remove(c)})}function Px(t,e,i){var n,o,a,r,s,l,u,h,c=t.orient;if("radial"!==t.layout)return s=e.x,u=e.y,l=i.x,h=i.y,"LR"!==c&&"RL"!==c||(n=s+(l-s)*t.curvature,o=u,a=l+(s-l)*t.curvature,r=h),"TB"!==c&&"BT"!==c||(n=s,o=u+(h-u)*t.curvature,a=l,r=h+(u-h)*t.curvature),{x1:s,y1:u,x2:l,y2:h,cpx1:n,cpy1:o,cpx2:a,cpy2:r};s=e.rawX,u=e.rawY,l=i.rawX,h=i.rawY;var d=Sx(s,u),f=Sx(s,u+(h-u)*t.curvature),p=Sx(l,h+(u-h)*t.curvature),g=Sx(l,h);return{x1:d.x,y1:d.y,x2:g.x,y2:g.y,cpx1:f.x,cpy1:f.y,cpx2:p.x,cpy2:p.y}}function Nx(t,e){for(var i,n=[t];i=n.pop();)if(e(i),i.isExpand){var o=i.children;if(o.length)for(var a=o.length-1;0<=a;a--)n.push(o[a])}}mx.prototype={constructor:mx,isRemoved:function(){return this.dataIndex<0},eachNode:function(t,e,i){"function"==typeof t&&(i=e,e=t,t=null),z(t=t||{})&&(t={order:t});var n,o=t.order||"preorder",a=this[t.attr||"children"];"preorder"===o&&(n=e.call(i,this));for(var r=0;!n&&re&&(e=n.height)}this.height=e+1},getNodeById:function(t){if(this.getId()===t)return this;for(var e=0,i=this.children,n=i.length;ea&&(a=t.depth)});var r=t.expandAndCollapse&&0<=t.initialTreeDepth?t.initialTreeDepth:a;return o.root.eachNode("preorder",function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=r}),o.data},getOrient:function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},formatTooltip:function(t){for(var e=this.getData().tree,i=e.root.children[0],n=e.getNodeByDataIndex(t),o=n.getValue(),a=n.name;n&&n!==i;)a=n.parentNode.name+"."+a,n=n.parentNode;return eu(a+(isNaN(o)||null==o?"":" : "+o))},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderColor:"#c23531",borderWidth:1.5},label:{show:!0,color:"#555"},leaves:{label:{show:!0}},animationEasing:"linear",animationDuration:700,animationDurationUpdate:1e3}}),Mf({type:"tree",init:function(t,e){this._oldTree,this._mainGroup=new Ii,this._controller=new Ly(e.getZr()),this._controllerHost={target:this.group},this.group.add(this._mainGroup)},render:function(n,t,i,e){var o=n.getData(),a=n.layoutInfo,r=this._mainGroup,s=n.get("layout");"radial"===s?r.attr("position",[a.x+a.width/2,a.y+a.height/2]):r.attr("position",[a.x,a.y]),this._updateViewCoordSys(n,a,s),this._updateController(n,t,i);var l=this._data,u={expandAndCollapse:n.get("expandAndCollapse"),layout:s,orient:n.getOrient(),curvature:n.get("lineStyle.curveness"),symbolRotate:n.get("symbolRotate"),symbolOffset:n.get("symbolOffset"),hoverAnimation:n.get("hoverAnimation"),useNameLabel:!0,fadeIn:!0};o.diff(l).add(function(t){Dx(o,t)&&Lx(o,t,null,r,n,u)}).update(function(t,e){var i=l.getItemGraphicEl(e);Dx(o,t)?Lx(o,t,i,r,n,u):i&&kx(l,e,i,r,n,u)}).remove(function(t){var e=l.getItemGraphicEl(t);e&&kx(l,t,e,r,n,u)}).execute(),this._nodeScaleRatio=n.get("nodeScaleRatio"),this._updateNodeAndLinkScale(n),!0===u.expandAndCollapse&&o.eachItemGraphicEl(function(t,e){t.off("click").on("click",function(){i.dispatchAction({type:"treeExpandAndCollapse",seriesId:n.id,dataIndex:e})})}),this._data=o},_updateViewCoordSys:function(t){var i=t.getData(),n=[];i.each(function(t){var e=i.getItemLayout(t);!e||isNaN(e.x)||isNaN(e.y)||n.push([+e.x,+e.y])});var e=[],o=[];Ba(n,e,o);var a=this._min,r=this._max;o[0]-e[0]==0&&(e[0]=a?a[0]:e[0]-1,o[0]=r?r[0]:o[0]+1),o[1]-e[1]==0&&(e[1]=a?a[1]:e[1]-1,o[1]=r?r[1]:o[1]+1);var s=t.coordinateSystem=new Qy;s.zoomLimit=t.get("scaleLimit"),s.setBoundingRect(e[0],e[1],o[0]-e[0],o[1]-e[1]),s.setCenter(t.get("center")),s.setZoom(t.get("zoom")),this.group.attr({position:s.position,scale:s.scale}),this._viewCoordSys=s,this._min=e,this._max=o},_updateController:function(o,t,a){var e=this._controller,i=this._controllerHost,r=this.group;e.setPointerChecker(function(t,e,i){var n=r.getBoundingRect();return n.applyTransform(r.transform),n.contain(e,i)&&!Wy(t,a,o)}),e.enable(o.get("roam")),i.zoomLimit=o.get("scaleLimit"),i.zoom=o.coordinateSystem.getZoom(),e.off("pan").off("zoom").on("pan",function(t){Vy(i,t.dx,t.dy),a.dispatchAction({seriesId:o.id,type:"treeRoam",dx:t.dx,dy:t.dy})},this).on("zoom",function(t){Gy(i,t.scale,t.originX,t.originY),a.dispatchAction({seriesId:o.id,type:"treeRoam",zoom:t.scale,originX:t.originX,originY:t.originY}),this._updateNodeAndLinkScale(o)},this)},_updateNodeAndLinkScale:function(t){var e=t.getData(),i=this._getNodeGlobalScale(t),n=[i,i];e.eachItemGraphicEl(function(t,e){t.attr("scale",n)})},_getNodeGlobalScale:function(t){var e=t.coordinateSystem;if("view"!==e.type)return 1;var i=this._nodeScaleRatio,n=e.scale,o=n&&n[0]||1;return((e.getZoom()-1)*i+1)/o},dispose:function(){this._controller&&this._controller.dispose(),this._controllerHost={}},remove:function(){this._mainGroup.removeAll(),this._data=null}}),gf({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},function(n,t){t.eachComponent({mainType:"series",subType:"tree",query:n},function(t){var e=n.dataIndex,i=t.getData().tree.getNodeByDataIndex(e);i.isExpand=!i.isExpand})}),gf({type:"treeRoam",event:"treeRoam",update:"none"},function(i,t){t.eachComponent({mainType:"series",subType:"tree",query:i},function(t){var e=Ky(t.coordinateSystem,i);t.setCenter&&t.setCenter(e.center),t.setZoom&&t.setZoom(e.zoom)})});function Ox(t,e,i){if(t&&0<=_(e,t.type)){var n=i.getData().tree.root,o=t.targetNode;if("string"==typeof o&&(o=n.getNodeById(o)),o&&n.contains(o))return{node:o};var a=t.targetNodeId;if(null!=a&&(o=n.getNodeById(a)))return{node:o}}}function Ex(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function zx(t,e){return 0<=_(Ex(t),e)}function Rx(t,e){for(var i=[];t;){var n=t.dataIndex;i.push({name:t.name,dataIndex:n,value:e.getRawValue(n)}),t=t.parentNode}return i.reverse(),i}yf(Mm("tree","circle")),vf(function(t,e){t.eachSeriesByType("tree",function(t){!function(t,e){var i=function(t,e){return vu(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=i;var n=t.get("layout"),o=0,a=0,r=null;r="radial"===n?(o=2*Math.PI,a=Math.min(i.height,i.width)/2,bx(function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth})):(o=i.width,a=i.height,bx());var s=t.getData().tree.root,l=s.children[0];if(l){!function(t){t.hierNode={defaultAncestor:null,ancestor:t,prelim:0,modifier:0,change:0,shift:0,i:0,thread:null};for(var e,i,n=[t];e=n.pop();)if(i=e.children,e.isExpand&&i.length)for(var o=i.length-1;0<=o;o--){var a=i[o];a.hierNode={defaultAncestor:null,ancestor:a,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},n.push(a)}}(s),function(t,e,i){for(var n,o=[t],a=[];n=o.pop();)if(a.push(n),n.isExpand){var r=n.children;if(r.length)for(var s=0;sh.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)});var d=u===h?1:r(u,h)/2,f=d-u.getLayout().x,p=0,g=0,m=0,v=0;if("radial"===n)p=o/(h.getLayout().x+d+f),g=a/(c.depth-1||1),Nx(l,function(t){m=(t.getLayout().x+f)*p,v=(t.depth-1)*g;var e=Sx(m,v);t.setLayout({x:e.x,y:e.y,rawX:m,rawY:v},!0)});else{var y=t.getOrient();"RL"===y||"LR"===y?(g=a/(h.getLayout().x+d+f),p=o/(c.depth-1||1),Nx(l,function(t){v=(t.getLayout().x+f)*g,m="LR"===y?(t.depth-1)*p:o-(t.depth-1)*p,t.setLayout({x:m,y:v},!0)})):"TB"!==y&&"BT"!==y||(p=o/(h.getLayout().x+d+f),g=a/(c.depth-1||1),Nx(l,function(t){m=(t.getLayout().x+f)*p,v="TB"===y?(t.depth-1)*g:a-(t.depth-1)*g,t.setLayout({x:m,y:v},!0)}))}}}(t,e)})}),ic.extend({type:"series.treemap",layoutMode:"box",dependencies:["grid","polar"],preventUsingHoverLayer:!0,_viewRoot:null,defaultOption:{progressive:0,left:"center",top:"middle",right:null,bottom:null,width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",borderColor:"rgba(255,255,255,0.7)",borderWidth:1,shadowColor:"rgba(150,150,150,1)",shadowBlur:3,shadowOffsetX:0,shadowOffsetY:0,textStyle:{color:"#fff"}},emphasis:{textStyle:{}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",ellipsis:!0},upperLabel:{show:!1,position:[0,"50%"],height:20,color:"#fff",ellipsis:!0,verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],color:"#fff",ellipsis:!0,verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},getInitialData:function(t,e){var i={name:t.name,children:t.data};!function i(t){var n=0;E(t.children,function(t){i(t);var e=t.value;k(e)&&(e=e[0]),n+=e});var e=t.value;k(e)&&(e=e[0]);null!=e&&!isNaN(e)||(e=n);e<0&&(e=0);k(t.value)?t.value[0]=e:t.value=e}(i);var n=t.levels||[];n=t.levels=function(t,e){var n,i=e.get("color");if(!i)return;if(E(t=t||[],function(t){var e=new Il(t),i=e.get("color");(e.get("itemStyle.color")||i&&"none"!==i)&&(n=!0)}),!n){(t[0]||(t[0]={})).color=i.slice()}return t}(n,e);var o={};return o.levels=n,vx.createTree(i,this,o).data},optionUpdated:function(){this.resetViewRoot()},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=k(i)?Kl(i[0]):Kl(i);return eu(e.getName(t)+": "+n)},getDataParams:function(t){var e=ic.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(t);return e.treePathInfo=Rx(i,this),e},setLayoutInfo:function(t){this.layoutInfo=this.layoutInfo||{},L(this.layoutInfo,t)},mapIdToIndex:function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=Q(),this._idIndexMapCount=0);var i=e.get(t);return null==i&&e.set(t,i=this._idIndexMapCount++),i},getViewRoot:function(){return this._viewRoot},resetViewRoot:function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)}});var Bx=5;function Vx(t){this.group=new Ii,t.add(this.group)}function Gx(t,e,i,n,o,a){var r=[[o?t:t-Bx,e],[t+i,e],[t+i,e+n],[o?t:t-Bx,e+n]];return a||r.splice(2,0,[t+i+Bx,e+n/2]),o||r.push([t,e+n/2]),r}Vx.prototype={constructor:Vx,render:function(t,e,i,n){var o=t.getModel("breadcrumb"),a=this.group;if(a.removeAll(),o.get("show")&&i){var r=o.getModel("itemStyle"),s=r.getModel("textStyle"),l={pos:{left:o.get("left"),right:o.get("right"),top:o.get("top"),bottom:o.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:o.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(i,l,s),this._renderContent(t,l,r,s,n),yu(a,l.pos,l.box)}},_prepare:function(t,e,i){for(var n=t;n;n=n.parentNode){var o=n.getModel().get("name"),a=i.getTextRect(o),r=Math.max(a.width+16,e.emptyItemWidth);e.totalWidth+=r+8,e.renderList.push({node:n,text:o,width:r})}},_renderContent:function(t,e,i,n,o){for(var a,r,s=0,l=e.emptyItemWidth,u=t.get("breadcrumb.height"),h=function(t,e,i){var n=e.width,o=e.height,a=Pl(t.x,n),r=Pl(t.y,o),s=Pl(t.x2,n),l=Pl(t.y2,o);return(isNaN(a)||isNaN(parseFloat(t.x)))&&(a=0),(isNaN(s)||isNaN(parseFloat(t.x2)))&&(s=n),(isNaN(r)||isNaN(parseFloat(t.y)))&&(r=0),(isNaN(l)||isNaN(parseFloat(t.y2)))&&(l=o),i=Jl(i||0),{width:Math.max(s-a-i[1]-i[3],0),height:Math.max(l-r-i[0]-i[2],0)}}(e.pos,e.box),c=e.totalWidth,d=e.renderList,f=d.length-1;0<=f;f--){var p=d[f],g=p.node,m=p.width,v=p.text;c>h.width&&(c-=m-l,m=l,v=null);var y=new qr({shape:{points:Gx(s,0,m,u,f===d.length-1,0===f)},style:C(i.getItemStyle(),{lineJoin:"bevel",text:v,textFill:n.getTextColor(),textFont:n.getFont()}),z:10,onclick:T(o,g)});this.group.add(y),a=t,r=g,y.eventData={componentType:"series",componentSubType:"treemap",componentIndex:a.componentIndex,seriesIndex:a.componentIndex,seriesName:a.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:r&&r.dataIndex,name:r&&r.name},treePathInfo:r&&Rx(r,a)},s+=m+8}},remove:function(){this.group.removeAll()}};function Fx(t){var e=$x(t);return e.stroke=e.fill=e.lineWidth=null,e}var Wx=A,Hx=Ii,Zx=is,Ux=E,Xx=["label"],Yx=["emphasis","label"],jx=["upperLabel"],qx=["emphasis","upperLabel"],Kx=10,$x=ra([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]);function Jx(d,r,s,l,u,i,f,t,e,n){if(f){var p=f.getLayout();if(p&&p.isInView){var h=p.width,c=p.height,g=p.borderWidth,m=p.invisible,v=f.getRawIndex(),y=t&&t.getRawIndex(),o=f.viewChildren,x=p.upperHeight,a=o&&o.length,_=f.getModel("itemStyle"),w=f.getModel("emphasis.itemStyle"),b=A("nodeGroup",Hx);if(b){if(e.add(b),b.attr("position",[p.x||0,p.y||0]),b.__tmNodeWidth=h,b.__tmNodeHeight=c,p.isAboveViewRoot)return b;var S=A("background",Zx,n,1);if(S&&function(t,n,o){n.dataIndex=f.dataIndex,n.seriesIndex=d.seriesIndex,n.setShape({x:0,y:0,width:h,height:c});var a=f.getVisual("borderColor",!0),r=w.get("borderColor");I(n,function(){var t=Fx(_);t.fill=a;var e=$x(w);if(e.fill=r,o){var i=h-2*g;T(t,e,a,i,x,{x:g,y:0,width:i,height:x})}else t.text=e.text=null;n.setStyle(t),Ys(n,e)}),t.add(n)}(b,S,a&&p.upperHeight),!a){var M=A("content",Zx,n,2);M&&function(t,i){i.dataIndex=f.dataIndex,i.seriesIndex=d.seriesIndex;var n=Math.max(h-2*g,0),o=Math.max(c-2*g,0);i.culling=!0,i.setShape({x:g,y:g,width:n,height:o});var a=f.getVisual("color",!0);I(i,function(){var t=Fx(_);t.fill=a;var e=$x(w);T(t,e,a,n,o),i.setStyle(t),Ys(i,e)}),t.add(i)}(b,M)}return b}}}function I(t,e){m?t.invisible||i.push(t):(e(),t.__tmWillVisible||(t.invisible=!1))}function T(t,e,i,n,o,a){var r=f.getModel(),s=W(d.getFormattedLabel(f.dataIndex,"normal",null,null,a?"upperLabel":"label"),r.get("name"));if(!a&&p.isLeafRoot){var l=d.get("drillDownIcon",!0);s=l?l+" "+s:s}var u=r.getModel(a?jx:Xx),h=r.getModel(a?qx:Yx),c=u.getShallow("show");$s(t,e,u,h,{defaultText:c?s:null,autoColor:i,isRectText:!0}),a&&(t.textRect=D(a)),t.truncate=c&&u.get("ellipsis")?{outerWidth:n,outerHeight:o,minChar:2}:null}function A(t,e,i,n){var o=null!=y&&s[t][y],a=u[t];return o?(s[t][y]=null,function(t,e,i){(t[v]={}).old="nodeGroup"===i?e.position.slice():L({},e.shape)}(a,o,t)):m||((o=new e({z:function(t,e){var i=t*Kx+e;return(i-1)/i}(i,n)})).__tmDepth=i,function(t,e,i){var n=t[v]={},o=f.parentNode;if(o&&(!l||"drillDown"===l.direction)){var a=0,r=0,s=u.background[o.getRawIndex()];!l&&s&&s.old&&(a=s.old.width,r=s.old.height),n.old="nodeGroup"===i?[0,r]:{x:a,y:r,width:0,height:0}}n.fadein="nodeGroup"!==i}(a,0,o.__tmStorageName=t)),r[t][v]=o}}Mf({type:"treemap",init:function(t,e){this._containerGroup,this._storage={nodeGroup:[],background:[],content:[]},this._oldTree,this._breadcrumb,this._controller,this._state="ready"},render:function(t,e,i,n){if(!(_(e.findComponents({mainType:"series",subType:"treemap",query:n}),t)<0)){this.seriesModel=t,this.api=i,this.ecModel=e;var o=Ox(n,["treemapZoomToNode","treemapRootToNode"],t),a=n&&n.type,r=t.layoutInfo,s=!this._oldTree,l=this._storage,u="treemapRootToNode"===a&&o&&l?{rootNodeGroup:l.nodeGroup[o.node.getRawIndex()],direction:n.direction}:null,h=this._giveContainerGroup(r),c=this._doRender(h,t,u);s||a&&"treemapZoomToNode"!==a&&"treemapRootToNode"!==a?c.renderFinally():this._doAnimation(h,c,t,u),this._resetController(i),this._renderBreadcrumb(t,i,o)}},_giveContainerGroup:function(t){var e=this._containerGroup;return e||(e=this._containerGroup=new Hx,this._initEvents(e),this.group.add(e)),e.attr("position",[t.x,t.y]),e},_doRender:function(t,e,i){var n=e.getData().tree,o=this._oldTree,a={nodeGroup:[],background:[],content:[]},r={nodeGroup:[],background:[],content:[]},s=this._storage,l=[],c=T(Jx,e,r,s,i,a,l);!function a(r,s,l,u,h){u?Ux(s=r,function(t,e){t.isRemoved()||i(e,e)}):new Tf(s,r,t,t).add(i).update(i).remove(T(i,null)).execute();function t(t){return t.getId()}function i(t,e){var i=null!=t?r[t]:null,n=null!=e?s[e]:null,o=c(i,n,l,h);o&&a(i&&i.viewChildren||[],n&&n.viewChildren||[],o,u,h+1)}}(n.root?[n.root]:[],o&&o.root?[o.root]:[],t,n===o||!o,0);var u,h,d=(h={nodeGroup:[],background:[],content:[]},(u=s)&&Ux(u,function(t,e){var i=h[e];Ux(t,function(t){t&&(i.push(t),t.__tmWillDelete=1)})}),h);return this._oldTree=n,this._storage=r,{lastsForAnimation:a,willDeleteEls:d,renderFinally:function(){Ux(d,function(t){Ux(t,function(t){t.parent&&t.parent.remove(t)})}),Ux(l,function(t){t.invisible=!0,t.dirty()})}}},_doAnimation:function(t,a,e,s){if(e.get("animation")){var l=e.get("animationDurationUpdate"),u=e.get("animationEasing"),h=function(){var a,r=[],s={};return{add:function(t,e,i,n,o){return z(n)&&(o=n,n=0),!s[t.id]&&(s[t.id]=1,r.push({el:t,target:e,time:i,delay:n,easing:o}),!0)},done:function(t){return a=t,this},start:function(){for(var t=r.length,e=0,i=r.length;e=r.length||t===r[t.depth]){var i=T_(l,c,t,e,y,s);n(t,i,o,a,r,s)}})}else p=b_(c),t.setVisual("color",p)}(a,{},N(o.levelModels,function(t){return t?t.get(x_):null}),r,t.getViewRoot().getAncestors(),t)}};function w_(i,n,o,a){var r=L({},n);return E(["color","colorAlpha","colorSaturation"],function(t){var e=i.get(t,!0);null==e&&o&&(e=o[t]),null==e&&(e=n[t]),null==e&&(e=a.get(t)),null!=e&&(r[t]=e)}),r}function b_(t){var e=S_(t,"color");if(e){var i=S_(t,"colorAlpha"),n=S_(t,"colorSaturation");return n&&(e=Ue(e,null,null,n)),i&&(e=Xe(e,i)),e}}function S_(t,e){var i=t[e];if(null!=i&&"none"!==i)return i}function M_(t,e,i,n,o,a){if(a&&a.length){var r=I_(e,"color")||null!=o.color&&"none"!==o.color&&(I_(e,"colorAlpha")||I_(e,"colorSaturation"));if(r){var s=e.get("visualMin"),l=e.get("visualMax"),u=i.dataExtent.slice();null!=s&&su[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:r.name,dataExtent:u,visual:r.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var d=new a_(c);return d.__drColorMappingBy=h,d}}}function I_(t,e){var i=t.get(e);return y_(i)&&i.length?{name:e,range:i}:null}function T_(t,e,i,n,o,a){var r=L({},e);if(o){var s=o.type,l="color"===s&&o.__drColorMappingBy,u="index"===l?n:"id"===l?a.mapIdToIndex(i.getId()):i.getValue(t.get("visualDimension"));r[s]=o.mapValueToVisual(u)}return r}var A_=Math.max,D_=Math.min,C_=W,L_=E,k_=["itemStyle","borderWidth"],P_=["itemStyle","gapWidth"],N_=["upperLabel","show"],O_=["upperLabel","height"],E_={seriesType:"treemap",reset:function(t,e,i,n){var o=i.getWidth(),a=i.getHeight(),r=t.option,s=vu(t.getBoxLayoutParams(),{width:i.getWidth(),height:i.getHeight()}),l=r.size||[],u=Pl(C_(s.width,l[0]),o),h=Pl(C_(s.height,l[1]),a),c=n&&n.type,d=Ox(n,["treemapZoomToNode","treemapRootToNode"],t),f="treemapRender"===c||"treemapMove"===c?n.rootRect:null,p=t.getViewRoot(),g=Ex(p);if("treemapMove"!==c){var m="treemapZoomToNode"===c?function(t,e,i,n,o){var a,r=(e||{}).node,s=[n,o];if(!r||r===i)return s;var l=n*o,u=l*t.option.zoomToNodeRatio;for(;a=r.parentNode;){for(var h=0,c=a.children,d=0,f=c.length;ds[1]&&(s[1]=e)})}else s=[NaN,NaN];return{sum:n,dataExtent:s}}(e,r,s);if(0===u.sum)return t.viewChildren=[];if(u.sum=function(t,e,i,n,o){if(!n)return i;for(var a=t.get("visibleMin"),r=o.length,s=r,l=r-1;0<=l;l--){var u=o["asc"===n?r-l-1:l].getValue();u/i*ei[l[r]])&&(h=i[l[r]]);for(var c=0,d=t.length;c "+d)),u++)}var f,p=i.get("coordinateSystem");if("cartesian2d"===p||"polar"===p)f=hp(t,i);else{var g=nh.get(p),m=g&&"view"!==g.type&&g.dimensions||[];_(m,"value")<0&&m.concat(["value"]);var v=np(t,{coordDimensions:m});(f=new Wf(v,i)).initData(t)}var y=new Wf(["value"],i);return y.initData(l,s),o&&o(f,y),ux({mainData:f,struct:a,structAttr:"graph",datas:{node:f,edge:y},datasAttr:{node:"data",edge:"edgeData"}}),a.update(),a}var Y_=Sf({type:"series.graph",init:function(t){Y_.superApply(this,"init",arguments);var e=this;function i(){return e._categoriesData}this.legendVisualProvider=new Gv(i,i),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeOption:function(t){Y_.superApply(this,"mergeOption",arguments),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeDefaultAndTheme:function(t){Y_.superApply(this,"mergeDefaultAndTheme",arguments),zo(t,["edgeLabel"],["show"])},getInitialData:function(t,s){var e=t.edges||t.links||[],i=t.data||t.nodes||[],l=this;if(i&&e)return X_(i,e,this,!0,function(t,e){t.wrapMethod("getItemModel",function(t){var e=l._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t});var i=l.getModel("edgeLabel"),n=new Il({label:i.option},i.parentModel,s),o=l.getModel("emphasis.edgeLabel"),a=new Il({emphasis:{label:o.option}},o.parentModel,s);function r(t){return(t=this.parsePath(t))&&"label"===t[0]?n:t&&"emphasis"===t[0]&&"label"===t[1]?a:this.parentModel}e.wrapMethod("getItemModel",function(t){return t.customizeGetParent(r),t})}).data},getGraph:function(){return this.getData().graph},getEdgeData:function(){return this.getGraph().edgeData},getCategoriesData:function(){return this._categoriesData},formatTooltip:function(t,e,i){if("edge"!==i)return Y_.superApply(this,"formatTooltip",arguments);var n=this.getData(),o=this.getDataParams(t,i),a=n.graph.getEdgeByIndex(t),r=n.getName(a.node1.dataIndex),s=n.getName(a.node2.dataIndex),l=[];return null!=r&&l.push(r),null!=s&&l.push(s),l=eu(l.join(" > ")),o.value&&(l+=" : "+eu(o.value)),l},_updateCategoriesData:function(){var t=N(this.option.categories||[],function(t){return null!=t.value?t:L({value:0},t)}),e=new Wf(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray(function(t){return e.getItemModel(t,!0)})},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},isAnimationEnabled:function(){return Y_.superCall(this,"isAnimationEnabled")&&!("force"===this.get("layout")&&this.get("force.layoutAnimation"))},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",legendHoverLink:!0,hoverAnimation:!0,layout:null,focusNodeAdjacency:!1,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle"},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,curveness:0,opacity:.5},emphasis:{label:{show:!0}}}}),j_=os.prototype,q_=ls.prototype;function K_(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}var $_=Is({type:"ec-line",style:{stroke:"#000",fill:null},shape:{x1:0,y1:0,x2:0,y2:0,percent:1,cpx1:null,cpy1:null},buildPath:function(t,e){this[K_(e)?"_buildPathLine":"_buildPathCurve"](t,e)},_buildPathLine:j_.buildPath,_buildPathCurve:q_.buildPath,pointAt:function(t){return this[K_(this.shape)?"_pointAtLine":"_pointAtCurve"](t)},_pointAtLine:j_.pointAt,_pointAtCurve:q_.pointAt,tangentAt:function(t){var e=this.shape,i=K_(e)?[e.x2-e.x1,e.y2-e.y1]:this._tangentAtCurve(t);return mt(i,i)},_tangentAtCurve:q_.tangentAt}),J_=["fromSymbol","toSymbol"];function Q_(t){return"_"+t+"Type"}function tw(t,e,i){var n=e.getItemVisual(i,"color"),o=e.getItemVisual(i,t),a=e.getItemVisual(i,t+"Size");if(o&&"none"!==o){k(a)||(a=[a,a]);var r=mg(o,-a[0]/2,-a[1]/2,a[0],a[1],n);return r.name=t,r}}function ew(t,e){t.x1=e[0][0],t.y1=e[0][1],t.x2=e[1][0],t.y2=e[1][1],t.percent=1;var i=e[2];i?(t.cpx1=i[0],t.cpy1=i[1]):(t.cpx1=NaN,t.cpy1=NaN)}function iw(t,e,i){Ii.call(this),this._createLine(t,e,i)}var nw=iw.prototype;function ow(t){this._ctor=t||iw,this.group=new Ii}nw.beforeUpdate=function(){var t=this.childOfName("fromSymbol"),e=this.childOfName("toSymbol"),i=this.childOfName("label");if(t||e||!i.ignore){for(var n=1,o=this.parent;o;)o.scale&&(n/=o.scale[0]),o=o.parent;var a=this.childOfName("line");if(this.__dirty||a.__dirty){var r=a.shape.percent,s=a.pointAt(0),l=a.pointAt(r),u=ht([],l,s);if(mt(u,u),t){t.attr("position",s);var h=a.tangentAt(0);t.attr("rotation",Math.PI/2-Math.atan2(h[1],h[0])),t.attr("scale",[n*r,n*r])}if(e){e.attr("position",l);h=a.tangentAt(1);e.attr("rotation",-Math.PI/2-Math.atan2(h[1],h[0])),e.attr("scale",[n*r,n*r])}if(!i.ignore){var c,d,f;i.attr("position",l);var p=5*n;if("end"===i.__position)c=[u[0]*p+l[0],u[1]*p+l[1]],d=.8=t&&(0===e?0:n[e-1][0])a&&(e[1-n]=e[n]+c.sign*a),e}function Hw(t,e){var i=t[e]-t[1-e];return{span:Math.abs(i),sign:0o*(1-h[0])?(l="jump",r=s-o*(1-h[2])):0<=(r=s-o*h[1])&&(r=s-o*(1-h[1]))<=0&&(r=0),(r*=e.axisExpandWidth/u)?Ww(r,n,a,"all"):l="none";else{o=n[1]-n[0];(n=[Yw(0,a[1]*s/o-o/2)])[1]=Xw(a[1],n[0]+o),n[0]=n[1]-o}return{axisExpandWindow:n,behavior:l}}},nh.register("parallel",{create:function(n,o){var a=[];return n.eachComponent("parallel",function(t,e){var i=new Jw(t,n,o);i.name="parallel_"+e,i.resize(t,o),(t.coordinateSystem=i).model=t,a.push(i)}),n.eachSeries(function(t){if("parallel"===t.get("coordinateSystem")){var e=n.queryComponents({mainType:"parallel",index:t.get("parallelIndex"),id:t.get("parallelId")})[0];t.coordinateSystem=e.coordinateSystem}}),a}});var tb=Tu.extend({type:"baseParallelAxis",axis:null,activeIntervals:[],getAreaSelectStyle:function(){return ra([["fill","color"],["lineWidth","borderWidth"],["stroke","borderColor"],["width","width"],["opacity","opacity"]])(this.getModel("areaSelectStyle"))},setActiveIntervals:function(t){var e=this.activeIntervals=D(t);if(e)for(var i=e.length-1;0<=i;i--)Ol(e[i])},getActiveState:function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(t))return"inactive";if(1===e.length){var i=e[0];if(i[0]<=t&&t<=i[1])return"active"}else for(var n=0,o=e.length;nn.getWidth()||i<0||i>n.getHeight()}(t,e)){var n=t._zr,o=t._covers,a=bb(t,e,i);if(!t._dragging)for(var r=0;rf&&(f=m.depth),g.setLayout({depth:v?m.depth:c},!0),"vertical"===a?g.setLayout({dy:i},!0):g.setLayout({dx:i},!0);for(var y=0;y "))},preventIncremental:function(){return!!this.get("effect.show")},getProgressive:function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},getProgressiveThreshold:function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},defaultOption:{coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}}});function QS(t,e,i){Ii.call(this),this.add(this.createLine(t,e,i)),this._updateEffectSymbol(t,e)}var tM=QS.prototype;function eM(t,e,i){Ii.call(this),this._createPolyline(t,e,i)}tM.createLine=function(t,e,i){return new iw(t,e,i)},tM._updateEffectSymbol=function(t,e){var i=t.getItemModel(e).getModel("effect"),n=i.get("symbolSize"),o=i.get("symbol");k(n)||(n=[n,n]);var a=i.get("color")||t.getItemVisual(e,"color"),r=this.childAt(1);this._symbolType!==o&&(this.remove(r),(r=mg(o,-.5,-.5,1,1,a)).z2=100,r.culling=!0,this.add(r)),r&&(r.setStyle("shadowColor",a),r.setStyle(i.getItemStyle(["color"])),r.attr("scale",n),r.setColor(a),r.attr("scale",n),this._symbolType=o,this._updateEffectAnimation(t,i,e))},tM._updateEffectAnimation=function(e,t,i){var n=this.childAt(1);if(n){var o=this,a=e.getItemLayout(i),r=1e3*t.get("period"),s=t.get("loop"),l=t.get("constantSpeed"),u=W(t.get("delay"),function(t){return t/e.count()*r/3}),h="function"==typeof u;if(n.ignore=!0,this.updateAnimationPoints(n,a),0e);r++);r=Math.min(r-1,o-2)}wt(t.position,i[r],i[r+1],(e-n[r])/(n[r+1]-n[r]));var s=i[r+1][0]-i[r][0],l=i[r+1][1]-i[r][1];t.rotation=-Math.atan2(l,s)-Math.PI/2,this._lastFrame=r,this._lastFramePercent=e,t.ignore=!1}},w(nM,QS);var aM=Is({shape:{polyline:!1,curveness:0,segs:[]},buildPath:function(t,e){var i=e.segs,n=e.curveness;if(e.polyline)for(var o=0;o=e[0]&&t<=e[1]}}(y,e.option.range):function(e,n,o){var i=e[1]-e[0],a=(n=N(n,function(t){return{interval:[(t.interval[0]-e[0])/i,(t.interval[1]-e[0])/i]}})).length,r=0;return function(t){for(var e=r;e=e.y&&t[1]<=e.y+e.height:i.contain(i.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},pointToData:function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},dataToPoint:function(t){var e=this.getAxis(),i=this.getRect(),n=[],o="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),n[o]=e.toGlobalCoord(e.dataToCoord(+t)),n[1-o]=0==o?i.y+i.height/2:i.x+i.width/2,n}}).dimensions});var BM=["axisLine","axisTickLabel","axisName"],VM="splitLine",GM=hv.extend({type:"singleAxis",axisPointerClass:"SingleAxisPointer",render:function(t,e,i,n){var o=this.group;o.removeAll();var a=RM(t),r=new Ym(t,a);E(BM,r.add,r),o.add(r.getGroup()),t.get(VM+".show")&&this["_"+VM](t),GM.superCall(this,"render",t,e,i,n)},_splitLine:function(t){var e=t.axis;if(!e.scale.isBlank()){var i=t.getModel("splitLine"),n=i.getModel("lineStyle"),o=n.get("width"),a=n.get("color");a=a instanceof Array?a:[a];for(var r=t.coordinateSystem.getRect(),s=e.isHorizontal(),l=[],u=0,h=e.getTicksCoords({tickModel:i}),c=[],d=[],f=0;fr)return!0;if(a){var s=sv(t).seriesDataCount,l=n.getExtent();return Math.abs(l[0]-l[1])/s>r}return!1},makeElOption:function(t,e,i,n,o){},createPointerEl:function(t,e,i,n){var o=e.pointer;if(o){var a=oI(t).pointerEl=new yl[o.type](aI(e.pointer));t.add(a)}},createLabelEl:function(t,e,i,n){if(e.label){var o=oI(t).labelEl=new is(aI(e.label));t.add(o),uI(o,n)}},updatePointerEl:function(t,e,i){var n=oI(t).pointerEl;n&&e.pointer&&(n.setStyle(e.pointer.style),i(n,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,i,n){var o=oI(t).labelEl;o&&(o.setStyle(e.label.style),i(o,{shape:e.label.shape,position:e.label.position}),uI(o,n))},_renderHandle:function(t){if(!this._dragging&&this.updateHandleTransform){var e,i=this._axisPointerModel,n=this._api.getZr(),o=this._handle,a=i.getModel("handle"),r=i.get("status");if(!a.get("show")||!r||"hide"===r)return o&&n.remove(o),void(this._handle=null);this._handle||(e=!0,o=this._handle=pl(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){Wt(t.event)},onmousedown:rI(this._onHandleDragMove,this,0,0),drift:rI(this._onHandleDragMove,this),ondragend:rI(this._onHandleDragEnd,this)}),n.add(o)),cI(o,i,!1);o.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=a.get("size");k(s)||(s=[s,s]),o.attr("scale",[s[0]/2,s[1]/2]),Tc(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},_moveHandleToValue:function(t,e){lI(this._axisPointerModel,!e&&this._moveAnimation,this._handle,hI(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(t,e){var i=this._handle;if(i){this._dragging=!0;var n=this.updateHandleTransform(hI(i),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=n,i.stopAnimation(),i.attr(hI(n)),oI(i).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},_onHandleDragEnd:function(t){if(this._dragging=!1,this._handle){var e=this._axisPointerModel.get("value");this._moveHandleToValue(e),this._api.dispatchAction({type:"hideTip"})}},getHandleTransform:null,updateHandleTransform:null,clear:function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),i=this._group,n=this._handle;e&&i&&(this._lastGraphicKey=null,i&&e.remove(i),n&&e.remove(n),this._group=null,this._handle=null,this._payloadInfo=null)},doClear:function(){},buildLabel:function(t,e,i){return{x:t[i=i||0],y:t[1-i],width:e[i],height:e[1-i]}}}).constructor=sI);var _I=sI.extend({makeElOption:function(t,e,i,n,o){var a=i.axis,r=a.grid,s=n.get("type"),l=wI(r,a).getOtherAxis(a).getGlobalExtent(),u=a.toGlobalCoord(a.dataToCoord(e,!0));if(s&&"none"!==s){var h=dI(n),c=bI[s](a,u,l);c.style=h,t.graphicKey=c.type,t.pointer=c}mI(e,t,pv(r.model,i),i,n,o)},getHandleTransform:function(t,e,i){var n=pv(e.axis.grid.model,e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:gI(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i,n){var o=i.axis,a=o.grid,r=o.getGlobalExtent(!0),s=wI(a,o).getOtherAxis(o).getGlobalExtent(),l="x"===o.dim?0:1,u=t.position;u[l]+=e[l],u[l]=Math.min(r[1],u[l]),u[l]=Math.max(r[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];return{position:u,rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}}});function wI(t,e){var i={};return i[e.dim+"AxisIndex"]=e.index,t.getCartesian(i)}var bI={line:function(t,e,i){return{type:"Line",subPixelOptimize:!0,shape:vI([e,i[0]],[e,i[1]],SI(t))}},shadow:function(t,e,i){var n=Math.max(1,t.getBandWidth()),o=i[1]-i[0];return{type:"Rect",shape:yI([e-n/2,i[0]],[n,o],SI(t))}}};function SI(t){return"x"===t.dim?0:1}hv.registerAxisPointerClass("CartesianAxisPointer",_I),ff(function(t){if(t){t.axisPointer&&0!==t.axisPointer.length||(t.axisPointer={});var e=t.axisPointer.link;e&&!k(e)&&(t.axisPointer.link=[e])}}),pf(Id.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=av(t,e)}),gf({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},function(t,e,i){var n=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||A(i.dispatchAction,i),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){KM(r)&&(r=WM({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=KM(r),u=o.axesInfo,h=s.axesInfo,c="leave"===n||KM(r),d={},f={},p={list:[],map:{}},g={showPointer:ZM(YM,f),showTooltip:ZM(jM,p)};HM(s.coordSysMap,function(t,e){var a=l||t.containPoint(r);HM(s.coordSysAxesInfo[e],function(t,e){var i=t.axis,n=function(t,e){for(var i=0;i<(t||[]).length;i++){var n=t[i];if(e.axis.dim===n.axisDim&&e.axis.model.componentIndex===n.axisIndex)return n}}(u,t);if(!c&&a&&(!u||n)){var o=n&&n.value;null!=o||l||(o=i.pointToData(r)),null!=o&&XM(t,o,g,!1,d)}})});var m={};return HM(h,function(o,t){var a=o.linkGroup;a&&!f[t]&&HM(a.axesInfo,function(t,e){var i=f[e];if(t!==o&&i){var n=i.value;a.mapper&&(n=o.axis.scale.parse(a.mapper(n,qM(t),qM(o)))),m[o.key]=n}})}),HM(m,function(t,e){XM(h[e],t,g,!0,d)}),function(o,t,e){var a=e.axesInfo=[];HM(t,function(t,e){var i=t.axisPointerModel.option,n=o[e];n?(t.useHandle||(i.status="show"),i.value=n.value,i.seriesDataIndices=(n.payloadBatch||[]).slice()):t.useHandle||(i.status="hide"),"show"===i.status&&a.push({axisDim:t.axis.dim,axisIndex:t.axis.model.componentIndex,value:i.value})})}(f,h,d),function(t,e,i,n){if(KM(e)||!t.list.length)return n({type:"hideTip"});var o=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:i.tooltipOption,position:i.position,dataIndexInside:o.dataIndexInside,dataIndex:o.dataIndex,seriesIndex:o.seriesIndex,dataByCoordSys:t.list})}(p,r,t,a),function(t,e,i){var n=i.getZr(),o="axisPointerLastHighlights",a=UM(n)[o]||{},r=UM(n)[o]={};HM(t,function(t,e){var i=t.axisPointerModel.option;"show"===i.status&&HM(i.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;r[e]=t})});var s=[],l=[];E(a,function(t,e){r[e]||l.push(t)}),E(r,function(t,e){a[e]||s.push(t)}),l.length&&i.dispatchAction({type:"downplay",escapeConnect:!0,batch:l}),s.length&&i.dispatchAction({type:"highlight",escapeConnect:!0,batch:s})}(h,0,i),d}});var MI=["x","y"],II=["width","height"],TI=sI.extend({makeElOption:function(t,e,i,n,o){var a=i.axis,r=a.coordinateSystem,s=CI(r,1-DI(a)),l=r.dataToPoint(e)[0],u=n.get("type");if(u&&"none"!==u){var h=dI(n),c=AI[u](a,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}mI(e,t,RM(i),i,n,o)},getHandleTransform:function(t,e,i){var n=RM(e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:gI(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i,n){var o=i.axis,a=o.coordinateSystem,r=DI(o),s=CI(a,r),l=t.position;l[r]+=e[r],l[r]=Math.min(s[1],l[r]),l[r]=Math.max(s[0],l[r]);var u=CI(a,1-r),h=(u[1]+u[0])/2,c=[h,h];return c[r]=l[r],{position:l,rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}}}),AI={line:function(t,e,i){return{type:"Line",subPixelOptimize:!0,shape:vI([e,i[0]],[e,i[1]],DI(t))}},shadow:function(t,e,i){var n=t.getBandWidth(),o=i[1]-i[0];return{type:"Rect",shape:yI([e-n/2,i[0]],[n,o],DI(t))}}};function DI(t){return t.isHorizontal()?0:1}function CI(t,e){var i=t.getRect();return[i[MI[e]],i[MI[e]]+i[II[e]]]}hv.registerAxisPointerClass("SingleAxisPointer",TI),bf({type:"single"});var LI=ic.extend({type:"series.themeRiver",dependencies:["singleAxis"],nameMap:null,init:function(t){LI.superApply(this,"init",arguments),this.legendVisualProvider=new Gv(A(this.getData,this),A(this.getRawData,this))},fixData:function(t){var e=t.length,i=Ko(t,function(t){return t[2]}),n=[];i.buckets.each(function(t,e){n.push({name:e,dataList:t})});for(var o=n.length,a=-1,r=-1,s=0;sMath.PI/2?"right":"left"):y&&"center"!==y?"left"===y?(d=l.r0+v,f>Math.PI/2&&(y="right")):"right"===y&&(d=l.r-v,f>Math.PI/2&&(y="left")):(d=(l.r+l.r0)/2,y="center"),c.attr("style",{text:s,textAlign:y,textVerticalAlign:S("verticalAlign")||"middle",opacity:S("opacity")});var x=d*p+l.cx,_=d*g+l.cy;c.attr("position",[x,_]);var w=S("rotate"),b=0;function S(t){var e=a.get(t);return null==e?o.get(t):e}"radial"===w?(b=-f)<-Math.PI/2&&(b+=Math.PI):"tangential"===w?(b=Math.PI/2-f)>Math.PI/2?b-=Math.PI:b<-Math.PI/2&&(b+=Math.PI):"number"==typeof w&&(b=w*Math.PI/180),c.attr("rotation",b)},BI._initEvents=function(t,e,i,n){t.off("mouseover").off("mouseout").off("emphasis").off("normal");function o(){r.onEmphasis(n)}function a(){r.onNormal()}var r=this;i.isAnimationEnabled()&&t.on("mouseover",o).on("mouseout",a).on("emphasis",o).on("normal",a).on("downplay",function(){r.onDownplay()}).on("highlight",function(){r.onHighlight()})},w(RI,Ii);gc.extend({type:"sunburst",init:function(){},render:function(o,a,t,e){var n=this;this.seriesModel=o,this.api=t,this.ecModel=a;var r=o.getData(),s=r.tree.root,i=o.getViewRoot(),l=this.group,u=o.get("renderLabelForZeroData"),h=[];i.eachNode(function(t){h.push(t)});var c=this._oldChildren||[];if(function(i,n){if(0===i.length&&0===n.length)return;function t(t){return t.getId()}function e(t,e){!function(t,e){u||!t||t.getValue()||(t=null);if(t!==s&&e!==s)if(e&&e.piece)t?(e.piece.updateData(!1,t,"normal",o,a),r.setItemGraphicEl(t.dataIndex,e.piece)):function(t){if(!t)return;t.piece&&(l.remove(t.piece),t.piece=null)}(e);else if(t){var i=new RI(t,o,a);l.add(i),r.setItemGraphicEl(t.dataIndex,i)}}(null==t?null:i[t],null==e?null:n[e])}new Tf(n,i,t,t).add(e).update(e).remove(T(e,null)).execute()}(h,c),function(t,e){if(0=i.r0}}});var VI="sunburstRootToNode";gf({type:VI,update:"updateView"},function(o,t){t.eachComponent({mainType:"series",subType:"sunburst",query:o},function(t,e){var i=Ox(o,[VI],t);if(i){var n=t.getViewRoot();n&&(o.direction=zx(n,i.node)?"rollUp":"drillDown"),t.resetViewRoot(i.node)}})});var GI="sunburstHighlight";gf({type:GI,update:"updateView"},function(n,t){t.eachComponent({mainType:"series",subType:"sunburst",query:n},function(t,e){var i=Ox(n,[GI],t);i&&(n.highlight=i.node)})});gf({type:"sunburstUnhighlight",update:"updateView"},function(i,t){t.eachComponent({mainType:"series",subType:"sunburst",query:i},function(t,e){i.unhighlight=!0})});var FI=Math.PI/180;function WI(t,e){if("function"==typeof e)return t.sort(e);var n="asc"===e;return t.sort(function(t,e){var i=(t.getValue()-e.getValue())*(n?1:-1);return 0==i?(t.dataIndex-e.dataIndex)*(n?-1:1):i})}function HI(a,r){return r=r||[0,0],N(["x","y"],function(t,e){var i=this.getAxis(t),n=r[e],o=a[e]/2;return"category"===i.type?i.getBandWidth():Math.abs(i.dataToCoord(n-o)-i.dataToCoord(n+o))},this)}yf(T(Yv,"sunburst")),vf(T(function(t,e,C,i){e.eachSeriesByType(t,function(t){var e=t.get("center"),i=t.get("radius");k(i)||(i=[0,i]),k(e)||(e=[e,e]);var n=C.getWidth(),o=C.getHeight(),h=Math.min(n,o),c=Pl(e[0],n),d=Pl(e[1],o),f=Pl(i[0],h/2),a=Pl(i[1],h/2),r=-t.get("startAngle")*FI,p=t.get("minAngle")*FI,g=t.getData().tree.root,s=t.getViewRoot(),m=s.depth,l=t.get("sort");null!=l&&!function e(t,i){var n=t.children||[];t.children=WI(n,i);n.length&&E(t.children,function(t){e(t,i)})}(s,l);var u=0;E(s.children,function(t){isNaN(t.getValue())||u++});var v=s.getValue(),y=Math.PI/(v||u)*2,x=0t[1]&&t.reverse(),{coordSys:{type:"polar",cx:o.cx,cy:o.cy,r:t[1],r0:t[0]},api:{coord:A(function(t){var e=a.dataToRadius(t[0]),i=r.dataToAngle(t[1]),n=o.coordToPoint([e,i]);return n.push(e,i*Math.PI/180),n}),size:A(XI,o)}}},calendar:function(i){var t=i.getRect(),e=i.getRangeInfo();return{coordSys:{type:"calendar",x:t.x,y:t.y,width:t.width,height:t.height,cellWidth:i.getCellWidth(),cellHeight:i.getCellHeight(),rangeInfo:{start:e.start,end:e.end,weeks:e.weeks,dayCount:e.allDay}},api:{coord:function(t,e){return i.dataToPoint(t,e)}}}}};function tT(t,e,i,n,o){null==i[t]||o||(e[t]=i[t],i[t]=n[t])}function eT(a,r,e,t){var i=a.get("renderItem"),n=a.coordinateSystem,o={};n&&(o=n.prepareCustoms?n.prepareCustoms():QI[n.type](n));var s,l,u,h,c,d=C({getWidth:t.getWidth,getHeight:t.getHeight,getZr:t.getZr,getDevicePixelRatio:t.getDevicePixelRatio,value:function(t,e){return null==e&&(e=s),r.get(r.getDimension(t||0),e)},style:function(t,e){null==e&&(e=s),g(e);var i=l.getModel(jI).getItemStyle();null!=c&&(i.fill=c);var n=r.getItemVisual(e,"opacity");null!=n&&(i.opacity=n);var o=t?rT(t,u):u;return Qs(i,o,null,{autoColor:c,isRectText:!0}),i.text=o.getShallow("show")?H(a.getFormattedLabel(e,"normal"),Gg(r,e)):null,t&&sT(i,t),i},styleEmphasis:function(t,e){null==e&&(e=s),g(e);var i=l.getModel(qI).getItemStyle(),n=t?rT(t,h):h;return Qs(i,n,null,{isRectText:!0},!0),i.text=n.getShallow("show")?Z(a.getFormattedLabel(e,"emphasis"),a.getFormattedLabel(e,"normal"),Gg(r,e)):null,t&&sT(i,t),i},visual:function(t,e){return null==e&&(e=s),r.getItemVisual(e,t)},barLayout:function(t){if(n.getBaseAxis){return function(t){var e=[],i=t.axis;if("category"===i.type){for(var n=i.getBandWidth(),o=0;oe[1]&&e.reverse();var i=t.getExtent(),n=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:e[0],r:e[1],startAngle:-i[0]*n,endAngle:-i[1]*n,clockwise:t.inverse,contain:function(t,e){var i=t-this.cx,n=e-this.cy,o=i*i+n*n,a=this.r,r=this.r0;return o<=a*a&&r*r<=o}}}};var vT=Tu.extend({type:"polarAxis",axis:null,getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"polar",index:this.option.polarIndex,id:this.option.polarId})[0]}});m(vT.prototype,sg);var yT={splitNumber:5};function xT(t,e){return e.type||(e.data?"category":"value")}function _T(t,e){var i=this,n=i.getAngleAxis(),o=i.getRadiusAxis();if(n.scale.setExtent(1/0,-1/0),o.scale.setExtent(1/0,-1/0),t.eachSeries(function(t){if(t.coordinateSystem===i){var e=t.getData();E(e.mapDimension("radius",!0),function(t){o.scale.unionExtentFromData(e,up(e,t))}),E(e.mapDimension("angle",!0),function(t){n.scale.unionExtentFromData(e,up(e,t))})}}),eg(n.scale,n.model),eg(o.scale,o.model),"category"===n.type&&!n.onBand){var a=n.getExtent(),r=360/n.scale.count();n.inverse?a[1]+=r:a[1]-=r,n.setExtent(a[0],a[1])}}function wT(t,e){if(t.type=e.get("type"),t.scale=ig(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),"angleAxis"===e.mainType){t.inverse^=e.get("clockwise");var i=e.get("startAngle");t.setExtent(i,i+(t.inverse?-360:360))}(e.axis=t).model=e}Om("angle",vT,xT,{startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:!1}}),Om("radius",vT,xT,yT),wf({type:"polar",dependencies:["polarAxis","angleAxis"],coordinateSystem:null,findAxisModel:function(t){var e;return this.ecModel.eachComponent(t,function(t){t.getCoordSysModel()===this&&(e=t)},this),e},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"80%"}}),nh.register("polar",{dimensions:mT.prototype.dimensions,create:function(i,s){var l=[];return i.eachComponent("polar",function(t,e){var i=new mT(e);i.update=_T;var n=i.getRadiusAxis(),o=i.getAngleAxis(),a=t.findAxisModel("radiusAxis"),r=t.findAxisModel("angleAxis");wT(n,a),wT(o,r),function(t,e,i){var n=e.get("center"),o=i.getWidth(),a=i.getHeight();t.cx=Pl(n[0],o),t.cy=Pl(n[1],a);var r=t.getRadiusAxis(),s=Math.min(o,a)/2,l=e.get("radius");null==l?l=[0,"100%"]:k(l)||(l=[0,l]),l=[Pl(l[0],s),Pl(l[1],s)],r.inverse?r.setExtent(l[1],l[0]):r.setExtent(l[0],l[1])}(i,t,s),l.push(i),(t.coordinateSystem=i).model=t}),i.eachSeries(function(t){if("polar"===t.get("coordinateSystem")){var e=i.queryComponents({mainType:"polar",index:t.get("polarIndex"),id:t.get("polarId")})[0];t.coordinateSystem=e.coordinateSystem}}),l}});var bT=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function ST(t,e,i){e[1]>e[0]&&(e=e.slice().reverse());var n=t.coordToPoint([e[0],i]),o=t.coordToPoint([e[1],i]);return{x1:n[0],y1:n[1],x2:o[0],y2:o[1]}}function MT(t){return t.getRadiusAxis().inverse?0:1}function IT(t){var e=t[0],i=t[t.length-1];e&&i&&Math.abs(Math.abs(e.coord-i.coord)-360)<1e-4&&t.pop()}hv.extend({type:"angleAxis",axisPointerClass:"PolarAxisPointer",render:function(e,t){if(this.group.removeAll(),e.get("show")){var i=e.axis,n=i.polar,o=n.getRadiusAxis().getExtent(),a=i.getTicksCoords(),r=i.getMinorTicksCoords(),s=N(i.getViewLabels(),function(t){return(t=D(t)).coord=i.dataToCoord(t.tickValue),t});IT(s),IT(a),E(bT,function(t){!e.get(t+".show")||i.scale.isBlank()&&"axisLine"!==t||this["_"+t](e,n,a,r,o,s)},this)}},_axisLine:function(t,e,i,n,o){var a,r=t.getModel("axisLine.lineStyle"),s=MT(e),l=s?0:1;(a=0===o[l]?new Hr({shape:{cx:e.cx,cy:e.cy,r:o[s]},style:r.getLineStyle(),z2:1,silent:!0}):new Xr({shape:{cx:e.cx,cy:e.cy,r:o[s],r0:o[l]},style:r.getLineStyle(),z2:1,silent:!0})).style.fill=null,this.group.add(a)},_axisTick:function(t,e,i,n,o){var a=t.getModel("axisTick"),r=(a.get("inside")?-1:1)*a.get("length"),s=o[MT(e)],l=N(i,function(t){return new os({shape:ST(e,[s,s+r],t.coord)})});this.group.add(ks(l,{style:C(a.getModel("lineStyle").getLineStyle(),{stroke:t.get("axisLine.lineStyle.color")})}))},_minorTick:function(t,e,i,n,o){if(n.length){for(var a=t.getModel("axisTick"),r=t.getModel("minorTick"),s=(a.get("inside")?-1:1)*r.get("length"),l=o[MT(e)],u=[],h=0;hr?"left":"right",u=Math.abs(a[1]-s)/o<.3?"middle":a[1]>s?"top":"bottom";p&&p[n]&&p[n].textStyle&&(i=new Il(p[n].textStyle,g,g.ecModel));var h=new Fr({silent:Ym.isLabelSilent(c)});this.group.add(h),Qs(h.style,i,{x:a[0],y:a[1],textFill:i.getTextColor()||c.get("axisLine.lineStyle.color"),text:t.formattedLabel,textAlign:l,textVerticalAlign:u}),v&&(h.eventData=Ym.makeAxisEventDataBase(c),h.eventData.targetType="axisLabel",h.eventData.value=t.rawLabel)},this)},_splitLine:function(t,e,i,n,o){var a=t.getModel("splitLine").getModel("lineStyle"),r=a.get("color"),s=0;r=r instanceof Array?r:[r];for(var l=[],u=0;um?"left":"right",h=Math.abs(l[1]-v)/g<.3?"middle":l[1]>v?"top":"bottom"}return{position:l,align:u,verticalAlign:h}}(e,i,0,s,d))}});var CT={line:function(t,e,i,n,o){return"angle"===t.dim?{type:"Line",shape:vI(e.coordToPoint([n[0],i]),e.coordToPoint([n[1],i]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:i}}},shadow:function(t,e,i,n,o){var a=Math.max(1,t.getBandWidth()),r=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:xI(e.cx,e.cy,n[0],n[1],(-i-a/2)*r,(a/2-i)*r)}:{type:"Sector",shape:xI(e.cx,e.cy,i-a/2,i+a/2,0,2*Math.PI)}}};function LT(n,t){t.update="updateView",gf(t,function(t,e){var i={};return e.eachComponent({mainType:"geo",query:t},function(e){e[n](t.name),E(e.coordinateSystem.regions,function(t){i[t.name]=e.isSelected(t.name)||!1})}),{selected:i,name:t.name}})}hv.registerAxisPointerClass("PolarAxisPointer",DT),vf(T(function(t,e,i){var N={},O=function(t){var g={};E(t,function(t,e){var i=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=dT(n,o),r=o.getExtent(),s="category"===o.type?o.getBandWidth():Math.abs(r[1]-r[0])/i.count(),l=g[a]||{bandWidth:s,remainedWidth:s,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},u=l.stacks;g[a]=l;var h=cT(t);u[h]||l.autoWidthCount++,u[h]=u[h]||{width:0,maxWidth:0};var c=Pl(t.get("barWidth"),s),d=Pl(t.get("barMaxWidth"),s),f=t.get("barGap"),p=t.get("barCategoryGap");c&&!u[h].width&&(c=Math.min(l.remainedWidth,c),u[h].width=c,l.remainedWidth-=c),d&&(u[h].maxWidth=d),null!=f&&(l.gap=f),null!=p&&(l.categoryGap=p)});var d={};return E(g,function(t,i){d[i]={};var e=t.stacks,n=t.bandWidth,o=Pl(t.categoryGap,n),a=Pl(t.gap,1),r=t.remainedWidth,s=t.autoWidthCount,l=(r-o)/(s+(s-1)*a);l=Math.max(l,0),E(e,function(t,e){var i=t.maxWidth;i&&i=n.start.time&&i.timea.end.time&&t.reverse(),t},_getRangeInfo:function(t){var e;(t=[this.getDateInfo(t[0]),this.getDateInfo(t[1])])[0].time>t[1].time&&(e=!0,t.reverse());var i=Math.floor(t[1].time/864e5)-Math.floor(t[0].time/864e5)+1,n=new Date(t[0].time),o=n.getDate(),a=t[1].date.getDate();if(n.setDate(o+i-1),n.getDate()!==a)for(var r=0n.weeks||0===t&&en.lweek)return!1;var o=7*(t-1)-n.fweek+e,a=new Date(n.start.time);return a.setDate(n.start.d+o),this.getDateInfo(a)}},kT.dimensions=kT.prototype.dimensions,kT.getDimensionsInfo=kT.prototype.getDimensionsInfo,kT.create=function(i,n){var o=[];return i.eachComponent("calendar",function(t){var e=new kT(t,i,n);o.push(e),t.coordinateSystem=e}),i.eachSeries(function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=o[t.get("calendarIndex")||0])}),o},nh.register("calendar",kT);var NT=Tu.extend({type:"calendar",coordinateSystem:null,defaultOption:{zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},init:function(t,e,i,n){var o=_u(t);NT.superApply(this,"init",arguments),OT(t,o)},mergeOption:function(t,e){NT.superApply(this,"mergeOption",arguments),OT(this.option,t)}});function OT(t,e){var i=t.cellSize;k(i)?1===i.length&&(i[1]=i[0]):i=t.cellSize=[i,i];var n=N([0,1],function(t){return function(t,e){return null!=t[pu[e][0]]||null!=t[pu[e][1]]&&null!=t[pu[e][2]]}(e,t)&&(i[t]="auto"),null!=i[t]&&"auto"!==i[t]});xu(t,e,{type:"box",ignoreSize:n})}var ET={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},zT={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]};bf({type:"calendar",_tlpoints:null,_blpoints:null,_firstDayOfMonth:null,_firstDayPoints:null,render:function(t,e,i){var n=this.group;n.removeAll();var o=t.coordinateSystem,a=o.getRangeInfo(),r=o.getOrient();this._renderDayRect(t,a,n),this._renderLines(t,a,r,n),this._renderYearText(t,a,r,n),this._renderMonthText(t,r,n),this._renderWeekText(t,a,r,n)},_renderDayRect:function(t,e,i){for(var n=t.coordinateSystem,o=t.getModel("itemStyle").getItemStyle(),a=n.getCellWidth(),r=n.getCellHeight(),s=e.start.time;s<=e.end.time;s=n.getNextNDay(s,1).time){var l=n.dataToRect([s],!1).tl,u=new is({shape:{x:l[0],y:l[1],width:a,height:r},cursor:"default",style:o});i.add(u)}},_renderLines:function(i,t,n,o){var a=this,r=i.coordinateSystem,s=i.getModel("splitLine.lineStyle").getLineStyle(),l=i.get("splitLine.show"),e=s.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=t.start,h=0;u.time<=t.end.time;h++){d(u.formatedDate),0===h&&(u=r.getDateInfo(t.start.y+"-"+t.start.m));var c=u.date;c.setMonth(c.getMonth()+1),u=r.getDateInfo(c)}function d(t){a._firstDayOfMonth.push(r.getDateInfo(t)),a._firstDayPoints.push(r.dataToRect([t],!1).tl);var e=a._getLinePointsOfOneWeek(i,t,n);a._tlpoints.push(e[0]),a._blpoints.push(e[e.length-1]),l&&a._drawSplitline(e,s,o)}d(r.getNextNDay(t.end.time,1).formatedDate),l&&this._drawSplitline(a._getEdgesPoints(a._tlpoints,e,n),s,o),l&&this._drawSplitline(a._getEdgesPoints(a._blpoints,e,n),s,o)},_getEdgesPoints:function(t,e,i){var n=[t[0].slice(),t[t.length-1].slice()],o="horizontal"===i?0:1;return n[0][o]=n[0][o]-e/2,n[1][o]=n[1][o]+e/2,n},_drawSplitline:function(t,e,i){var n=new Kr({z2:20,shape:{points:t},style:e});i.add(n)},_getLinePointsOfOneWeek:function(t,e,i){var n=t.coordinateSystem;e=n.getDateInfo(e);for(var o=[],a=0;a<7;a++){var r=n.getNextNDay(e.time,a),s=n.dataToRect([r.time],!1);o[2*r.day]=s.tl,o[2*r.day+1]=s["horizontal"===i?"bl":"tr"]}return o},_formatterLabel:function(t,e){return"string"==typeof t&&t?au(t,e):"function"==typeof t?t(e):e.nameMap},_yearTextPositionControl:function(t,e,i,n,o){e=e.slice();var a=["center","bottom"];"bottom"===n?(e[1]+=o,a=["center","top"]):"left"===n?e[0]-=o:"right"===n?(e[0]+=o,a=["center","top"]):e[1]-=o;var r=0;return"left"!==n&&"right"!==n||(r=Math.PI/2),{rotation:r,position:e,style:{textAlign:a[0],textVerticalAlign:a[1]}}},_renderYearText:function(t,e,i,n){var o=t.getModel("yearLabel");if(o.get("show")){var a=o.get("margin"),r=o.get("position");r=r||("horizontal"!==i?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],l=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,h="horizontal"===i?0:1,c={top:[l,s[h][1]],bottom:[l,s[1-h][1]],left:[s[1-h][0],u],right:[s[h][0],u]},d=e.start.y;+e.end.y>+e.start.y&&(d=d+"-"+e.end.y);var f=o.get("formatter"),p={start:e.start.y,end:e.end.y,nameMap:d},g=this._formatterLabel(f,p),m=new Fr({z2:30});Qs(m.style,o,{text:g}),m.attr(this._yearTextPositionControl(m,c[r],i,r,a)),n.add(m)}},_monthTextPositionControl:function(t,e,i,n,o){var a="left",r="top",s=t[0],l=t[1];return"horizontal"===i?(l+=o,e&&(a="center"),"start"===n&&(r="bottom")):(s+=o,e&&(r="middle"),"start"===n&&(a="right")),{x:s,y:l,textAlign:a,textVerticalAlign:r}},_renderMonthText:function(t,e,i){var n=t.getModel("monthLabel");if(n.get("show")){var o=n.get("nameMap"),a=n.get("margin"),r=n.get("position"),s=n.get("align"),l=[this._tlpoints,this._blpoints];z(o)&&(o=ET[o.toUpperCase()]||[]);var u="start"===r?0:1,h="horizontal"===e?0:1;a="start"===r?-a:a;for(var c="center"===s,d=0;dd.getHeight()&&(i.textPosition="top",a=!0);var r=a?-5-n.height:p+8;o+n.width/2>d.getWidth()?(i.textPosition=["100%",r],i.textAlign="right"):o-n.width/2<0&&(i.textPosition=[0,r],i.textAlign="left")}})}function t(t,e){var i,n=m[t],o=m[e],a=u[n],r=new Il(a,h,h.ecModel);if(l&&null!=l.newTitle&&(a.title=l.newTitle),n&&!o){if(function(t){return 0===t.indexOf("my")}(n))i={model:r,onclick:r.option.onclick,featureName:n};else{var s=ZT(n);if(!s)return;i=new s(r,c,d)}g[n]=i}else{if(!(i=g[o]))return;i.model=r,i.ecModel=c,i.api=d}n||!o?r.get("show")&&!i.unusable?(function(o,a,t){var r=o.getModel("iconStyle"),s=o.getModel("emphasis.iconStyle"),e=a.getIcons?a.getIcons():o.get("icon"),l=o.get("title")||{};if("string"==typeof e){var i=e,n=l;l={},(e={})[t]=i,l[t]=n}var u=o.iconPaths={};E(e,function(t,e){var i=pl(t,{},{x:-p/2,y:-p/2,width:p,height:p});i.setStyle(r.getItemStyle()),i.hoverStyle=s.getItemStyle(),i.setStyle({text:l[e],textAlign:s.get("textAlign"),textBorderRadius:s.get("textBorderRadius"),textPadding:s.get("textPadding"),textFill:null});var n=h.getModel("tooltip");n&&n.get("show")&&i.attr("tooltip",L({content:l[e],formatter:n.get("formatter",!0)||function(){return l[e]},formatterParams:{componentType:"toolbox",name:e,title:l[e],$vars:["name","title"]},position:n.get("position",!0)||"bottom"},n.option)),Ys(i),h.get("showTitle")&&(i.__title=l[e],i.on("mouseover",function(){var t=s.getItemStyle(),e="vertical"===h.get("orient")?null==h.get("right")?"right":"left":null==h.get("bottom")?"bottom":"top";i.setStyle({textFill:s.get("textFill")||t.fill||t.stroke||"#000",textBackgroundColor:s.get("textBackgroundColor"),textPosition:s.get("textPosition")||e})}).on("mouseout",function(){i.setStyle({textFill:null,textBackgroundColor:null})})),i.trigger(o.get("iconStatus."+e)||"normal"),f.add(i),i.on("click",A(a.onclick,a,c,d,e)),u[e]=i})}(r,i,n),r.setIconStatus=function(t,e){var i=this.option,n=this.iconPaths;i.iconStatus=i.iconStatus||{},i.iconStatus[t]=e,n[t]&&n[t].trigger(e)},i.render&&i.render(r,c,d,l)):i.remove&&i.remove(c,d):i.dispose&&i.dispose(c,d)}},updateView:function(t,e,i,n){E(this._features,function(t){t.updateView&&t.updateView(t.model,e,i,n)})},remove:function(e,i){E(this._features,function(t){t.remove&&t.remove(e,i)}),this.group.removeAll()},dispose:function(e,i){E(this._features,function(t){t.dispose&&t.dispose(e,i)})}});var YT=Cc.toolbox.saveAsImage;function jT(t){this.model=t}jT.defaultOption={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:YT.title,type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:YT.lang.slice()},jT.prototype.unusable=!v.canvasSupported,jT.prototype.onclick=function(t,e){var i=this.model,n=i.get("name")||t.get("title.0.text")||"echarts",o=i.get("type",!0)||"png",a=e.getConnectedDataURL({type:o,backgroundColor:i.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:i.get("connectedBackgroundColor"),excludeComponents:i.get("excludeComponents"),pixelRatio:i.get("pixelRatio")});if("function"!=typeof MouseEvent||v.browser.ie||v.browser.edge)if(window.navigator.msSaveOrOpenBlob){for(var r=atob(a.split(",")[1]),s=r.length,l=new Uint8Array(s);s--;)l[s]=r.charCodeAt(s);var u=new Blob([l]);window.navigator.msSaveOrOpenBlob(u,n+"."+o)}else{var h=i.get("lang"),c='';window.open().document.write(c)}else{var d=document.createElement("a");d.download=n+"."+o,d.target="_blank",d.href=a;var f=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});d.dispatchEvent(f)}},HT("saveAsImage",jT);var qT=Cc.toolbox.magicType,KT="__ec_magicType_stack__";function $T(t){this.model=t}$T.defaultOption={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:D(qT.title),option:{},seriesIndex:{}};var JT=$T.prototype;JT.getIcons=function(){var t=this.model,e=t.get("icon"),i={};return E(t.get("type"),function(t){e[t]&&(i[t]=e[t])}),i};var QT={line:function(t,e,i,n){if("bar"===t)return m({id:e,type:"line",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},n.get("option.line")||{},!0)},bar:function(t,e,i,n){if("line"===t)return m({id:e,type:"bar",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},n.get("option.bar")||{},!0)},stack:function(t,e,i,n){var o=i.get("stack")===KT;if("line"===t||"bar"===t)return n.setIconStatus("stack",o?"normal":"emphasis"),m({id:e,stack:o?"":KT},n.get("option.stack")||{},!0)}},tA=[["line","bar"],["stack"]];JT.onclick=function(u,t,h){var c=this.model,e=c.get("seriesIndex."+h);if(QT[h]){var i,d={series:[]};if(E(tA,function(t){0<=_(t,h)&&E(t,function(t){c.setIconStatus(t,"normal")})}),c.setIconStatus(h,"emphasis"),u.eachComponent({mainType:"series",query:null==e?null:{seriesIndex:e}},function(t){var e=t.subType,i=t.id,n=QT[h](e,i,t,c);n&&(C(n,t.option),d.series.push(n));var o=t.coordinateSystem;if(o&&"cartesian2d"===o.type&&("line"===h||"bar"===h)){var a=o.getAxesByScale("ordinal")[0];if(a){var r=a.dim+"Axis",s=u.queryComponents({mainType:r,index:t.get(name+"Index"),id:t.get(name+"Id")})[0].componentIndex;d[r]=d[r]||[];for(var l=0;l<=s;l++)d[r][s]=d[r][s]||{};d[r][s].boundaryGap="bar"===h}}}),"stack"===h)i=d.series&&d.series[0]&&d.series[0].stack===KT?m({stack:qT.title.tiled},qT.title):D(qT.title);t.dispatchAction({type:"changeMagicType",currentType:h,newOption:d,newTitle:i})}},gf({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),HT("magicType",$T);var eA=Cc.toolbox.dataView,iA=new Array(60).join("-"),nA="\t";function oA(t){var e=function(t){var o={},a=[],r=[];return t.eachRawSeries(function(t){var e=t.coordinateSystem;if(!e||"cartesian2d"!==e.type&&"polar"!==e.type)a.push(t);else{var i=e.getBaseAxis();if("category"===i.type){var n=i.dim+"_"+i.index;o[n]||(o[n]={categoryAxis:i,valueAxis:e.getOtherAxis(i),series:[]},r.push({axisDim:i.dim,axisIndex:i.index})),o[n].series.push(t)}else a.push(t)}}),{seriesGroupByCategoryAxis:o,other:a,meta:r}}(t);return{value:M([function(t){var h=[];return E(t,function(t,e){var i=t.categoryAxis,n=t.valueAxis.dim,o=[" "].concat(N(t.series,function(t){return t.name})),a=[i.model.getCategories()];E(t.series,function(t){a.push(t.getRawData().mapArray(n,function(t){return t}))});for(var r=[o.join(nA)],s=0;st[1]&&t.reverse(),t}function vA(t,e){return Xo(t,e,{includeMainTypes:fA})}gA.setOutputRanges=function(t,e){this.matchOutputRanges(t,e,function(t,e,i){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var n=wA[t.brushType](0,i,e);t.__rangeOffset={offset:SA[t.brushType](n.values,t.range,[1,1]),xyMinMax:n.xyMinMax}}})},gA.matchOutputRanges=function(t,n,o){uA(t,function(i){var t=this.findTargetInfo(i,n);t&&!0!==t&&E(t.coordSyses,function(t){var e=wA[i.brushType](1,t,i.range);o(i,e.values,t,n)})},this)},gA.setInputRanges=function(t,o){uA(t,function(t){var e=this.findTargetInfo(t,o);if(t.range=t.range||[],e&&!0!==e){t.panelId=e.panelId;var i=wA[t.brushType](0,e.coordSys,t.coordRange),n=t.__rangeOffset;t.range=n?SA[t.brushType](i.values,n.offset,function(t,e){var i=IA(t),n=IA(e),o=[i[0]/n[0],i[1]/n[1]];return isNaN(o[0])&&(o[0]=1),isNaN(o[1])&&(o[1]=1),o}(i.xyMinMax,n.xyMinMax)):i.values}},this)},gA.makePanelOpts=function(i,n){return N(this._targetInfoList,function(t){var e=t.getPanelRect();return{panelId:t.panelId,defaultBrushType:n&&n(t),clipPath:Ub(e),isTargetByCursor:Yb(e,i,t.coordSysModel),getLinearBrushOtherExtent:Xb(e)}})},gA.controlSeries=function(t,e,i){var n=this.findTargetInfo(t,i);return!0===n||n&&0<=hA(n.coordSyses,e.coordinateSystem)},gA.findTargetInfo=function(t,e){for(var i=this._targetInfoList,n=vA(e,t),o=0;on[1]&&(n[1]=e[1])})}),n[1]c[1];if(r&&!s&&!l)return!0;r&&(n=!0),s&&(e=!0),l&&(i=!0)}return n&&e&&i}):RA(h,function(t){if("empty"===o)i.setData(u=u.map(t,function(t){return function(t){return t>=c[0]&&t<=c[1]}(t)?t:NaN}));else{var e={};e[t]=c,u.selectRange(e)}}),RA(h,function(t){u.setApproximateExtent(c,t)}))})}}};var GA=E,FA=OA,WA=wf({type:"dataZoom",dependencies:["xAxis","yAxis","zAxis","radiusAxis","angleAxis","singleAxis","series"],defaultOption:{zlevel:0,z:4,orient:null,xAxisIndex:null,yAxisIndex:null,filterMode:"filter",throttle:null,start:0,end:100,startValue:null,endValue:null,minSpan:null,maxSpan:null,minValueSpan:null,maxValueSpan:null,rangeMode:null},init:function(t,e,i){this._dataIntervalByAxis={},this._dataInfo={},this._axisProxies={},this.textStyleModel,this._autoThrottle=!0,this._rangePropMode=["percent","percent"];var n=HA(t);this.settledOption=n,this.mergeDefaultAndTheme(t,i),this.doInit(n)},mergeOption:function(t){var e=HA(t);m(this.option,t,!0),m(this.settledOption,e,!0),this.doInit(e)},doInit:function(t){var i=this.option;v.canvasSupported||(i.realtime=!1),this._setDefaultThrottle(t),ZA(this,t);var n=this.settledOption;GA([["start","startValue"],["end","endValue"]],function(t,e){"value"===this._rangePropMode[e]&&(i[t[0]]=n[t[0]]=null)},this),this.textStyleModel=this.getModel("textStyle"),this._resetTarget(),this._giveAxisProxies()},_giveAxisProxies:function(){var r=this._axisProxies;this.eachTargetAxis(function(t,e,i,n){var o=this.dependentModels[t.axis][e],a=o.__dzAxisProxy||(o.__dzAxisProxy=new zA(t.name,e,this,n));r[t.name+"_"+e]=a},this)},_resetTarget:function(){var i=this.option,t=this._judgeAutoMode();FA(function(t){var e=t.axisIndex;i[e]=Eo(i[e])},this),"axisIndex"===t?this._autoSetAxisIndex():"orient"===t&&this._autoSetOrient()},_judgeAutoMode:function(){var e=this.option,i=!1;FA(function(t){null!=e[t.axisIndex]&&(i=!0)},this);var t=e.orient;return null==t&&i?"orient":i?void 0:(null==t&&(e.orient="horizontal"),"axisIndex")},_autoSetAxisIndex:function(){var a=!0,e=this.get("orient",!0),r=this.option,t=this.dependentModels;if(a){var i="vertical"===e?"y":"x";t[i+"Axis"].length?(r[i+"AxisIndex"]=[0],a=!1):GA(t.singleAxis,function(t){a&&t.get("orient",!0)===e&&(r.singleAxisIndex=[t.componentIndex],a=!1)})}a&&FA(function(t){if(a){var e=[],i=this.dependentModels[t.axis];if(i.length&&!e.length)for(var n=0,o=i.length;ne[0][1]&&(e[0][1]=a[0]),a[1]e[1][1]&&(e[1][1]=a[1])}return e&&CD(e)}};function CD(t){return new Mi(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}var LD=["#ddd"];wf({type:"brush",dependencies:["geo","grid","xAxis","yAxis","parallel","series"],defaultOption:{toolbox:null,brushLink:null,seriesIndex:"all",geoIndex:null,xAxisIndex:null,yAxisIndex:null,brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(120,140,180,0.3)",borderColor:"rgba(120,140,180,0.8)"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},areas:[],brushType:null,brushOption:{},coordInfoList:[],optionUpdated:function(t,e){var i=this.option;e||vD(i,t,["inBrush","outOfBrush"]);var n=i.inBrush=i.inBrush||{};i.outOfBrush=i.outOfBrush||{color:LD},n.hasOwnProperty("liftZ")||(n.liftZ=5)},setAreas:function(t){t&&(this.areas=N(t,function(t){return kD(this.option,t)},this))},setBrushOption:function(t){this.brushOption=kD(this.option,t),this.brushType=this.brushOption.brushType}});function kD(t,e){return m({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new Il(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}function PD(t,e,i,n){n&&n.$from===t.id||this._brushController.setPanels(t.brushTargetManager.makePanelOpts(i)).enableBrush(t.brushOption).updateCovers(t.areas.slice())}bf({type:"brush",init:function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new gb(e.getZr())).on("brush",A(this._onBrush,this)).mount()},render:function(t){return this.model=t,PD.apply(this,arguments)},updateTransform:PD,updateView:PD,dispose:function(){this._brushController.dispose()},_onBrush:function(t,e){var i=this.model.id;this.model.brushTargetManager.setOutputRanges(t,this.ecModel),e.isEnd&&!e.removeOnClick||this.api.dispatchAction({type:"brush",brushId:i,areas:D(t),$from:i}),e.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:i,areas:D(t),$from:i})}}),gf({type:"brush",event:"brush"},function(e,t){t.eachComponent({mainType:"brush",query:e},function(t){t.setAreas(e.areas)})}),gf({type:"brushSelect",event:"brushSelected",update:"none"},function(){}),gf({type:"brushEnd",event:"brushEnd",update:"none"},function(){});var ND=Cc.toolbox.brush;function OD(t,e,i){this.model=t,this.ecModel=e,this.api=i,this._brushType,this._brushMode}OD.defaultOption={show:!0,type:["rect","polygon","lineX","lineY","keep","clear"],icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:D(ND.title)};var ED=OD.prototype;ED.render=ED.updateView=function(e,t,i){var n,o,a;t.eachComponent({mainType:"brush"},function(t){n=t.brushType,o=t.brushOption.brushMode||"single",a|=t.areas.length}),this._brushType=n,this._brushMode=o,E(e.get("type",!0),function(t){e.setIconStatus(t,("keep"===t?"multiple"===o:"clear"===t?a:t===n)?"emphasis":"normal")})},ED.getIcons=function(){var t=this.model,e=t.get("icon",!0),i={};return E(t.get("type",!0),function(t){e[t]&&(i[t]=e[t])}),i},ED.onclick=function(t,e,i){var n=this._brushType,o=this._brushMode;"clear"===i?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===i?n:n!==i&&i,brushMode:"keep"===i?"multiple"===o?"single":"multiple":o}})},HT("brush",OD),ff(function(t,e){var i=t&&t.brush;if(k(i)||(i=i?[i]:[]),i.length){var n=[];E(i,function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(n=n.concat(e))});var o=t&&t.toolbox;k(o)&&(o=o[0]),o||(o={feature:{}},t.toolbox=[o]);var a=o.feature||(o.feature={}),r=a.brush||(a.brush={}),s=r.type||(r.type=[]);s.push.apply(s,n),function(i){var e={};E(i,function(t){e[t]=1}),i.length=0,E(e,function(t,e){i.push(e)})}(s),e&&!s.length&&s.push.apply(s,fD)}}),wf({type:"title",layoutMode:{type:"box",ignoreSize:!0},defaultOption:{zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bolder",color:"#333"},subtextStyle:{color:"#aaa"}}}),bf({type:"title",render:function(t,e,i){if(this.group.removeAll(),t.get("show")){var n=this.group,o=t.getModel("textStyle"),a=t.getModel("subtextStyle"),r=t.get("textAlign"),s=H(t.get("textBaseline"),t.get("textVerticalAlign")),l=new Fr({style:Qs({},o,{text:t.get("text"),textFill:o.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),h=t.get("subtext"),c=new Fr({style:Qs({},a,{text:h,textFill:a.getTextColor(),y:u.height+t.get("itemGap"),textVerticalAlign:"top"},{disableBox:!0}),z2:10}),d=t.get("link"),f=t.get("sublink"),p=t.get("triggerEvent",!0);l.silent=!d&&!p,c.silent=!f&&!p,d&&l.on("click",function(){window.open(d,"_"+t.get("target"))}),f&&c.on("click",function(){window.open(f,"_"+t.get("subtarget"))}),l.eventData=c.eventData=p?{componentType:"title",componentIndex:t.componentIndex}:null,n.add(l),h&&n.add(c);var g=n.getBoundingRect(),m=t.getBoxLayoutParams();m.width=g.width,m.height=g.height;var v=vu(m,{width:i.getWidth(),height:i.getHeight()},t.get("padding"));r||("middle"===(r=t.get("left")||t.get("right"))&&(r="center"),"right"===r?v.x+=v.width:"center"===r&&(v.x+=v.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?v.y+=v.height:"middle"===s&&(v.y+=v.height/2),s=s||"top"),n.attr("position",[v.x,v.y]);var y={textAlign:r,textVerticalAlign:s};l.setStyle(y),c.setStyle(y),g=n.getBoundingRect();var x=v.margin,_=t.getItemStyle(["color","opacity"]);_.fill=t.get("backgroundColor");var w=new is({shape:{x:g.x-x[3],y:g.y-x[0],width:g.width+x[1]+x[3],height:g.height+x[0]+x[2],r:t.get("borderRadius")},style:_,subPixelOptimize:!0,silent:!0});n.add(w)}}});function zD(t){var e=t.itemStyle||(t.itemStyle={}),i=e.emphasis||(e.emphasis={}),n=t.label||t.label||{},o=n.normal||(n.normal={}),a={normal:1,emphasis:1};E(n,function(t,e){a[e]||RD(o,e)||(o[e]=t)}),i.label&&!RD(n,"emphasis")&&(n.emphasis=i.label,delete i.label)}function RD(t,e){return t.hasOwnProperty(e)}Tu.registerSubTypeDefaulter("timeline",function(){return"slider"}),gf({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},function(t,e){var i=e.getComponent("timeline");return i&&null!=t.currentIndex&&(i.setCurrentIndex(t.currentIndex),!i.get("loop",!0)&&i.isIndexMax()&&i.setPlayState(!1)),e.resetOption("timeline"),C({currentIndex:i.option.currentIndex},t)}),gf({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(t,e){var i=e.getComponent("timeline");i&&null!=t.playState&&i.setPlayState(t.playState)});var BD=Tu.extend({type:"timeline",layoutMode:"box",defaultOption:{zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},init:function(t,e,i){this._data,this._names,this.mergeDefaultAndTheme(t,i),this._initData()},mergeOption:function(t){BD.superApply(this,"mergeOption",arguments),this._initData()},setCurrentIndex:function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(e<=t&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},getCurrentIndex:function(){return this.option.currentIndex},isIndexMax:function(){return this.getCurrentIndex()>=this._data.count()-1},setPlayState:function(t){this.option.autoPlay=!!t},getPlayState:function(){return!!this.option.autoPlay},_initData:function(){var t=this.option,e=t.data||[],i=t.axisType,o=this._names=[];if("category"===i){var a=[];E(e,function(t,e){var i,n=Bo(t);R(t)?(i=D(t)).value=e:i=e,a.push(i),z(n)||null!=n&&!isNaN(n)||(n=""),o.push(n+"")}),e=a}var n={category:"ordinal",time:"time"}[i]||"number";(this._data=new Wf([{name:"value",type:n}],this)).initData(e,o)},getData:function(){return this._data},getCategories:function(){if("category"===this.get("axisType"))return this._names.slice()}});b(BD.extend({type:"timeline.slider",defaultOption:{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"emptyCircle",symbolSize:10,lineStyle:{show:!0,width:2,color:"#304654"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#304654"},itemStyle:{color:"#304654",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:13,color:"#c23531",borderWidth:5,borderColor:"rgba(194,53,49, 0.5)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:22,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z",prevIcon:"path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z",color:"#304654",borderColor:"#304654",borderWidth:1},emphasis:{label:{show:!0,color:"#c23531"},itemStyle:{color:"#c23531"},controlStyle:{color:"#c23531",borderColor:"#c23531",borderWidth:2}},data:[]}}),Fh);function VD(t,e,i,n){Eg.call(this,t,e,i),this.type=n||"value",this.model=null}var GD=hc.extend({type:"timeline"});VD.prototype={constructor:VD,getLabelModel:function(){return this.model.getModel("label")},isHorizontal:function(){return"horizontal"===this.model.get("orient")}},w(VD,Eg);var FD=A,WD=E,HD=Math.PI;function ZD(t,e,i,n,o,a){var r=e.get("color");o?(o.setColor(r),i.add(o),a&&a.onUpdate(o)):((o=mg(t.get("symbol"),-1,-1,2,2,r)).setStyle("strokeNoScale",!0),i.add(o),a&&a.onCreate(o));var s=e.getItemStyle(["color","symbol","symbolSize"]);o.setStyle(s),n=m({rectHover:!0,z2:100},n,!0);var l=t.get("symbolSize");(l=l instanceof Array?l.slice():[+l,+l])[0]/=2,l[1]/=2,n.scale=l;var u=t.get("symbolOffset");if(u){var h=n.position=n.position||[0,0];h[0]+=Pl(u[0],l[0]),h[1]+=Pl(u[1],l[1])}var c=t.get("symbolRotate");return n.rotation=(c||0)*Math.PI/180||0,o.attr(n),o.updateTransform(),o}function UD(t,e,i,n,o){if(!t.dragging){var a=n.getModel("checkpointStyle"),r=i.dataToCoord(n.getData().get(["value"],e));o||!a.get("animation",!0)?t.attr({position:[r,0]}):(t.stopAnimation(!0),t.animateTo({position:[r,0]},a.get("animationDuration",!0),a.get("animationEasing",!0)))}}GD.extend({type:"timeline.slider",init:function(t,e){this.api=e,this._axis,this._viewRect,this._timer,this._currentPointer,this._mainGroup,this._labelGroup},render:function(e,t,i,n){if(this.model=e,this.api=i,this.ecModel=t,this.group.removeAll(),e.get("show",!0)){var o=this._layout(e,i),a=this._createGroup("mainGroup"),r=this._createGroup("labelGroup"),s=this._axis=this._createAxis(o,e);e.formatTooltip=function(t){return eu(s.scale.getLabel(t))},WD(["AxisLine","AxisTick","Control","CurrentPointer"],function(t){this["_render"+t](o,a,s,e)},this),this._renderAxisLabel(o,r,s,e),this._position(o,e)}this._doPlayStop()},remove:function(){this._clearTimer(),this.group.removeAll()},dispose:function(){this._clearTimer()},_layout:function(t,e){var i=t.get("label.position"),n=t.get("orient"),o=function(t,e){return vu(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}(t,e);null==i||"auto"===i?i="horizontal"===n?o.y+o.height/2n[1]&&(i=n[1]),i"),o&&(a+=YD(o),null!=i&&(a+=" : ")),null!=i&&(a+=YD(n)),a},getData:function(){return this._data},setData:function(t){this._data=t}});b(qD,Fh),qD.extend({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}}});var KD=_;function $D(t,e,i,n,o,a){var r=[],s=lp(e,n)?e.getCalculationInfo("stackResultDimension"):n,l=oC(e,s,t),u=e.indicesOfNearest(s,l)[0];r[o]=e.get(i,u),r[a]=e.get(n,u);var h=El(e.get(n,u));return 0<=(h=Math.min(h,20))&&(r[a]=+r[a].toFixed(h)),r}var JD=T,QD={min:JD($D,"min"),max:JD($D,"max"),average:JD($D,"average")};function tC(t,e){var i=t.getData(),n=t.coordinateSystem;if(e&&!function(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}(e)&&!k(e.coord)&&n){var o=n.dimensions,a=eC(e,i,n,t);if((e=D(e)).type&&QD[e.type]&&a.baseAxis&&a.valueAxis){var r=KD(o,a.baseAxis.dim),s=KD(o,a.valueAxis.dim);e.coord=QD[e.type](i,a.baseDataDim,a.valueDataDim,r,s),e.value=e.coord[s]}else{for(var l=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],u=0;u<2;u++)QD[l[u]]&&(l[u]=oC(i,i.mapDimension(o[u]),l[u]));e.coord=l}}return e}function eC(t,e,i,n){var o={};return null!=t.valueIndex||null!=t.valueDim?(o.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,o.valueAxis=i.getAxis(function(t,e){var i=t.getData(),n=i.dimensions;e=i.getDimension(e);for(var o=0;oi[o],f=[-h.x,-h.y];e||(f[n]=s.position[n]);var p=[0,0],g=[-c.x,-c.y],m=H(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?g[n]+=i[o]-c[o]:p[n]+=c[o]+m);g[1-n]+=h[a]/2-c[a]/2,s.attr("position",f),l.attr("position",p),u.attr("position",g);var v={x:0,y:0};if(v[o]=d?i[o]:h[o],v[a]=Math.max(h[a],c[a]),v[r]=Math.min(0,c[r]+g[1-n]),l.__rectSize=i[o],d){var y={x:0,y:0};y[o]=Math.max(i[o]-c[o]-m,0),y[a]=v[a],l.setClipPath(new is({shape:y})),l.__rectSize=y[o]}else u.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var x=this._getPageInfo(t);return null!=x.pageIndex&&sl(s,{position:x.contentPosition},d&&t),this._updatePageInfoView(t,x),v},_pageGo:function(t,e,i){var n=this._getPageInfo(e)[t];null!=n&&i.dispatchAction({type:"legendScroll",scrollDataIndex:n,legendId:e.id})},_updatePageInfoView:function(n,o){var a=this._controllerGroup;E(["pagePrev","pageNext"],function(t){var e=null!=o[t+"DataIndex"],i=a.childOfName(t);i&&(i.setStyle("fill",e?n.get("pageIconColor",!0):n.get("pageIconInactiveColor",!0)),i.cursor=e?"pointer":"default")});var t=a.childOfName("pageText"),e=n.get("pageFormatter"),i=o.pageIndex,r=null!=i?i+1:0,s=o.pageCount;t&&e&&t.setStyle("text",z(e)?e.replace("{current}",r).replace("{total}",s):e({current:r,total:s}))},_getPageInfo:function(t){var e=t.get("scrollDataIndex",!0),i=this.getContentGroup(),n=this._containerGroup.__rectSize,o=t.getOrient().index,a=NC[o],r=OC[o],s=this._findTargetItemIndex(e),l=i.children(),u=l[s],h=l.length,c=h?1:0,d={contentPosition:i.position.slice(),pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return d;var f=y(u);d.contentPosition[o]=-f.s;for(var p=s+1,g=f,m=f,v=null;p<=h;++p)(!(v=y(l[p]))&&m.e>g.s+n||v&&!x(v,g.s))&&(g=m.i>g.i?m:v)&&(null==d.pageNextDataIndex&&(d.pageNextDataIndex=g.i),++d.pageCount),m=v;for(p=s-1,g=f,m=f,v=null;-1<=p;--p)(v=y(l[p]))&&x(m,v.s)||!(g.i=e&&t.s<=e+n}},_findTargetItemIndex:function(n){var o,a,t=this.getContentGroup();return this._showController&&t.eachChild(function(t,e){var i=t.__legendDataIndex;null==a&&null!=i&&(a=e),i===n&&(o=e)}),null!=o?o:a}});gf("legendScroll","legendscroll",function(t,e){var i=t.scrollDataIndex;null!=i&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(i)})});WA.extend({type:"dataZoom.slider",layoutMode:"box",defaultOption:{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#2f4554",width:.5,opacity:.3},areaStyle:{color:"rgba(47,69,84,0.3)",opacity:.3}},borderColor:"#ddd",fillerColor:"rgba(167,183,204,0.4)",handleIcon:"M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z",handleSize:"100%",handleStyle:{color:"#a7b7cc"},labelPrecision:null,labelFormatter:null,showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#333"}}});var zC=is,RC=kl,BC=Ol,VC=A,GC=E,FC="horizontal",WC="vertical",HC=["line","bar","candlestick","scatter"],ZC=UA.extend({type:"dataZoom.slider",init:function(t,e){this._displayables={},this._orient,this._range,this._handleEnds,this._size,this._handleWidth,this._handleHeight,this._location,this._dragging,this._dataShadowInfo,this.api=e},render:function(t,e,i,n){ZC.superApply(this,"render",arguments),Tc(this,"_dispatchZoomAction",this.dataZoomModel.get("throttle"),"fixRate"),this._orient=t.get("orient"),!1!==this.dataZoomModel.get("show")?(n&&"dataZoom"===n.type&&n.from===this.uid||this._buildView(),this._updateView()):this.group.removeAll()},remove:function(){ZC.superApply(this,"remove",arguments),Ac(this,"_dispatchZoomAction")},dispose:function(){ZC.superApply(this,"dispose",arguments),Ac(this,"_dispatchZoomAction")},_buildView:function(){var t=this.group;t.removeAll(),this._resetLocation(),this._resetInterval();var e=this._displayables.barGroup=new Ii;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},_resetLocation:function(){var t=this.dataZoomModel,e=this.api,i=this._findCoordRect(),n={width:e.getWidth(),height:e.getHeight()},o=this._orient===FC?{right:n.width-i.x-i.width,top:n.height-30-7,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},a=_u(t.option);E(["right","top","width","height"],function(t){"ph"===a[t]&&(a[t]=o[t])});var r=vu(a,n,t.padding);this._location={x:r.x,y:r.y},this._size=[r.width,r.height],this._orient===WC&&this._size.reverse()},_positionGroup:function(){var t=this.group,e=this._location,i=this._orient,n=this.dataZoomModel.getFirstTargetAxisModel(),o=n&&n.get("inverse"),a=this._displayables.barGroup,r=(this._dataShadowInfo||{}).otherAxisInverse;a.attr(i!==FC||o?i===FC&&o?{scale:r?[-1,1]:[-1,-1]}:i!==WC||o?{scale:r?[-1,-1]:[-1,1],rotation:Math.PI/2}:{scale:r?[1,-1]:[1,1],rotation:Math.PI/2}:{scale:r?[1,1]:[1,-1]});var s=t.getBoundingRect([a]);t.attr("position",[e.x-s.x,e.y-s.y])},_getViewExtent:function(){return[0,this._size[0]]},_renderBackground:function(){var t=this.dataZoomModel,e=this._size,i=this._displayables.barGroup;i.add(new zC({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40})),i.add(new zC({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:A(this._onClickPanelClick,this)}))},_renderDataShadow:function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(t){var e=this._size,i=t.series,n=i.getRawData(),o=i.getShadowDim?i.getShadowDim():t.otherDim;if(null!=o){var a=n.getDataExtent(o),r=.3*(a[1]-a[0]);a=[a[0]-r,a[1]+r];var s,l=[0,e[1]],u=[0,e[0]],h=[[e[0],0],[0,0]],c=[],d=u[1]/(n.count()-1),f=0,p=Math.round(n.count()/e[0]);n.each([o],function(t,e){if(0e[0]||i[1]<0||i[1]>e[1])){var n=this._handleEnds,o=(n[0]+n[1])/2,a=this._updateInterval("all",i[0]-o);this._updateView(),a&&this._dispatchZoomAction()}},_dispatchZoomAction:function(){var t=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,start:t[0],end:t[1]})},_findCoordRect:function(){var i;if(GC(this.getTargetCoordInfo(),function(t){if(!i&&t.length){var e=t[0].model.coordinateSystem;i=e.getRect&&e.getRect()}}),!i){var t=this.api.getWidth(),e=this.api.getHeight();i={x:.2*t,y:.2*e,width:.6*t,height:.6*e}}return i}});function UC(t){return"vertical"===t?"ns-resize":"ew-resize"}WA.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}});var XC="\0_ec_dataZoom_roams";function YC(t,n){var e=qC(t),o=n.dataZoomId,a=n.coordId;E(e,function(t,e){var i=t.dataZoomInfos;i[o]&&_(n.allCoordIds,a)<0&&(delete i[o],t.count--)}),KC(e);var i=e[a];i||((i=e[a]={coordId:a,dataZoomInfos:{},count:0}).controller=function(t,r){var e=new Ly(t.getZr());return E(["pan","zoom","scrollMove"],function(a){e.on(a,function(n){var o=[];E(r.dataZoomInfos,function(t){if(n.isAvailableBehavior(t.dataZoomModel.option)){var e=(t.getRange||{})[a],i=e&&e(r.controller,n);!t.dataZoomModel.get("disabled",!0)&&i&&o.push({dataZoomId:t.dataZoomId,start:i[0],end:i[1]})}}),o.length&&r.dispatchAction(o)})}),e}(t,i),i.dispatchAction=T($C,t)),i.dataZoomInfos[o]||i.count++,i.dataZoomInfos[o]=n;var r=function(t){var n,o={type_true:2,type_move:1,type_false:0,type_undefined:-1},a=!0;return E(t,function(t){var e=t.dataZoomModel,i=!e.get("disabled",!0)&&(!e.get("zoomLock",!0)||"move");o["type_"+n]"],k(t)&&(t=t.slice(),n=!0),o=e?t:n?[u(t[0]),u(t[1])]:u(t),z(l)?l.replace("{value}",n?o[0]:o).replace("{value2}",n?o[1]:o):O(l)?n?l(t[0],t[1]):l(t):n?t[0]===s[0]?i[0]+" "+o[1]:t[1]===s[1]?i[1]+" "+o[0]:o[0]+" - "+o[1]:o;function u(t){return t===s[0]?"min":t===s[1]?"max":(+t).toFixed(Math.min(r,20))}},resetExtent:function(){var t=this.option,e=pL([t.min,t.max]);this._dataExtent=e},getDataDimension:function(t){var e=this.option.dimension,i=t.dimensions;if(null!=e||i.length){if(null!=e)return t.getDimension(e);for(var n=t.dimensions,o=n.length-1;0<=o;o--){var a=n[o];if(!t.getDimensionInfo(a).isCalculationCoord)return a}}},getExtent:function(){return this._dataExtent.slice()},completeVisualOption:function(){var t=this.ecModel,e=this.option,i={inRange:e.inRange,outOfRange:e.outOfRange},n=e.target||(e.target={}),o=e.controller||(e.controller={});m(n,i),m(o,i);var u=this.isCategory();function a(n){dL(e.color)&&!n.inRange&&(n.inRange={color:e.color.slice().reverse()}),n.inRange=n.inRange||{color:t.get("gradientColor")},fL(this.stateList,function(t){var e=n[t];if(z(e)){var i=lL(e,"active",u);i?(n[t]={},n[t][e]=i):delete n[t]}},this)}a.call(this,n),a.call(this,o),function(t,e,i){var n=t[e],o=t[i];n&&!o&&(o=t[i]={},fL(n,function(t,e){if(a_.isValidType(e)){var i=lL(e,"inactive",u);null!=i&&(o[e]=i,"color"!==e||o.hasOwnProperty("opacity")||o.hasOwnProperty("colorAlpha")||(o.opacity=[0,0]))}}))}.call(this,n,"inRange","outOfRange"),function(a){var r=(a.inRange||{}).symbol||(a.outOfRange||{}).symbol,s=(a.inRange||{}).symbolSize||(a.outOfRange||{}).symbolSize,l=this.get("inactiveColor");fL(this.stateList,function(t){var e=this.itemSize,i=a[t];null==(i=i||(a[t]={color:u?l:[l]})).symbol&&(i.symbol=r&&D(r)||(u?"roundRect":["roundRect"])),null==i.symbolSize&&(i.symbolSize=s&&D(s)||(u?e[0]:[e[0],e[0]])),i.symbol=hL(i.symbol,function(t){return"none"===t||"square"===t?"roundRect":t});var n=i.symbolSize;if(null!=n){var o=-1/0;cL(n,function(t){oe[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},completeVisualOption:function(){mL.prototype.completeVisualOption.apply(this,arguments),E(this.stateList,function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=0)},this)},setSelected:function(t){this.option.range=t.slice(),this._resetRange()},getSelected:function(){var t=this.getExtent(),e=Ol((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=i[1]||t<=e[1])?"inRange":"outOfRange"},findTargetDataIndices:function(n){var o=[];return this.eachTargetSeries(function(t){var i=[],e=t.getData();e.each(this.getDataDimension(e),function(t,e){n[0]<=t&&t<=n[1]&&i.push(e)},this),o.push({seriesId:t.id,dataIndex:i})},this),o},getVisualMeta:function(i){var t=xL(this,"outOfRange",this.getExtent()),e=xL(this,"inRange",this.option.range.slice()),n=[];function o(t,e){n.push({value:t,color:i(t,e)})}for(var a=0,r=0,s=e.length,l=t.length;rt[1])break;i.push({color:this.getControllerVisual(a,"color",e),offset:o/100})}return i.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),i},_createBarPoints:function(t,e){var i=this.visualMapModel.itemSize;return[[i[0]-e[0],t[0]],[i[0],t[0]],[i[0],t[1]],[i[0]-e[1],t[1]]]},_createBarGroup:function(t){var e=this._orient,i=this.visualMapModel.get("inverse");return new Ii("horizontal"!==e||i?"horizontal"===e&&i?{scale:"bottom"===t?[-1,1]:[1,1],rotation:-Math.PI/2}:"vertical"!==e||i?{scale:"left"===t?[1,1]:[-1,1]}:{scale:"left"===t?[1,-1]:[-1,-1]}:{scale:"bottom"===t?[1,1]:[-1,1],rotation:Math.PI/2})},_updateHandle:function(n,o){if(this._useHandle){var a=this._shapes,r=this.visualMapModel,s=a.handleThumbs,l=a.handleLabels;ML([0,1],function(t){var e=s[t];e.setStyle("fill",o.handlesColor[t]),e.position[1]=n[t];var i=hl(a.handleLabelPoints[t],ul(e,this.group));l[t].setStyle({x:i[0],y:i[1],text:r.formatValueText(this._dataInterval[t]),textVerticalAlign:"middle",textAlign:this._applyTransform("horizontal"===this._orient?0===t?"bottom":"top":"left",a.barGroup)})},this)}},_showIndicator:function(t,e,i,n){var o=this.visualMapModel,a=o.getExtent(),r=o.itemSize,s=[0,r[1]],l=SL(t,a,s,!0),u=this._shapes,h=u.indicator;if(h){h.position[1]=l,h.attr("invisible",!1),h.setShape("points",function(t,e,i,n){return t?[[0,-IL(e,TL(i,0))],[6,0],[0,IL(e,TL(n-i,0))]]:[[0,0],[5,-5],[5,5]]}(!!i,n,l,r[1]));var c=this.getControllerVisual(t,"color",{convertOpacityToAlpha:!0});h.setStyle("fill",c);var d=hl(u.indicatorLabelPoint,ul(h,this.group)),f=u.indicatorLabel;f.attr("invisible",!1);var p=this._applyTransform("left",u.barGroup),g=this._orient;f.setStyle({text:(i||"")+o.formatValueText(e),textVerticalAlign:"horizontal"===g?p:"middle",textAlign:"horizontal"===g?"center":p,x:d[0],y:d[1]})}},_enableHoverLinkToSeries:function(){var n=this;this._shapes.barGroup.on("mousemove",function(t){if(n._hovering=!0,!n._dragging){var e=n.visualMapModel.itemSize,i=n._applyTransform([t.offsetX,t.offsetY],n._shapes.barGroup,!0,!0);i[1]=IL(TL(0,i[1]),e[1]),n._doHoverLinkToSeries(i[1],0<=i[0]&&i[0]<=e[0])}}).on("mouseout",function(){n._hovering=!1,n._dragging||n._clearHoverLinkToSeries()})},_enableHoverLinkFromSeries:function(){var t=this.api.getZr();this.visualMapModel.option.hoverLink?(t.on("mouseover",this._hoverLinkFromSeriesMouseOver,this),t.on("mouseout",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},_doHoverLinkToSeries:function(t,e){var i=this.visualMapModel,n=i.itemSize;if(i.option.hoverLink){var o=[0,n[1]],a=i.getExtent();t=IL(TL(o[0],t),o[1]);var r=function(t,e,i){var n=6,o=t.get("hoverLinkDataSize");o&&(n=SL(o,e,i,!0)/2);return n}(i,a,o),s=[t-r,t+r],l=SL(t,o,a,!0),u=[SL(s[0],o,a,!0),SL(s[1],o,a,!0)];s[0] ",r):this._showIndicator(l,l,"≈ ",r));var h=this._hoverLinkDataIndices,c=[];(e||CL(i))&&(c=this._hoverLinkDataIndices=i.findTargetDataIndices(u));var d=function(t,e){var i={},n={};return o(t||[],i),o(e||[],n,i),[a(i),a(n)];function o(t,e,i){for(var n=0,o=t.length;ni&&n([i,e[0]],"outOfRange"),n(e.slice()),i=e[1])},this),{stops:a,outerColors:r}}function n(t,e){var i=s.getRepresentValue({interval:t});e=e||s.getValueState(i);var n=o(i,e);t[0]===-1/0?r[0]=n:t[1]===1/0?r[1]=n:a.push({value:t[0],color:n},{value:t[1],color:n})}}}),PL={splitNumber:function(){var t=this.option,e=this._pieceList,i=Math.min(t.precision,20),n=this.getExtent(),o=t.splitNumber;o=Math.max(parseInt(o,10),1),t.splitNumber=o;for(var a=(n[1]-n[0])/o;+a.toFixed(i)!==a&&i<5;)i++;t.precision=i,a=+a.toFixed(i);var r=0;t.minOpen&&e.push({index:r++,interval:[-1/0,n[0]],close:[0,0]});for(var s=n[0],l=r+o;r","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,i)},this)}};function NL(t,e){var i=t.inverse;("vertical"===t.orient?!i:i)&&e.reverse()}_L.extend({type:"visualMap.piecewise",doRender:function(){var a=this.group;a.removeAll();var r=this.visualMapModel,s=r.get("textGap"),t=r.textStyleModel,l=t.getFont(),u=t.getTextColor(),h=this._getItemAlign(),c=r.itemSize,e=this._getViewData(),i=e.endsText,d=W(r.get("showLabel",!0),!i);i&&this._renderEndsText(a,i[0],c,d,h),E(e.viewPieceList,function(t){var e=t.piece,i=new Ii;i.onclick=A(this._onItemClick,this,e),this._enableHoverLink(i,t.indexInModelPieceList);var n=r.getRepresentValue(e);if(this._createItemSymbol(i,n,[0,0,c[0],c[1]]),d){var o=this.visualMapModel.getValueState(n);i.add(new Fr({style:{x:"right"===h?-s:c[0]+s,y:c[1]/2,text:e.text,textVerticalAlign:"middle",textAlign:h,textFont:l,textFill:u,opacity:"outOfRange"===o?.5:1}}))}a.add(i)},this),i&&this._renderEndsText(a,i[1],c,d,h),mu(r.get("orient"),a,r.get("itemGap")),this.renderBackground(a),this.positionGroup(a)},_enableHoverLink:function(t,i){function e(t){var e=this.visualMapModel;e.option.hoverLink&&this.api.dispatchAction({type:t,batch:bL(e.findTargetDataIndices(i),e)})}t.on("mouseover",A(e,this,"highlight")).on("mouseout",A(e,this,"downplay"))},_getItemAlign:function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return wL(t,this.api,t.itemSize);var i=e.align;return i&&"auto"!==i||(i="left"),i},_renderEndsText:function(t,e,i,n,o){if(e){var a=new Ii,r=this.visualMapModel.textStyleModel;a.add(new Fr({style:{x:n?"right"===o?i[0]:0:i[0]/2,y:i[1]/2,textVerticalAlign:"middle",textAlign:n?o:"center",text:e,textFont:r.getFont(),textFill:r.getTextColor()}})),t.add(a)}},_getViewData:function(){var t=this.visualMapModel,e=N(t.getPieceList(),function(t,e){return{piece:t,indexInModelPieceList:e}}),i=t.get("text"),n=t.get("orient"),o=t.get("inverse");return("horizontal"===n?o:!o)?e.reverse():i=i&&i.slice().reverse(),{viewPieceList:e,endsText:i}},_createItemSymbol:function(t,e,i){t.add(mg(this.getControllerVisual(e,"symbol"),i[0],i[1],i[2],i[3],this.getControllerVisual(e,"color")))},_onItemClick:function(t){var e=this.visualMapModel,i=e.option,n=D(i.selected),o=e.getSelectedMapKey(t);"single"===i.selectedMode?(n[o]=!0,E(n,function(t,e){n[e]=e===o})):n[o]=!n[o],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:n})}});ff(iL);var OL,EL="urn:schemas-microsoft-com:vml",zL="undefined"==typeof window?null:window,RL=!1,BL=zL&&zL.document;function VL(t){return OL(t)}if(BL&&!v.canvasSupported)try{BL.namespaces.zrvml||BL.namespaces.add("zrvml",EL),OL=function(t){return BL.createElement("')}}catch(t){OL=function(t){return BL.createElement("<"+t+' xmlns="'+EL+'" class="zrvml">')}}var GL,FL=ir.CMD,WL=Math.round,HL=Math.sqrt,ZL=Math.abs,UL=Math.cos,XL=Math.sin,YL=Math.max;if(!v.canvasSupported){var jL=",",qL="progid:DXImageTransform.Microsoft",KL=21600,$L=KL/2,JL=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=KL+","+KL,t.coordorigin="0,0"},QL=function(t,e,i){return"rgb("+[t,e,i].join(",")+")"},tk=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},ek=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},ik=function(t,e,i){return 1e5*(parseFloat(t)||0)+1e3*(parseFloat(e)||0)+i},nk=Hn,ok=function(t,e,i){var n=Re(e);i=+i,isNaN(i)&&(i=1),n&&(t.color=QL(n[0],n[1],n[2]),t.opacity=i*n[3])},ak=function(t,e,i,n){var o="fill"===e,a=t.getElementsByTagName(e)[0];null!=i[e]&&"none"!==i[e]&&(o||!o&&i.lineWidth)?(t[o?"filled":"stroked"]="true",i[e]instanceof ss&&ek(t,a),a=a||VL(e),o?function(t,e,i){var n,o,a=e.fill;if(null!=a)if(a instanceof ss){var r,s=0,l=[0,0],u=0,h=1,c=i.getBoundingRect(),d=c.width,f=c.height;if("linear"===a.type){r="gradient";var p=i.transform,g=[a.x*d,a.y*f],m=[a.x2*d,a.y2*f];p&&(bt(g,g,p),bt(m,m,p));var v=m[0]-g[0],y=m[1]-g[1];(s=180*Math.atan2(v,y)/Math.PI)<0&&(s+=360),s<1e-6&&(s=0)}else{r="gradientradial";g=[a.x*d,a.y*f],p=i.transform;var x=i.scale,_=d,w=f;l=[(g[0]-c.x)/_,(g[1]-c.y)/w],p&&bt(g,g,p),_/=x[0]*KL,w/=x[1]*KL;var b=YL(_,w);u=0/b,h=2*a.r/b-u}var S=a.colorStops.slice();S.sort(function(t,e){return t.offset-e.offset});for(var M=S.length,I=[],T=[],A=0;A=c&&d<=i+1){for(var n=[],o=0;o=c&&d<=o+1)return jk(h,e.components,u,l);p[t]=e}else p[t]=void 0}var s;f++}for(;f<=e;){var r=a();if(r)return r}},pushComponent:function(t,e,i){var n=t[t.length-1];n&&n.added===e&&n.removed===i?t[t.length-1]={count:n.count+1,added:e,removed:i}:t.push({count:1,added:e,removed:i})},extractCommon:function(t,e,i,n){for(var o=e.length,a=i.length,r=t.newPos,s=r-n,l=0;r+1 { + Object.defineProperty(ctx, style, { + set: value => { + if (style !== 'fillStyle' && style !== 'strokeStyle' + || value !== 'none' && value !== null + ) { + ctx['set' + style.charAt(0).toUpperCase() + style.slice(1)](value); + } + } + }); + }); + + ctx.createRadialGradient = () => { + return ctx.createCircularGradient(arguments); + }; + } + + _initEvent() { + this.event = {}; + const eventNames = [{ + wxName: 'touchStart', + ecName: 'mousedown' + }, { + wxName: 'touchMove', + ecName: 'mousemove' + }, { + wxName: 'touchEnd', + ecName: 'mouseup' + }, { + wxName: 'touchEnd', + ecName: 'click' + }]; + + eventNames.forEach(name => { + this.event[name.wxName] = e => { + const touch = e.touches[0]; + this.chart.getZr().handler.dispatch(name.ecName, { + zrX: name.wxName === 'tap' ? touch.clientX : touch.x, + zrY: name.wxName === 'tap' ? touch.clientY : touch.y + }); + }; + }); + } + + set width(w) { + if (this.canvasNode) this.canvasNode.width = w + } + set height(h) { + if (this.canvasNode) this.canvasNode.height = h + } + + get width() { + if (this.canvasNode) + return this.canvasNode.width + return 0 + } + get height() { + if (this.canvasNode) + return this.canvasNode.height + return 0 + } +} diff --git a/miniprogram/images/biyan.png b/miniprogram/images/biyan.png new file mode 100644 index 0000000000000000000000000000000000000000..ce424972552ec1a5c62e06bd77ac333c3da7cb82 GIT binary patch literal 579 zcmV-J0=)f+P)Px${YgYYR9HvtR>6(JFc91g6v9b35>)_|Kq}#=1gL~`ffOT=s{_NHCbE$+b^#tsR# zneeU^A-MI+)Q&2qqE1zh{xkC?=B?Bix&UfOc%gCw@n#(3x=m%imnTtUCxghcuC3va zXvqp=rt=j`c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk#6rQ`QqR!L z#K720N5ROz&{E&PLf_C>*TB%qz|6|jTmcG{fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8fo2%#8yV>WRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1tXx76g0v!^HTE5 zi#5R-e0{Av^NLFn^O93NU2K(rM(AZ`rdSymnK_x8nL9eUxmg$*x;k2#8@oBXnYkIb zSsGZFnY+OBy5uL9=BDPA!1Sgd^g7|x3rY*Q1wfl!Qj0RnQd8WD@^clyezwZQ?G_81 z=0WwQ;C728PQCg-$LND%7AdA-Lcrt$V#3ockONQosd>QUUIa|n8}7zVV_;w`_H=O! zskrrKny)vLqr~yMR|Nhr#QqkDwVu)_A(AL2=k@AJ`-dk7&npPJu)k!jvMyP`Hy~+|Dn&Lw8?mP#jQs9&F6J~&8|#)7I?Vy?hTz=F*$C!LYdoLzG~b^ z)R33{=kiAUfKUa?e#i9wlgls2HiY{;arL_^T)|+TV8?ROc12_Qk<3Vwl>MA~C8?Yv!Y2R# literal 0 HcmV?d00001 diff --git a/miniprogram/images/core.png b/miniprogram/images/core.png new file mode 100644 index 0000000000000000000000000000000000000000..3b89e0b66af0fb5d2d2545b831c7c01160d3587a GIT binary patch literal 1091 zcmaJ=T}TvB7#$PLAFQniQWS1uMv*%|ySloQ+q&!Q=te8DExADt&dyxjL1*qXb9Kjk z(ulC9f*>LxLLcfOL=vJXD$0l+f}*#e2cbZE$cV@u1iPcI_RuzP=l*cc`Of#8h@*t)wWbI^HcN$qd|4UPk_QKL3+UH8_^Wr_lh;$rhv{D#}0**X2Q>9tz{taxW zsL}>4mB#7BDM3LxBfA*J(M`gpsP?d9%E}PLAOiG%W#H(;hAlWDdR2@s zOu(z~&26AH$nb$?&L3z3K8_EvTpP>#y&Nxa0imT8Y<@I}W~l>0Qj|7hkzI(+Vr&X5 zo6F^xoS#9~Aj=1XM8n7Wd|ra^+G7Tm9j{?G6cj{gE0$(r4H>{ylrv}qhiKw-BL&^u zk~QqjGLeF@j%>0#!?`IHfQiKap}M|>ws8_}`~9b|ofXt+?t-Ymk%&LR`|h$V2OPcu}MvyZM55(y!0*jP3c7#Bk{kzh1U6}aXo=Z{7C zs3f)Wd@K@_{H;=(pAT?8E*6lY1+Ivc5gi)1z*V=ozM@>W7j%VGpu{Ff8BK9h_sKp-0EAh+3I{~kao97Uw1aXzD3@|gSZ$; zIUh5tYir?`9Xk$RDk+=U)gQ?m>)=Dr74WobU}En<&&ukZ@Qup*Q+sY!ef#i!h5KGR z`Kn**U#7&h3QtK@$<^ihr300H6TjO$VY$vbDb;i7lP`L~uW5yOShjF{!r6E4(76_> zak1v=r@14Z`laS~cVsnqRzITJ{9g&V4;_#`Csr{6coWb#3_e54xeL r`seQPFZ1uJrc1QzSFT^2*+rFeRI+d8v;Wc5sQawru^w?Y+JE5>6SiNA literal 0 HcmV?d00001 diff --git a/miniprogram/images/cz_1.png b/miniprogram/images/cz_1.png new file mode 100644 index 0000000000000000000000000000000000000000..9922e2cc202edd456f79c6c602b6811f2d869e40 GIT binary patch literal 1960 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 literal 0 HcmV?d00001 diff --git a/miniprogram/images/early.png b/miniprogram/images/early.png new file mode 100644 index 0000000000000000000000000000000000000000..ca7aca0c3ec3997d8f3a91c2efcd4a90e11038a4 GIT binary patch literal 3302 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 literal 0 HcmV?d00001 diff --git a/miniprogram/images/fanhui.png b/miniprogram/images/fanhui.png new file mode 100644 index 0000000000000000000000000000000000000000..aa8bdaa3d5281ec53b07963a7a5607dd18cd7078 GIT binary patch literal 1304 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xd_B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk#6rQ`QqR!L z#K720N5ROz&{E&PLf_C>*TB%qz|6|jTmcG{fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8fo2%#8yV>WRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1tXx76g0v!^HTE5 zi#5R-e0{Av^NLFn^O93NU2K(rM(AZ`rdXM~85$cox|+Khn3)(Fx;i>K8#z0>nwuDy zy16(S8aTrAy5uL9=BDPA!1Sgd^jhH53rY*Q1wfl!Qj0RnQd8WD@^clyezwZQ?G{s< z=0WwQ;C71{PQCg-$LND%7AdA-Lcrt$V#3ockONQosd>QUUIa|nVO_@-GcYiAd%8G= zRNQ(q{cYf31D>|*_63fM`v0hJ6_j%rNKf4@j>>&R-yu$8q&55k^m`!!o@^;5E*2rex+CE>(j& zwJ6rTkf3qlon(zz#_nVHn5%!^)YC3n5V8OiQft0h0V_&sV9-ZhO|Wv$w5j;LhUSM^REMnWg87;AF2xU73N zGkc@+Bl$n&2la{{hTU@cRd=XtmC&}}oY^&7ZgYm*HaX4yBMC=s$5u&-R_iBOBPPbhqO$*vy zH=nj#pjlv^Y;3xPJ@1D-r?cq3mmITZHTisHnV#ghl=)wighgC*{( zJaZG%Q-e|yQz{EjrrIztFe_(0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWnQpS7iG_l>rJkXg ziGi`1j)IYap{2fog}$M&u7RPIfti)5xdId@0c|TvNwW%aaf8|g1^l#~=$>Fbx5 zm+O@q>*W`v>l<2H0?jbeH!{)%s?aU2%qvN((9J7WhMC}!TAW;zSx}OhpQivaF)=B> zw8T~k=u(Imatq+b<`qMO2^e7d6^RA_=rzWv7nBxq3xGDeq!wkCrKY$Q<>xAZ{cM$q+bsq- z&4cPq!R;19oO<@1^5X0cMaE2pdrU{zG9HNq%;7j<=kRCByv!cn_QewzJ@T{#Hcx(SFhNzg z@rSO!{^m`buFh7B?gty}1eOav^yK;N77nTYM3FY>EXzg z%_*@>CQ3zsd7AKq<5~8~EBC5ooaEPH@^dPdwJYH4INR_;eXrNQ`3`S*kBEO*v6JIS zT)@_nwMQIPcUcOEGkla(_{ViLeL+&%lWD)Egn24_;Eq!8TT&L5CiAwlA30QH+r$}I ZBp9X?I5p{N3nzjK7f)9|mvv4FO#n6knmqsj literal 0 HcmV?d00001 diff --git a/miniprogram/images/foot_2.png b/miniprogram/images/foot_2.png new file mode 100644 index 0000000000000000000000000000000000000000..908ddb87d07e5418438d2737bb8fe6fb29a5a916 GIT binary patch literal 1218 zcmeAS@N?(olHy`uVBq!ia0vp^Y9P$P1|(P5zFY^SBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFe_(0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWnQpS7iG_l>rJkXg ziGi`1j)IYap{2fog}$M&u7RPIfti)5xdId@0c|TvNwW%aaf8|g1^l#~=$>Fbx5 zm+O@q>*W`v>l<2H0?jbeH!{)%s?aU2%qvN((9J7WhMC}!TAW;zSx}OhpQivaF)=B> zw8T~k=u(Imatq+b<`qMO2^e7d6^RAH8V3bbak?DHZyj%G&i#_ zH+6C|HFbpPb;(aI%}vcKf$2>_=rzWv7nBxq3xGDeq!wkCrKY$Q<>xAZ{cM$q+bsq- z&4cPq!R;19oO<lFz zskrqf!ke$jKwxQ`?z)v9ndDko_Oz_CY2iLBd8d-+abI=?lYMq#{PMI}TiUb~*2bRk zj^ikqR5{nL@}z;Hi-?k1{(II9OxGM9cA7pr!>hU}=|s>U`K6Z@yF68r5!toDE82o_ zXPD>pCo_T_vpOZr{xi>b@bX;4_IRoC-S*{ucXP!)9c&E$qf(u>YL@-Qq~k(U6OE!T zpWe#z`0E_c+iQE=)?8uKPGmkl!*4(L{e-xd#Qhp;8o%>D6n}7PmBj4$lAEpF+zWD# zU3lPggF!;-kv`+Wiqs8iay*ah!fzz^Z{_-2rmVYP(%k*#^+|iaNJI*uz)7EXr zZJl%0+xv9DQw|?nzR+hgE=#Ohaa8GwVaSGN>!YgEHht7sc5qJXy4F@JnK~{5hLqgI UnW`H%r-4cpPgg&ebxsLQ00nQMq5uE@ literal 0 HcmV?d00001 diff --git a/miniprogram/images/foot_3.png b/miniprogram/images/foot_3.png new file mode 100644 index 0000000000000000000000000000000000000000..cf61a264a08b1b07908ccce8d7642b12838b2563 GIT binary patch literal 1922 zcmaJ?X;c$u6pag!Ego^fYF)-47(ud;LY;B!54F1RottuQ?I_7V$cdUV4pO5es2J1QexG^T;pGRgnRel1E<12I-*2 z7m8N-C7_TrAy}qJh*h{L$zGm-hn|ZIzz`+}^zaI`maFHHKk0JuxoMk520lTsSRVPa zsW4Cs_#!9-u&Eqp1%u@Z%ypwOI4rsgXAZ!mGu&u&R~o~`na<$SIb8N!;LAhCqoK-3 zu0$aE5({7P$k7<4;nHY2osOz=p(1D$jp62oYcOd{rZbLk*2b$bx!zf=wHs6rKw1T= z(qJk?4VV<=5y(o6N5-9gP65_@l~rrMlnE~wO)uBb7*x6`r9mJF{y!9kzoNC61p4Op zKZUijcnw68Kw4xas=yB}(#{l0!}UcWIfkGz1X(dyMR7EOA=+p}12Az*0A-;{tweO% z*`Ej?$n{riF}Yd+`3rbtT!N}nDY>p}mJdfn=dgqv4uc`|;j;xIA)6s|WwS+dg-qrk zSAZy1!jKvpz}=GZuyuCF6W( zMHUvh{H)yIf!L=PJDD!Jp7S2Pik@FS<_xsEJ#BYav{X)I8t4><0$_My%^1DKV!rz_ zE45F~F#GW8<~`BU7}q|pw{VVm46HqR_=1%~&;+(+F`w$^fOfVPrJOdi2`y|dGCP!D zn7HyrKz`YP^Bikp3#n&#eO@q{vfJgxmGsqDey_iuxWSB> zS85a5Fq-~%z^;>qNV25GGc>bf zVSMT;(#2afY#aL89e1^FMAQW?CAM5L2sKDpsRK#_NAn9^EGijH(6Hp)O!VgKG@fg51t4~PcW-|*6a!z zHec@Qx7dDUS6NZ(6tT?9sY7Y}&MhG$rQ_OW<+|tntE)-2j0owSSc>12ix*l)J6IV7C7A)TJz0PI+4~y1EeaQJqa;LTB%?prtuyg0sd{W{_?@t|&Q@R&wj_xZa{iU4N{ve^Q?6J|GHhI&iLB zv{xA10B_l{wUZK>#4_d@JgA$Zo-Ow}&<*sQEz{gQX@0IQ>*$R&PPMO=O#DrFh?ZXT z_%_mSU)!(V+ZSQGy2PUU%DaGc3b`Y_>C)9M^6cqjE_xm)O?K=%X|S=Rlz4df zfvzumA+OqY-1G@6I_L^nqHRY5in0lN9#2k;6NE pw}O?`NKE%WL(3=*c|R{{7~yUGn;!FRwcVz_qQ5X$aNH+6`5z-_3_t(? literal 0 HcmV?d00001 diff --git a/miniprogram/images/foot_4.png b/miniprogram/images/foot_4.png new file mode 100644 index 0000000000000000000000000000000000000000..32d0110fda09d1936c3a7c95280feb7ec1e958dd GIT binary patch literal 1749 zcmaJ?X;2eq7)}+HAQ83L0V}u$#mJEp0$B){3xg6QA+2et!kTO(h3w{7NC+?%7*JD0 zsTbpkponsK1L6Tvj`404FLb~%wSZC;MN}xI8x-x2(w*7;j(MKvectzbzu65@kxNJp zvmFQo0x4W9l;NYN?X{nbe@nSNmH6O_i4<5gs>V!^0VeQN=xP`U*FtMx84RgX^q1gZ z0%4+uMy|jVk_b?VYN?P7Lp5u4IGaES4mIl_Wde)=tKl^ogiC&YwvG&FR9x~3e+gZp z6TtBrvBdyKTO#F3OM;T4B8P?m!DbK_(83r5n6-(B5j1njqq-nIw{6qNz$gSu;F8~) zQb?iz0cwB&e=6Ho$?yvV0ytC#+mFs-`v6QjgF~YS(ikjXIs>G$LH_{Y!$ZcS8B}Ue zCJg%!3tw@`@ffB9X*83`L^ZLfs9_C_!QtQCDh(PP zra=+FrUR4-H5nI; z5+o8Z95G@LqJ+bRTrw^})o4^8kIfedIAH;PA~u`B5b*CvM=lTw5<_b$DbUY|tdbsxSkp1x9lQHRF5nA6M@KS2eyD_PAUcZiZ$% z*?*n%*cRSCw&};d#TOqtA4c$YH{gA}ZR1-6zb@i%Ax~~@yIQbZ>@1zrvf@5ik!Zi? zK-OBO|4%-or$Bi!k$*%0+~1%1u$IzxSkUZV3@+Uvu(xT&T0dg@75r&97CRjASaYmorQZF(MaGXy3OC-klyKn=C+D_&6=B!T;uVG0 z`I{r%hBk*WERyV`EMNW0$>QyR_|T?wuLqq4qHMQEG3B`>%o&9g5kEEJ4yUS&Zi)76 zdQ?})vXfdP^Y$moE>sxe>ewUc^Q^M@rwb<59xJGd+=ygRno6s#H~kK>?Vt5IoFLAw zFS=W)Pf%47M{0R2bAE06+s2lGu!QzG_pa5gt509xGj(T;2dUDjgmGt1otJbQQpIcQ2dzu$iu#Prl?JfS^pY!=krE6*4>A7|I;o&gGC zKW{6(C2D9B37R{-yt#v^Z=bDX_AgXcZ#fqBE8UHFhq8Q`;Gs6__`XK{L}J;^5~kyq zIW@>81~YjUv1~diA^$~rb8&2QC1q3MzTqm@hz3KaDOd=tnp%~+#{*hcv>&wN`H8xY zcju+#ZaKa~eD7R*JWX|?+1@6dh)VET~p6} z7jv&Wxylu^tSlTR{pq>AsO?lWTVP7e35Yx$>q)9U=q%a7o`mg?g_Hy@$_u}edznhP zU30}PrJWRUbMMl2mMOzD{WbT8Q(es?&WY<5SVO-mqD*n@ZEUqHOv{a!HRz%rN{gA~ zHgEltxQ@$)rjQP6`ioVhDCc*B%At#8-M1U_&)c0|V1ERjo9FqYNbCBqBcG|wzF*!%Nn63E}?(=h4H$>8$wx5I6dkM}whN5>{Xj^4cdG^_D1P7CM zNp{e#HS?$C)R#N)PNpFb{r29Kf8jlCpIwVcuQ=Gvk(EOM4x)CCsAUL{QzP@Pt Qx3(WmxF}Ls$&btY2N~q8c>n+a literal 0 HcmV?d00001 diff --git a/miniprogram/images/foot_5.png b/miniprogram/images/foot_5.png new file mode 100644 index 0000000000000000000000000000000000000000..6cd39b0a13c9baa690f9bc8f352a139fc977b0f8 GIT binary patch literal 1856 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 HoD!MQox# z6v?H~(UIF%homFIA&Sx@g`%jW8>QQ~b^E?QT4#Oh+iUIpyS>lzzVGvU-?es@kC*GB z1ttp+2*e_e8`BRSE$3b>4ftE?IDQ%)mO(5ok$4`i9 z2OJOxb*UhL3voR?=%Jtx%bT;o%7kJVjX*f8m5F(wQ2>Mr0m20$NA%PB3uu&p?}!d0 zd*VICEui==d!Bl;6B9iGo^0vG%SHa!rM}8P((a|hQm{F1X~QAK*v+)WINQC z2Mv3Z@WbeSO!gOF@X8S#0YPFq4i_IEkBzs*f|76?fkuNlh&Un<16yFE2_lFm!-%Bj zUm2KyG*luGLjq8Qnq%aJfU%Gx8jkdH3PQ1`=Qm=J^ovliWH=d5j3Z$2IH7PZuTR!e z$Pf5W7~i#)1|*09oF5To1+ecgSk^yc=`Iq02Z53R5RCp>1wIiV z1WF@7F^UKaidr2g5b?oysny&aeNLGPNCa^JpDh7}s81r(1>Xtae@p%|p8x-fhl7K{ z%~i^ORnFHfxE$xE-}(SveCs4Y1hMiPg~2$0=sI4p?Xz%snty?LNN zW72x}4wjm4nvt^PVClg%NTxm>yPb5_py+u!5}DOnI^UqkfSla3&N)Dfu`k`{RLMI1 ziVcJol>6}>*O}2;u)hDJN4N07U}Jw{e?PSycYY>zvh(LFM`_Y9xBl2&>N;-fpu)@t zDVkSD9VpqK9D&phR->NC%n7U1Hbh+hXwiAa_|FxOHIrHU!WMJ&?x@)+c5D6+yWO}9 zD>*aI-fjM}0z(IlT}pak3U+EqoBF*srbSTdV6YxlEpZ*L=k-7(%V=yqXT;9fPfKzU zs$AMR&+5d}0mdSko?Oo|WlzDv;v@5SNz9gOWGYNasg}m$>f7}3I-7NJ()j!IEEVZm z>XFEw6&1nY;g8)&Z^cgxT|LqkgAuIsr@uxtbM;r$m%3sZJ=)l`6-_R_vmMYBoSPBQxo~w|Mb8Eid24th4L1H~XEv#H=ekoJV-e#3PO7zCLbBt5n@_@u9Qtk>@6a$UK*xy__8E+H|EKWa?&=y;XE ziBxK^J1?COn>;qSRoAlS#JNG&il)fwp7>1Dhw`+{qq?WwZAX>%R-amR!206)doQxv zh{37yY(@l?m*X}s-QvpD>9*Dkqtu5rjb}2~c$0mf#g&LqR+i}2pOBd)6VHF z8t*mnESWxy__18HGBBhsYJ@SxIab{v%IzKeV7S?4D zTiv2)Q@v}ZEUHs%wTcc-y)>GtZ!@H%Vbrbd-E>6VS=+f$nZN3q3Daw%TSpqy`BhIF z=G~B9M^9Oubi8EM`DkeHL-8VW>%2VE3j1^||2+Tuu0)EmtE*^?a%?B3uo`R%8Xb6` zI#!or`X+v@EL%!a?cEukH>kFz5#zpRmR(g~<=bxN#r-3}eSMrt5EIiFUDY2<$4V8#nK{jYFSB*Ut0cSRWMm90Ueos&RxD(uD|DN>rhD}uvX6$Sp__BFNnck|$D@KD}_ZZ%@aJ=p{b31pp z)hpAH>F1>K5z3hoXJ%H{`{Ak>!?9@IgPOr|?%PP}h4SHIyfSb=QnSIDsBSR4q^rHe z4D=D*2ogw?lLki+6T_EQX1C=nubyR*YiA=oRovg~Y~90_erQrqJJWA6JCq-~6`{kr z<{`CD5Z15HZ|p6-Y1%`-@7u2XbSA21rp<`HsrUCVz43@b41X_bV$-QZ8*wJC7A%$D zzOd)GVkWCJuq8LzPPV6cPrri_Go&+`WYQ3P9^wtnnD0|n)If}sEejj`SOR}!mO@@q zc4(t=I_todljCEaPDml>uWJ>k8oA?kL`JsNr1o6(*R3BlG*N~Bf>HrR78Xb@k9pZZ zZri*3z180O7EMM53ER!ezN}YF(ap@5d6pb=M5%myFIVD94?M8g#`O%4+F&^1vyyb!JF3eDsU)D{G0UsVf#1U3N?g{t?9WZ$V1oW{`NR5 LFXn0I;M9KumyA`6 literal 0 HcmV?d00001 diff --git a/miniprogram/images/footer_1.png b/miniprogram/images/footer_1.png new file mode 100644 index 0000000000000000000000000000000000000000..f75dcc18389fb4268d3554717fe8e708dbd82807 GIT binary patch literal 1237 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 B;wk_D literal 0 HcmV?d00001 diff --git a/miniprogram/images/footer_4.png b/miniprogram/images/footer_4.png new file mode 100644 index 0000000000000000000000000000000000000000..40b28bc7d2688c22753fe71f6ea858ca94f66f8e GIT binary patch literal 1914 zcmaJ?Yfuws6irbff+!eKM1^&EXt8;M35f|x9tcX1gkYmqa7h-3kZjnjCW80?t0-tG zQ&Ul@D2&BdilEq{s6jxnA`Q=0+ge~yQ3MebmC|;jqWw|2GrQko&N=to``vGLcSQJ7 zM|(GW0)gNd8X}b9qmT6^+T!10UbhJ!W?~{a7Ky}RdI*IHK}sYR213GF<)-91 zm`fmx^Hj;?m|PsjQ6OpxWW`VnYAwzt5V(sCT1b%yV?Zn%uhQ_qzKd5tK&9k?pDq;B z#99HIpbAMr;mDM5nIa`o!B&Ec0|BmqgA1r(3<3=5B#n+^;DK*+Ir!YVO$C8B5G;`g zzBMHmM*so@g@J_>CRsuE4**zf3Z3as^J9JjFlcl(l@>sy`;lpM4vooK$O7IyARY}> z#&M*=;CHd`6%S0nFfE5l)$8>Xy&nZZGg(@j%?^+Z5E=_p%z@yE5SgqZ%MBl}@2qQyK+|#s3dgtKXw_m=ylt z_dkVovQ1i;Dus2(22_C`T%4yhl$IkvVF*J|8Gnq6HYZC1C!iDvc7+ z>pp%%5Q{mX8XX2{6mY1J2jUVGl}gEB3;fxvAb+91h{>eWMf@P9h|LcU5HVQ%U>1Wx z8|4ZS#RfI3!A7~t4_wihTx&0=wRmJ9jH))m%3u^x18;KXsK)lfA5-rgS2?y9!I)es zZiZ?-*?*n%=oa2S*6I7c#TV~8AJ*XQj^cg2KgM|{eqEk~3WH>ZJC_cu3W<_T+qr@@ z%iVu@cPMzyTv}RpBZYXA2$J?>f07YKn^p34L1t13K-^*P;;@HLp6^C;D7|$dw`iKT z+R34+&31nR?P1JQk2OiXB@NG`XKdE?1rDDc>8rdQo$4C7`j@U9ki(Mc@`-U7D!|xa zYmR^F&b1R4_~jIqrs+nE*9}gdjx)CNbEX$X+pHp@t9&Z2*ia%3Ap@(Lo%`*~^CH~& zGGKY<#Ul?F)E>92V>*n1U=TYTsbbNHx zE9!+^bNc$Hjp#Y!_DaAbTakwiy8JxZ?a~g^?)&)6lM4yAqQdYx__3 zZe9bi|EO@QkLl^R{i$;Y!W)!?9nn;qf<6nM51p9QBLAz;?(xiukYBuC_dM9DIyJpR zI&NZCJIm$z-&f2&KlKQIKiEBd!9Ha-hbqgc&W9`?Zp$5uTJx+E0aZ~ z+?e}Cc~lv>Z6DMed%gs`@5=K2YW%=)qjR2W=~c&)`e$>RmdQd$Ct$h!=t=pw6mr=s zvesB9o!UQ#b}t6b76RtVeC@tgu&Qw{T)WZMeZoL?Y5kuYU+i>lY@b|6>IRecp1pN$ zHD`@S!Dip$SVR1sfU4s2Zjzf*p}dm?bpk4h&u!>@=pujJq>kT18;L3x8CvTCpZEr- zBp23>9QLfr&5j7Z7Op+v5LfZU>&VT)*n5Qs%A|a5oBH~zd`p=}v~O0)N6!}r?y2H; z1^@P98}V`EggS|n*W5eyhj$i#d$*SaAyMWIVpi^N-Rre?kM)AjhtCibExYRlg-AMg zc;e)Yz3$Q+&BdB{uX1ItMSYsSo!Lo_I(ow`)iF^ z&u|x*?)FqoZD~KAb?Q;jWzp?q!)HInj@azmnAfJB61?E^z}aWuN#7A;H@S*svub)I zHxWl}QD)jlO_tq3M=FqjLf_>zyh7lleD~Bv`DCvk4@t{&1*}1?T@Xr3>jR`ae!K5kajF;gT=uI_x zim=5{`Q(QNL2>>TV{xBp+aTJK@BkTdThGuPOm*y{&bxfSbvW(&A;q%}^l+p1sTFkQ zmXF=9y>iL7*`J@}Ss|I-an2|SsLnB**IYgn79;Sil=u%tbqOiE+R|Na|NSGR&!TkK lR?gmHPLqGzcKA=yIzn{QBb!`HQGoSt7%B=En)vI|{{bVS2eJSF literal 0 HcmV?d00001 diff --git a/miniprogram/images/footer_5.png b/miniprogram/images/footer_5.png new file mode 100644 index 0000000000000000000000000000000000000000..e00b504cbe4772ef9ff9841129223b280a0efcb6 GIT binary patch literal 1764 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 F`x^(`lzadH literal 0 HcmV?d00001 diff --git a/miniprogram/images/footer_7.png b/miniprogram/images/footer_7.png new file mode 100644 index 0000000000000000000000000000000000000000..a6aed484405e56d9141d46b0c1668e1b7259c6db GIT binary patch literal 2092 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 tH_; literal 0 HcmV?d00001 diff --git a/miniprogram/images/i_location.png b/miniprogram/images/i_location.png new file mode 100644 index 0000000000000000000000000000000000000000..5ef39fec0fb8d15f3484240d972c004eaf0fd34e GIT binary patch literal 4541 zcmV;u5kl^XP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z2I@&fK~#9!?3`(ARYerXf79hv!3EJ143&- z6P4G3%NI8S62znmDpcZvD55dq61Rw0cMudM3MxUg)$-oo4{sWW;jQg`?-g@Ta*}(` znLBUp|DHK>=A3DbBtqJoN ze`fp8tcSZPFago|z{~b}I8Yr&t7%Nz^b2#m5;k+xglD9h&o_W&D!$AE>vum6XsbP@0g z&}?6_w3Gex2j&2qfV+U6-5VICsN4>ktbO6K!9U5ubVON)UG-o{Zk4NO$%zlYk}Oaw}jl&=;t) zJ|b6YwGr{Dz!cy&Pk#mQZ1kq!EGI~d8G%@YD0O5z5aSWoAhxIR8^5QxPUediA_gJW zdb%-)`Q6Q8jsli?mhuyDHn1X#=br!`2i^pxXVLyg;9R@XxpZChM%4uILZ++bljscs zSY`J+9kjy+aO?9N3X}uOfHB^*8#r^m*-%uAF=C<-=Nl!0JtN{)w%(EDi`$K;HsUKs zw!abciaM1VYT^-4)N=%nfL4(q7zv8&7nnal)u5OoAKg$BA6-0)5mzDlI^*1im{lN5 z5)9NYDEZJjWmk7+F@c%t4d#Bt&O!rY$1)r7kE5$>xITVb!GUSGK7O*7M`^X2yrNM3 z!jdgXR;lX3Ta38W`+6^Bh(XeEDdI#MpB&sNi%E>B$-hC$SVWibYy4y&HJMuCkjWyB-MjDo> zpFO72qLMZveeAUvQZQf|C&zjt4s^auD`G>A))GaWlSY3q;#owGtSu&CHS4@K1M(jE zHcpNWwwu9zHfhvBTY+1h`z^q`X}UTP*alQ&@v}7SwgIo+ zzPR-7KvSEISI4S=rgdv+q`hEG|yjX8DO=|A_h2> z#BhYkVX6#GqdO#rehx^ZI|Vp;UF z3u$Ivch_^OcMk+Ubwu9-$K~ksH)i?FDB$%}%DSd9e{6Tb9@~Kj>YB=KE7WqmDM>!2 zB8TVWz_b+Wic2r110_v0!KKXwTdwPx%Kkw7;6<*d=D1uhN8F0ookG7FQJqtOm+*yy zy*4eKdB@Hd+@yDbV;spy;QbtXc?eizSFoWZO0{1DPuc`jPV;=umF<0i6C6>j6JzQs zFuV+0?no~6Vw-H~a|=w@NnGNE6Km_1l4kQOCT^`Q5KCfU?MK`mzP740R6Mo-sN zyR>|JQGls^y8LaVRZb99inIW!EQbKDYn)gJrXme-O!HETLlAQcWifLn z{Bt_uK0n1;`%GkWv4Qy<(clei8sg?0U$SSCdUqxsfLMvx&yjtBm|fKJi9@rKM5qq| z(GJ}RjXG4|1TD!yUpud0#waX%HMF++fxnf3C8S$-C_%cS+8_{gUVHpZ% zV~jY|J~JspTVq6x5w96>gd>j`F|l@8q$P+i9b{2|8)6h<(_RT_@r|8cku=Hhj_a}v zsf>3J^AQz}Jcg*5u{`p8P*sPZ4-S0~8V>r@llKDM5Bd@`9dv9Cj-&@@9B3uz9neru z-v+9h(HvP6WI3iR5M1`8tv1y-pTv0?m-+(tT3!#lXESgEoi+yn*8&58Gl5}1j}*WD z9WZ{za}}QiU8m~uX@`5qrA?t;W}Wbn0gpQl%meCYtf<&Y9w^_ZHkaGo?ks{if*L1L zZ5#yL0_@D!!1H-((>;3^MI2*KR;~6npV{z68}c8IxD3&fG9S}zd`$M#YRedltsfai z;$-;o)+cr3QFf8|gNx0;I_rnNrNC6Eli@z?1YWTWi9?HxjzhhiB2xes6No+UPH|l{ zDuj>8hMN(;IHxi@m#ErDeM~yqX!FMh0o%L7fK2#LFNzb#gusNrgusNrgcJf30uut0 bFZy=?drpKLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z2uw*tK~#9!?3{UQ6lEC3f4fuKg0!U;LA*f`uqqP715i8*ig%PK=z1T2cm}V6;_a%@ zX#B%qG%=JIOjNv&CaR)O1PlgxXxvs{ zIq(zkw>+vylNb*?102}FxV?bOfk)(l#m4jgrOCG%3fm1cHi;b1s8#oELM8F2wF~Hrx08Jj?E?^ii3K%B<&IB5bkQ)WuoCNfo z=a`Ye?Leh|{~EZ$@DkHj0^b6U0yPT18-Nc2LaG|LN1y<#763m3n|#;)4EzW@2%M*J zCjs+;U-IrT@t9o(9Iu=LP_H~w9{>tUzKvSVMe>3Q-~xq#X~TdqI$r@?FHkoHjOz%P z+knqCr*hyTU`QcC=^(9qM3Y{ihfik9fVm1efQiaY7-2S12^>|N*HajG1@O2LuEzie z7Xp~QwX#v53HU6HdtZ^8Tk^OH<8On2(K_EKz*AN1-v_?ad8HAGc?G6ehnEA=0p?d7 zsEU;tf9t7=1h76uFZ66X@Q2PVfgH&6l45%M)DFqA*Rzs(g9J$u}^owVLhX565M&vi@_&0IwvCF^4Pf0c=fyS?2_p z2H*{OPB}0^m8vtqbo6{ZQXFr0U#R+{LSUUHc_i>e8jREKAVebu z_erHG>??j$BM)u?-Vwhk2=i@JZ*rZ=;~6TwH>=cc1KNBG(5~+->A;g5eHZK7o%snu*b=K;5%$}vr_h@mOaln^atp=6c5+4Ju0FE`JgI1px zdq9o=Ueq{!1V)>>?j68UD#;#g_*1#>4uw+T^cVqfi^6D>y5}D1cdAp!Gws0IfX_Tm zGfqb`TPa{J?L>*snI5wem;zj=#;{WTPc%unZ<0ru`pFvgJY_ycoG5uO*ZJ!}T#^J` z1sE?xW&?BNDK!eQ-iE7tp<`>}E$WKDGRCO~?$zoK6o8IT32Yaj8x*#lBAB(8eXnK(U#a9RJbk!jGxxGW^jKHV7mdc3{M&_58}T9 z3`T?KF<3jG9Vkw-r2Z{6a5%6k4f59|fVouFX`m_;0pZ|<(I(&v;8`CTD+ea4L_ea> zN~9L{(*6CFiyk)msq4jiW@ge3WE+?l`s$~EY(S!HG)o4c;N!83F^Kf?&Mhd8&NuHt7IA11C z^GCseiO1|gz;pwYCgp*7DY)@?1DIAHA6kH`@{jc0vle(&*L&WwXMj5Rjrz3w0~3$g z#khM$XBhg-Ln^1KSX&1YM3t(K3Dy!N+IJ0L-d0{a&hV-MX=*rG*JJhvPSK=nCBT`T z{O*YHa~STv&=>=>M%>M|mnA^$P!~N{pEnrb?xW;=cnTqylTaF{vK*C*FEELG~4{5MQm_W#MiY*XWt%$lLM;jH%|YQnKx={Q?}JP~0bg)Fsn> zm&%iRsmhg$=bWGrEN2=@SKiWzWlOI2IUDrM)s_VFseW5r!|Q}yaA@Pa@Y&Cb0kN3ul&@Po)>UX$+@@f1gHdsG_t z4rAx`>1Lyknk6>-nD5z+5H0ZQGiAW}0><;MjcOyV1D+JG$ty5RRW7%yM4s*=YKg1_ z_cf6N^!sA|{i4rmX)K=gRSz~zoT;yp^)0|t?D|r`5;E8w$QYQ~I?GGAUW0goG?d~b z-S%YQEQP=}-2G<%sy4H83)f_~x8uHQ^0^kKmR&d4P!hHa28$^`w;2!&ojWry!Y>Z(P$`r&S4oF-bnP~LPH z?k++#?#9>}t?CS2V_JXQH?jI;P%WpZTmPohB{$Q56B&=$MOxvf#X%|!39{8#fD%3Q zdU2B&@Tspg@VvMNcfV>K?(RdqnD7m_IUzZMKPFPLa1v z#ucWkd_Bv0k-~)%m=*WaQFOi210e%A>zD?q&{t$2t7cWG zYSXGtml`)wVY9!y0&DSfp%{dr%2kw^bd$@XWYp#Ha`Vy%{*EUChEEn)u+hFt0 zJ=#J4)7{KTsa(fnb`)@G>ntY;(*J2R5|!&{0zgbvty@}A0_I3B3;?PRAG1T& Rg-QSb002ovPDHLkV1mI6L-POt literal 0 HcmV?d00001 diff --git a/miniprogram/images/i_personnel.png b/miniprogram/images/i_personnel.png new file mode 100644 index 0000000000000000000000000000000000000000..216695bc655202ed4118d921076263beaafc0a0a GIT binary patch literal 4250 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 w*8wmAFaax~}`W@8^F0coRL`?4`tNdq#PY= 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 literal 0 HcmV?d00001 diff --git a/miniprogram/images/icon_2.png b/miniprogram/images/icon_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d46f8f4f281c2bd016126e42f6b51b1cb011b208 GIT binary patch literal 2592 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 MOu7fHf)W(}C$Riq5C8xG literal 0 HcmV?d00001 diff --git a/miniprogram/images/icon_3.png b/miniprogram/images/icon_3.png new file mode 100644 index 0000000000000000000000000000000000000000..7b59453db2b323922761603489a477181ea9d4f6 GIT binary patch literal 3580 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 literal 0 HcmV?d00001 diff --git a/miniprogram/images/icon_4.png b/miniprogram/images/icon_4.png new file mode 100644 index 0000000000000000000000000000000000000000..c682c6e0b447a55076558af64c18f16abd7db51c GIT binary patch literal 3215 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 literal 0 HcmV?d00001 diff --git a/miniprogram/images/icons_2.png b/miniprogram/images/icons_2.png new file mode 100644 index 0000000000000000000000000000000000000000..22f8ff27f05b39d033e47f78fc524747ed10a920 GIT binary patch literal 1342 zcmeAS@N?(olHy`uVBq!ia0vp^ZXnFT1|$ph9<=}|$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%*vS|5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8JrcYhY+)U}j}%t^fr}K--E^(yW49+@N*=dA3R!B_#z``ugSN z<$C4Ddih1^`i7R4Kr@W=jf`}GDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yY-;xWReF(0~F4nSMoLfxe-hfqrf-$X{U9#U(+h2xnkbT^v$bkg6Y) zTAW{6lnjiIG-a4(VA$ce2&53`8Y`Fls@p zsiC2(qobLNg{6_Dxq*e7tGSD#6HKpXUU5lcUUDi-Zze*oGhV$`&PAz-CHX}m`T04p z*bB(WFUc>?$S+VZ0tSSFMtEjkN`85koMZk2e%x(RFfq`+Or;B4q#jQ894|*LokT@tkFC7Vz8{>Q>U~{hzuC$C zzS(QGN`AC0b6}7-z`$nEz{r!pzzk%zF+dq=iU!9QIfZoPIBV6;bYG=g_`PPT$+ox0 zBUanGy-eF-9d+5G>R_i^?3P`ZTqn%yW>dO6fo|Ey1ars;Ei`l3A7dB1C?tm@w> zyf^$wZO6OUT04X-XK1fK=A8Y3w>&ATX+>1K-&xTolNz#@x-9BjCvsTgbA9?!-MRTi zv6;coXUj;;(LX2ty!-RfpO0!d;p}Y>YqlPk;<#)5o0{^?^TluNYSezm`oHq3+S~g^-nC>zv9}u<)!BYqR%C1@rz454gY`VqLnbO zYc=n|3Srw$wV98E#oNl2c7`!Qg9{Rb9I&ud>hou0V_?4FyO&|p+s~j9&C}J-Wt~$( F697H2;CKK4 literal 0 HcmV?d00001 diff --git a/miniprogram/images/icons_3.png b/miniprogram/images/icons_3.png new file mode 100644 index 0000000000000000000000000000000000000000..81e04f9c7e495f35630205d9cda0feca48ebb0eb GIT binary patch literal 1989 zcmaJ=c~nzZ9!@YIjbg=xy*3R;WlLTbvKEl60wsX}3W`b|$qRYGEF@2fjF!scLJ$WF zS`0X$wLSD$s0!GkZIP;DWukF#v>;WAtwK{A2N0-BWL{8o{&0HFx$F6T-~I0Q``x{% z($zlrAUp=}Nur8MP;7lix04rmO znG6X7$6d6 zLXiAe;&V}1l2n2~Z-fX8GLxjBMzaYl4w=e~rqG#D1R90P0Vr&MN+(gMTndxRU=dz4 zB6^!qsp6&y#V_tccdwZ zS2A83ZOYhYfPgf}q~Bsxp!raR&Vo_z{`?|$AgYEd)GM}VAsvz^j3uHcWF@TRvIOF2 zj)2A%i8xFuRm5ZS>Ct=!n0ujA2L$BXF zo4r)E9?_fBdIN!m8bJulgmp@Np()($?F*@p5#9wnvYIdJpZQ-o3m-l)b??z_ zd+?R=Ri?uoQ#YQTp4$GCO!DKz2W`dK6@-Np5Aj*=0BoonSNVajdy}x(J^nE_+54vF zt+HLVzg^92+W+s`^tTJG+@>U3l8xt@mP~|8{?mCMSndRp$~6@&-8nW@eI7TAiB2lslvHhJ4Hm6z1>!%HRj%3L=(pEClrt$$zAGJlv+motYIz&G z*zg4VX?272(uTH6Hma)Pa_z%NmB#O+GUp&J)PALa@_xtV4T*2wTi#m84(Qz1=WyZf zEo+Tz^mG&M??nkkM>$>jd*A7LZ#+9OHE!N=UPq4Q2dl^!5 zS|8uI!(Bi+8t21U8hNZ>AR(j_DLxyqnxB($5NB-+zDm62%DWocRJut$|FLda<)KW+ z+AMppD&F4g?W`wJMthSq|7fFzRcxoXd3EoW@=|PIa2VEWc`~s1SBh5+fOJ}YVx4!J z+ul0Ozru{~7c_LmY-JBDY%W=39V+)d^5ARyiruI7WAA#lG5#Ku7u9D;U^v#O<17)` zA^br3KXBOTx6R@GHe{_;s#kEZ0~dd-TyxBFTtzo(0Slp4>2*PO;3kL3B>u74xr3Gs zb3W`ENs+EdWh{KOvZ1+t!Q|L2zjsdW;oS7tI^BLLuft2Vr|(RI)Pr4@ihpmKag!vp`s#a_06aYvq6BTdKrrC*J*T1q*Bx)zPIv=<%@ z)}rotL+k9WsyC3#+OjwfNU|AZ~La3UjZXSV~|wC%*& zphj2m51_Ir_>U+3%;}5+m%pC`jV;)Uc;3PALuTJfjnjLK)^J8Gi?C={pL3|A()OiZ zzb&){g?R)H(aKvlZpakoT~RM^6o Gm;4tE0~Egi literal 0 HcmV?d00001 diff --git a/miniprogram/images/icons_4.png b/miniprogram/images/icons_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e71a75057c91c8218b7ac696150b70cc31ea095e GIT binary patch literal 1723 zcmaJ?3rrJd9IpZ*Dr9JVbWV1h)1c$pUfXN02ep(Iu*M>fF2E+}U3;Y!+AHk=g$?Jx zs3?d;nKCjnCnB43VsvwWBB*3cU~W+h*D@1_j!C7HDFdC4+enr|PZ1=bHshIO5{c^z za(*KtSuCF-lQxx3)hxwyl$ncrWVjBql|i#uk#dI>*JY73K#-XxiwqoSJ`MsVy$no2 zG<=O!Ng7Ry3vFa_VZ2sXn5C2ILHQye(t$AqW|GDMhdJ9~#~d7s+$47av5aPoaUyLCVVC(@IZ8p6D zOH##->0)*=&`8r(jK|B*&*$a~xs)xF2TP?4hkz##K#T-rFR;+K1G3oXdKpxtU1u{{ zX%l4uJd8L&<~JwNZaWo@|78Hl(uUN ztRydqv{Sh@9g`2kTrZf3-P;v;1Q~0vWi}I&6g*o+>2l4ag;uL%AaldjoAj7Oi7NO4 zL>L_#D~911g;a`2lu9^8g7SqiDq*yj<4ss4B0%{fr38_{(F`_PA&ONgV+5!eMWgvj zfyj$hTkJG$(UD%gCPwcVR{T~hrnHebP1&>*mF=y71S3ULb|Ym41WYi2uoRO;PvzSe zc=9vqu8Opo@<@HGjWPox0me*kFu)*1#W-ppA-sgkpmT7LkY)!L z4SA24!t^X(b_BC|*;Ay2X(SudF%M7hhghuf=hP~N)^Yi6O>-7Ik-a|iGk`cZQIRGZ z=QrIiw6?SkE-ydBzPtwpiVt2i1~+UlhOVkK?sCbuXcdVK844om+qU`o2xJ4$)RL|e zzTkd3GiYn$rQAkgM8&l)DjMzmcOzRG^Yb2W`DJInv~178;z?oai2n}-%vQqeL(AQ* za81PWs)S(3H3c2l)LM9Dz>wILX4P)$@LL>4=A1g}*R#sqr61%76XSkY*7(!Yv{T;q zJ<_)1BB&9ffhM1Q~bQOJX7KTN-K))nRK3?f6x;9m7t+Zs+ib9Pp^*eGQ>{=Cp#k&93MnBET1SQiN;hsqj#*99iMm!7@wgTB73=Hd%;FE4BL zxpI%CY&v$~NpLg678YHdy@ux{GI13_thnCzdamO*NXJa?7M&5_;kN&q-vPL8679TnYD4(tc|6j b7Xf_M4P!w7H@xAI=XauxiC6s?y|VZ}x^9vz literal 0 HcmV?d00001 diff --git a/miniprogram/images/icons_5.png b/miniprogram/images/icons_5.png new file mode 100644 index 0000000000000000000000000000000000000000..cd75a4140b0e22a2c67f1c3c027bb28fc79f7b9c GIT binary patch literal 1435 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 literal 0 HcmV?d00001 diff --git a/miniprogram/images/img_10.png b/miniprogram/images/img_10.png new file mode 100644 index 0000000000000000000000000000000000000000..8298f45a22d93e53f58afdc514f0f0d45e2d21bc GIT binary patch literal 3681 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 literal 0 HcmV?d00001 diff --git a/miniprogram/images/img_11.png b/miniprogram/images/img_11.png new file mode 100644 index 0000000000000000000000000000000000000000..1cc4db5ad77a73c508d58afa501de1f506d59dea GIT binary patch literal 3630 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 Ci`*Rm literal 0 HcmV?d00001 diff --git a/miniprogram/images/img_3.png b/miniprogram/images/img_3.png new file mode 100644 index 0000000000000000000000000000000000000000..adbaadc599b6760f55ad18583706821c36dd9434 GIT binary patch literal 1800 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 literal 0 HcmV?d00001 diff --git a/miniprogram/images/img_7.png b/miniprogram/images/img_7.png new file mode 100644 index 0000000000000000000000000000000000000000..6c247af37da1cf0ecd349aaa74e255dd2d8a56f6 GIT binary patch literal 1482 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 JYl7l){s7b9E^z<= literal 0 HcmV?d00001 diff --git a/miniprogram/images/img_9.png b/miniprogram/images/img_9.png new file mode 100644 index 0000000000000000000000000000000000000000..c5bbf83874f835129d75a3c366f7166950c72f35 GIT binary patch literal 3523 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 AYdnMg0XLC(p^*}+}N7c4K$ixb0P`lM( z|Fw643l$T2H7&0VC;#}Lt9G{9IkM7*w0bp+*J#_v)YIygBnxN^$uk9Q9}L4M6^DkD zx@z6(=SbpN^+OPx*hH+D7_|p+X^r?sfIGn3IQ2VS#J>w@0oFx)%fKWsvla!60>i*` z#J3md0QQxLE8mJ>Q>z|PUqvK#Is9PU3>+az66SUOnA)e#M97#`Z>zhLBq6{o@CH}} zQsG~3E3gN+2K)wkfeFC4At)S1ht-#nVU$zn)mv&)l9MpMHmFC{-U2wjs(01qBp`^| z9MB)&SO!i4JHl1%3BEqyeG(89u7m3H07qV&7D6Xl%N@~`6i^p9@idI*ynR>im3uoX zc^CWw27rYC$tj>7Xa>4~9PkVnU(Ls=d6;AZ_UZ5xs{c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk#6rQ`QqR!L z#K720N5ROz&{E&PLf_C>*TB%qz|6|jTmcG{fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8fo2%#8yV>WRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1tXx76g0v!^HTE5 zi#5R-e0{Av^NLFn^O93NU2K(rM(AZ`rdSymn>!jgIvbk0IvW}qx;iXJ2$+08OnABla^NXHH4m8Fi-75xsU+tj0|Qfyr;B4q z#jPjd`?EzI1?Jtft=}rvbTI5V}74= z#3_KuKR{Yr_lVnkj_JE4)4zR-d-wfr^}J;Thc|35-u-*;&$4&7IgN~ET#O4GbWg~= zi}9~^Njxw)L16QBWrdEV{}(VHQu5~5T)8~uttaR6wR}cqUu$>CBowQ^kp0*(L!I-J z@rKmZZY+L8}{<9_Qu|*gyg&X7W(WqDN#DF9?mi<@KX>Dc z#c5vGZr|J%Ewz>5F54o5{c$tmC;pwDx+9ul+1?)(%M!Dz=h#L_XB54BtiEx>-v=L7 zrOYUKCe0Z7Ov{Z;@=EdHU#~BpJn}wedH0k9{>|G&&C_;dHqK+5x%_5T#5{~S{sbb&R%T5|5e4Zb!ziK=CzeT?ot=~SqxnRL@W7ktZ zLtQzg{+!^x>-TuhuRS>*R%^|D`{6sg+r_wz$~%kqFPQGwTW`8a!1U+y(^;9-FK6>g zt3KcJtEKzLb2hsvJMz4awcK3U+0$jO@k{dIjQ-cx180=2iWc9HU$tKE=W|a#uh0Mb zlg=Nl3o%olCx0XT{kgi*hsRz&;^(eAdF#ZE)5=>eGA;H0dz8=IMQ{C*o=@EF$&>5< zt2HUEsC%&X@_q3Qq7mITs|2~ibxnS^20ssI2 literal 0 HcmV?d00001 diff --git a/miniprogram/images/lw_2.png b/miniprogram/images/lw_2.png new file mode 100644 index 0000000000000000000000000000000000000000..52388b101442421e2731dba1367e0d4dcd3eb9c7 GIT binary patch literal 1521 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 literal 0 HcmV?d00001 diff --git a/miniprogram/images/lw_4.png b/miniprogram/images/lw_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a177e21c33e77e099370a561877a321e2278c518 GIT binary patch literal 1669 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xd_B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk#6rQ`QqR!L z#K720N5ROz&{E&PLf_C>*TB%qz|6|jTmcG{fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8fo2%#8yV>WRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1tXx76g0v!^HTE5 zi#5R-e0{Av^NLFn^O93NU2K(rM(AZ`rdYWd8d(|}yBM3gIvW@ox;i--xHvkRyP7x} zyEq%Wn3}`%y5uL9=BDPA!1Sgd^qSz*3rY*Q1wfl!Qj0RnQd8WD@^clyezwZQ?G{6v z=0WwQ;C71QUUIa|n`FUw+3=B*^JY5_^ zDsCMK-%`Yvp?7vteg8zIoKCkmM=Ms|)p;~;;;ZQOCk;Bc>|*(RMT{+e zw>smFmTlTE6`sgl_bE$U*!k&U70+XS$8R@dKBTKHSSJh(kZ@eYrxwz9qHy=KGn)9V+CxIj3aZ z*61@#4SFK0o4jSpx2 zyu5Al{Fnk^v6;V2chrBaJ@e2rMw9Nji;cdp&MV!~Z0^T)1k`GdHvS3-NY>Fa+E^SK}N@`lFx z?CCNZKdY?Ga%XeemM&uU;Z&L}?iEm7v)HgT=9TllohJIP6SC&dT*nv6sKb)B$D=9d za#`HhDI9FYXH9lq{5SEWN%>TV>CTg^9c(M6SIyl0!6;K|)9%L~XJ@{Z=*<`Sr5>=C z^`89Y+w(-5d>6^|S?$SSeEe9CrD3bQyz-t)?+u?{j*&Y%yXp-0{N@_g3p@4pa85I= pb9-jlvZ8j%t4(3{x&K)t7`A3IKk)sq>O81o@O1TaS?83{1OQV|ht~iA literal 0 HcmV?d00001 diff --git a/miniprogram/images/lw_5.png b/miniprogram/images/lw_5.png new file mode 100644 index 0000000000000000000000000000000000000000..3e9545e4cf335e84ea39593d1cb88a956c7cfd57 GIT binary patch literal 1462 zcmeAS@N?(olHy`uVBq!ia0vp^QXtI11|(N{`J4k%k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xd_B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk#6rQ`QqR!L z#K720N5ROz&{E&PLf_C>*TB%qz|6|jTmcG{fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8fo2%#8yV>WRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1tXx76g0v!^HTE5 zi#5R-e0{Av^NLFn^O93NU2K(rM(AZ`rdXM{85ucSIysrTIvW}qx;i--8W>p^n_8N= zxtbc7xLUyUy5uL9=BDPA!1Sgd^g83z3rY*Q1wfl!Qj0RnQd8WD@^clyezwZQ?G{U% z=0WwQ;C726PQCg-$LND%7AdA-Lcrt$V#3ockONQosd>QUUIa|nhn&`hF)%P`db&7< zRNUG#&Cnw>QRH}SmXKcC${Ptzjcv1|xu&V4HG4aDKS)`$gvIJffUlOW-_;AvES?z! z0R;iV?HZbeh2CDSIUKq|r2(GzcmL!2Q(AH7`R?zZAGXT3SHHJ>{=fEl-Tj|=M?UZA z`MhIOv(>llmHY;}0Sn#lCw_=DF_KcT6H0OG@JW;^`5kZO{!KaQd(hJpJPJnY6H7B% zwHJk+m-_ItY?&D&>I`39QnAaPvHC*$`R)tGN{v&O3G*%dGv(m4)60Vm7kYYVMyTP^i+tuYY zr+3dtifHn^{`9V@weulqJEdd!z|RTm;>>wY2e2Q%f7rtb}eQ00{6R# zZ8Lr?abnqXd1i9DukyLoiG1dda*uTfOuLcd-%_wi(C4t;lm}a07ESWXVdh%UX0y3d z`rF1g-r<6!BDc5f-Ie?8HIMn#^=_9wbQ>(W8u3~^gk`_v#q*n2O-N?{EWS?l_J+zU zJA$5j&s*GA`r&m~|4+`^CTj!zb|3eJJ8n&WTK8D}i$L7L+^gpAG*XlVC6>0_T{tVt dYMnA88^f31r<%Sn*lh)sq@J#RF6*2UngFUnB=`UT literal 0 HcmV?d00001 diff --git a/miniprogram/images/lw_6.png b/miniprogram/images/lw_6.png new file mode 100644 index 0000000000000000000000000000000000000000..aa68320c1a986ab7174c94d28b3f5b2a1e2af11b GIT binary patch literal 1378 zcmeAS@N?(olHy`uVBq!ia0vp^QXtI11|(N{`J4k%k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xd_B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk#6rQ`QqR!L z#K720N5ROz&{E&PLf_C>*TB%qz|6|jTmcG{fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8fo2%#8yV>WRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1tXx76g0v!^HTE5 zi#5R-e0{Av^NLFn^O93NU2K(rM(AZ`rU1jz%+k!s!qn8&+0f9?)ydM-!ot$Y(aFrv z(#^%v(gLQ}B|o_|H#M&WrZ)wl*9@m#P+G_>0NU)5T9jFqn&MWJpQ`}&vsET;w;1Cz z52`l>w_8kb>eUB2MjsTjNHGl)0wy026P|8?9C*r4%>yR)B4E0nuwsrM0|Vn#PZ!6K zid%caY`vKs1$>)&=dRQh>1j%#OEqfcik1cc7^OFE5oVeEhe7e; zA+x!@KHcyu5yIc8>p9;*bT9pob#Hu7(@ zXZ^_5!)*E{pY7%;mx`Da|27W`_b+*U=S2?lq$&yd9}O~}$g#<4ZmMj0|FlRm-L6%d zC38A9>DbF!DM+`kI9_zMDIxBKh2Y)II*|fXTl$JCSIcp|5q^8d`rMO8eG8Z_Fclei zBx)A7UW{VbI>7QhQt@TVh1r+3>{~hgP?W-^#7d(QlS%s=y1rXk{C@F9u=?Vo4SyKQ z54axSuwvh4$@_PKrjd(^)77S+d!M)hT@!hhYL@ulnsDZJnO1m=@5{Dl9qFRAq2@V4 z?Gq;YO+TdmeBPH8XC_x@A6&b(q`$}VkhqT19v9PjFTJLR@1C|kbE@{<#Oo1uE)%}& zkn*km{bypzV~HEgekv1>f6`Vm5#3kn``YcshkyU{1gs7{J-2}I$16+C6Jj?*&hK(h qKk$U3{wZJMs>|=MX+z|0W7f$Qow^XopKQqR-X&t;ucLK6Vm_VAVf literal 0 HcmV?d00001 diff --git a/miniprogram/images/lw_7.png b/miniprogram/images/lw_7.png new file mode 100644 index 0000000000000000000000000000000000000000..b06c5261bcb4751c676a89af8b1b43ac7db976a3 GIT binary patch literal 1299 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 IZE!-?-!j>x_5c6? literal 0 HcmV?d00001 diff --git a/miniprogram/images/middl_right.png b/miniprogram/images/middl_right.png new file mode 100644 index 0000000000000000000000000000000000000000..ec22d6059f631744c66725e4ccf98ce275b2a742 GIT binary patch literal 3159 zcmV-d45;&oP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z0fb3JK~#9!?A6OFL}3`m@$Z}&GeXM!G8(sGCN=KkC>drWVyReJDCIw}k(9qfSy)S1 zjD?a*Rz%2cfjAiEm@zXbmpR8`lHE+2&svkeyc&Uob#fbrUTe{Ro0F zDPSxqZ=OuFAriVJ8V(?O2Z=reh=lHtPWP}?)?u?ZaD8!rqQt%r06a$Sk^Se0oddkQ zJQI?ykk0nWD=foN>*4z1h}iq<&x#xjNUZp#sc-G0xU>dURoGgeCnR6t=^6g{FER)M z4p%!5!5d`%830+i#T40`9Ph3s95~6RlF5wd9Y9eO))!}p#oj2e+HrgO*<72$FP(fJ zFk8}S>lz{)ykUD|0aaD7Ro3BhceAlHOE4fM9hnJJ;dJA_Jmzp`Ies9;LWQ%172hcW87WH821G002ovPDHLkV1gIK`Ue02 literal 0 HcmV?d00001 diff --git a/miniprogram/images/middle_left.png b/miniprogram/images/middle_left.png new file mode 100644 index 0000000000000000000000000000000000000000..5c7e05fc662a16bef693e0acb41c44d782674425 GIT binary patch literal 3123 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 N002ovPDHLkV1l}y?!y28 literal 0 HcmV?d00001 diff --git a/miniprogram/images/quanping.png b/miniprogram/images/quanping.png new file mode 100644 index 0000000000000000000000000000000000000000..7dc54d9c5814ad61aaa0168ed816542d51d208dc GIT binary patch literal 1289 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xd_B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk#6rQ`QqR!L z#K720N5ROz&{E&PLf_C>*TB%qz|6|jTmcG{fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8fo2%#8yV>WRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1tXx76g0v!^HTE5 zi#5R-e0{Av^NLFn^O93NU2K(rM(AZ`rdU~+xH-BxIyt!-n3)(Fx;k1o0eNOF=8ooW z#x54FE-<|=`N^fZsd*(Zy(tL2&N%gg(n4+l&}Ns^qRg_?6t|-MTm`V7tuk@D#S*7^ zP`xR*-QtK-uRhQ*`ka_xA2`0W7e2q)yFmZjJ~msCiiZb(8GXu;G>^V} z^MAAXwe=Oz_s=IB-*qFb{KTStEK^wfo;=ZG-u3y~+$Kx09b8O#ryKH`9aaS;Jm2HC z=u*2mXU62FsM)v9?r!9rC^R|tg4&y?Y~!UthDQ%QFg?6ZFS6#}Q+^M(0@Iy=v%Qw{ zzL+`j__~TYn)UD6v=p)&83R2S3(dN;W@fpb3<)`TWGfH~3rDXd+|yUx}mb$;NF4|4VxWv-7{|Z`p3ua%7*%HxK9f7JW`%+3tc$7pY&X z&z$(#BFHe!#r4;tUq-cGCuaV3JTp7?SIV!d-5drCpI$QhOg`6@2P&LAUHx3vIVCg! E0B-!%761SM literal 0 HcmV?d00001 diff --git a/miniprogram/images/right.png b/miniprogram/images/right.png new file mode 100644 index 0000000000000000000000000000000000000000..f09a421dbc72932baa6d64eebe269845de747268 GIT binary patch literal 1320 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%*vS|5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8JrcYhY+)U}j}%t^fr}K--E^(yW49+@N*=dA3R!B_#z``ugSN z<$C4Ddih1^`i7R4Kr@W=jf`}GDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yc06!V;*iRM zRQ;gT;{4L0WMIUlDTAykuyQU+O)SYT3dzsUfrVl~Mt(_taYlZDf)UV33L4>=c`5nj z#hPFZzP?tTdBr7(dC94sF1AWQBlI#eQ>=_#T#VhE42_-K+{_IPT^*f_+)SKZj4ez| z4IB+E49#GAUGkGlb5rw5V0u#!dQEWZ1*L`D0-((=V{D08gZgw1;50$rtF?KgOQoLHEZ%nUp33k6+TXqeq3;c{fX#1bD5p0wEq zvo><)-ui4=sbVg%?)tsz=D1H!W>*)T{9L)e^8Wj~k=t_J5AAuSq!@47uwr_9(B(4Q zRGz)M@1wRSmLzbzT`Xg;Igw${BBf0i_ymgG7&CrP-W4!mDr3^U7iuhzdW?ELZMx*3 zBVo(xFlV*!eu3K#I+C_+4lzM&u>zV3VSkw->f8+%)=uHRqL9tJqcpj>V?*{ShF_Dm zvRzqr(UZf)PhkG0u!b8(R$Yxd7JgaGAKC4&g!w*m{hQ9XQ=(Z@OgZn&J30L#cUAda zbLnd7O}`|b${kI$bT>_AY51_?kag-`9_?H6`DGeDv>dWdnQQg^O?+A-?a6Y|-|vxccw; inp^uH?q~lYmcVd!e!qLb7UgxIvdh!e&t;ucLK6UqA<(!0 literal 0 HcmV?d00001 diff --git a/miniprogram/images/s_1.png b/miniprogram/images/s_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4475e32c3ee3f5887131c372f05cb21a91ce80bb GIT binary patch literal 2515 zcmaJ@c{r478y}H_tXY#7BO+!q7&FHbGngULkhL&oUJT7*W@L~PT9D+}hDs_+B*)gY zB3qO!9S236v=EhuP@2*=I_Z3We0}eAz3=lp_jUh%_wQb=>v>b%-JIlPG-W^_kQ|YK zCy7?=)mKVV^!*i4RU}$AaUFcP9?TGKG?@*6?5NCO08FHlLje*%rp82e0#+c9xE{^Z zhwJ0I6H8&zVdPaG7>~{pp+O)kTONx{i2%6ZU?7ynu!hXmH$lKOsx`#h+!f)aXK=7QYsfcVtZ2V#hC{<(}X|kbgw^ zxVnRJOf~>Ehgm==NHa??8UsUGm?2OWCSX$p5(7tA!jUK_0*OUfV9n9s?+-*2jZF=~ zlJJh-V~I}IkT5Qng@wbTqoZNbC>WC+3P)lvA`VlysVP+C0p-LnxMUub!O>e|zyll# zo5teOm<;eLBRQBE#kGcrl>UKFHA$qH!SXdkzAaj{)PbPE!S{2>Hm|P|&jL8CU&!j}r0S0#sOZ^v%`6+gF7U(QdWIVv89RR3~Y$hH2EoUt4=UOa&%J&^h z{kazOPqA>382D;u|Etq$Ceiq;Zhy?J=Ilq{n5jQJ3~ySy{;vKFH6finDD^F9wl zmo#3cX9oOTyYF2on@*0L{R~?A#bC+yv0aN`!czZvJ}1$_uxniUQ(OyX3&>a_5JwX_ zrSE#zU?1bvZ57Uxs?e#KlQbXM?>jVca6b9cV6(lB>Xz1qxS&ZR5Xkwq5S~;VeC5wd zn@`%UnyBncX3=U|x9&>!w%FKaZvhPx4jF+%OjRB+K0dOTF&PXV8IlZMbxb>an`Nx#0 zb7;5Q)LzS;DT0F+G(r|VAJ-gwz?+(_5ue$;wUC5OP~e@?7)%lNom}awuJAjT2%<4_ z^*^@EN{rmYb4hnshLNZ1n;LzqAg+RX@oN`{P6U>*^_N~h7=KHIMBGwki?#V!EA0rx z3?ggq9I)ZvuaT0a%;?FeWfNjcAl61%e%fKR>bX^X+W-pyE*8Csa=xQvJACDR=sn3embe zbxirn#$>#U4RNC2hDnc%Piu0DR#|utp;r`MD{X8YXZy&w&_GaO_Q(tmn<;9DDPYyT zZIE1_t~n*&z$wdFUSDqsbDg7V(Qw z#bim!5|9yn;cHq|Z|PFwre{wpujf+rE^z)-w*-40vfRF+CeD(%uxM5}>Q2TQaLzn0 zfIVcyd^NR-Gb}N$UD>vzTNw}434SRoP7B)D{5VXCpq*MXQEH1JMNkW??`Hs*gS#*Dy$+OOZ{%hj>Cxp- z1VQ}^R=%@(QNDl!seAx=Rjv2;Qmsj|xHeATRx#nplapdC1;|T{P+s>y# z4qx3y%#6dy!cf7(GJPEh!<>R&y$eTQKEGf~sTK|hs@kp@IF+9?mSmgzDdhU=AM<0` zVkesb$>hV8>)R0mp-O+p$2)TiHj35a3*E)LQuUHh-W}zoe@uM{m(`gzKlOS^?-xQt zQhQ*H@zi3;LQ(XF%>g+&hI=)`6kgt0!3J-ASM@%mdVLq_NlCEX>9kHFe4T|(=nd&- z6c6TXJ$M&xc4Us1S`w36@M!rC|CcFkYVclGI#oM)>!z;i$x0?f5inW zZ{en}{&VG;^2%2~HZNOxs;)aEJ`~_WT|btm6bfZ?RSF2TU;jQ-)+C_;qAI`1SRhTd Qul{Bc9o+C$_CZPi0gomuL;wH) literal 0 HcmV?d00001 diff --git a/miniprogram/images/s_10.png b/miniprogram/images/s_10.png new file mode 100644 index 0000000000000000000000000000000000000000..a5720ae00ecf0534bc3ec8e63dd65ea2428b559a GIT binary patch literal 1953 zcmaJ?c~BE~7>!jZB3Qr{1VxsBO0~Jk34sDhAYv>;jv!K5k_93p85v5wOPB+|lxWOeU&9CXmTE6oFGE$q`V4ldGJj6*!PetduGc zDJ%yJieMC+h_JD!)4x-YDc;G-Rd36L7L1?)6$BEVXh>-qC=mQVR3>|eRv|*@AHV-8 ztO`m}Km;MAf)kZuv~kf+hENKYj}ihASQ!Mv@zYfdh=mbY6$>i>GHMBM36;tvuv+!; z8-hT<;>%SCC>KL~4jYR~;H6Rti$Y=08FU`m$BXAhB5}PKWD?JZ!(~$GJUWd*V@z{7 zusBf$$&qQUqz1p$)DF!p=Lq5kVNYg)(D~OHYe%R5ad#Oq4 zJJQ{s;xMOZ)$v)gtydM{Ozf%;hq$ESGet+eoag2C^auumGwUjZ+^m4s?6mz2b6uj^ zviI%?h%m{_3hCYwFwmbne%7sHu(QDV#HF)c?v|&YY||I$-0l|SFgGlqQo?q1Tq3it zEUUX-&tU9VU+X@a$+R86E6WZqIvSpGM6Zi#am`~ zr2tyS0(#&T$!1;7N~8RJ!a-hXyxEb-Baic^Dw3s~_rhB!Zr%dML1x&E!I;Wh4Rr_h zg^1Qy4X+?t)UM0DQ|^5p5G`FaW_4j5(zIq-`&99kiuH<+#J;k$5_M;OpE0!ie*FvT zjeB(g6RuWa5ma*f+_1`y3Ouf`H0#B}%{t4PP52&1pMiqvqj9}M4S5lGn{sw=)x6sX zSjJvnpF`s|?x;;k%YN*4c>^h~aMme{efLZ6d>PZaJ>xf{_=xb>EnCBD_w?tKQS$d5 zUTypBob8A4k-sHpJ^KONyZwpFz+ftCmG(m2va8>fnm={>^{Mfd+xp6(S6``|gT2Qa zRYiUHGJdSPKi5AyFS=!{e_meXSAL7=gS;Y(E*dW-yVPM<$<4MG*VNl~;xY?co+P;U z7@x4WORnh6=zgSVKV)ZiDs>{hFL92Zt>=Yn7ysH3&a4bAo!#@65tHf;B)yU0Gd|4Phc;F!jue|QFa`|i{(qnt$ST|V?-*hz_Zzw%wd$V?dwxe#WDD2`!&R}X@ zPVtB$!Sba4HCgu%aicuVe(DBe$*m)I1SR`kgjQOZUB9c) ze7@Lzyn8Z~btN=V`@U9iel*`Xsduxky&+C_v*zN~27BJ+*M*SHqAC4`1NsLO{wcFC X_CFQ%YX;6w8h)C5?ix;&cVyaMa8n`6 literal 0 HcmV?d00001 diff --git a/miniprogram/images/s_11.png b/miniprogram/images/s_11.png new file mode 100644 index 0000000000000000000000000000000000000000..31523ab30926b45edc268858f1ed7cb3968aaab4 GIT binary patch literal 1912 zcmaJ?dpJ~i7@icB%Qi&`(KMq%%-v-sQ;nHXsu5;}Nw*m@M<&fVW6oiQLV0LPbfJ=! zuF`f{%I=a)O&6t$Ro=g5#Ybr!qnCj zgTYw%E#U^CvxDKCV1kbG$py#J$p+zx5djpAXryWY!>9mnjX)~W|~e(GG}plHo}KDi3{W{9P7JBk2);PGXt#5 zrzSnfGvEG%W8Kyo-E-)tckLy5*eKF}`3tWWPW+9Jn+NL}hySSU(1V+PZ)nl3o>S2_ z(B(`V_U?Xjeu;gFF7?Rq0?m$omwY|^n17}y*s(Lcx}0~)%7LD0oLR1W=iRGu4YuL- zf*qQ`;b9ORc5q_>;?NFxwr7@bzSU0;kXt1PiFoQ(>E*mEls?4e`}XzVxV32z@)nk zCa1UBEMm?|&M57)ioB;w-*!(+d%iMc;#EibpXJNS2D2?h>~+KinS09qVsBbZ0Ey(bj;ce(GbsrXR&;AP25M@3k^p5C;ywTlW;T5i9U2X^07adH0 zO{v)sz(||lS?-?I{Whk45-o<6bI<;D+S>1o>aZ8L+4?sSS2Z_FV%m16Cfw?;jT1mD zan|hoD|=szl~}s2Nqw_A&E)>E_`AhVPP5LI@$Mg%^gA`T)K`_acWi$<^mNaK>ARzGe%G!jrro+H9o2Kk_f1QcrFVmAYaFXfhSwIj#1rR=0;a8Mavkrp zi%Y9-8e0?9YRhZlTOG7_{Gi~SFfZEhM_}>w6E&g0+Ox$quU9{wF(|E)(>v?pOY?3K z=sV{{U<;|2ED3P?qtLx>)>y6G^mRTRw-XZ7q5jzpi9=iK1osg~v*G0KQpw)$3w6U) zf`@M7nlMOLSc2%3ET~#=SrGXMi3;-7Mg6^VUs>;Il{LHjW-N5Bf6B)xEgt#yre}vg gk}CDlLvyZTZazJ?!_0Ch&L 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 literal 0 HcmV?d00001 diff --git a/miniprogram/images/s_16.png b/miniprogram/images/s_16.png new file mode 100644 index 0000000000000000000000000000000000000000..d044e6248e01c2465944e4303ee784344d57c019 GIT binary patch literal 2124 zcmaJ?c~lek8jVtwHHaYlG6n%bvl1am30p#dRM5jBiG}IHgOJr){c5g6zF!h*P9uvM>=OXHB8}ie+w2N_elSQh zIbT2vVzNHRLQZsy5Qb$mJYK0(;*`!fNFI$RQmKdr2~Q$n5d>C|AcZ+9tW;sUpuhwb zJh?~)iy$eWR^)J@IGBz>oc^7HM7Ag^ReUZJQZT%VBf}GM1a(Raz<_}N50yw3(F!;S z{Ey%NDXa)dkb(FhPyxlsc}U{~w(3wa8bc0pU`QSUK`{$e+$MxzNFjt|012@KYzPxc z`H)iK_=yk@K=YR>V2+dr`ZMVmL;@!g@o5wWgGgmiSPUT7aVK7Zdqb$;Oy zyxI9!_8|W#duQy>NJc`jiNc8uwCv^{JCr%SXOKQL9F!=Xd>&RgT5x)<;cT*Ze`|J| zMH%CnU4mjTzaia*?b;IIYCK~(LNcnaBTr90Js^7Tzp@}pwD<5URy=0!gIBSe%Pd6boH41WCQ+i%eA4<9`1FvZljfkwEUw@q0sb?cg3AP{aSNJY%|J;(Hf8A zTZDYa@}d~G{BAe>9@m%6C3$q)o21o+#1y@CA5t6fWl=ZT4MDCI8?i;US*i8!kL>Ex zS-TI6XU-k*HTh>!uaLfl;x&-;upNa%`-@f{=z-eMmu%YfcjuQnDeQ(`R7Yf0mfk&> zzNggDf7t0fk@A85W2QsR2`xr@VfO0KF87$1QFjM_HKMZlxP$ZJy!6=q;p*jOr}cku z?-DY(iP?`*G7Sn}T~8%eo@+fAfg82JJn?@055MH>?2uK)BF(8C++D1$S^Fl-Sw@ll zzI4E7toEps{rgk|_KUNE=i1$yGPb&h4lKKuA zqa2W|qGS>3bf^MDAUBfD;MbwYRum3zj2Lg#&m7>6J$D=4KM?WjZ?z>GmnCCUt5X-#ATRFQ8|2+sk((b5GqrP*p+-6e@$?=DKHHeUvp! zxg=cYah`?dbUNpuCq)gB#M+$MKMq-)`%-M7PpC6{EjZH@ZEG;2nR-XtvG<&*EWcb_ zYtva#)#_N;mh-QMy!|FY(_%SXs8^p{e4w{JQ(> z<|O20yt^kq4l?vQ*ZGN7?=HEK_U|xH)i*NXOoV|@*OO8g$(uCI`=#(L zW!(9sP1;S1$UUh?9-4Mte^fdi`(wMn=WIPHvOG6&YLh&a;Co#WBA9HO^m$6nMr!fNoR@CrBqaYGgjIZF>RR&#cCMf-3y;nTm7x za<179@yM7}n%s$#WND`(gaYwN4b-kdS<9Q9YanBNTAc&q>2gZtQXxqU78G?f7Jb_uTmQ4ekSeeuzpvTa`%X%W zDtoGa!`FvykBmwj&V=jEnQgti?7i`y{UdHxS!p`y_9wX4gZ}F6JN4E${)6td`8K&F qYGyvI+lO^Ku3>ABhvcIc0kt;q?(N!NGON}9cYmKiW{vl*)PDnM_+L5z literal 0 HcmV?d00001 diff --git a/miniprogram/images/s_17.png b/miniprogram/images/s_17.png new file mode 100644 index 0000000000000000000000000000000000000000..192f1c04b8b816be15d6ff29d628ce1ae6c1fecd GIT binary patch literal 2081 zcmaJ?c~nz(7LHb;-~x=6g3Q>E2m+EF60#t~EJ7v7Aca_QG$bzzki3vQOu&OyR1gxd z&{h0O0{zYIcoKD^jLTmiHjlt5ac8bGkbU^syCQwXI%5FixC zMz;Y>1mXjXJXin;`2KVesK5zLF*uz<1)~uNrngQd6h#6MDjbl?m0swvD~)KBTG0lkjYp&2 zhCq>C=s!dW_<<-ks0L6TI0{xoboWG2X*eRqoj|6zp-2QG4NvgI6UkTtkxrn{J*cR6 z4;s#<7E9-isQp;7498{uAjKXj*2J%9~O8+Q9p?XiN)VymG+%UXOsKOI*1XD?ifqee|4^=4M zM{A%U;7`5(lUNfRs{-&rfCh|Fi{QaYFs4*0I$I40Ay6F*f>DcI43vQosF8sx6bY7u zat@U%#h_N>@)p47)BThhNT?J6ejG0}Oo5Zj#dI2r=1%5vJ=rWCi%8_MSX3(9D;}3e z<8o$ZvYD5bIw$Z9D#Jre=TYmdLs;y%)AOfl*&Qmxg+vH#-Rk z56on@n>*#8ZwEZTCSUWYEFkXh(LPR++_8D&tE#wGSz~7m8Avb4zY!6Fd16Bpxr`0% zY*C+xU$bixH^f=5O|wLj9PFG^3K}ebSK9L~+P(PTbe)@_V%bji1A~pDBzaS9obSav zY=u;WJ*TE5^<|)h9@c`6IoAnMIz(xx7@aS@mrC;aVY;=E75lAW!xo$3@fUk}O;v7r zmX~JGcK;l{R^NhUyu=jJB}ICEp?PO}&%GYjwgNl&r$N3ziu29G@X z?)*o~qbJ1FFM_b8m0--ZIr;7MGhbelN0tX>ukYRSxbZJe-uCWg0ju0w z?E9x)w>uiOvlqz~Ew7^epKfffquKcLn{jR3l)ig5wo+j1FOw6DMejv^}IK1_H5X)O%q8+ z(j@z2M-pe#QHH6p_*~aBhm783^(UOe3Fkw7BCdb$O(LA9mdr1#8Cc1T>KDhR?3>Vy zIz{#hu6GFXuu;ddWv9&6lRJO?Z29vKpLSoU^m!F#^}AKUY;_==`+T4>HDyStKUMW? zGRcS0PTlMNgx$cW#TEV794a0hD2zW28ug`H!N<}B#^Dp=-#zfWnHjK!IBi^Dw&0CT z6HM={^P~D2wBjE{4IyUx$0QB&+rl#XwjX8Ibe;X~ZsF>W?~b=^WqPlZY;c%#VUJ+; z|Hv~3FoNMvNupt~w!GoB(n)eCgRA_e5rcabwZnM`$?nzyMQ)S>lCi;0R?T`;l{vpg zTFjBZW`}2z=Qs3RHAIK%dy=drj$Mz&|GjsdA+Qd$tw9xZEI9w`vkPsNh8@t8!XEsc zefE1WsW!WAHzu29Rz6Ot{U!N(!3z4ZOIJ{b^$QQXDl^waj^25`!^A4vEQN|t4Z literal 0 HcmV?d00001 diff --git a/miniprogram/images/s_18.png b/miniprogram/images/s_18.png new file mode 100644 index 0000000000000000000000000000000000000000..4c8abeb7c01e5f64c9580b20aa86538f7d46cbff GIT binary patch literal 1699 zcmaJ?eM}Q~7;b}z7K-AE(rMr*)A`k2TS{qb5lc&@LIKNHjlv{zeD5C>?0 z>0(e2D+Cb?3KZPj0D&p$hUf+a1&vb#ox&6qA;e0Y?23TgHlB!Ohg zl;n1Zi@`YfsH3HbR2;@pz#59oj-i+}I+TsUa0AUcnIZ{706CPX)&`JXH(e$HYGnW^ z&QDAg>-dmL9g?btqEf@76{$%IwvrUM5#X9RsDK7SWPn+-TWjE$14vW49CU8q21&pa z1W5`YeKaK%M*@6U4*`A@CRssaumFEHg~nu1eVOY4I+ex-sVtD@OQzB|R3^vIADDhf zXf(Ytfg=$Jr(>b30FnwpbQ};gnM@RuF9p^of;2W8)u4lPIvGWf4JlegW+rP5J~Ije z$e_@xb%+|)0(M2295x~WB-H806g0Y7S*>BZOlZMCvrGrlC{%k&GeEKU|DhVqEZTrb zpih4PQ`iulqJuyQWPpu&1$uA^KK4*L4qp$+5Lh1#!@Fmy7^#90*r0-S03Editd3J_ zm9WXMW{Mydb3|GLBGW1$ksyGCN>J2lC5Oid5(;U-L42N&N23MvSafO-Pr#!G2M06Q zEFOP`D}WV74Wvb8xXMpl{+wKUFKBdVWC5gC?}3y;J*)wya^|S#_QIZ1ZG^&y_wF-?f_Pn-fxs?z@WZ&=4eZYE7teF7s91KCG+y45?>}Bnl9w*Y z^*CKvMkqg)(WM-G*HSEU(J(9;>N2N3<={)p-+hx|Qb8s0T4cWPc1Dyl(I3nb{1zi9 zk}e&~Cg(g2XFkZ(sNI@yl5GiNo?G{Yr{C(=;rr+L{J#E)Eq#Niykzvqr3V8|C#;$2 z%=H{->vcUe~L*o8$& zCah1#uEjUI$F4YcSG(=( zo?9kO;gvKuLRw3kO4D^Wa%__Fl)Nw-e>#w%EB2Gii5m#PXtj}S@$c5?FS`>Hpg8CXowIznCy S_Rbgf--akSTwo2_`OQBvj+Es9 literal 0 HcmV?d00001 diff --git a/miniprogram/images/s_2.png b/miniprogram/images/s_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3717e33e69f1bd7a0c2cabcbe7397a1b96688f83 GIT binary patch literal 2078 zcmaJ?c~lek77j~kE7Furh-^c!>|`Z@1X3FkmcR=|2wRmUBm+c9CM1Iih$3)`2u7ua zmPP6VD@9Ng`=ABl0)k+rMe0*zQ=mnWil`KMfJ!G;Z2u^4&YAfw=YHS)?!DhRb08$x z-(bV$4JZ`KfD^zDMOJIg`;H#+^&&LZAPWZeje^6VL|DO>fheXBN&o?ln4biOf_z~{ z+EvgSh0?JT@uJ`;?!V{)NQ~oaVsJ{a6hWg<-dmMYz90pJfdnu~Bw=9Z+Am@Ok&uCn zq;LsbDGN*%1!T&=u*_hdATvck6Joc12zV>$2!R-c`G8WKDv{Hb4D2gjIj5!x5?O1TxhXAQ6Z(Ji!xBB)buabOM!5@c>>w zSR|WFm`D$0`@PPEoEX?-7?#rUc!ffNQ;>0xED2Af(GU(2o%A*7Hyy#jE#bdE$0^Cbe1!)9O+3Y0-3mmWkZ5=F(`r8u)@Ev>~*mkFNmc`W;Q4j?E-~rJ}2O*;2NNuC1Q?%beDN@yqv^%;Q*guIn}< z8|~%se&2U!U8jspwwO_l;%%>tqn)*kZ`HL{mE$hXJQ%7PJAds?m5=qqsmf!IDjFN> z&(!aZW>2TOvyx7Jx^#KoBGIfc*tk3Aee&nsho2Z%H>~ih8m6Y~Pv54|X(a*UvSW+=QsC_+#m2x0W&SLxGOpvsv2sbqp(^?G zU@q~*t~`40lmo5>%$PC178mkNU0clcK`-sx9!hm-N}VxZHmy&IUYo%y|4dLjD5ZY@@NH?|36zx+>PIKOu|sJ%v% zfr+_av)G;BX6Q0vt8-q)x-&TF|91P8sQD%X|H`-WY<@o(rtf3jx#wg4A)D%FX`^=^ zla9Z1aXao{_F1q)h@OXst}4dn=GZTWDvJIYEh6>bfhW%mmeQQV>LgyP%awIVANr$9 znrNKuS+V)Y8umI@{od#vfu-9t+#EUg^K>m{ffTJi;H)APrjKWu72RMvMi@i{CAPI< z0tUEZ&wgz`W>fJ(U<~g5vxsvh+~k(LE0~~KqOHA0_>td;cbj!hABaci919rXy!wfp z`od4XzdptpYTYzF%SjG1dOB4G_f37*YkhGMmy^D@skAc)+|aj49lKHeZWbxB8;ozR zew@jOPQEl#&Cs3!peYi3YT?n2NVvwKX0Mm_ss!%t(QWh3HprUpN#u>{XBDCwQ^tPF zPylMLBA2oKy&a#-yT?Xms=|A81odZ2_Qg3C*Eb|aTXY^}eP+6nFZ(HPwe#`B0O-zPW*TzPL&gW zi0lcB_ob^BfJ=;TUey1$ogtllw{Y5{Tu)xKg6X5CWfmSR`IgtQyLwq(F>A5|jphVI zPOa1}&P_fShQbT{sEelIfeqIKxBN`4sEvHVe^iFI+`6(8J{MAoa~wAs4`l2g>b24{ zqmZ|?B+&LJ*$ox4X$V9X_iac(Sag&XP$mHeY5Ajr%lFbcLr29E1sLW zepHH1dQ#kxVU_#og{~MI=TNBt literal 0 HcmV?d00001 diff --git a/miniprogram/images/s_3.png b/miniprogram/images/s_3.png new file mode 100644 index 0000000000000000000000000000000000000000..cf16c0b1e7e3532934645596785f432bcc545363 GIT binary patch literal 2529 zcmaJ@dpy&7AD=kvASptrot;ryWjBV+rLZlFNwZK9&eUl2B(l>3RNmdVa6h@AtjD-tYJ4{ki<{le)QXTdKZV9Rva` zB|8zQiWRc(f>jk?YgA>CVp%03dWqb5{vt750D$b7JU;+R=FkHGDnMt31$P2AAds>V zo8~3*qPXB0JPv}sfI&z&d<7c>ve_cx(-}d42F7!(?ZL|GxxW~L}K9%X^YT0*}+Fhw*0 z(;rVIkiN%KoNQq%k%*5+BE@1cLTrZM2?CI498RHuL1Hkb3WTXJj4Pr`Ou0g%MFj#N zWC+-N5u3+_E-2Fdcp)NNn8N8lDRB5dWVyocWl|IjDWUU`Xas5@r9~ix^8cY6&JVOu zLW-Nd<(w5CKEcIDeysP<*_j0HBL_0veBZV6lpBES`ubWbyb=jKUIh zgD0EIH@ z$qGuyB6vn<%=LRf{EMn6TG*Aqi`r=QeS##SdS z&rHyk#I8u%uHL>xo~4gMziSw+d^7fXY`RyTlQaEbzT9K}Wn{$TraauV(BFf0$6J~? zSrC8!npXm?-2^sTSCk6YXGu-(^)8n3$&<_~qyWN>W8RjPEoG-YysS{&^Co`wO24z0`GVib16Y<2# zWQ{&Ji=A!|GT&KYcaTGSGnr*9>L-~P1sG_9%7j`eHu34sr> z^|^L?U>yZjj}{lbE6ejZH2^J))XESWyhRek%jSg2$gg_Q43e;&Z78j>aJe(D1wylvb`JO zR7qLFfOi^JeC(4oQsMUP$<c1+=4sR_el{uP@x8aG3vL$<8Q zGsL@gZ{WU(mNtwyqKnD(E~gsxfOXncyLWcPPQ)0@lCFJF8;%O*8YOeD;4IYqpH?3P zPaoHb8UuZZzENk})}=?`3su{IYEc--`hBo9M^e?H3$mb)q43+ zA^LV4R=#8JJDO0xIs9JYCAD;OM={X@5n<5pTAFc0HWHX_&z#abk=y*NZpVaLXI<)dO)LSQ=24r%wiF;3Pw^rXuZ;TklYdxEEb+G5$pOZt$2OmgV_2SE1n3}o` z!jj)cw7_?O=?Y6Z=DhS5&ZX*p-xa1RaP4WaWyrAsk`>jNG3Z}^`k8lO zaAdwpk#mV(0ohx2a~d6Vkk~)kJ)id)`8g{4VDaIRr@IW;M7xvG=Cxg<^D`f;)v>NM zo|GbDSUDQSXpze9)lCwOij@t9dfK)}s|EY6-4(E|!*SvbZEUdMckiqB;oxV^uQv>< zR6!)a9sT1*F(kq^wr_25ipm4$HEY`1jOQBH6z|o3w&{f(_+PUdi8oi4+93kLEsoj1 z(q?Z6;)X-jblZU53P<$}CyiHa6yqt)JuzPlPR8bw5PROvRmEk+46)K+Us4dZt#{B)6tu7pYl-$Q=`iQ_QK literal 0 HcmV?d00001 diff --git a/miniprogram/images/s_4.png b/miniprogram/images/s_4.png new file mode 100644 index 0000000000000000000000000000000000000000..222a809ed21583167bcbea7ee038147f9777f4cd GIT binary patch literal 2098 zcmaJ?dpMN&9-pI&`_d}pk}9W9DTB$#&`#LfE1r zwa&6pv^Zo!7p>bAI$BKDWlx0ED!0Q?Y2Rtno}?U?J-k^{cfW`R*cC6d}uI*qsggLt(ItBLPvae25F88A47t$O1Y1_?UKZ zHwv}JMi9V;+06Yk9wfwb)EK;6C`Q;Q)NU8Kn8S+#VKf&E7l@oOuj=n$&;q_QCeWTq zWQyrvgup970{SQT1n?4~cvL>dWe<9{oQ4PpL70P<3!_C+n%o)lL6?T?)z<_J`U3=x za>o2_ip}&z(;*3nw#Pf*cqBU~v?CQya3Jnqp<*wkFk)GGbRFt#WVszCX?Z16g(seCy=OAM1xEqlW_%0AQ+NHKw>l*v4q|p zC=l@>nRLeo0+UH&h@>z_!~+?CGX{~s3j}-`-Hrm-Q7Hi3)q_eRxx2c$k?5{&u5=HI zod?Cqp1i^ZAYQBx6u~Q8{vTZTRk`X}5Q>q=04Nc}fqV}MBt(D6nI>4>i`%MtAG!S1 zz0g+FPqlPJ{MVg}$EAnzZ|V@4lz z-`Luvcs1YHmz&ZX8I`gYmzrT+g2fLQ(gy>MuhsS=siq>eTIzaCP4N3rc}Ic3^+x7q z|FGV)ff0J|B%q)52pBPGD#|g|D7oCQFt)gBVW_wE6^9T_oUR@39JoMv|Gq#P*7?w% z^3ASkKys?^?Gdo6;yYN=R_=Nbvq}3%nJEV6FYPahSKKshPpTlB@CSBEiWL!ge)W^V zv%D{w{ltrBE<3sedo(o7I#pTz5N@v9z3!=-XM570eYeqc7yFJ_x^?nv7qMNz*muUe zZ|vs2GJf&^J%Y*}o`G zJC`cgpV?ED_Qb$n)O6KV_gf3MgL*+0yc>y!x=oZ7r%i56-_O(bNUy=_PXFA-tDCPc zdp^}3)Ofdy*=Fl|l16vy5C7aR;_7mzhP;Dh@n!RME8evh_q@{99aE;~@h?o-2HfVy z++d9v>=O@@zzQ2rn@SSJ5*6o^ne^z4z~vDAdZaQ}#fY_^VfMUKmAN&%4=FqU(x?OM zmyIQdC2i8xEZQ!6SedmYSXOnXtK-1YWAYLVuDL)s&+sfdzL7$C=A>DGw`;Sm@nsti zER|gIVJ(NI&ZP6!Rc^Um+Zg~GbOh!a9vFV~#+%uFtlNs6*j;Uq#?nrhENm#)$31VY z*;@Ed)l618wSBzVtL8p6G9}-134Ew920cH^*_p}SP#urY&7{)g- zFA1axi>h8~BzNG7ZbtU^DsD)&>GO3h$zJJyk0u!puOX1fAv$B^!k97+7Z}tuZRK=H zi8cBgKXC0+>)SuD#kb2&P3>&gu8G73R_Daj><1cVs&zx^@}rHVKN%kAXag#>`+%xW z+u`2BXCFAS&7Yy4<$u?nEK?MhdKBx&pB*$qaE_Z)uQB7LqPt4b`px8-QBp9RT=rCa$c_3$R?Z}VUYnL7v zwQl#wB{n)X`dh?gnw>u0Orf^zb?Hv9>&7K_C=C_KhBwa`jj(D>J^MJ+$abu%Nh{}+ z(d50*SmQh_LG&37P`NU|U(O$8nSBh^u2gI`O z?in)C>ZRqhF86E|Kq;RSGX{l>u%@CPcQWzTa|$0FmCxhE%zv?WjHR_cz2SA|dk1c# z{>2TmYlaqFemVJzk9P54+mMCYIs;2@yq?Wy`S{~G)n#tjtz#Cg_W90FG^@9%jQw6&md`YRplkUM)9jRdbFX~&HF zw|omFnOzgKScE>@HJ3R&g_9Npz0!DR^mQC+*&?XisA^uZ?^erCgJXS%-fURNyy7yU zD=4nWkm8TWbPW4}$ M;qC)exP|`pH<`s}r~m)} literal 0 HcmV?d00001 diff --git a/miniprogram/images/s_5.png b/miniprogram/images/s_5.png new file mode 100644 index 0000000000000000000000000000000000000000..fab5f4fddedb217d7ba1881e01eae27eb882c1bb GIT binary patch literal 2048 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 U)oicG0V<$9UHx3vIVCg!0Hx4eMF0Q* literal 0 HcmV?d00001 diff --git a/miniprogram/images/s_7.png b/miniprogram/images/s_7.png new file mode 100644 index 0000000000000000000000000000000000000000..f391ae41422f4b0edb76b9d64045024ffd48801d GIT binary patch literal 1787 zcmaJ?Yfuws6pbP%u}W2{C4gOnGd`2e0|*HTnq&zC2?k6{#AhBG5+S=WSxkbDDpq^| zT9KkCQWX>(9x9+krHTqw6k0?Dp`wUb5J3>6;-Iw~1==5_JG1*e=A3iSz2E(2cS=J7 zCJ;$P0)a3=90-Ns<8<3Q&H?}W((;etgA3*_$CjWP%&aiN1il(o!hl$>h=jvnh1$Bd z0_GA3b{;yJ9Ft3eIVx07RoF08i{5~<2?Xu}i$S4^f-yh|N9qtBx$DvuGN4oQ$l+cR zn#3T4wYtDqBfKOwM5c<3QnA(K1%3e6!odafFs1-3`e?+&vGB+rbvgLlwhfYjj}R=1 zNB(3=E|CI4)CdD!RBwuk?&$-t*i^c=CynVnA7IevY>?&y(wP(*okR2Hc(H)Nhm1!v zsx_Q2NHiD=U-8IV3^Q;*&}=qS%}gq4j0EXyHm<<{84L=JpqQ)(rm#>DlgE$(1e;Vw zodMIK2w+oGDA5>sS|)Tr4s z=OaNP;fN6vra)A%7~+v}393$~=7@ZRp5A;&B;U;lZ&6u_?wB8K=fOG8JvB=Bp#a|ZKG9Az2Q zlo@#JtCPnm4N%^(g{-|n&gz7W;@LD}^rRJz5kbx=@`QyE{kzuX$Hi9fAze;-IYvnI zbPS$7`{^V0MpNtZpWl{r-2hlg=@(3`RlLXPS5T2sbIwJQBUy9Ep(A@0vLdB%wQp`> z%??2ssY_(N{76NPnYbwa z`hJ76(Ju|K7BstEbQ7(UWCuG5;{gw^WhEh(^1U9f+!l71cC;)jh?beA0$p@W z?fk_d;_P`l*Y?s4oBKApj+%I&?L^|0dB>s%?k9^D6_*@xemo5wLs(VTy^>dPKYq{T zYS#D(MH7D8Lb}#Nc>L`1+C6li-W54H->fc67*9R$Zp`~hH;wL&zE1V_`x2VB$F+#P z&vex%dW$Dh;*%~iD?>#y+GPii2b>%unftnJbbKLls$xJ^-)twHWVi1G!WH;Fx|}## zIj()DuCXbI`Rd1_rPoEt^J*`EQ+$+nsn=ZsJCJYlHwE=wqq+ErDsQM7)e+1s{4Z{l zqx({?zki$5TWnv~vNV!welDP-J)4=REi(#k>ec>XMi(d*b@LY1*UjVfp6Z zfDN6`xAq^DQAo3Dg&AW()#28|`=bk6d+R!KHRF$LFKgdw+4ySO{;QihE|=dqO=5VZ zhj^Sh4vq?VL#&a_YMay6wzsAri?Q^D)vamk?dGSdj3;$p_T8J>B;EUDkEtZ2Wc!71nTttus{C$A@xdw|bKzWL$9wzmPDKN0K*yA!yT#nSs5ZNDS2 Le+ZN>SRMB_8Y<2S literal 0 HcmV?d00001 diff --git a/miniprogram/images/s_8.png b/miniprogram/images/s_8.png new file mode 100644 index 0000000000000000000000000000000000000000..a86d30cc6688a19a681fe6dedeae2f1eecbd027a GIT binary patch literal 1624 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xd_B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk#6rQ`QqR!L z#K720N5ROz&{E&PLf_C>*TB%qz|6|jTmcG{fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8fo2%#8yV>WRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1tXx76g0v!^HTE5 zi#5R-e0{Av^NLFn^O93NU2K(rM(AZ`rdS!67#bRwnK(H+x;Yvex;i=;7@J#|J32bM z85tXzxR}B8y5uL9=BDPA!1Sgd^g83z3rY*Q1wfl!Qj0RnQd8WD@^clyezwZQ?G{U% z=0WwQ;C726PQCg-$LND%7AdA-Lcrt$V#3ockONQosd>QUUIa|n;l~`c7#NsNd%8G= zRNQ(KZkr(zC@`<`cbH9}bZ1hMy84O^6(PRQAxq>lHQ3dzjwrxNBdyQM)RpFEQ5e>cRt# z87ZePC^2zs9@pP!!+a)G`I*D3)C80C7(5O!A+mN*%w$5|%SB-yo+?dC9sdLf*^e?zFMa z7xI4nX8QWC?71qDdQpn=+AnCcvaJm}c{S1QzT~->ez;=q|Q#}V)<=UA=fTtUU0lz``-hee@YX+tvHip@%#FHhfSAv zCeKowELvl^U8VK)(ydXVI@3ADUg__cv#QCsW&3Z%>z$u&Kk0by;%VVo!{=zx*kBX6 zVEJtCH9Nje$oR_CHhbaQvr5;Oy_@(_VqX7~YIoZcrKXR5D1Tbf7+bv1H1vb+k@aUv s7wQ*0?fsx@^61xp@n`W{?=$f*+++WyyxsVN1E{R`boFyt=akR{0Kb)Sw*UYD literal 0 HcmV?d00001 diff --git a/miniprogram/images/s_9.png b/miniprogram/images/s_9.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2acbaa1e23785ea1da53589cc67693bf8661b8 GIT binary patch literal 1477 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xd_B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk#6rQ`QqR!L z#K720N5ROz&{E&PLf_C>*TB%qz|6|jTmcG{fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8fo2%#8yV>WRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1tXx76g0v!^HTE5 zi#5R-e0{Av^NLFn^O93NU2K(rM(AZ`rdSyo8QUUIa|nQ=DFGV_;yi@N{tu zskrqfY`?dRqe$KTGfzLbtFs(AWbepSrkNA$`L8KNtTDu_(V>T>slK6C;gNm9YxxOo zZ}^xRJ-S3Z6*Wy573W=?UHLPu?EIST<-5yYuR6=SXYSp(Gr#YBfA)Kt_$n>_i#;|0 z(#-dxv%l=SQL(bEDVptrQ;6CRuVCq|wu>wo%R>JAyS43O>jAA_Qx?3h*sZamdG@(a zMPAk#-e28V)~?rGX4f6edvtP(W|`#Ms?tSg=Dy07*eq2$jq!MG=j%KCaeX@tSOOWR zM|1r-^-ITlYg%*A50kI zeiHfcbg5gxu|tf#D_8KHsX3@nQN_CW{o3>Stbfl>c=>*1W`}aY@BZ}ntUGugH@wV! z(Z6Eje3eUQR$Tei@WU%_-9gRpDM1WuuRKjRzVLl3_qW!MpZRQv^NP!xzgeamO7}fD z)|95n9nQH!x?KI*l#3T+Gv{a4uZ+L$8747X@}c2syLV>~YBmDJ7WzjtCu3Nkz z#{B|(ACwIzJKYLOXsvs+N%h{^4~0uVtZ?|4u>C~y`M67eAJuwiU;Sa5x75yi-|;5r vWiOoP?zfAnn-Tu*M|&Mljr-gA49pBYUvIBZaokY^Dp);T{an^LB{Ts5S+z2I literal 0 HcmV?d00001 diff --git a/miniprogram/images/set.png b/miniprogram/images/set.png new file mode 100644 index 0000000000000000000000000000000000000000..a505b6f066c7481a0e1c8d432b523fb8018344ae GIT binary patch literal 2260 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 literal 0 HcmV?d00001 diff --git a/miniprogram/images/video.png b/miniprogram/images/video.png new file mode 100644 index 0000000000000000000000000000000000000000..a14c8c7e6ed854be8655483fd94d0d59d9f1e25a GIT binary patch literal 1660 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 S?&ZUv%G1-;&t;ucLK6V(n;+-^ literal 0 HcmV?d00001 diff --git a/miniprogram/images/yj_01.png b/miniprogram/images/yj_01.png new file mode 100644 index 0000000000000000000000000000000000000000..489d04a47182efb14b85505e2654b33d93577223 GIT binary patch literal 556 zcmV+{0@MA8P)Px$=1D|BR9HvtR@;rjFc9=6p^gIyN1}=gl^j$8R03BCTop($5}^)Ed>UjU$7jdB zm-tD30NI(Ho!y;<*pnZ6a(p%r7!(*3_?7~7T`!2}g)vs?@vW3n4ZdetcED%bwjX6# z?o!7)O5k`rj*FsrV~niQfh&_Akz0nWjP5oD#*8O zTiHr=vdHs%?*q31Lj-)vxJ1xf7*(5OM}fXt889D6pEA~aW~w^9DI~s8Io=j z;#^8O2~5J>Pohl-5Zg#XCZg|bjq9Oo*Xwl?3GQuBuMeb}NX!*e%&gan_42{kC40N0 zAa;Y-PYn6wWn_6f$TT2@MWp@SyNpsSJW9ZBzC6#XEX!W?R(xzeO#)jFTk`U!>o`{D u-<~Hc@Y_H?`akerL2cYYfkA<%EAR + + + + {{ title }} + + + + {{ description }} + + + + + + + + {{ cancelText }} + + diff --git a/miniprogram/miniprogram_npm/@vant/weapp/action-sheet/index.wxss b/miniprogram/miniprogram_npm/@vant/weapp/action-sheet/index.wxss new file mode 100644 index 0000000..dc54840 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/action-sheet/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-action-sheet{max-height:90%!important;max-height:var(--action-sheet-max-height,90%)!important;color:#323233;color:var(--action-sheet-item-text-color,#323233)}.van-action-sheet__cancel,.van-action-sheet__item{text-align:center;font-size:16px;font-size:var(--action-sheet-item-font-size,16px);line-height:50px;line-height:var(--action-sheet-item-height,50px);background-color:#fff;background-color:var(--action-sheet-item-background,#fff)}.van-action-sheet__cancel--hover,.van-action-sheet__item--hover{background-color:#f2f3f5;background-color:var(--active-color,#f2f3f5)}.van-action-sheet__cancel:before{display:block;content:" ";height:8px;height:var(--action-sheet-cancel-padding-top,8px);background-color:#f7f8fa;background-color:var(--action-sheet-cancel-padding-color,#f7f8fa)}.van-action-sheet__item--disabled{color:#c8c9cc;color:var(--action-sheet-item-disabled-text-color,#c8c9cc)}.van-action-sheet__item--disabled.van-action-sheet__item--hover{background-color:#fff;background-color:var(--action-sheet-item-background,#fff)}.van-action-sheet__subname{margin-left:4px;margin-left:var(--padding-base,4px);font-size:12px;font-size:var(--action-sheet-subname-font-size,12px);color:#646566;color:var(--action-sheet-subname-color,#646566)}.van-action-sheet__header{text-align:center;font-weight:500;font-weight:var(--font-weight-bold,500);font-size:16px;font-size:var(--action-sheet-header-font-size,16px);line-height:44px;line-height:var(--action-sheet-header-height,44px)}.van-action-sheet__description{text-align:center;padding:16px;padding:var(--padding-md,16px);color:#646566;color:var(--action-sheet-description-color,#646566);font-size:14px;font-size:var(--action-sheet-description-font-size,14px);line-height:20px;line-height:var(--action-sheet-description-line-height,20px)}.van-action-sheet__close{position:absolute!important;top:0;right:0;line-height:inherit!important;padding:0 12px;padding:var(--action-sheet-close-icon-padding,0 12px);font-size:18px!important;font-size:var(--action-sheet-close-icon-size,18px)!important;color:#969799;color:var(--action-sheet-close-icon-color,#969799)}.van-action-sheet__loading{display:-webkit-flex!important;display:flex!important;height:50px;height:var(--action-sheet-item-height,50px)} \ No newline at end of file diff --git a/miniprogram/miniprogram_npm/@vant/weapp/area/index.js b/miniprogram/miniprogram_npm/@vant/weapp/area/index.js new file mode 100644 index 0000000..ed80e4c --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/area/index.js @@ -0,0 +1,257 @@ +'use strict'; +var __assign = + (this && this.__assign) || + function () { + __assign = + Object.assign || + function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; +Object.defineProperty(exports, '__esModule', { value: true }); +var component_1 = require('../common/component'); +var shared_1 = require('../picker/shared'); +var COLUMNSPLACEHOLDERCODE = '000000'; +component_1.VantComponent({ + classes: ['active-class', 'toolbar-class', 'column-class'], + props: __assign(__assign({}, shared_1.pickerProps), { + value: { + type: String, + observer: function (value) { + this.code = value; + this.setValues(); + }, + }, + areaList: { + type: Object, + value: {}, + observer: 'setValues', + }, + columnsNum: { + type: null, + value: 3, + observer: function (value) { + this.setData({ + displayColumns: this.data.columns.slice(0, +value), + }); + }, + }, + columnsPlaceholder: { + type: Array, + observer: function (val) { + this.setData({ + typeToColumnsPlaceholder: { + province: val[0] || '', + city: val[1] || '', + county: val[2] || '', + }, + }); + }, + }, + }), + data: { + columns: [{ values: [] }, { values: [] }, { values: [] }], + displayColumns: [{ values: [] }, { values: [] }, { values: [] }], + typeToColumnsPlaceholder: {}, + }, + mounted: function () { + var _this = this; + setTimeout(function () { + _this.setValues(); + }, 0); + }, + methods: { + getPicker: function () { + if (this.picker == null) { + this.picker = this.selectComponent('.van-area__picker'); + } + return this.picker; + }, + onCancel: function (event) { + this.emit('cancel', event.detail); + }, + onConfirm: function (event) { + var index = event.detail.index; + var value = event.detail.value; + value = this.parseOutputValues(value); + this.emit('confirm', { value: value, index: index }); + }, + emit: function (type, detail) { + detail.values = detail.value; + delete detail.value; + this.$emit(type, detail); + }, + // parse output columns data + parseOutputValues: function (values) { + var columnsPlaceholder = this.data.columnsPlaceholder; + return values.map(function (value, index) { + // save undefined value + if (!value) return value; + value = JSON.parse(JSON.stringify(value)); + if (!value.code || value.name === columnsPlaceholder[index]) { + value.code = ''; + value.name = ''; + } + return value; + }); + }, + onChange: function (event) { + var _this = this; + var _a = event.detail, + index = _a.index, + picker = _a.picker, + value = _a.value; + this.code = value[index].code; + this.setValues().then(function () { + _this.$emit('change', { + picker: picker, + values: _this.parseOutputValues(picker.getValues()), + index: index, + }); + }); + }, + getConfig: function (type) { + var areaList = this.data.areaList; + return (areaList && areaList[type + '_list']) || {}; + }, + getList: function (type, code) { + var typeToColumnsPlaceholder = this.data.typeToColumnsPlaceholder; + var result = []; + if (type !== 'province' && !code) { + return result; + } + var list = this.getConfig(type); + result = Object.keys(list).map(function (code) { + return { + code: code, + name: list[code], + }; + }); + if (code) { + // oversea code + if (code[0] === '9' && type === 'city') { + code = '9'; + } + result = result.filter(function (item) { + return item.code.indexOf(code) === 0; + }); + } + if (typeToColumnsPlaceholder[type] && result.length) { + // set columns placeholder + var codeFill = + type === 'province' + ? '' + : type === 'city' + ? COLUMNSPLACEHOLDERCODE.slice(2, 4) + : COLUMNSPLACEHOLDERCODE.slice(4, 6); + result.unshift({ + code: '' + code + codeFill, + name: typeToColumnsPlaceholder[type], + }); + } + return result; + }, + getIndex: function (type, code) { + var compareNum = type === 'province' ? 2 : type === 'city' ? 4 : 6; + var list = this.getList(type, code.slice(0, compareNum - 2)); + // oversea code + if (code[0] === '9' && type === 'province') { + compareNum = 1; + } + code = code.slice(0, compareNum); + for (var i = 0; i < list.length; i++) { + if (list[i].code.slice(0, compareNum) === code) { + return i; + } + } + return 0; + }, + setValues: function () { + var _this = this; + var county = this.getConfig('county'); + var code = this.code; + if (!code) { + if (this.data.columnsPlaceholder.length) { + code = COLUMNSPLACEHOLDERCODE; + } else if (Object.keys(county)[0]) { + code = Object.keys(county)[0]; + } else { + code = ''; + } + } + var province = this.getList('province'); + var city = this.getList('city', code.slice(0, 2)); + var picker = this.getPicker(); + if (!picker) { + return; + } + var stack = []; + stack.push(picker.setColumnValues(0, province, false)); + stack.push(picker.setColumnValues(1, city, false)); + if (city.length && code.slice(2, 4) === '00') { + code = city[0].code; + } + stack.push( + picker.setColumnValues( + 2, + this.getList('county', code.slice(0, 4)), + false + ) + ); + return Promise.all(stack) + .catch(function () {}) + .then(function () { + return picker.setIndexes([ + _this.getIndex('province', code), + _this.getIndex('city', code), + _this.getIndex('county', code), + ]); + }) + .catch(function () {}); + }, + getValues: function () { + var picker = this.getPicker(); + return picker + ? picker.getValues().filter(function (value) { + return !!value; + }) + : []; + }, + getDetail: function () { + var values = this.getValues(); + var area = { + code: '', + country: '', + province: '', + city: '', + county: '', + }; + if (!values.length) { + return area; + } + var names = values.map(function (item) { + return item.name; + }); + area.code = values[values.length - 1].code; + if (area.code[0] === '9') { + area.country = names[1] || ''; + area.province = names[2] || ''; + } else { + area.province = names[0] || ''; + area.city = names[1] || ''; + area.county = names[2] || ''; + } + return area; + }, + reset: function (code) { + this.code = code || ''; + return this.setValues(); + }, + }, +}); diff --git a/miniprogram/miniprogram_npm/@vant/weapp/area/index.json b/miniprogram/miniprogram_npm/@vant/weapp/area/index.json new file mode 100644 index 0000000..a778e91 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/area/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-picker": "../picker/index" + } +} diff --git a/miniprogram/miniprogram_npm/@vant/weapp/area/index.wxml b/miniprogram/miniprogram_npm/@vant/weapp/area/index.wxml new file mode 100644 index 0000000..6075794 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/area/index.wxml @@ -0,0 +1,18 @@ + diff --git a/miniprogram/miniprogram_npm/@vant/weapp/area/index.wxss b/miniprogram/miniprogram_npm/@vant/weapp/area/index.wxss new file mode 100644 index 0000000..99694d6 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/area/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss'; \ No newline at end of file diff --git a/miniprogram/miniprogram_npm/@vant/weapp/button/index.js b/miniprogram/miniprogram_npm/@vant/weapp/button/index.js new file mode 100644 index 0000000..d38d35d --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/button/index.js @@ -0,0 +1,81 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var component_1 = require('../common/component'); +var button_1 = require('../mixins/button'); +var open_type_1 = require('../mixins/open-type'); +var version_1 = require('../common/version'); +var mixins = [button_1.button, open_type_1.openType]; +if (version_1.canIUseFormFieldButton()) { + mixins.push('wx://form-field-button'); +} +component_1.VantComponent({ + mixins: mixins, + classes: ['hover-class', 'loading-class'], + data: { + baseStyle: '', + }, + props: { + formType: String, + icon: String, + classPrefix: { + type: String, + value: 'van-icon', + }, + 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', + }, + dataset: null, + size: { + type: String, + value: 'normal', + }, + loadingSize: { + type: String, + value: '20px', + }, + color: { + type: String, + observer: function (color) { + var style = ''; + if (color) { + style += 'color: ' + (this.data.plain ? color : 'white') + ';'; + if (!this.data.plain) { + // Use background instead of backgroundColor to make linear-gradient work + style += 'background: ' + color + ';'; + } + // hide border when color is linear-gradient + if (color.indexOf('gradient') !== -1) { + style += 'border: 0;'; + } else { + style += 'border-color: ' + color + ';'; + } + } + if (style !== this.data.baseStyle) { + this.setData({ baseStyle: style }); + } + }, + }, + }, + methods: { + onClick: function () { + if (!this.data.loading) { + this.$emit('click'); + } + }, + noop: function () {}, + }, +}); diff --git a/miniprogram/miniprogram_npm/@vant/weapp/button/index.json b/miniprogram/miniprogram_npm/@vant/weapp/button/index.json new file mode 100644 index 0000000..e00a588 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/button/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-loading": "../loading/index" + } +} diff --git a/miniprogram/miniprogram_npm/@vant/weapp/button/index.wxml b/miniprogram/miniprogram_npm/@vant/weapp/button/index.wxml new file mode 100644 index 0000000..ab393e8 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/button/index.wxml @@ -0,0 +1,68 @@ + + + + + + +function get(type, color,plain) { + if(plain) { + return color ? color: '#c9c9c9'; + } + + if(type === 'default') { + return '#c9c9c9'; + } + return 'white'; +} + +module.exports = get; + diff --git a/miniprogram/miniprogram_npm/@vant/weapp/button/index.wxss b/miniprogram/miniprogram_npm/@vant/weapp/button/index.wxss new file mode 100644 index 0000000..5a591fb --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/button/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-button{position:relative;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:0;text-align:center;vertical-align:middle;-webkit-appearance:none;-webkit-text-size-adjust:100%;height:44px;height:var(--button-default-height,44px);line-height:20px;line-height:var(--button-line-height,20px);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;-webkit-transform:translate(-50%,-50%);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:#fff;background:var(--button-default-background-color,#fff);border:1px solid #ebedf0;border:var(--button-border-width,1px) solid var(--button-default-border-color,#ebedf0)}.van-button--primary{color:#fff;color:var(--button-primary-color,#fff);background:#07c160;background:var(--button-primary-background-color,#07c160);border:1px solid #07c160;border:var(--button-border-width,1px) solid var(--button-primary-border-color,#07c160)}.van-button--info{color:#fff;color:var(--button-info-color,#fff);background:#1989fa;background:var(--button-info-background-color,#1989fa);border:1px solid #1989fa;border:var(--button-border-width,1px) solid var(--button-info-border-color,#1989fa)}.van-button--danger{color:#fff;color:var(--button-danger-color,#fff);background:#ee0a24;background:var(--button-danger-background-color,#ee0a24);border:1px solid #ee0a24;border:var(--button-border-width,1px) solid var(--button-danger-border-color,#ee0a24)}.van-button--warning{color:#fff;color:var(--button-warning-color,#fff);background:#ff976a;background:var(--button-warning-background-color,#ff976a);border:1px solid #ff976a;border:var(--button-border-width,1px) solid var(--button-warning-border-color,#ff976a)}.van-button--plain{background:#fff;background: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--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:-webkit-flex;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/miniprogram/miniprogram_npm/@vant/weapp/calendar/calendar.wxml b/miniprogram/miniprogram_npm/@vant/weapp/calendar/calendar.wxml new file mode 100644 index 0000000..09a60b3 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/calendar/calendar.wxml @@ -0,0 +1,57 @@ + + + diff --git a/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.js b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.js new file mode 100644 index 0000000..cf725ae --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.js @@ -0,0 +1,18 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var component_1 = require('../../../common/component'); +component_1.VantComponent({ + props: { + title: { + type: String, + value: '日期选择', + }, + subtitle: String, + showTitle: Boolean, + showSubtitle: Boolean, + }, + data: { + weekdays: ['日', '一', '二', '三', '四', '五', '六'], + }, + methods: {}, +}); diff --git a/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.json b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml new file mode 100644 index 0000000..eb8e4b4 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml @@ -0,0 +1,16 @@ + + + + {{ title }} + + + + {{ subtitle }} + + + + + {{ item }} + + + diff --git a/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss new file mode 100644 index 0000000..4075e48 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss @@ -0,0 +1 @@ +@import '../../../common/index.wxss';.van-calendar__header{-webkit-flex-shrink:0;flex-shrink:0;box-shadow:0 2px 10px rgba(125,126,128,.16);box-shadow:var(--calendar-header-box-shadow,0 2px 10px rgba(125,126,128,.16))}.van-calendar__header-subtitle,.van-calendar__header-title{text-align:center;height:44px;height:var(--calendar-header-title-height,44px);font-weight:500;font-weight:var(--font-weight-bold,500);line-height:44px;line-height:var(--calendar-header-title-height,44px)}.van-calendar__header-title+.van-calendar__header-title,.van-calendar__header-title:empty{display:none}.van-calendar__header-title:empty+.van-calendar__header-title{display:block!important}.van-calendar__weekdays{display:-webkit-flex;display:flex}.van-calendar__weekday{-webkit-flex:1;flex:1;text-align:center;font-size:12px;font-size:var(--calendar-weekdays-font-size,12px);line-height:30px;line-height:var(--calendar-weekdays-height,30px)} \ No newline at end of file diff --git a/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.js b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.js new file mode 100644 index 0000000..1950c6c --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.js @@ -0,0 +1,167 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var component_1 = require('../../../common/component'); +var utils_1 = require('../../utils'); +component_1.VantComponent({ + props: { + date: { + type: null, + observer: 'setDays', + }, + type: { + type: String, + observer: 'setDays', + }, + color: String, + minDate: { + type: null, + observer: 'setDays', + }, + maxDate: { + type: null, + observer: 'setDays', + }, + showMark: Boolean, + rowHeight: [Number, String], + formatter: { + type: null, + observer: 'setDays', + }, + currentDate: { + type: [null, Array], + observer: 'setDays', + }, + allowSameDay: Boolean, + showSubtitle: Boolean, + showMonthTitle: Boolean, + }, + data: { + visible: true, + days: [], + }, + methods: { + onClick: function (event) { + var index = event.currentTarget.dataset.index; + var item = this.data.days[index]; + if (item.type !== 'disabled') { + this.$emit('click', item); + } + }, + setDays: function () { + var days = []; + var startDate = new Date(this.data.date); + var year = startDate.getFullYear(); + var month = startDate.getMonth(); + var totalDay = utils_1.getMonthEndDay( + startDate.getFullYear(), + startDate.getMonth() + 1 + ); + for (var day = 1; day <= totalDay; day++) { + var date = new Date(year, month, day); + var type = this.getDayType(date); + var config = { + date: date, + type: type, + text: day, + bottomInfo: this.getBottomInfo(type), + }; + if (this.data.formatter) { + config = this.data.formatter(config); + } + days.push(config); + } + this.setData({ days: days }); + }, + getMultipleDayType: function (day) { + var currentDate = this.data.currentDate; + if (!Array.isArray(currentDate)) { + return ''; + } + var isSelected = function (date) { + return currentDate.some(function (item) { + return utils_1.compareDay(item, date) === 0; + }); + }; + if (isSelected(day)) { + var prevDay = utils_1.getPrevDay(day); + var nextDay = utils_1.getNextDay(day); + var prevSelected = isSelected(prevDay); + var nextSelected = isSelected(nextDay); + if (prevSelected && nextSelected) { + return 'multiple-middle'; + } + if (prevSelected) { + return 'end'; + } + return nextSelected ? 'start' : 'multiple-selected'; + } + return ''; + }, + getRangeDayType: function (day) { + var _a = this.data, + currentDate = _a.currentDate, + allowSameDay = _a.allowSameDay; + if (!Array.isArray(currentDate)) { + return; + } + var startDay = currentDate[0], + endDay = currentDate[1]; + if (!startDay) { + return; + } + var compareToStart = utils_1.compareDay(day, startDay); + if (!endDay) { + return compareToStart === 0 ? 'start' : ''; + } + var compareToEnd = utils_1.compareDay(day, endDay); + if (compareToStart === 0 && compareToEnd === 0 && allowSameDay) { + return 'start-end'; + } + if (compareToStart === 0) { + return 'start'; + } + if (compareToEnd === 0) { + return 'end'; + } + if (compareToStart > 0 && compareToEnd < 0) { + return 'middle'; + } + }, + getDayType: function (day) { + var _a = this.data, + type = _a.type, + minDate = _a.minDate, + maxDate = _a.maxDate, + currentDate = _a.currentDate; + if ( + utils_1.compareDay(day, minDate) < 0 || + utils_1.compareDay(day, maxDate) > 0 + ) { + return 'disabled'; + } + if (type === 'single') { + return utils_1.compareDay(day, currentDate) === 0 ? 'selected' : ''; + } + if (type === 'multiple') { + return this.getMultipleDayType(day); + } + /* istanbul ignore else */ + if (type === 'range') { + return this.getRangeDayType(day); + } + }, + getBottomInfo: function (type) { + if (this.data.type === 'range') { + if (type === 'start') { + return '开始'; + } + if (type === 'end') { + return '结束'; + } + if (type === 'start-end') { + return '开始/结束'; + } + } + }, + }, +}); diff --git a/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.json b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml new file mode 100644 index 0000000..55bab83 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml @@ -0,0 +1,39 @@ + + + + + + {{ computed.formatMonthTitle(date) }} + + + + + {{ computed.getMark(date) }} + + + + + {{ item.topInfo }} + {{ item.text }} + + {{ item.bottomInfo }} + + + + + {{ item.topInfo }} + {{ item.text }} + + {{ item.bottomInfo }} + + + + + diff --git a/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs new file mode 100644 index 0000000..a057079 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs @@ -0,0 +1,67 @@ +/* eslint-disable */ +var utils = require('../../utils.wxs'); + +function getMark(date) { + return getDate(date).getMonth() + 1; +} + +var ROW_HEIGHT = 64; + +function getDayStyle(type, index, date, rowHeight, color) { + var style = []; + var offset = getDate(date).getDay(); + + if (index === 0) { + style.push(['margin-left', (100 * offset) / 7 + '%']); + } + + if (rowHeight !== ROW_HEIGHT) { + style.push(['height', rowHeight + 'px']); + } + + if (color) { + if ( + type === 'start' || + type === 'end' || + type === 'multiple-selected' || + type === 'multiple-middle' + ) { + style.push(['background', color]); + } else if (type === 'middle') { + style.push(['color', color]); + } + } + + return style + .map(function(item) { + return item.join(':'); + }) + .join(';'); +} + +function formatMonthTitle(date) { + date = getDate(date); + return date.getFullYear() + '年' + (date.getMonth() + 1) + '月'; +} + +function getMonthStyle(visible, date, rowHeight) { + if (!visible) { + date = getDate(date); + + var totalDay = utils.getMonthEndDay( + date.getFullYear(), + date.getMonth() + 1 + ); + var offset = getDate(date).getDay(); + var padding = Math.ceil((totalDay + offset) / 7) * rowHeight; + + return 'padding-bottom:' + padding + 'px'; + } +} + +module.exports = { + getMark: getMark, + getDayStyle: getDayStyle, + formatMonthTitle: formatMonthTitle, + getMonthStyle: getMonthStyle +}; diff --git a/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss new file mode 100644 index 0000000..17c12f4 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss @@ -0,0 +1 @@ +@import '../../../common/index.wxss';.van-calendar{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;height:100%;background-color:#fff;background-color:var(--calendar-background-color,#fff)}.van-calendar__month-title{text-align:center;height:44px;height:var(--calendar-header-title-height,44px);font-weight:500;font-weight:var(--font-weight-bold,500);font-size:14px;font-size:var(--calendar-month-title-font-size,14px);line-height:44px;line-height:var(--calendar-header-title-height,44px)}.van-calendar__days{position:relative;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-user-select:none;user-select:none}.van-calendar__month-mark{position:absolute;top:50%;left:50%;z-index:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);pointer-events:none;color:rgba(242,243,245,.8);color:var(--calendar-month-mark-color,rgba(242,243,245,.8));font-size:160px;font-size:var(--calendar-month-mark-font-size,160px)}.van-calendar__day,.van-calendar__selected-day{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;text-align:center}.van-calendar__day{position:relative;width:14.285%;height:64px;height:var(--calendar-day-height,64px);font-size:16px;font-size:var(--calendar-day-font-size,16px)}.van-calendar__day--end,.van-calendar__day--multiple-middle,.van-calendar__day--multiple-selected,.van-calendar__day--start,.van-calendar__day--start-end{color:#fff;color:var(--calendar-range-edge-color,#fff);background-color:#ee0a24;background-color:var(--calendar-range-edge-background-color,#ee0a24)}.van-calendar__day--start{border-radius:4px 0 0 4px;border-radius:var(--border-radius-md,4px) 0 0 var(--border-radius-md,4px)}.van-calendar__day--end{border-radius:0 4px 4px 0;border-radius:0 var(--border-radius-md,4px) var(--border-radius-md,4px) 0}.van-calendar__day--multiple-selected,.van-calendar__day--start-end{border-radius:4px;border-radius:var(--border-radius-md,4px)}.van-calendar__day--middle{color:#ee0a24;color:var(--calendar-range-middle-color,#ee0a24)}.van-calendar__day--middle:after{position:absolute;top:0;right:0;bottom:0;left:0;background-color:currentColor;content:"";opacity:.1;opacity:var(--calendar-range-middle-background-opacity,.1)}.van-calendar__day--disabled{cursor:default;color:#c8c9cc;color:var(--calendar-day-disabled-color,#c8c9cc)}.van-calendar__bottom-info,.van-calendar__top-info{position:absolute;right:0;left:0;font-size:10px;font-size:var(--calendar-info-font-size,10px);line-height:14px;line-height:var(--calendar-info-line-height,14px)}@media (max-width:350px){.van-calendar__bottom-info,.van-calendar__top-info{font-size:9px}}.van-calendar__top-info{top:6px}.van-calendar__bottom-info{bottom:6px}.van-calendar__selected-day{width:54px;width:var(--calendar-selected-day-size,54px);height:54px;height:var(--calendar-selected-day-size,54px);color:#fff;color:var(--calendar-selected-day-color,#fff);background-color:#ee0a24;background-color:var(--calendar-selected-day-background-color,#ee0a24);border-radius:4px;border-radius:var(--border-radius-md,4px)} \ No newline at end of file diff --git a/miniprogram/miniprogram_npm/@vant/weapp/calendar/index.js b/miniprogram/miniprogram_npm/@vant/weapp/calendar/index.js new file mode 100644 index 0000000..e2b2ce1 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/calendar/index.js @@ -0,0 +1,318 @@ +'use strict'; +var __spreadArrays = + (this && this.__spreadArrays) || + function () { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) + s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; + }; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, '__esModule', { value: true }); +var component_1 = require('../common/component'); +var utils_1 = require('./utils'); +var toast_1 = __importDefault(require('../toast/toast')); +component_1.VantComponent({ + props: { + title: { + type: String, + value: '日期选择', + }, + color: String, + show: { + type: Boolean, + observer: function (val) { + if (val) { + this.initRect(); + this.scrollIntoView(); + } + }, + }, + formatter: null, + confirmText: { + type: String, + value: '确定', + }, + rangePrompt: String, + defaultDate: { + type: [Number, Array], + observer: function (val) { + this.setData({ currentDate: val }); + this.scrollIntoView(); + }, + }, + allowSameDay: Boolean, + confirmDisabledText: String, + type: { + type: String, + value: 'single', + observer: 'reset', + }, + minDate: { + type: null, + value: Date.now(), + }, + maxDate: { + type: null, + value: new Date( + new Date().getFullYear(), + new Date().getMonth() + 6, + new Date().getDate() + ).getTime(), + }, + position: { + type: String, + value: 'bottom', + }, + rowHeight: { + type: [Number, String], + value: utils_1.ROW_HEIGHT, + }, + round: { + type: Boolean, + value: true, + }, + poppable: { + type: Boolean, + value: true, + }, + showMark: { + type: Boolean, + value: true, + }, + showTitle: { + type: Boolean, + value: true, + }, + showConfirm: { + type: Boolean, + value: true, + }, + showSubtitle: { + type: Boolean, + value: true, + }, + safeAreaInsetBottom: { + type: Boolean, + value: true, + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + }, + maxRange: { + type: [Number, String], + value: null, + }, + }, + data: { + subtitle: '', + currentDate: null, + scrollIntoView: '', + }, + created: function () { + this.setData({ + currentDate: this.getInitialDate(), + }); + }, + mounted: function () { + if (this.data.show || !this.data.poppable) { + this.initRect(); + this.scrollIntoView(); + } + }, + methods: { + reset: function () { + this.setData({ currentDate: this.getInitialDate() }); + this.scrollIntoView(); + }, + initRect: function () { + var _this = this; + if (this.contentObserver != null) { + this.contentObserver.disconnect(); + } + var contentObserver = this.createIntersectionObserver({ + thresholds: [0, 0.1, 0.9, 1], + observeAll: true, + }); + this.contentObserver = contentObserver; + contentObserver.relativeTo('.van-calendar__body'); + contentObserver.observe('.month', function (res) { + if (res.boundingClientRect.top <= res.relativeRect.top) { + // @ts-ignore + _this.setData({ + subtitle: utils_1.formatMonthTitle(res.dataset.date), + }); + } + }); + }, + getInitialDate: function () { + var _a = this.data, + type = _a.type, + defaultDate = _a.defaultDate, + minDate = _a.minDate; + if (type === 'range') { + var _b = defaultDate || [], + startDay = _b[0], + endDay = _b[1]; + return [ + startDay || minDate, + endDay || utils_1.getNextDay(new Date(minDate)).getTime(), + ]; + } + if (type === 'multiple') { + return defaultDate || [minDate]; + } + return defaultDate || minDate; + }, + scrollIntoView: function () { + var _this = this; + setTimeout(function () { + var _a = _this.data, + currentDate = _a.currentDate, + type = _a.type, + show = _a.show, + poppable = _a.poppable, + minDate = _a.minDate, + maxDate = _a.maxDate; + var targetDate = type === 'single' ? currentDate : currentDate[0]; + var displayed = show || !poppable; + if (!targetDate || !displayed) { + return; + } + var months = utils_1.getMonths(minDate, maxDate); + months.some(function (month, index) { + if (utils_1.compareMonth(month, targetDate) === 0) { + _this.setData({ scrollIntoView: 'month' + index }); + return true; + } + return false; + }); + }, 100); + }, + onOpen: function () { + this.$emit('open'); + }, + onOpened: function () { + this.$emit('opened'); + }, + onClose: function () { + this.$emit('close'); + }, + onClosed: function () { + this.$emit('closed'); + }, + onClickDay: function (event) { + var date = event.detail.date; + var _a = this.data, + type = _a.type, + currentDate = _a.currentDate, + allowSameDay = _a.allowSameDay; + if (type === 'range') { + var startDay = currentDate[0], + endDay = currentDate[1]; + if (startDay && !endDay) { + var compareToStart = utils_1.compareDay(date, startDay); + if (compareToStart === 1) { + this.select([startDay, date], true); + } else if (compareToStart === -1) { + this.select([date, null]); + } else if (allowSameDay) { + this.select([date, date]); + } + } else { + this.select([date, null]); + } + } else if (type === 'multiple') { + var selectedIndex_1; + var selected = currentDate.some(function (dateItem, index) { + var equal = utils_1.compareDay(dateItem, date) === 0; + if (equal) { + selectedIndex_1 = index; + } + return equal; + }); + if (selected) { + var cancelDate = currentDate.splice(selectedIndex_1, 1); + this.setData({ currentDate: currentDate }); + this.unselect(cancelDate); + } else { + this.select(__spreadArrays(currentDate, [date])); + } + } else { + this.select(date, true); + } + }, + unselect: function (dateArray) { + var date = dateArray[0]; + if (date) { + this.$emit('unselect', utils_1.copyDates(date)); + } + }, + select: function (date, complete) { + if (complete && this.data.type === 'range') { + var valid = this.checkRange(date); + if (!valid) { + // auto selected to max range if showConfirm + if (this.data.showConfirm) { + this.emit([ + date[0], + utils_1.getDayByOffset(date[0], this.data.maxRange - 1), + ]); + } else { + this.emit(date); + } + return; + } + } + this.emit(date); + if (complete && !this.data.showConfirm) { + this.onConfirm(); + } + }, + emit: function (date) { + var getTime = function (date) { + return date instanceof Date ? date.getTime() : date; + }; + this.setData({ + currentDate: Array.isArray(date) ? date.map(getTime) : getTime(date), + }); + this.$emit('select', utils_1.copyDates(date)); + }, + checkRange: function (date) { + var _a = this.data, + maxRange = _a.maxRange, + rangePrompt = _a.rangePrompt; + if (maxRange && utils_1.calcDateNum(date) > maxRange) { + toast_1.default({ + context: this, + message: + rangePrompt || + '\u9009\u62E9\u5929\u6570\u4E0D\u80FD\u8D85\u8FC7 ' + + maxRange + + ' \u5929', + }); + return false; + } + return true; + }, + onConfirm: function () { + var _this = this; + if ( + this.data.type === 'range' && + !this.checkRange(this.data.currentDate) + ) { + return; + } + wx.nextTick(function () { + _this.$emit('confirm', utils_1.copyDates(_this.data.currentDate)); + }); + }, + }, +}); diff --git a/miniprogram/miniprogram_npm/@vant/weapp/calendar/index.json b/miniprogram/miniprogram_npm/@vant/weapp/calendar/index.json new file mode 100644 index 0000000..61dec08 --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/calendar/index.json @@ -0,0 +1,9 @@ +{ + "component": true, + "usingComponents": { + "header": "./components/header/index", + "month": "./components/month/index", + "van-button": "../button/index", + "van-popup": "../popup/index" + } +} diff --git a/miniprogram/miniprogram_npm/@vant/weapp/calendar/index.wxml b/miniprogram/miniprogram_npm/@vant/weapp/calendar/index.wxml new file mode 100644 index 0000000..d4849cc --- /dev/null +++ b/miniprogram/miniprogram_npm/@vant/weapp/calendar/index.wxml @@ -0,0 +1,31 @@ + + + + + +