From 6734a5ccac9c609c3f42519b18a188cef188d578 Mon Sep 17 00:00:00 2001
From: zhangyongtian <1181606322@qq.com>
Date: Thu, 22 Aug 2024 14:15:32 +0800
Subject: [PATCH] Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh
---
gz-wxparty/miniprogram_npm/@vant/weapp/area/index.wxs | 8
gz-wxparty/miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss | 0
gz-wxparty/utils/util.js | 495
gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.d.ts | 1
gz-wxparty/components/vant/checkbox/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.wxml | 113
gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.wxml | 22
gz-wxparty/miniprogram_npm/@vant/weapp/card/index.js | 51
gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.d.ts | 1
gz-wxparty/components/file-card/index.wxml | 25
gz-wxparty/components/file-card/index.js | 66
gz-wxparty/miniprogram_npm/@vant/weapp/wxs/array.wxs | 5
gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.json | 3
gz-wxparty/components/vant/sticky/index.wxss | 1
gz-wxparty/components/vant/transition/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.wxs | 17
gz-wxparty/components/mediate-detail/index.json | 8
gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.d.ts | 1
gz-wxparty/components/vant/common/validator.d.ts | 9
gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.js | 117
gz-wxparty/components/tabbar-page/index.js | 110
gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.d.ts | 1
gz-wxparty/components/vant/wxs/memoize.wxs | 55
gz-customerSystem/src/views/register/visit/index.jsx | 8
gz-wxparty/app.wxss | 92
gz-wxparty/components/vant/popup/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.wxml | 11
gz-wxparty/components/vant/mixins/button.js | 41
gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.wxml | 38
gz-wxparty/components/vant/switch/index.d.ts | 1
gz-wxparty/components/vant/search/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.wxs | 17
gz-wxparty/components/vant/popup/index.wxml | 39
gz-wxparty/miniprogram_npm/@vant/weapp/picker/toolbar.wxml | 23
gz-wxparty/components/vant/mixins/page-scroll.d.ts | 5
gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.js | 38
gz-wxparty/components/vant/mixins/transition.js | 115
gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.wxs | 26
gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.wxs | 25
gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.wxml | 37
gz-wxparty/pages/course/index.wxml | 270
gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.js | 18
gz-wxparty/pages/myMediate/index.json | 8
gz-wxparty/components/vant/switch/index.wxml | 16
gz-wxparty/styles/public_components.wxss | 313
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/utils.wxs | 25
gz-wxparty/components/vant/overlay/index.js | 26
gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.d.ts | 1
gz-wxparty/components/common-page/index.json | 4
gz-wxparty/components/vant/empty/index.json | 4
gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.d.ts | 1
gz-wxparty/components/vant/divider/index.js | 12
gz-wxparty/miniprogram_npm/@vant/weapp/circle/canvas.js | 47
gz-wxparty/components/vant/mixins/touch.js | 37
gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.wxml | 21
gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss | 0
gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.d.ts | 1
gz-wxparty/components/vant/loading/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.js | 93
gz-wxparty/miniprogram_npm/@vant/weapp/info/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.json | 6
gz-wxparty/pages/assistMediate/index.wxml | 25
gz-customerSystem/src/components/Layout/Header.jsx | 8
gz-wxparty/pages/findAdjust/index.json | 7
gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.d.ts | 1
gz-wxparty/components/steps/index.wxss | 51
gz-wxparty/components/vant/field/input.wxml | 28
gz-wxparty/components/drop-down-select/index.json | 4
gz-wxparty/components/vant/row/index.wxml | 5
gz-wxparty/components/vant/mixins/link.js | 23
gz-wxparty/components/vant/toast/index.json | 9
gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts | 2
gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.wxml | 35
gz-wxparty/components/vant/row/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.json | 3
gz-wxparty/project.private.config.json | 9
gz-wxparty/components/vant/wxs/add-unit.wxs | 12
gz-wxparty/miniprogram_npm/@vant/weapp/info/index.js | 10
gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.wxml | 41
gz-wxparty/miniprogram_npm/@vant/weapp/area/index.d.ts | 1
gz-wxparty/components/vant/tabs/index.json | 7
gz-wxparty/miniprogram_npm/@vant/weapp/field/index.json | 7
gz-wxparty/miniprogram_npm/@vant/weapp/uploader/shared.js | 33
gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.d.ts | 1
gz-wxparty/pages/me/index.wxss | 87
gz-customerSystem/src/views/logAndSign/index.less | 2
gz-wxparty/components/vant/tab/index.wxml | 8
gz-wxparty/pages/myJudicialConfirmation/index.json | 8
gz-wxparty/pages/me/index.js | 62
gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.js | 70
gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml | 48
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/common/relation.d.ts | 15
gz-wxparty/components/vant/cell-group/index.wxml | 11
gz-wxparty/pages/webview/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/mixins/button.d.ts | 1
gz-wxparty/components/personal-data-dom/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.wxml | 46
gz-wxparty/pages/materialUpload/index.wxml | 104
gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.json | 3
gz-wxparty/components/vant/common/component.d.ts | 4
gz-wxparty/components/vant/definitions/index.d.ts | 27
gz-wxparty/miniprogram_npm/@vant/weapp/mixins/touch.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.wxss | 1
gz-wxparty/components/vant/cell-group/index.d.ts | 1
gz-customerSystem/src/assets/images/logo1.png | 0
gz-wxparty/pages/perfectInformation/index.wxml | 28
gz-wxparty/miniprogram_npm/@vant/weapp/field/props.js | 67
gz-wxparty/components/vant/tab/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/button/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.js | 45
gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.json | 3
gz-wxparty/components/vant/checkbox/index.wxs | 20
gz-wxparty/components/file-card/index.wxss | 43
gz-wxparty/components/vant/common/color.d.ts | 7
gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss | 1
gz-wxparty/components/vant/common/version.js | 48
gz-wxparty/miniprogram_npm/@vant/weapp/area/index.wxml | 20
gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.json | 7
gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.wxs | 13
gz-wxparty/components/vant/loading/index.d.ts | 1
gz-wxparty/components/vant/common/style/mixins/hairline.wxss | 0
gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/image/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.wxml | 83
gz-wxparty/pages/realNameAuthentication/index.js | 184
gz-wxparty/miniprogram_npm/@vant/weapp/image/index.wxml | 34
gz-wxparty/package-lock.json | 3
gz-wxparty/pages/assistMediate/index.js | 64
gz-wxparty/pages/homePageInfo/index.wxml | 24
gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.js | 35
gz-wxparty/components/vant/checkbox/index.d.ts | 1
gz-wxparty/components/vant/col/index.js | 9
gz-wxparty/components/vant/button/index.json | 7
gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/search/index.js | 92
gz-wxparty/pages/orderConfirm/index.wxss | 32
gz-wxparty/pages/agreement/index.wxml | 11
gz-wxparty/components/vant/tabbar/index.d.ts | 1
gz-customerSystem/src/views/mediate/mediateBigData/index.jsx | 10
gz-wxparty/miniprogram_npm/@vant/weapp/col/index.wxs | 18
gz-wxparty/miniprogram_npm/@vant/weapp/common/color.js | 10
gz-wxparty/components/vant/wxs/object.wxs | 13
gz-wxparty/components/time-format/index.wxml | 2
gz-wxparty/components/vant/checkbox/index.wxml | 31
gz-wxparty/components/vant/tabbar/index.wxml | 10
gz-wxparty/pages/mediateDetail/index.wxss | 14
gz-wxparty/components/vant/picker/index.json | 7
gz-wxparty/pages/materialShow/index.js | 169
gz-wxparty/components/vant/button/index.js | 64
gz-wxparty/components/vant/wxs/bem.wxs | 39
gz-wxparty/miniprogram_npm/@vant/weapp/common/validator.d.ts | 9
gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.json | 3
gz-wxparty/components/vant/toast/toast.js | 66
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxss | 1
gz-wxparty/components/vant/mixins/transition.d.ts | 1
gz-wxparty/components/vant/sticky/index.d.ts | 1
gz-wxparty/pages/materialShow/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/common/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.wxml | 31
gz-wxparty/pages/agreement/index.wxss | 19
gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.js | 107
gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.wxss | 1
gz-customerSystem/src/assets/images/index.js | 8
gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.wxs | 22
gz-wxparty/miniprogram_npm/@vant/weapp/field/index.wxs | 18
gz-wxparty/pages/course/index.wxss | 110
gz-wxparty/components/vant/switch/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.wxss | 1
gz-wxparty/components/personal-data-dom/index.wxml | 81
gz-wxparty/components/vant/tabbar/index.wxss | 16
gz-wxparty/pages/homePageInfo/index.js | 47
gz-wxparty/components/vant/rate/demo/index.ts | 23
gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.js | 73
gz-wxparty/pages/mediateDetail/index.wxml | 9
gz-wxparty/components/vant/rate/test/__snapshots__/demo.spec.ts.snap | 977 +
gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.js | 68
gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.js | 79
gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.wxml | 20
gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts | 1
gz-wxparty/components/vant/loading/index.wxml | 19
gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.wxss | 1
gz-wxparty/components/ellipsis-text/index.js | 66
gz-wxparty/components/vant/icon/index.wxml | 20
gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.json | 3
gz-wxparty/pages/classicCase/index.json | 10
gz-wxparty/miniprogram_npm/@vant/weapp/wxs/style.wxs | 42
gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.wxml | 9
gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml | 16
gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.js | 11
gz-wxparty/miniprogram_npm/@vant/weapp/row/index.js | 26
gz-wxparty/components/vant/icon/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.wxml | 3
gz-wxparty/READEME.md | 39
gz-wxparty/components/vant/tab/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/common/style/var.wxss | 0
gz-wxparty/miniprogram_npm/@vant/weapp/area/index.wxss | 1
gz-wxparty/components/vant/mixins/basic.d.ts | 1
gz-wxparty/components/vant/sticky/index.wxml | 8
gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.wxs | 14
gz-wxparty/components/vant/sticky/index.wxs | 25
gz-wxparty/components/vant/transition/index.wxs | 17
gz-wxparty/miniprogram_npm/@vant/weapp/image/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/common/version.d.ts | 7
gz-wxparty/miniprogram_npm/@vant/weapp/wxs/object.wxs | 13
gz-wxparty/components/vant/loading/index.js | 16
gz-wxparty/components/vant/field/index.js | 107
gz-wxparty/miniprogram_npm/@vant/weapp/toast/toast.js | 81
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss | 1
gz-wxparty/img/supplement_1.png | 0
gz-wxparty/components/vant/checkbox-group/index.json | 3
gz-wxparty/pages/signIn/index.wxml | 36
gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.json | 8
gz-wxparty/components/vant/picker-column/index.wxs | 36
gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.wxs | 36
gz-wxparty/components/vant/toast/index.js | 29
gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.json | 3
gz-wxparty/components/time-format/index.wxss | 1
gz-wxparty/pages/homePageInfo/index.json | 5
gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.js | 61
gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.json | 3
gz-wxparty/pages/autograph/index.wxml | 20
gz-wxparty/miniprogram_npm/@vant/weapp/card/index.wxss | 1
gz-wxparty/components/vant/field/index.wxss | 134
gz-wxparty/components/recording/index.js | 186
gz-wxparty/img/criticize_1.png | 0
gz-wxparty/miniprogram_npm/@vant/weapp/image/index.wxs | 32
gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.wxss | 1
gz-wxparty/components/vant/col/index.d.ts | 1
gz-wxparty/components/vant/cell/index.js | 38
gz-wxparty/components/steps/index.js | 25
gz-wxparty/components/ellipsis-text/index.wxss | 29
gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.js | 58
gz-wxparty/miniprogram_npm/@vant/weapp/uploader/utils.js | 102
gz-wxparty/pages/messageCenter/index.wxml | 53
gz-wxparty/components/vant/common/component.js | 45
gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/common/utils.js | 113
gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.wxss | 1
gz-wxparty/components/vant/divider/index.wxml | 9
gz-wxparty/pages/homePage/index.wxss | 261
gz-wxparty/miniprogram_npm/@vant/weapp/area/index.js | 232
gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.js | 15
gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.d.ts | 1
gz-wxparty/components/vant/overlay/index.wxss | 1
gz-wxparty/components/vant/toast/toast.d.ts | 26
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.wxs | 38
gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.js | 22
gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.wxml | 9
gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/mixins/page-scroll.d.ts | 5
gz-wxparty/components/vant/col/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.wxml | 10
gz-wxparty/miniprogram_npm/@vant/weapp/circle/canvas.d.ts | 4
gz-wxparty/pages/myJudicialConfirmation/index.wxml | 46
gz-wxparty/components/vant/field/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/field/input.wxml | 28
gz-wxparty/components/vant/common/style/var.wxss | 0
gz-wxparty/pages/course/index.js | 74
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.d.ts | 1
gz-wxparty/components/vant/icon/index.wxs | 39
gz-wxparty/pages/messageCenter/index.wxss | 104
gz-wxparty/components/vant/mixins/page-scroll.js | 36
gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.wxs | 42
gz-wxparty/components/vant/info/index.wxss | 30
gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.wxml | 47
gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.js | 12
gz-wxparty/img/meeting_1.png | 0
gz-wxparty/miniprogram_npm/@vant/weapp/row/index.wxs | 18
gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.d.ts | 1
gz-wxparty/components/vant/divider/index.d.ts | 1
gz-wxparty/pages/register/index.wxml | 351
gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.js | 23
gz-wxparty/components/mediate-card/index.wxss | 418
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.wxml | 25
gz-wxparty/components/tooltip/index.js | 25
gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.json | 6
gz-wxparty/components/vant/col/index.wxml | 9
gz-wxparty/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts | 50
gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.wxml | 44
gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.d.ts | 1
gz-wxparty/components/vant/icon/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/col/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/col/index.wxml | 9
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxml | 36
gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.js | 31
gz-wxparty/pages/perfectInformation/index.wxss | 8
gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml | 23
gz-wxparty/pages/materialShow/index.wxml | 43
gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.json | 6
gz-wxparty/pages/realNameAuthentication/index.json | 7
gz-wxparty/components/vant/field/textarea.wxml | 29
gz-wxparty/components/vant/popup/index.wxs | 18
gz-wxparty/components/vant/row/index.js | 23
gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.wxss | 1
gz-wxparty/components/vant/rate/demo/index.less | 3
gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.json | 7
gz-wxparty/components/vant/tabs/index.js | 278
gz-wxparty/components/tooltip/index.wxss | 40
gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.js | 122
gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.json | 3
gz-wxparty/components/vant/picker-column/index.json | 3
gz-wxparty/pages/orderConfirm/index.js | 78
gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/mixins/link.d.ts | 1
gz-wxparty/pages/login/index.json | 3
gz-wxparty/components/tabbar-page/index.wxss | 73
gz-wxparty/components/vant/field/index.wxml | 57
gz-wxparty/pages/autograph/index.wxss | 13
gz-wxparty/img/finish_1.png | 0
gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.wxss | 1
gz-wxparty/components/vant/divider/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.json | 6
gz-customerSystem/src/assets/images/backgroundImage.png | 0
gz-wxparty/components/vant/transition/index.js | 13
gz-wxparty/components/vant/empty/index.js | 10
gz-wxparty/components/vant/picker/shared.d.ts | 21
gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.wxml | 63
gz-wxparty/pages/homePage/index.wxml | 151
gz-wxparty/pages/assistMediate/index.json | 7
gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.js | 11
gz-wxparty/miniprogram_npm/@vant/weapp/search/index.wxml | 53
gz-wxparty/components/vant/common/relation.d.ts | 15
gz-wxparty/components/vant/overlay/index.d.ts | 1
gz-wxparty/components/vant/overlay/index.wxml | 21
gz-wxparty/miniprogram_npm/@vant/weapp/field/textarea.wxml | 29
gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.wxs | 39
gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.js | 91
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.wxml | 5
gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/common/component.d.ts | 4
gz-wxparty/components/vant/common/style/ellipsis.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.d.ts | 1
gz-wxparty/components/vant/info/index.wxml | 7
gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.js | 135
gz-wxparty/pages/signIn/index.wxss | 40
gz-wxparty/pages/register/index.wxss | 355
gz-wxparty/components/vant/info/index.d.ts | 1
gz-wxparty/components/vant/row/index.json | 3
gz-wxparty/components/vant/button/index.wxs | 39
gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.json | 6
gz-wxparty/components/mediate-card/index.wxml | 224
gz-wxparty/components/vant/tabs/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.wxss | 1
gz-wxparty/pages/findAdjust/index.wxss | 139
gz-wxparty/components/vant/tabs/index.wxml | 63
gz-wxparty/components/vant/image/index.json | 7
gz-wxparty/components/vant/picker/index.js | 136
gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.wxs | 12
gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.wxml | 30
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.d.ts | 1
gz-wxparty/pages/materialUpload/index.json | 4
gz-wxparty/components/vant/rate/demo/index.wxml | 70
gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.js | 161
gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.wxs | 14
gz-wxparty/components/vant/mixins/basic.js | 11
gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.wxs | 33
gz-wxparty/components/vant/search/index.wxml | 53
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.wxml | 20
gz-wxparty/components/common-page/index.wxss | 23
gz-wxparty/img/arrive_1.png | 0
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.js | 158
gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.json | 6
gz-wxparty/components/vant/mixins/button.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.json | 9
gz-wxparty/components/vant/search/index.d.ts | 1
gz-wxparty/components/vant/cell-group/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.wxml | 26
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml | 39
gz-wxparty/components/vant/common/version.d.ts | 7
gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.js | 54
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts | 6
gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.json | 4
gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.json | 3
gz-wxparty/styles/animate_base.wxss | 62
gz-customerSystem/src/views/mediationWindow/index.less | 6
gz-wxparty/components/vant/rate/index.json | 6
gz-wxparty/components/vant/common/utils.js | 92
gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.wxml | 18
gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.d.ts | 1
gz-wxparty/components/vant/tabbar-item/index.json | 7
gz-wxparty/pages/classicCase/index.js | 185
gz-wxparty/components/vant/rate/test/demo.spec.ts | 11
gz-wxparty/pages/myMediate/index.wxml | 40
gz-wxparty/miniprogram_npm/@vant/weapp/row/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.json | 9
gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.wxml | 68
gz-wxparty/components/recording/index.wxss | 163
gz-wxparty/miniprogram_npm/@vant/weapp/wxs/bem.wxs | 39
gz-wxparty/miniprogram_npm/@vant/weapp/info/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.wxs | 32
gz-customerSystem/src/api/appUrl.js | 2
gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.d.ts | 1
gz-wxparty/components/vant/tabs/index.wxs | 82
gz-wxparty/miniprogram_npm/@vant/weapp/info/index.wxml | 7
gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/search/index.wxss | 1
gz-wxparty/components/vant/cell/index.wxss | 1
gz-wxparty/components/vant/popup/index.js | 81
gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.js | 329
gz-wxparty/miniprogram_npm/@vant/weapp/wxs/utils.wxs | 10
gz-wxparty/miniprogram_npm/@vant/weapp/col/index.wxss | 1
gz-wxparty/pages/messageCenter/index.js | 124
gz-wxparty/components/vant/picker/index.wxml | 37
gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.wxml | 5
gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.js | 39
gz-wxparty/components/vant/rate/index.less | 39
gz-wxparty/utils/moment.js | 4602 +++++++
gz-wxparty/components/mediate-detail/index.wxss | 121
gz-wxparty/components/vant/empty/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.d.ts | 1
gz-wxparty/components/vant/image/index.wxs | 32
gz-wxparty/components/vant/picker/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/mixins/link.js | 27
gz-wxparty/miniprogram_npm/@vant/weapp/area/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/mixins/transition.d.ts | 1
gz-wxparty/components/drop-down-select/index.wxml | 36
gz-wxparty/components/vant/checkbox/index.json | 6
gz-wxparty/pages/homePage/index.js | 734 +
gz-wxparty/components/vant/sticky/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml | 5
gz-wxparty/pages/autograph/index.js | 37
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/utils.js | 97
gz-wxparty/pages/findAdjust/index.wxml | 69
gz-wxparty/components/vant/tabs/index.wxss | 115
gz-wxparty/pages/myJudicialConfirmation/index.js | 174
gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx | 3
gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.wxs | 18
gz-wxparty/pages/webview/index.json | 4
gz-wxparty/components/vant/tabbar-item/index.js | 56
gz-wxparty/.eslintrc.js | 31
gz-wxparty/components/vant/common/relation.js | 56
gz-wxparty/miniprogram_npm/@vant/weapp/mixins/basic.d.ts | 1
gz-wxparty/components/vant/search/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts | 5
gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.js | 57
gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs | 16
gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.wxs | 13
gz-wxparty/miniprogram_npm/@vant/weapp/mixins/page-scroll.js | 42
gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.wxml | 4
gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.js | 189
gz-wxparty/pages/login/index.js | 67
gz-wxparty/miniprogram_npm/@vant/weapp/field/index.wxml | 56
gz-wxparty/components/vant/mixins/touch.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/field/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.json | 8
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.js | 38
gz-wxparty/app.json | 69
gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.wxs | 82
gz-wxparty/miniprogram_npm/@vant/weapp/definitions/index.d.ts | 27
gz-wxparty/miniprogram_npm/@vant/weapp/notify/notify.d.ts | 20
gz-wxparty/components/vant/sticky/index.js | 118
gz-wxparty/components/vant/transition/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.wxss | 1
gz-wxparty/components/vant/toast/index.wxss | 49
gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.d.ts | 1
gz-wxparty/pages/myMediate/index.wxss | 41
gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/animate.js | 43
gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.wxss | 1
gz-wxparty/components/vant/transition/index.wxml | 14
gz-wxparty/components/vant/loading/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/mixins/basic.js | 14
gz-wxparty/components/vant/rate/index.js | 78
gz-customerSystem/src/utils/utility.js | 4
gz-wxparty/miniprogram_npm/@vant/weapp/col/index.js | 11
gz-wxparty/components/vant/cell/index.d.ts | 1
gz-wxparty/components/steps/index.json | 4
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/calendar.wxml | 68
gz-wxparty/miniprogram_npm/@vant/weapp/field/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.wxml | 20
gz-wxparty/miniprogram_npm/@vant/weapp/info/index.wxss | 1
gz-wxparty/components/vant/cell/index.wxml | 47
gz-wxparty/components/recording/index.wxml | 62
gz-wxparty/pages/findAdjust/index.js | 264
gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.wxml | 16
gz-wxparty/components/vant/empty/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.js | 104
gz-wxparty/miniprogram_npm/@vant/weapp/search/index.d.ts | 1
gz-wxparty/components/common-page/index.wxml | 39
gz-wxparty/miniprogram_npm/@vant/weapp/toast/toast.d.ts | 26
gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.d.ts | 1
gz-wxparty/components/vant/empty/index.wxml | 22
gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.wxss | 1
gz-wxparty/pages/me/index.json | 4
gz-wxparty/components/vant/popup/index.json | 7
gz-wxparty/miniprogram_npm/@vant/weapp/common/component.js | 48
gz-wxparty/components/vant/search/index.js | 89
gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.wxml | 10
gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/utils.d.ts | 12
gz-customerSystem/public/favicon.ico | 0
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.js | 27
gz-wxparty/components/personal-data-dom/index.json | 4
gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.wxml | 54
gz-wxparty/components/vant/tab/index.js | 56
gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.js | 32
gz-wxparty/components/vant/col/index.wxs | 18
gz-wxparty/img/case_1.png | 0
gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.wxml | 8
gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.d.ts | 1
gz-wxparty/components/tooltip/index.wxml | 12
gz-wxparty/miniprogram_npm/@vant/weapp/button/index.json | 7
gz-wxparty/components/vant/common/style/mixins/clearfix.wxss | 0
gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.wxss | 1
gz-wxparty/components/vant/checkbox/index.js | 77
gz-wxparty/components/personal-data-dom/index.js | 197
gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.wxml | 42
gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.wxs | 15
gz-wxparty/img/update_1.png | 0
gz-wxparty/pages/myJudicialConfirmation/index.wxss | 2
gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.js | 27
gz-wxparty/components/vant/picker/index.wxs | 42
gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.wxs | 22
gz-wxparty/components/vant/common/style/hairline.wxss | 1
gz-wxparty/components/vant/picker/index.wxss | 1
gz-customerSystem/src/views/logAndSign/index.jsx | 10
gz-customerSystem/src/assets/images/backgroundImage.jpg | 0
gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.json | 8
gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.json | 3
gz-wxparty/components/vant/divider/index.wxs | 18
gz-wxparty/miniprogram_npm/@vant/weapp/common/style/hairline.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/card/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.json | 3
gz-wxparty/pages/perfectInformation/index.js | 200
gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.d.ts | 1
gz-wxparty/components/drop-down-select/index.wxss | 101
gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss | 1
gz-customerSystem/src/views/mediate/mediateAll/index.jsx | 11
gz-wxparty/pages/orderConfirm/index.json | 4
gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.js | 68
gz-wxparty/components/file-card/index.json | 4
gz-wxparty/miniprogram_npm/@vant/weapp/card/index.wxml | 56
gz-wxparty/components/vant/tabbar/index.json | 3
gz-wxparty/components/ellipsis-text/index.wxml | 8
gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.d.ts | 1
gz-wxparty/components/vant/tab/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/common/color.d.ts | 7
gz-wxparty/components/vant/field/props.js | 64
gz-wxparty/miniprogram_npm/@vant/weapp/field/index.js | 122
gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.wxml | 14
gz-wxparty/pages/materialShow/index.wxss | 92
gz-wxparty/components/mediate-card/index.js | 842 +
gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.wxml | 8
gz-wxparty/miniprogram_npm/@vant/weapp/image/index.json | 7
gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.json | 6
gz-wxparty/pages/login/index.wxml | 11
gz-wxparty/components/vant/button/index.wxss | 144
gz-wxparty/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss | 1
gz-wxparty/pages/mediateDetail/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.wxml | 22
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.json | 7
gz-wxparty/components/vant/common/style/clearfix.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/notify/notify.js | 60
gz-wxparty/miniprogram_npm/@vant/weapp/field/props.d.ts | 4
gz-wxparty/sitemap.json | 7
gz-wxparty/components/tabbar-page/index.wxml | 37
gz-wxparty/components/vant/picker-column/index.wxml | 23
gz-wxparty/components/vant/picker-column/index.d.ts | 1
gz-wxparty/pages/agreement/index.json | 4
gz-wxparty/project.config.json | 53
gz-wxparty/pages/agreement/index.js | 33
gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.d.ts | 1
gz-wxparty/img/Like_1.png | 0
gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.wxml | 30
gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.json | 4
gz-wxparty/components/vant/cell/index.wxs | 17
gz-wxparty/components/vant/toast/index.wxml | 36
gz-wxparty/pages/course/index.json | 5
gz-wxparty/miniprogram_npm/@vant/weapp/uploader/shared.d.ts | 28
gz-wxparty/components/vant/loading/index.wxs | 22
gz-wxparty/components/vant/transition/index.wxss | 1
gz-wxparty/components/vant/wxs/style.wxs | 42
gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/button/index.js | 67
gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.js | 14
gz-wxparty/pages/classicCase/index.wxss | 101
gz-wxparty/components/vant/rate/index.ts | 91
gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.json | 7
gz-wxparty/miniprogram_npm/@vant/weapp/common/version.js | 58
gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.wxml | 27
gz-wxparty/components/vant/wxs/array.wxs | 5
gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.js | 36
gz-wxparty/components/vant/definitions/index.js | 1
gz-wxparty/miniprogram_npm/@vant/weapp/picker/shared.d.ts | 21
gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.wxml | 44
gz-wxparty/components/vant/switch/index.json | 6
gz-wxparty/components/vant/toast/index.d.ts | 1
gz-wxparty/img/case_2.png | 0
gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.wxml | 28
gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/picker/shared.js | 24
gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.d.ts | 1
gz-wxparty/components/tabbar-page/index.json | 4
gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.wxml | 19
gz-wxparty/components/vant/image/index.js | 60
gz-wxparty/pages/homePageInfo/index.wxss | 40
gz-customerSystem/public/logo1.png | 0
gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.json | 4
gz-wxparty/pages/myMediate/index.js | 223
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.js | 17
gz-wxparty/pages/classicCase/index.wxml | 43
gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.js | 124
gz-wxparty/pages/orderConfirm/index.wxml | 62
gz-wxparty/miniprogram_npm/@vant/weapp/common/utils.d.ts | 13
gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.wxs | 14
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.json | 3
gz-wxparty/pages/register/index.js | 1232 ++
gz-wxparty/styles/animate.wxss | 31
gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.json | 3
gz-wxparty/components/vant/field/index.json | 7
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs | 71
gz-wxparty/miniprogram_npm/@vant/weapp/mixins/transition.js | 121
gz-wxparty/components/vant/icon/index.js | 20
gz-wxparty/components/ellipsis-text/index.json | 4
gz-wxparty/miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss | 0
gz-wxparty/miniprogram_npm/@vant/weapp/common/validator.js | 43
gz-wxparty/components/vant/checkbox-group/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.json | 7
gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.js | 40
gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.wxml | 44
gz-wxparty/miniprogram_npm/@vant/weapp/button/index.d.ts | 1
gz-wxparty/components/vant/overlay/index.json | 6
gz-wxparty/components/vant/tabbar-item/index.wxss | 29
gz-wxparty/miniprogram_npm/@vant/weapp/button/index.wxml | 53
gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/wxs/memoize.wxs | 55
gz-wxparty/components/vant/common/index.wxss | 69
gz-wxparty/components/vant/col/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/count-down/utils.js | 64
gz-wxparty/app.js | 49
gz-wxparty/components/vant/field/index.wxs | 18
gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.json | 6
gz-wxparty/pages/mediateDetail/index.js | 110
gz-wxparty/components/vant/picker/shared.js | 21
gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.wxml | 36
gz-wxparty/pages/homePage/index.json | 7
gz-wxparty/components/vant/icon/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/shared.js | 2
gz-wxparty/pages/messageCenter/index.json | 6
gz-wxparty/components/vant/rate/README.md | 159
gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.js | 48
gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.wxml | 8
gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.js | 13
gz-wxparty/components/vant/common/color.js | 7
gz-wxparty/miniprogram_npm/@vant/weapp/wxs/add-unit.wxs | 12
gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.js | 28
gz-wxparty/api/api.js | 37
gz-wxparty/utils/wxs/util.wxs | 36
gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.json | 7
gz-wxparty/components/vant/empty/index.wxs | 15
gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.js | 243
gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.wxml | 19
gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.js | 68
gz-wxparty/pages/realNameAuthentication/index.wxss | 19
gz-wxparty/components/vant/row/index.wxs | 18
gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.wxs | 22
gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.js | 48
gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.wxml | 29
gz-wxparty/components/vant/picker-column/index.wxss | 1
gz-wxparty/pages/perfectInformation/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.d.ts | 1
gz-wxparty/components/mediate-card/index.json | 10
gz-wxparty/components/vant/switch/index.wxs | 26
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.js | 360
gz-wxparty/miniprogram_npm/@vant/weapp/card/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.js | 127
gz-wxparty/pages/login/index.wxss | 16
gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.js | 282
gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml | 16
gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.d.ts | 1
gz-wxparty/components/vant/button/index.wxml | 53
gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.wxs | 18
gz-wxparty/pages/signIn/index.js | 72
gz-wxparty/miniprogram_npm/@vant/weapp/mixins/button.js | 44
gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.d.ts | 1
gz-wxparty/pages/autograph/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/definitions/index.js | 2
gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.wxs | 12
gz-wxparty/components/time-format/index.json | 4
gz-wxparty/components/vant/button/index.d.ts | 1
gz-wxparty/components/tooltip/index.json | 4
gz-wxparty/components/vant/picker/toolbar.wxml | 23
gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.wxml | 15
gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.js | 170
gz-wxparty/components/vant/info/index.json | 3
gz-wxparty/components/vant/checkbox-group/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.wxss | 1
gz-wxparty/components/vant/checkbox-group/index.wxml | 5
gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/common/relation.js | 65
gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.js | 203
gz-wxparty/miniprogram_npm/@vant/weapp/button/index.wxs | 39
gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.wxml | 20
gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.json | 7
gz-wxparty/components/vant/tabbar-item/index.wxml | 28
gz-wxparty/components/vant/popup/index.wxss | 151
gz-wxparty/components/recording/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/col/index.json | 3
gz-wxparty/pages/webview/index.js | 18
gz-wxparty/components/vant/cell-group/index.js | 11
gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.wxss | 1
gz-wxparty/pages/webview/index.wxml | 2
gz-wxparty/components/vant/rate/demo/index.json | 8
gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.wxml | 23
gz-wxparty/components/drop-down-select/index.js | 73
gz-wxparty/components/common-page/index.js | 108
gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.js | 24
gz-customerSystem/src/views/filesCheck/newFileCheck.jsx | 98
gz-wxparty/miniprogram_npm/@vant/weapp/row/index.wxml | 5
gz-wxparty/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/row/index.d.ts | 1
gz-wxparty/components/vant/divider/index.json | 4
gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.wxs | 36
gz-wxparty/pages/register/index.json | 9
gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.d.ts | 1
gz-wxparty/components/vant/rate/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.json | 3
gz-wxparty/components/mediate-detail/index.wxml | 269
gz-wxparty/components/mediate-detail/index.js | 163
gz-wxparty/miniprogram_npm/@vant/weapp/count-down/utils.d.ts | 10
gz-wxparty/components/vant/checkbox-group/index.js | 36
gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.js | 200
gz-wxparty/components/vant/rate/index.wxml | 35
gz-wxparty/components/vant/info/index.js | 8
gz-wxparty/components/vant/image/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.wxs | 13
gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.json | 7
gz-wxparty/components/vant/tabbar-item/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.js | 57
gz-wxparty/components/vant/common/style/mixins/ellipsis.wxss | 0
gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.json | 3
gz-wxparty/pages/materialUpload/index.js | 297
gz-wxparty/components/vant/row/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.wxss | 1
gz-wxparty/components/vant/picker-column/index.js | 118
gz-wxparty/pages/realNameAuthentication/index.wxml | 33
gz-wxparty/miniprogram_npm/@vant/weapp/image/index.js | 62
gz-wxparty/pages/signIn/index.json | 4
gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.js | 124
gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.js | 58
gz-wxparty/components/vant/field/props.d.ts | 4
gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.js | 68
gz-wxparty/miniprogram_npm/@vant/weapp/uploader/utils.d.ts | 22
gz-wxparty/components/vant/common/utils.d.ts | 14
gz-wxparty/components/time-format/index.js | 53
gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.js | 58
gz-wxparty/pages/me/index.wxml | 64
gz-wxparty/components/vant/cell-group/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/dialog/dialog.js | 90
gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.wxs | 15
gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.js | 28
gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.d.ts | 1
gz-wxparty/components/vant/rate/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.wxml | 3
gz-wxparty/components/vant/tabbar/index.js | 69
gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.wxml | 69
gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.wxml | 5
gz-customerSystem/public/index.html | 2
gz-wxparty/components/vant/image/index.wxml | 34
gz-wxparty/miniprogram_npm/@vant/weapp/mixins/touch.js | 40
gz-wxparty/components/vant/mixins/link.d.ts | 1
gz-wxparty/pages/materialUpload/index.wxss | 58
gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.json | 3
gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.wxs | 29
gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.js | 55
gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.d.ts | 1
gz-wxparty/components/vant/wxs/utils.wxs | 10
gz-wxparty/styles/public.wxss | 252
gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.d.ts | 1
gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.wxs | 20
gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.wxss | 1
gz-wxparty/pages/assistMediate/index.wxss | 24
gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.wxml | 21
gz-wxparty/miniprogram_npm/@vant/weapp/search/index.json | 6
gz-wxparty/components/vant/image/index.d.ts | 1
gz-wxparty/components/vant/cell/index.json | 6
gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.json | 3
gz-wxparty/components/steps/index.wxml | 39
gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.json | 10
gz-wxparty/components/vant/common/validator.js | 31
gz-wxparty/components/vant/switch/index.js | 36
gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.wxss | 1
gz-wxparty/miniprogram_npm/@vant/weapp/row/index.wxss | 1
853 files changed, 35,319 insertions(+), 45 deletions(-)
diff --git a/gz-customerSystem/public/favicon.ico b/gz-customerSystem/public/favicon.ico
index 4aeabc4..2455628 100644
--- a/gz-customerSystem/public/favicon.ico
+++ b/gz-customerSystem/public/favicon.ico
Binary files differ
diff --git a/gz-customerSystem/public/index.html b/gz-customerSystem/public/index.html
index ec0ecf8..81bd17d 100644
--- a/gz-customerSystem/public/index.html
+++ b/gz-customerSystem/public/index.html
@@ -31,7 +31,7 @@
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
- <title>白云区矛盾纠纷多元化解平台</title>
+ <title>广州市社会治安综合治理应用平台(综治中心模块)</title>
<script type="text/javascript" src="http://120.79.193.119:8000/pageoffice/pageoffice.js"></script>
<script type="text/javascript" src="./locationSelect.js"></script>
<script type="text/javascript" src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=13i28TcWWSbyYIqjHaJceqQbZa1dFlOt"></script>
diff --git a/gz-customerSystem/public/logo192.png b/gz-customerSystem/public/logo1.png
similarity index 100%
rename from gz-customerSystem/public/logo192.png
rename to gz-customerSystem/public/logo1.png
Binary files differ
diff --git a/gz-customerSystem/src/api/appUrl.js b/gz-customerSystem/src/api/appUrl.js
index ef578d3..52282b8 100644
--- a/gz-customerSystem/src/api/appUrl.js
+++ b/gz-customerSystem/src/api/appUrl.js
@@ -2,7 +2,7 @@
* @Company: hugeInfo
* @Author: ldh
* @Date: 2022-02-16 11:25:57
- * @LastEditTime: 2024-08-16 09:32:18
+ * @LastEditTime: 2024-08-22 14:10:51
* @LastEditors: dminyi 1301963064@qq.com
* @Version: 1.0.0
* @Description: api地址
diff --git a/gz-customerSystem/src/assets/images/backgroundImage.jpg b/gz-customerSystem/src/assets/images/backgroundImage.jpg
new file mode 100644
index 0000000..7c4d815
--- /dev/null
+++ b/gz-customerSystem/src/assets/images/backgroundImage.jpg
Binary files differ
diff --git a/gz-customerSystem/src/assets/images/backgroundImage.png b/gz-customerSystem/src/assets/images/backgroundImage.png
new file mode 100644
index 0000000..adf9199
--- /dev/null
+++ b/gz-customerSystem/src/assets/images/backgroundImage.png
Binary files differ
diff --git a/gz-customerSystem/src/assets/images/index.js b/gz-customerSystem/src/assets/images/index.js
index 1d1ecfe..28ffb49 100644
--- a/gz-customerSystem/src/assets/images/index.js
+++ b/gz-customerSystem/src/assets/images/index.js
@@ -2,7 +2,7 @@
* @Company: hugeInfo
* @Author: lwh
* @Date: 2023-04-24 16:12:00
- * @LastEditTime: 2024-08-15 14:37:33
+ * @LastEditTime: 2024-08-22 11:33:00
* @LastEditors: dminyi 1301963064@qq.com
* @Version: 1.0.0
* @Description:
@@ -42,6 +42,8 @@
import evidenceMaterials from './evidenceMaterials.png';
import evidenceMaterials_active from './evidenceMaterials_active.png';
import closeIcon from './closeIcon.png';
+import backgroundImage from './backgroundImage.jpg'
+import logo1 from './logo1.png';
export {
ledger_1,
@@ -78,5 +80,7 @@
applyMaterials_active,
evidenceMaterials,
evidenceMaterials_active,
- closeIcon
+ closeIcon,
+ backgroundImage,
+ logo1
};
diff --git a/gz-customerSystem/src/assets/images/logo1.png b/gz-customerSystem/src/assets/images/logo1.png
new file mode 100644
index 0000000..2455628
--- /dev/null
+++ b/gz-customerSystem/src/assets/images/logo1.png
Binary files differ
diff --git a/gz-customerSystem/src/components/Layout/Header.jsx b/gz-customerSystem/src/components/Layout/Header.jsx
index 519422a..c0d8f4a 100644
--- a/gz-customerSystem/src/components/Layout/Header.jsx
+++ b/gz-customerSystem/src/components/Layout/Header.jsx
@@ -2,8 +2,8 @@
* @Company: hugeInfo
* @Author: ldh
* @Date: 2022-03-11 11:33:21
- * @LastEditTime: 2024-08-08 20:18:53
- * @LastEditors: lwh
+ * @LastEditTime: 2024-08-22 11:51:48
+ * @LastEditors: dminyi 1301963064@qq.com
* @Version: 1.0.0
* @Description: 头部组件
*/
@@ -16,7 +16,7 @@
import * as $$ from '../../utils/utility';
import MyMessage from '../../views/myMessage';
import MyModal from '../MyModal';
-import logo_white from '../../assets/images/logo_white.png';
+import {logo1} from '../../assets/images';
//修改密码api
function submitModifyInfoApi(data) {
@@ -116,7 +116,7 @@
return (
<header className="header">
<div className="header-logo">
- <img src={logo_white} alt="" />
+ <img src={logo1} alt="" />
<div className="header-logo-text" style={{ color: '#fff' }}>
<div className="header-logo-title">广州市社会治安综合治理应用平台(综治中心模块)</div>
{/* <div>Guangzhou Baiyun Diversified Dispute Resolution Platform</div> */}
diff --git a/gz-customerSystem/src/utils/utility.js b/gz-customerSystem/src/utils/utility.js
index 9500459..43c3421 100644
--- a/gz-customerSystem/src/utils/utility.js
+++ b/gz-customerSystem/src/utils/utility.js
@@ -2,7 +2,7 @@
* @Company: hugeInfo
* @Author: ldh
* @Date: 2022-02-16 11:57:54
- * @LastEditTime: 2024-08-16 17:15:26
+ * @LastEditTime: 2024-08-21 16:58:17
* @LastEditors: dminyi 1301963064@qq.com
* @Version: 1.0.0
* @Description: 公共模块方法
@@ -107,7 +107,7 @@
if (num) {
var str = num.toString();
var reg = str.indexOf('.') > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g;
- return str.replace(reg, '$1,');
+ return str.replace(reg, '$1,');
} else {
return 0;
}
diff --git a/gz-customerSystem/src/views/filesCheck/newFileCheck.jsx b/gz-customerSystem/src/views/filesCheck/newFileCheck.jsx
index 602bc57..ccda429 100644
--- a/gz-customerSystem/src/views/filesCheck/newFileCheck.jsx
+++ b/gz-customerSystem/src/views/filesCheck/newFileCheck.jsx
@@ -2,25 +2,26 @@
* @Company: hugeInfo
* @Author: ldh
* @Date: 2022-03-11 11:03:44
- * @LastEditTime: 2024-08-19 10:11:34
+ * @LastEditTime: 2024-08-22 10:36:23
* @LastEditors: dminyi 1301963064@qq.com
* @Version: 1.0.0
* @Description: 大厅来访材料附件查看
* 附件类型对照
- NULL("22_00017-0","未分类"),
- AUDIO("22_00017-1", "音频"),
- VIDEO("22_00017-2", "视频"),
- IMAGE("22_00017-3", "图片"),
- WORD("22_00017-4", "Word文档"),
- EXCEL("22_00017-5", "Excel表格"),
- PDF("22_00017-6", "PDF"),
- TXT("22_00017-7", "txt文本"),
- ZIP("22_00017--8", "压缩文件"),
- POWERPOINT("22_00017-9", "PowerPoint"),
- UNKNOWN("22_00017-99", "其它文件");
+ NULL("22_00017-0","未分类"),
+ AUDIO("22_00017-1", "音频"),
+ VIDEO("22_00017-2", "视频"),
+ IMAGE("22_00017-3", "图片"),
+ WORD("22_00017-4", "Word文档"),
+ EXCEL("22_00017-5", "Excel表格"),
+ PDF("22_00017-6", "PDF"),
+ TXT("22_00017-7", "txt文本"),
+ ZIP("22_00017--8", "压缩文件"),
+ POWERPOINT("22_00017-9", "PowerPoint"),
+ UNKNOWN("22_00017-99", "其它文件");
*/
import React, { useState, useEffect, useRef } from 'react';
-import { Button, Menu, Tooltip } from 'antd';
+import { Button, Menu, Tooltip, Row, Col, Form, Space } from 'antd';
+import { Select, DatePicker } from '@arco-design/web-react';
import { useSearchParams } from 'react-router-dom';
import {
CaretRightOutlined,
@@ -38,7 +39,11 @@
} from '@ant-design/icons';
import * as $$ from '../../utils/utility';
+
const { SubMenu } = Menu;
+const FormItem = Form.Item;
+const Option = Select.Option;
+
// 获取附件
function getFileListDataApi(submitData) {
@@ -65,6 +70,8 @@
const imgBgRef = useRef();
const imgRef = useRef();
+ const formRef = useRef();
+
// 图片旋转
function handleRotateImg(type) {
@@ -207,7 +214,70 @@
return (
<>
- <nav className="filesCheck-nav">
+ <nav className="filesCheck-nav" style={{ borderRight: '1px solid transparent' }}>
+ <Form
+ ref={formRef}
+ layout='horizontal'
+ style={{ marginTop: '24px', marginBottom: '20px' }}
+ requiredSymbol={false}
+ scrollToFirstError={true}
+ initialValues={{
+ level: '三级',
+ isSerious: '否',
+ }}//默认值
+ >
+ <Row gutter={24} style={{ marginRight: '0px' }}>
+ <Col span={7}>
+ <FormItem label='材料类型:' field='level'>
+ <Select placeholder='Select city' allowClear>
+ {['一级', '二级', '三级', '四级'].map((option, index) => (
+ <Option key={option} value={option}>
+ {option}
+ </Option>
+ ))}
+ </Select>
+ </FormItem>
+ </Col>
+ <Col span={7}>
+ <FormItem
+ label='上传时间:'
+ field='name'
+ onChange={(e) => console.log(e.target.value, 'vvv')}
+ >
+ <DatePicker.RangePicker
+ defaultValue={['2020-08-08', '2020-08-18']}
+ separator='~'
+ style={{ width: '100%' }}
+ />
+ </FormItem>
+ </Col>
+ <Col span={7}>
+ <FormItem
+ label='上传人类型:'
+ field='name'
+ onChange={(e) => console.log(e.target.value, 'vvv')}
+ >
+ <Select placeholder='Select city' allowClear style={{ width: '100%' }}>
+ {['一级', '二级', '三级', '四级'].map((option, index) => (
+ <Option key={option} value={option}>
+ {option}
+ </Option>
+ ))}
+ </Select>
+ </FormItem>
+
+ </Col>
+ <Col span={3}>
+ <Space>
+ <Button size="middle " type='primary'>查询</Button>
+ <Button size="middle ">查询</Button>
+ </Space>
+ </Col>
+
+ </Row>
+
+ </Form>
+
<Menu
className="filesCheck-nav-menu"
style={{ width: '200px' }}
diff --git a/gz-customerSystem/src/views/logAndSign/index.jsx b/gz-customerSystem/src/views/logAndSign/index.jsx
index 9543335..8312194 100644
--- a/gz-customerSystem/src/views/logAndSign/index.jsx
+++ b/gz-customerSystem/src/views/logAndSign/index.jsx
@@ -2,8 +2,8 @@
* @Company: hugeInfo
* @Author: xzx
* @Date: 2022-03-25 11:00:36
- * @LastEditors: lwh
- * @LastEditTime: 2023-05-12 18:16:39
+ * @LastEditors: dminyi 1301963064@qq.com
+ * @LastEditTime: 2024-08-22 11:39:26
* @Version: 1.0.0
* @Description: 登录注册页 TODO:注释掉的内容代码是暂时没有开发的功能,后续看需求是否添加
*/
@@ -13,7 +13,7 @@
import { QrcodeOutlined, ScanOutlined } from '@ant-design/icons';
import * as $$ from '../../utils/utility';
import logAvatar from '../../assets/images/logAvatar.png';
-import logo from '../../assets/images/logo.png';
+import logo1 from '../../assets/images/logo1.png';
import publicDataStatus from '../../status/publicData';
import SlideTest from '../../components/SlideTest';
@@ -50,9 +50,9 @@
<div className="logAndSign">
<header className="logAndSign-header">
<div className="logAndSign-header-logo">
- <img src={logo} alt="" />
+ <img src={logo1} alt="" />
<div className="logAndSign-header-logo-text">
- <div className="header-logo-title">广州市白云区矛盾纠纷多元化解平台</div>
+ <div className="header-logo-title">广州市社会治安综合治理应用平台(综治中心模块)</div>
<div>Guangzhou Baiyun Diversified Dispute Resolution Platform</div>
</div>
</div>
diff --git a/gz-customerSystem/src/views/logAndSign/index.less b/gz-customerSystem/src/views/logAndSign/index.less
index 76e1ba4..1490eec 100644
--- a/gz-customerSystem/src/views/logAndSign/index.less
+++ b/gz-customerSystem/src/views/logAndSign/index.less
@@ -64,7 +64,7 @@
width: 100%;
height: 100%;
position: relative;
- background-image: url('../../../assets/images/background-bg.png');
+ background-image: url('../../../assets/images/backgroundImage.png');
background-size: 100% 100%;
&-beforeLog,
diff --git a/gz-customerSystem/src/views/mediate/mediateAll/index.jsx b/gz-customerSystem/src/views/mediate/mediateAll/index.jsx
index 0c9631b..420096a 100644
--- a/gz-customerSystem/src/views/mediate/mediateAll/index.jsx
+++ b/gz-customerSystem/src/views/mediate/mediateAll/index.jsx
@@ -2,7 +2,7 @@
* @Company: hugeInfo
* @Author: lwh
* @Date: 2022-03-29 14:11:57
- * @LastEditTime: 2024-08-19 16:18:45
+ * @LastEditTime: 2024-08-21 15:43:25
* @LastEditors: dminyi 1301963064@qq.com
* @Version: 1.0.0
* @Description: 调解总览
@@ -202,7 +202,6 @@
// 获取小程序申请数据
async function getMediateAllMiniData(submitData, tableActive) {
- console.log(submitData,tableActive,'submitData','tableActive','2222')
global.setSpinning(true);
const res = await getMediateAllDataApi(submitData);
global.setSpinning(false);
@@ -393,9 +392,11 @@
const countOtherData = otherData.total || 0;
- const countPlatformData=platformData.total || 0;
+ const countPlatformData = platformData.total || 0;
const selectedRowKeys = handleGetSelectedRowKeys('selectedRowKeys');
+
+
return (
<Page pageHead={{ title: '调解总览(一本账)', subtitle: <span>汇总查看名下{<span className='ledger-main-title'>不同渠道</span>}进入多元化解平台的矛盾纠纷案件,形成白云区矛盾纠纷统一台账管理中心</span> }}>
@@ -466,8 +467,8 @@
rowKey="id"
rowSelection={mediateTab == '1' && { selectedRowKeys, onChange: onSelectChange }}
pagination={{
- current: search.page,
- pageSize: search.size,
+ current: page,
+ pageSize: size,
total: data.total,
onChange: (page, pageSize) => {
setPage(page);
diff --git a/gz-customerSystem/src/views/mediate/mediateBigData/index.jsx b/gz-customerSystem/src/views/mediate/mediateBigData/index.jsx
index 86143fd..6438bd6 100644
--- a/gz-customerSystem/src/views/mediate/mediateBigData/index.jsx
+++ b/gz-customerSystem/src/views/mediate/mediateBigData/index.jsx
@@ -2,7 +2,7 @@
* @Company: hugeInfo
* @Author: ldh
* @Date: 2022-03-18 10:21:49
- * @LastEditTime: 2024-06-19 11:30:51
+ * @LastEditTime: 2024-08-22 11:55:25
* @LastEditors: dminyi 1301963064@qq.com
* @Version: 1.0.0
* @Description: 调解大数据
@@ -650,7 +650,7 @@
// 只有当大于4条数据的时候 才会滚动
if (data.length > 5) {
- const animation = v.animate([
+ const animation = v?.animate([
// 动画的初始样式
{ transform: 'translateY(0)' },
// 动画的结束样式
@@ -811,7 +811,7 @@
const submitData = { countRange: '1', timeType: '1', timeStart: formattedDate, timeEnd: timeEndtemp, mediateUnitIds: '', workTopType: '1', sortType: '1', sortField: '1', canal: '22_00001-1' };
getViewData(submitData);
let v = document.getElementsByClassName("ant-table-tbody")[0];
- const animation = v.animate([
+ const animation = v?.animate([
// 动画的初始样式
{ transform: 'translateY(0)' },
// 动画的结束样式
@@ -839,7 +839,7 @@
setThisMonthIncrease(res.data.thisMonthIncrease || []);
let v = document.getElementsByClassName("reportStatistics-table")[0];
if (res.data.realTimeDynamicList.length < 5) {
- const animation = v.animate([
+ const animation = v?.animate([
// 动画的初始样式
{ transform: 'translateY(0)' },
// 动画的结束样式
@@ -1019,7 +1019,7 @@
if (res1.data?.realTimeDynamicList.length > 0) {
if (realTimeDynamicListLength > 5) {
let v = document.getElementsByClassName("aant-table-tbody")[0];
- v.animate([
+ v?.animate([
// 动画的初始样式
{ transform: 'translateY(0)' },
// 动画的结束样式
diff --git a/gz-customerSystem/src/views/mediationWindow/index.less b/gz-customerSystem/src/views/mediationWindow/index.less
index 73384ee..5cd1b50 100644
--- a/gz-customerSystem/src/views/mediationWindow/index.less
+++ b/gz-customerSystem/src/views/mediationWindow/index.less
@@ -940,3 +940,9 @@
}
}
}
+
+//antd组件内 ResizeObserver loop limit exceeded报错隐藏
+#webpack-dev-server-client-overlay {
+ display: none !important;
+ }
+
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
index 6c0faea..44175bf 100644
--- a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
@@ -561,11 +561,12 @@
/>
</FormItem>
</Col>
- <div style={{ marginLeft: '16px', padding: '12px 16px', backgroundColor: '#EFF8FF', borderRadius: '2px', marginTop: '4px' }}>
+ <div style={{ marginLeft: '16px', padding: '12px 16px', backgroundColor: '#F2F3F5', borderRadius: '2px', marginTop: '4px',display:'flex',alignItems:'center' }}>
<FormItem
label='是否重大矛盾纠纷'
style={{ marginBottom: '-20px' }}
field='isSerious'
+ // layout='inline'
>
<RadioGroup options={['否', '是']} style={{ marginBottom: 20 }} />
</FormItem>
diff --git a/gz-customerSystem/src/views/register/visit/index.jsx b/gz-customerSystem/src/views/register/visit/index.jsx
index 9d4473b..2521a76 100644
--- a/gz-customerSystem/src/views/register/visit/index.jsx
+++ b/gz-customerSystem/src/views/register/visit/index.jsx
@@ -2,7 +2,7 @@
* @Author: dminyi 1301963064@qq.com
* @Date: 2024-08-09 09:59:43
* @LastEditors: dminyi 1301963064@qq.com
- * @LastEditTime: 2024-08-15 11:46:01
+ * @LastEditTime: 2024-08-21 16:57:16
* @FilePath: \gzDyh\gz-customerSystem\src\views\basicInformation\organization\index.jsx
* @Description: 来访登记
*/
@@ -95,9 +95,9 @@
{isReview ? <Preview /> : <VisitorRegister formRef={formRef} />}
<div className="dataSync-excel">
<Space size="large" style={{ margin: '4px 14px' }}>
- <Button type="primary" style={{ backgroundColor: '#1A6FB8' }} onClick={handleSave} >保存信息</Button>
- <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleReview}>预览信息</Button>
- <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleSubmit}>提交信息</Button>
+ <Button type="primary" style={{ backgroundColor: '#1A6FB8' }} onClick={handleSave} >保存</Button>
+ <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleReview}>预览</Button>
+ <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleSubmit}>提交</Button>
<Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={() => selfAcceptance()}>自行受理</Button>
<Button type='secondary' onClick={handleReview}>返回上级页面</Button>
</Space>
diff --git a/gz-wxparty/.eslintrc.js b/gz-wxparty/.eslintrc.js
new file mode 100644
index 0000000..115cc02
--- /dev/null
+++ b/gz-wxparty/.eslintrc.js
@@ -0,0 +1,31 @@
+/*
+ * Eslint config file
+ * Documentation: https://eslint.org/docs/user-guide/configuring/
+ * Install the Eslint extension before using this feature.
+ */
+module.exports = {
+ env: {
+ es6: true,
+ browser: true,
+ node: true,
+ },
+ ecmaFeatures: {
+ modules: true,
+ },
+ parserOptions: {
+ ecmaVersion: 2018,
+ sourceType: 'module',
+ },
+ globals: {
+ wx: true,
+ App: true,
+ Page: true,
+ getCurrentPages: true,
+ getApp: true,
+ Component: true,
+ requirePlugin: true,
+ requireMiniProgram: true,
+ },
+ // extends: 'eslint:recommended',
+ rules: {},
+}
diff --git a/gz-wxparty/READEME.md b/gz-wxparty/READEME.md
new file mode 100644
index 0000000..1a192cc
--- /dev/null
+++ b/gz-wxparty/READEME.md
@@ -0,0 +1,39 @@
+<!--
+ * @Company: hugeInfo
+ * @Author: ldh
+ * @Date: 2022-06-06 11:12:28
+ * @LastEditTime: 2022-12-02 11:59:52
+ * @LastEditors: ldh
+ * @Version: 1.0.0
+ * @Description: 项目说明
+-->
+# 项目说明
+
+## 注意说明
+
+### 1、发布项目需要注意 util.js 中 isDebug 变量控制 api 的选择,api 包含了测试和正式区分
+
+### 2、项目引入了vant组件库的源码
+
+- style中的public.css是全局样式变量,也是vant的全局样式变量
+
+- 项目对于vant的源码做了部分修改,所以更新的时候需要注意,如有未提及的修改可自行判断
+
+```
+1: tabbar - 添加了一个myHeight: string(单位px)的传入参数指定tabbar高度
+2: popup - 修改了当position==='bottom'时使用自定义的样式
+3: toast - 修改了展示样式
+4: tabs - 添加一个disabled: boolean的传入参数指定当前tabs组件不可点击,但是vant的click操作可以响应
+```
+
+## 项目结构
+
+```
+├── api # 项目api接口
+├── components # 公共组件,页面组件库
+├── pages # 页面
+├── styles # 样式
+├── utils # 公共方法,wxs文件
+├── app.js
+├── app.wsss
+└── app.json
diff --git a/gz-wxparty/api/api.js b/gz-wxparty/api/api.js
new file mode 100644
index 0000000..2ead488
--- /dev/null
+++ b/gz-wxparty/api/api.js
@@ -0,0 +1,37 @@
+const url = {
+ // === 测试环境 ===
+ // debug: 'http://47mhcb.natappfree.cc/',
+ // img: 'https://gz.hugeinfo.com.cn/dyh/wx414ae04ac3f10b4e/images/',
+ // assets: 'https://gz.hugeinfo.com.cn/dyh/wx414ae04ac3f10b4e/js/',
+ // txt: 'https://gz.hugeinfo.com.cn/dyh/wx414ae04ac3f10b4e/txt/',
+
+
+ // === 测试环境 ===
+ debug: 'https://gz.hugeinfo.com.cn/',
+ // debug: 'http://refa5j.natappfree.cc/',
+ img: 'https://gz.hugeinfo.com.cn/dyh/wx414ae04ac3f10b4e/images/',
+ assets: 'https://gz.hugeinfo.com.cn/dyh/wx414ae04ac3f10b4e/js/',
+ txt: 'https://gz.hugeinfo.com.cn/dyh/wx414ae04ac3f10b4e/txt/',
+
+
+ // === 正式环境 ===
+ // web: 'https://zfw-dyh.by.gov.cn/',
+ // img: 'https://zfw-dyh.by.gov.cn/wechat/images/',
+ // assets: 'https://zfw-dyh.by.gov.cn/wechat/js/',
+ // txt: 'https://zfw-dyh.by.gov.cn/wechat/txt/',
+
+ // 文件查看url 后面接附件编号
+ fileShowUrl: 'dyh-sys/api/v1/fileInfo/show/',
+ // 文件下载url 后面接附件编号
+ fileDownUrl: 'dyh-sys/api/v1/fileInfo/down/',
+ // 不同服务接口type
+ mediate: 'dyh-mediate', // dyh-mediate
+ cust: 'dyh-cust', // dyh-cust
+ oper: 'dyh-oper', // dyh-oper
+ sys: 'dyh-sys', // dyh-sys
+ disp: 'dyh-disp', //dyh-disp
+};
+
+module.exports = {
+ url,
+};
diff --git a/gz-wxparty/app.js b/gz-wxparty/app.js
new file mode 100644
index 0000000..4fd9fe2
--- /dev/null
+++ b/gz-wxparty/app.js
@@ -0,0 +1,49 @@
+// app.js
+const $$ = require('./utils/util');
+
+App({
+ onLaunch() {
+ // 小程序更新
+ const updateManager = wx.getUpdateManager();
+ updateManager.onCheckForUpdate(function (res) {
+ // 请求完新版本信息的回调
+ if (res.hasUpdate == true) {
+ updateManager.onUpdateReady(function () {
+ $$.loginOutClearData();
+ wx.showModal({
+ title: '更新提示',
+ content: '检测到新版本更新',
+ showCancel: false,
+ success(res) {
+ if (res.confirm) {
+ // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
+ updateManager.applyUpdate();
+ }
+ },
+ });
+ });
+ }
+ });
+ updateManager.onUpdateFailed(function () {
+ // 新版本下载失败
+ wx.showModal({
+ title: '已经有新版本了哟~',
+ content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
+ });
+ });
+ // 获取缓存的token
+ let userInfo = wx.getStorageSync('userInfo');
+ if (userInfo) {
+ this.globalData.token = userInfo.token;
+ }
+ },
+ globalData: {
+ token: '', // 用户token
+ material: {
+ uploadVisible: false,
+ data: [], // 材料上传的数据
+ person: [], // 申请调解页面进入附件上传页面时,需要传递的申请人,代理人,被申请人的数据,便于身份材料时选择
+ },
+ caseMsg: {}, // 案件详情,用于我的申请时跳转到其他页面传输案件的数据。
+ },
+});
diff --git a/gz-wxparty/app.json b/gz-wxparty/app.json
new file mode 100644
index 0000000..e47f48a
--- /dev/null
+++ b/gz-wxparty/app.json
@@ -0,0 +1,69 @@
+{
+ "pages": [
+ "pages/homePage/index",
+ "pages/homePageInfo/index",
+ "pages/messageCenter/index",
+ "pages/register/index",
+ "pages/autograph/index",
+ "pages/course/index",
+ "pages/orderConfirm/index",
+ "pages/mediateDetail/index",
+ "pages/materialShow/index",
+ "pages/findAdjust/index",
+ "pages/assistMediate/index",
+ "pages/myMediate/index",
+ "pages/me/index",
+ "pages/myJudicialConfirmation/index",
+ "pages/signIn/index",
+ "pages/materialUpload/index",
+ "pages/realNameAuthentication/index",
+ "pages/perfectInformation/index",
+ "pages/agreement/index",
+ "pages/login/index",
+ "pages/webview/index",
+ "pages/classicCase/index"
+ ],
+ "window": {
+ "backgroundTextStyle": "dark",
+ "navigationBarBackgroundColor": "#d10202",
+ "navigationBarTitleText": "云法调解微信小程序",
+ "navigationBarTextStyle": "white",
+ "backgroundColor": "#d10202",
+ "backgroundColorTop": "#d10202",
+ "backgroundColorBottom": "#d10202"
+ },
+ "sitemapLocation": "sitemap.json",
+ "permission": {
+ "scope.userLocation": {
+ "desc": "你的位置信息将用于推荐附近的调解员或调解组织"
+ }
+ },
+ "usingComponents": {
+ "tabbar-page": "./components/tabbar-page/index",
+ "common-page": "./components/common-page/index",
+ "van-icon": "./components/vant/icon/index",
+ "van-button": "./components/vant/button/index",
+ "van-tabbar": "./components/vant/tabbar/index",
+ "van-tabbar-item": "./components/vant/tabbar-item/index",
+ "van-overlay": "./components/vant/overlay/index",
+ "van-picker": "./components/vant/picker/index",
+ "van-popup": "./components/vant/popup/index",
+ "van-row": "./components/vant/row/index",
+ "van-col": "./components/vant/col/index",
+ "van-search": "./components/vant/search/index",
+ "van-divider": "./components/vant/divider/index",
+ "van-tab": "./components/vant/tab/index",
+ "van-tabs": "./components/vant/tabs/index",
+ "van-empty": "./components/vant/empty/index",
+ "van-image": "./components/vant/image/index",
+ "van-loading": "./components/vant/loading/index",
+ "van-cell": "./components/vant/cell/index",
+ "van-cell-group": "./components/vant/cell-group/index",
+ "van-field": "./components/vant/field/index",
+ "van-checkbox": "./components/vant/checkbox/index",
+ "van-checkbox-group": "./components/vant/checkbox-group/index",
+ "van-toast": "./components/vant/toast/index",
+ "van-switch": "./components/vant/switch/index"
+ },
+ "lazyCodeLoading": "requiredComponents"
+}
\ No newline at end of file
diff --git a/gz-wxparty/app.wxss b/gz-wxparty/app.wxss
new file mode 100644
index 0000000..115184a
--- /dev/null
+++ b/gz-wxparty/app.wxss
@@ -0,0 +1,92 @@
+/**app.wxss**/
+@import './styles/public.wxss';
+@import './styles/animate.wxss';
+@import './components/vant/common/index.wxss';
+
+page {
+ color: var(--text-color);
+ background-color: var(--bg-color);
+ font-size: var(--font-size-main);
+ line-height: var(--line-height-main);
+ font-family: var(--base-font-family);
+}
+
+/* iphoneX底部安全距离 */
+.safeHeight {
+ height: env(safe-area-inset-bottom);
+}
+
+page .btn {
+ background: #ffffff;
+ border-radius: 8rpx;
+ font-size: 28rpx;
+ width: 400rpx;
+ height: 80rpx;
+ line-height: 80rpx;
+ margin: 0;
+ border: none;
+}
+
+page .btn-blue {
+ background-color: #26a7df;
+ color: #ffffff;
+}
+
+page .btn-primary {
+ background-color: var(--main-color);
+ color: #ffffff;
+}
+
+page .btn-white {
+ background-color: #ffffff;
+ color: var(--main-color);
+}
+
+.pre {
+ white-space: pre-wrap;
+ word-wrap: break-word;
+ color: var(--text-color);
+ font-family: var(--base-font-family);
+}
+
+.public-color {
+ color: var(--main-color)
+}
+
+.more-btn {
+ padding: 16rpx 0;
+ color: var(--main-color);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.more-btn-image {
+ height: 28rpx;
+ width: 28rpx;
+ margin-left: 8rpx;
+}
+
+page .tab-active-class {
+ color: var(--main-color);
+}
+
+.myMediate .tab-nav-class,
+.messageCenter-tabs .tab-nav-class {
+ background-color: var(--bg-color);
+}
+
+.popup-bottom-button {
+ padding: 32rpx 0;
+ border-top: 2rpx solid var(--border-color);
+ position: fixed;
+ bottom: 0;
+ left: 32rpx;
+ right: 32rpx;
+ background-color: #ffffff;
+}
+
+.second-font {
+ font-size: 24rpx;
+ line-height: 40rpx;
+}
\ No newline at end of file
diff --git a/gz-wxparty/components/common-page/index.js b/gz-wxparty/components/common-page/index.js
new file mode 100644
index 0000000..0a32ca3
--- /dev/null
+++ b/gz-wxparty/components/common-page/index.js
@@ -0,0 +1,108 @@
+const $$ = require('../../utils/util');
+const app = getApp();
+
+// 获取手机号码
+function getPhoneNumber(submitData) {
+ return $$.request({ url: 'paAccount/getUserPhone', type: 'post', service: 'cust', submitData });
+}
+
+Component({
+ /**
+ * 组件的属性列表
+ * popup: 下拉框的数据;visible:boolean 是否显示;title: string 标题;selectData: array;列数据;可拓展对象属性
+ * safeBottom: iphoneX安全距离
+ */
+ properties: {
+ popup: {
+ type: Object,
+ value: { visible: false }, // default: { visible: false, title: '', selectData: [] }
+ },
+ safeBottom: {
+ type: Boolean,
+ value: true,
+ },
+ },
+
+ /**
+ * 组件的初始数据
+ */
+ columnsDefaultIndex: 0,
+ data: {
+ loginVisible: false,
+ popupIndex: null,
+ },
+
+ pageLifetimes: {
+ show: function () {
+ if (!app.globalData.token) {
+ console.log('测试')
+ if (!app.globalData.access_token) {
+ $$.showModal({
+ content: '抱歉您未登录,是否前往登录?',
+ success: (res) => {
+ if (res.confirm) {
+ wx.redirectTo({
+ url: '../../pages/login/index',
+ });
+ } else {
+ wx.navigateBack({
+ delta: 1,
+ });
+ }
+ },
+ });
+
+ }
+ }
+ if (app.globalData.token && !this.data.loginVisible) {
+ this.setData({ loginVisible: true });
+ }
+ },
+ },
+
+ observers: {
+ 'popup.visible,popup.noPicker': function (data1, data2) {
+ if ((data1, data2)) {
+ this.setData({ popupIndex: this.data.popup.activeIndex });
+ }
+ },
+ },
+
+ /**
+ * 组件的方法列表
+ */
+ methods: {
+ // 退出登录
+ loginOut() {
+ this.setData({ loginVisible: false });
+ },
+ // 获取手机号码
+ async handleGetPhoneNumber(code) {
+ $$.showLoading();
+ const accountInfo = wx.getAccountInfoSync();
+ const res = await getPhoneNumber({ appid: accountInfo.miniProgram.appId, code });
+ $$.hideLoading();
+ if (res.type) {
+ $$.showToast({ title: '获取成功' });
+ return res.data;
+ }
+ },
+ // 下拉框底层弹出层方法
+ _handleClosePopup() {
+ this.triggerEvent('onClosePopup');
+ },
+ _handleChangePicker(e) {
+ this.triggerEvent('onChangePicker', { dataset: e.currentTarget.dataset, detail: e.detail });
+ },
+ _handleConfirmPicker(e) {
+ if (this.data.popup.noPicker) {
+ // 当组件不是Picker时
+ let index = e.currentTarget.dataset.index;
+ let value = e.currentTarget.dataset.value;
+ this.triggerEvent('onConfirmPicker', { dataset: e.currentTarget.dataset, detail: { index, value } });
+ return;
+ }
+ this.triggerEvent('onConfirmPicker', { dataset: e.currentTarget.dataset, detail: e.detail });
+ },
+ },
+});
diff --git a/gz-wxparty/components/common-page/index.json b/gz-wxparty/components/common-page/index.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/gz-wxparty/components/common-page/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/gz-wxparty/components/common-page/index.wxml b/gz-wxparty/components/common-page/index.wxml
new file mode 100644
index 0000000..fcccc1b
--- /dev/null
+++ b/gz-wxparty/components/common-page/index.wxml
@@ -0,0 +1,39 @@
+<!-- 非tabbar页面引入 -->
+<!-- 页面内容 -->
+<slot wx:if="{{ loginVisible }}" />
+<view style="display:none" wx:else>
+ <slot />
+</view>
+<!-- iphonex底部安全距离 -->
+<view class="adaptation" wx:if="{{ safeBottom }}" />
+<!-- 统一下拉底层弹出层 两种样式 -->
+<block hidden="{{ popup.visible }}">
+ <van-popup bind:close="_handleClosePopup" position="bottom" show="{{ popup.visible }}" wx:if="{{ !popup.noPicker }}" z-index="999">
+ <van-picker
+ bind:cancel="_handleClosePopup"
+ bind:change="_handleChangePicker"
+ bind:confirm="_handleConfirmPicker"
+ column-class="my-van-picker-column"
+ columns="{{ popup.selectData || [] }}"
+ show-toolbar
+ title="{{ popup.title || '请选择' }}"
+ value-key="label"
+ />
+ </van-popup>
+ <van-popup
+ bind:close="_handleClosePopup"
+ closeable
+ position="bottom"
+ show="{{ popup.visible }}"
+ title="{{ popup.title || '请选择' }}"
+ wx:else
+ z-index="999"
+ >
+ <scroll-view scroll-y="{{true}}" style="max-height: 800rpx;padding-top: 16rpx;">
+ <view bind:tap="_handleConfirmPicker" data-index="{{ index }}" data-value="{{ item }}" class="popup-item {{ index === popupIndex ? 'popup-item-active' : '' }}" wx:for="{{ popup.selectData }}" wx:key="index">
+ <view class="popup-item-content">{{ item.label }}</view>
+ <van-icon name="success" size="16" wx:if="{{ index === popupIndex }}" />
+ </view>
+ </scroll-view>
+ </van-popup>
+</block>
diff --git a/gz-wxparty/components/common-page/index.wxss b/gz-wxparty/components/common-page/index.wxss
new file mode 100644
index 0000000..e745055
--- /dev/null
+++ b/gz-wxparty/components/common-page/index.wxss
@@ -0,0 +1,23 @@
+/* components/common-page/index.wxss */
+.my-van-picker-column {
+ font-size: 28rpx !important;
+}
+
+.adaptation {
+ height: env(safe-area-inset-bottom);
+}
+
+.popup-item {
+ padding: 16rpx 32rpx;
+ display: flex;
+ align-items: center;
+}
+
+.popup-item-content {
+ flex: 1;
+ padding-right: 32rpx;
+}
+
+.popup-item-active {
+ color: var(--main-color);
+}
diff --git a/gz-wxparty/components/drop-down-select/index.js b/gz-wxparty/components/drop-down-select/index.js
new file mode 100644
index 0000000..162bde9
--- /dev/null
+++ b/gz-wxparty/components/drop-down-select/index.js
@@ -0,0 +1,73 @@
+Component({
+ /**
+ * 组件的属性列表
+ * data: [{name:'标题',key:'字段key',data:[{ label:'', vlaue:'',children:[] }]}], 数据源
+ * active: {'key':''}, 当前选中
+ * menuTextAlign, 是否居中标题
+ */
+ properties: {
+ data: {
+ type: Array,
+ value: [],
+ },
+ active: {
+ type: Object,
+ value: {},
+ },
+ menuTextAlign: {
+ type: Boolean,
+ value: false,
+ },
+ },
+
+ /**
+ * 组件的初始数据
+ */
+ data: {
+ myActive: {}, // 当前选择的value,用于校验切换时重置
+ dataIndex: null, // 当前选中的data数据的下标
+ dataActive: { data: [] },
+ activeName: {}, // 选中的标题
+ },
+
+ observers: {
+ active: function (data) {
+ let visible = false;
+ for (let item in this.data.myActive) {
+ if (this.data.myActive[item] !== data[item] && this.data.myActive[item]) {
+ visible = true;
+ }
+ }
+ if (visible) this.setData({ activeName: {} });
+ },
+ },
+
+ /**
+ * 组件的方法列表
+ */
+ methods: {
+ // 选择item
+ _handleClickItem(e) {
+ let item = e.currentTarget.dataset.item;
+ if (item.children) {
+ // 存在子集则是标题不可选择
+ return;
+ }
+ this.data.activeName[this.data.dataActive.key] = item.label;
+ let activeCopy = { ...this.data.active };
+ activeCopy[this.data.dataActive.key] = item.value;
+ this.data.myActive[this.data.dataActive.key] = item.value;
+ this.triggerEvent('ongetvalue', activeCopy);
+ this.setData({ activeName: this.data.activeName, dataIndex: null, dataActive: { data: [] }, myActive: this.data.myActive });
+ },
+ // 选择
+ _handleSelectData(e) {
+ let index = e.currentTarget.dataset.index;
+ this.setData({ dataIndex: index, dataActive: this.data.data[index] });
+ },
+ // 取消
+ _handleClose() {
+ this.setData({ dataIndex: null, dataActive: { data: [] } });
+ },
+ },
+});
diff --git a/gz-wxparty/components/drop-down-select/index.json b/gz-wxparty/components/drop-down-select/index.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/gz-wxparty/components/drop-down-select/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/gz-wxparty/components/drop-down-select/index.wxml b/gz-wxparty/components/drop-down-select/index.wxml
new file mode 100644
index 0000000..277a1c3
--- /dev/null
+++ b/gz-wxparty/components/drop-down-select/index.wxml
@@ -0,0 +1,36 @@
+<!-- // components/drop-down-fliter/index.wxml -->
+<view class="drop-down-select">
+ <view class="drop-down-select-menu">
+ <van-row>
+ <view class="{{dataIndex === index ? 'active' : ''}}" bindtap="_handleSelectData" wx:for="{{data}}" wx:key="index" data-index="{{index}}">
+ <van-col span="8">
+ <view style="display: flex;justify-content: {{menuTextAlign?'center':''}};padding-left: {{index===0?0:'8rpx'}};">
+ <view class="menu-title">{{activeName[item.key] || item.name}}</view>
+ <van-icon name="play" custom-class="arrow" />
+ </view>
+ </van-col>
+ </view>
+ </van-row>
+ </view>
+ <view wx:if="{{ dataActive.key }}" class="drop-down-select-submenu">
+ <van-row gutter="20">
+ <block wx:for="{{dataActive.data}}" wx:key="index">
+ <van-col span="{{item.span || 12}}" bindtap="_handleClickItem" data-item="{{item}}">
+ <view class="submenu-item {{active[dataActive.key] == item.value && 'active'}}">
+ <text class="submenu-title {{item.children&&'submenu-title-h5'}}">{{item.label}}</text>
+ <van-icon name="success" custom-class="tick" />
+ </view>
+ </van-col>
+ <view wx:if="{{item.children}}" style="margin-left: 56rpx;">
+ <van-col span="24" bindtap="_handleClickItem" data-item="{{item2}}" wx:for="{{item.children}}" wx:for-item="item2" wx:for-index="index2" wx:key="index2">
+ <view class="submenu-item {{active[dataActive.key] == item2.value && 'active'}}">
+ <text class="submenu-title">{{item2.label}}</text>
+ <van-icon name="success" custom-class="tick" />
+ </view>
+ </van-col>
+ </view>
+ </block>
+ </van-row>
+ </view>
+</view>
+<view class="cover" bindtap="_handleClose" hidden="{{ dataIndex === null }}"></view>
\ No newline at end of file
diff --git a/gz-wxparty/components/drop-down-select/index.wxss b/gz-wxparty/components/drop-down-select/index.wxss
new file mode 100644
index 0000000..1c29f69
--- /dev/null
+++ b/gz-wxparty/components/drop-down-select/index.wxss
@@ -0,0 +1,101 @@
+/* components/drop-down-fliter/index.wxss */
+.drop-down-select {
+ position: relative;
+ padding: 0 var(--padding-my);
+ z-index: 100;
+}
+
+.drop-down-select-menu {
+ position: relative;
+ background-color: #fff;
+ padding: 24rpx 32rpx;
+ border-radius: var(--border-radius-card-sm);
+}
+
+.menu-title {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.active .menu-title {
+ color: var(--main-color);
+}
+
+.arrow {
+ transition: transform 1s;
+ transform: rotate(90deg);
+}
+
+.active .arrow {
+ transform: rotate(-90deg);
+ color: var(--main-color);
+}
+
+.drop-down-select-submenu {
+ position: absolute;
+ left: var(--padding-my);
+ right: var(--padding-my);
+ top: 89rpx;
+ padding: 24rpx 32rpx 0;
+ background-color: #fff;
+ animation: move 0.5s 0s;
+ z-index: 99;
+ border-radius: var(--border-radius-card-sm);
+ margin-top: 16rpx;
+ max-height: 800rpx;
+ overflow-y: auto;
+}
+
+@keyframes move {
+ 0% {
+ top: 0;
+ }
+ 100% {
+ top: 89rpx;
+ }
+}
+
+.submenu-item {
+ margin-bottom: 24rpx;
+}
+
+.active .submenu-title {
+ color: var(--main-color);
+}
+
+.submenu-title-h5 {
+ font-weight: 600;
+}
+
+.tick {
+ display: none;
+ margin-left: 12rpx;
+ color: var(--main-color);
+}
+
+.active .tick {
+ display: inline;
+}
+
+.cover {
+ position: fixed;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 100%;
+ background-color: var(--gray-7);
+ opacity: 0.4;
+ z-index: 99;
+ animation: covermove 0.5s 0s;
+}
+
+@keyframes covermove {
+ 0% {
+ height: 0;
+ }
+ 100% {
+ height: 100%;
+ }
+}
diff --git a/gz-wxparty/components/ellipsis-text/index.js b/gz-wxparty/components/ellipsis-text/index.js
new file mode 100644
index 0000000..99a6984
--- /dev/null
+++ b/gz-wxparty/components/ellipsis-text/index.js
@@ -0,0 +1,66 @@
+// components/ellipsis-text/index.js
+const $$ = require('../../utils/util');
+
+Component({
+ /**
+ * 组件的属性列表
+ */
+ properties: {
+ content: {
+ type: String,
+ value: '',
+ },
+ fontsize: {
+ type: String,
+ value: '28',
+ },
+ line: {
+ type: String,
+ value: 1,
+ },
+ suffixVisible: Boolean, // 是否有省略后缀操作
+ },
+
+ /**
+ * 组件的初始数据
+ */
+ data: {
+ lineHeight: null,
+ },
+
+ lifetimes: {
+ ready: function () {
+ if (!this.data.suffixVisible) {
+ this.setData({ lineHeight: this.data.fontsize === '24' ? '40rpx' : '' });
+ return;
+ }
+ let that = this;
+ wx.getSystemInfoAsync({
+ success: (res1) => {
+ const query = this.createSelectorQuery();
+ query.select('#ellipsis-text').boundingClientRect();
+ query.exec(function (res) {
+ let clientWidth = res[0].width;
+ let ratio = 750 / (res1.windowWidth || 375);
+ let allNum = parseInt(parseInt(clientWidth) / (parseInt(that.data.fontsize) / ratio));
+ if (that.data.content.length > allNum * parseInt(that.data.line)) {
+ that.setData({ lineHeight: that.data.fontsize === '24' ? '40rpx' : '' });
+ }
+ });
+ },
+ });
+ },
+ },
+
+ /**
+ * 组件的方法列表
+ */
+ methods: {
+ // 点击查看隐藏内容
+ _handleShow() {
+ if (this.data.suffixVisible) {
+ $$.showModal({ title: '', content: this.data.content, showCancel: false });
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/components/ellipsis-text/index.json b/gz-wxparty/components/ellipsis-text/index.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/gz-wxparty/components/ellipsis-text/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/gz-wxparty/components/ellipsis-text/index.wxml b/gz-wxparty/components/ellipsis-text/index.wxml
new file mode 100644
index 0000000..9c10ca1
--- /dev/null
+++ b/gz-wxparty/components/ellipsis-text/index.wxml
@@ -0,0 +1,8 @@
+<!--文字省略组件-->
+<view class="ellipsis" style="font-size:{{ fontsize }}rpx;" catchtap="_handleShow">
+ <view
+ class="ellipsis-text-{{ line }}"
+ id="ellipsis-text"
+ style="{{ lineHeight ? 'line-height: ' + lineHeight : '' }}"
+ >{{ content || '-' }}</view>
+</view>
diff --git a/gz-wxparty/components/ellipsis-text/index.wxss b/gz-wxparty/components/ellipsis-text/index.wxss
new file mode 100644
index 0000000..513a3e0
--- /dev/null
+++ b/gz-wxparty/components/ellipsis-text/index.wxss
@@ -0,0 +1,29 @@
+/* components/ellipsis-text/index.wxss */
+.ellipsis {
+ position: relative;
+}
+
+.ellipsis-text-1 {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ line-height: 1.5715;
+}
+
+.ellipsis-text-2 {
+ -webkit-box-orient: vertical;
+ display: -webkit-box;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ -webkit-line-clamp: 2;
+ line-height: 1.5715;
+}
+
+.ellipsis-text-3 {
+ -webkit-box-orient: vertical;
+ display: -webkit-box;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ -webkit-line-clamp: 3;
+ line-height: 1.5715;
+}
diff --git a/gz-wxparty/components/file-card/index.js b/gz-wxparty/components/file-card/index.js
new file mode 100644
index 0000000..b528f20
--- /dev/null
+++ b/gz-wxparty/components/file-card/index.js
@@ -0,0 +1,66 @@
+/*
+ * @Company: hugeInfo
+ * @Author: ldh
+ * @Date: 2022-06-07 15:10:04
+ * @LastEditTime: 2022-06-09 16:03:47
+ * @LastEditors: ldh
+ * @Version: 1.0.0
+ * @Description:
+ */
+// components/file/index.js
+const $$ = require('../../utils/util');
+
+Component({
+ /**
+ * 组件的属性列表
+ */
+ properties: {
+ fileInfoList: Array, // 文件列表数据
+ linkName: {
+ type: String,
+ value: '预览',
+ },
+ isPreview: {
+ //是否预览模式
+ type: Boolean,
+ value: true,
+ },
+ backgroundColor: {
+ type: String,
+ value: '',
+ },
+ },
+
+ /**
+ * 组件的初始数据
+ */
+ data: {
+ imgUrl: $$.url.img,
+ },
+
+ /**
+ * 组件的方法列表
+ */
+ methods: {
+ // 点击文件
+ _handleOpenFiles(e) {
+ let item = e.currentTarget.dataset.item;
+ if (this.data.isPreview) {
+ let url = $$.baseUrl + $$.url.fileShowUrl + item.id;
+ $$.openFiles(item.cat, url, [url]);
+ return false;
+ }
+ this.triggerEvent('onopenfiles', item);
+ },
+ // 长按开始
+ _handleTouchstart(e) {
+ let item = e.currentTarget.dataset.item;
+ this.triggerEvent('ontouchstart', item);
+ },
+ // 长按结束
+ _handleTouchend(e) {
+ let item = e.currentTarget.dataset.item;
+ this.triggerEvent('ontouchend', item);
+ },
+ },
+});
diff --git a/gz-wxparty/components/file-card/index.json b/gz-wxparty/components/file-card/index.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/gz-wxparty/components/file-card/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/gz-wxparty/components/file-card/index.wxml b/gz-wxparty/components/file-card/index.wxml
new file mode 100644
index 0000000..a79c274
--- /dev/null
+++ b/gz-wxparty/components/file-card/index.wxml
@@ -0,0 +1,25 @@
+<!--文件card组件-->
+<wxs module="wxs" src="../../utils/wxs/util.wxs" />
+
+<view
+ bindtouchend="_handleTouchend"
+ bindtouchstart="_handleTouchstart"
+ catchtap="_handleOpenFiles"
+ class="file"
+ data-item="{{ item }}"
+ style="{{ backgroundColor ? 'background-color: #ffffff' : '' }}"
+ wx:for="{{ fileInfoList || [] }}"
+ wx:key="index"
+>
+ <view class="file-header">
+ <view>{{ item.name }}</view>
+ <view class="file-header-link">{{ linkName }}</view>
+ </view>
+ <view class="file-main">
+ <view>{{ wxs.fileType(item.cat) }}</view>
+ <view class="file-main-content">
+ <van-icon custom-style="padding-right:8rpx;" name="{{ imgUrl }}link.png" />
+ <view class="file-main-content-text">{{ item.trueName }}</view>
+ </view>
+ </view>
+</view>
diff --git a/gz-wxparty/components/file-card/index.wxss b/gz-wxparty/components/file-card/index.wxss
new file mode 100644
index 0000000..3aa5670
--- /dev/null
+++ b/gz-wxparty/components/file-card/index.wxss
@@ -0,0 +1,43 @@
+/* components/file/index.wxss */
+.file {
+ background-color: #f2f2f2;
+ font-size: 28rpx;
+ padding: 24rpx;
+ margin-bottom: 16rpx;
+ border-radius: var(--border-radius-card);
+}
+
+.file-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ line-height: 44rpx;
+}
+
+.file-header-link {
+ color: var(--main-color);
+ font-size: 24rpx;
+}
+
+.file-main {
+ display: flex;
+ justify-content: space-between;
+ margin-top: 8rpx;
+ font-size: 24rpx;
+ line-height: 40rpx;
+}
+
+.file-main-content {
+ overflow: hidden;
+ display: flex;
+ align-items: center;
+ flex: 1;
+ justify-content: flex-end;
+ padding-left: 32rpx;
+}
+
+.file-main-content-text {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
diff --git a/gz-wxparty/components/mediate-card/index.js b/gz-wxparty/components/mediate-card/index.js
new file mode 100644
index 0000000..18604f0
--- /dev/null
+++ b/gz-wxparty/components/mediate-card/index.js
@@ -0,0 +1,842 @@
+const $$ = require('../../utils/util');
+const app = getApp();
+
+// 获取当事人人员数据
+function getPartyApi(submitData) {
+ return $$.request({
+ url: 'paCaseInfo/selectCaseUserName?caseId=' + submitData,
+ type: 'get',
+ service: 'mediate'
+ });
+}
+
+//调解视窗
+function getCaseViewApi(submitData) {
+ return $$.request({
+ url: 'guide/windowCaseGuideByMilvus?caseId=' + submitData,
+ v1: true,
+ type: 'get',
+ service: 'mediate'
+ });
+}
+
+// 评价
+function rateApi(submitData) {
+ return $$.request({
+ url: 'guideRatings/saveGuideRatings',
+ submitData,
+ type: 'post',
+ v1: true,
+ service: 'mediate'
+ });
+}
+//相似度
+function checkCaseSimilarityApi(submitData) {
+ return $$.request({
+ url: 'guide/checkCaseSimilarity',
+ submitData,
+ type: 'get',
+ v1: true,
+ service: 'mediate'
+ });
+}
+
+
+Component({
+ /**
+ * 组件的属性列表
+ * pageType: string 页面来源 '1':我的调解; '2':我的司法确认on
+ * data: 数据
+ * active: 是否选中卡片
+ */
+ properties: {
+ pageType: {
+ type: String,
+ value: '1',
+ },
+ data: {
+ type: Object,
+ value: {},
+ },
+ active: {
+ type: Boolean,
+ value: false,
+ },
+ caseindex: Number, // 当前案件的下标便于操作返回后更新对应的案件
+ caseId: '',
+ },
+
+ /**
+ * 组件的初始数据
+ * card: string 卡片类型;
+ '1':待受理
+ '2_1':待调解(司法确认:待开始)未预约
+ '2_2':待调解(司法确认:待开始)有预约
+ '3_1':调解中(司法确认:进行中)未预约
+ '3_2':调解中(司法确认:进行中)有预约
+ '4_1':调解结束(司法确认:已结束)调解成功(司法确认:已达成)
+ '4_2':调解结束(司法确认:已结束)调解失败(司法确认:未达成)
+ '5':调解 - 退回
+ '6':调解 - 不予受理
+ '7': 调解 - 申请人撤回
+ */
+ card: '1',
+ data: {
+ imgUrl: $$.url.img,
+ color: '', // 颜色
+ rate: '',
+ baseContent: [{
+ title: '申请时间',
+ value: 'applyTime'
+ },
+ {
+ title: '申请人',
+ value: 'plaintiffs'
+ },
+ {
+ title: '被申请人',
+ value: 'defendants'
+ },
+ ],
+ showAdditionalContent: false,
+ showCaseProvision: false,
+ showLegalList: false,
+ showModal: false,
+ hasEvaluated: false,
+ guideInfoList: [],
+ legalInfoList:[],
+ newGuideInfoList: [],
+ // 假设这是你的 NewLegalInfoList 数组
+ NewLegalInfoList: [],
+ showTip: false,
+
+
+
+ // 主要内容
+ content: [],
+ // 额外说明区
+ explain: {
+ visible: false,
+ },
+ // 额外操作区
+ simple: {
+ visible: false,
+ button: [],
+ },
+ // 底部操作区是否可见
+ bottomAction: false,
+ // 底部文件展示区
+ bottomText: {
+ visible: false,
+ },
+ action: [{
+ title: '补充材料',
+ icon: `${$$.url.img}buchongcailiao.png`,
+ type: '1',
+ dot: false,
+ },
+ // {
+ // title: '在线沟通',
+ // icon: `${$$.url.img}zaixiangoutong.png`,
+ // type: '2',
+ // dot: false,
+ // },
+ {
+ title: '预约确认',
+ icon: `${$$.url.img}yuyuequeren.png`,
+ type: '3',
+ dot: false,
+ },
+ // {
+ // title: '在线签名',
+ // icon: `${$$.url.img}zaixianqianming.png`,
+ // type: '4',
+ // dot: false,
+ // },
+ ],
+ // 案件数据
+ cardData: {},
+ },
+ lifetimes: {
+ // 在组件实例刚刚被创建时执行
+ created: function () {},
+ // 在组件实例进入页面节点树时执行
+ attached: function () {
+ this._searchCase();
+ },
+ // 在组件实例被从页面节点树移除时执行
+ detached: function () {},
+ },
+
+ observers: {
+ // 用于加载不同的卡片
+ 'data.process,data.perType': function () {
+ this._defaultData();
+ const data = this.data.data;
+ data.meetInfo = data.meetInfo || {};
+ const pageType = this.data.pageType;
+ const card = this._cardType(data);
+ // 待受理
+ if (card === '1') {
+ // 只有是登记人才可以修改案件
+ if (data.whetherInput === '1') {
+ this.data.simple = {
+ visible: true,
+ button: [{
+ title: '撤销申请',
+ type: 'cancelCase'
+ }],
+ };
+ }
+ this.data.color = 'color-black';
+ }
+ // 退回 or 不予受理
+ if (['5', '6'].indexOf(card) !== -1) {
+ this.data.content = [{
+ title: pageType === '1' ? '审查组织' : '审查法院',
+ value: 'errorObjName'
+ },
+ {
+ title: '审查时间',
+ value: 'errorTime'
+ },
+ ];
+ // 只有是登记人才可以修改案件
+ let data = {}
+ this.data.simple = {
+ visible: card === '5' && data.whetherInput === '1' ? true : false,
+ button: [{
+ buttonType: 'primary',
+ title: '修改申请',
+ type: 'changeCase'
+ },
+ {
+ title: '撤销申请',
+ type: 'cancelCase'
+ },
+ ],
+ };
+ this.data.explain = {
+ visible: true,
+ title: '原因说明',
+ content: data.errorContent || '-',
+ };
+ this.data.color = card === '5' ? 'color-tui' : 'color-fail';
+ }
+ // 待调解 or 调解中 or 调解结束 的共同显示
+ if (['1', '5', '6', '7'].indexOf(card) === -1) {
+ this.data.content =
+ pageType === '1' ? [{
+ title: '调解组织',
+ value: 'mediateUnitName'
+ },
+ {
+ title: '调解员',
+ value: 'mediator'
+ },
+ ] : [{
+ title: '受理法院',
+ value: 'courtName'
+ },
+ {
+ title: '承办法官',
+ value: 'judgeName'
+ },
+ ];
+ }
+ // 待调解 or 调解中
+ if (['2_1', '2_2', '3_1', '3_2'].indexOf(card) !== -1) {
+ if (['2_2', '3_2'].indexOf(card) !== -1) {
+ this.data.explain = {
+ visible: true,
+ title: '预约信息',
+ order: true,
+ };
+ if (!data.meetInfo.fixStatus || data.meetInfo.fixStatus === '1') {
+ this.data.action[2].dot = true; // 显示图标红点提示
+ }
+ let arr = !!data.meetInfo.orderStartTime ? [{
+ title: pageType === '1' ? '线上调解房间号' : '线上司法确认房间号',
+ type: 'copy'
+ }] : [];
+ this.data.simple = {
+ visible: true,
+ button: [{
+ buttonType: 'primary',
+ title: data.meetInfo.signStatus === '2' || !data.meetInfo.signStatus ? (pageType === '1' ? '进入调解室' : '进入司法确认') : '签到',
+ type: data.meetInfo.signStatus === '2' || !data.meetInfo.signStatus ? 'goToRoom' : 'signIn',
+ },
+ ...arr,
+ ],
+ };
+ }
+ this.data.bottomAction = data.whetherInput === '1' ? true : false;
+ this.data.color = card === '2_1' || card === '2_2' ? 'color-dai' : 'color-ing';
+ }
+ // 调解结束
+ if (['4_1', '4_2'].indexOf(card) !== -1) {
+ this.data.simple = {
+ visible: true,
+ button: [{
+ buttonType: 'primary',
+ title: pageType === '1' ? '调解历程' : '司法确认历程',
+ type: 'history'
+ }],
+ };
+ this.data.bottomText = {
+ visible: true,
+ content: [{
+ title: pageType === '1' ? '调解结果' : '司法确认结果',
+ value: pageType === '1' ? 'mediResultName' : 'judicResultName',
+ color: data.mediResult === '22_00025-1' || data.judicResult === '22_00028-1' ? '#07c160' : '#ee0a24',
+ },
+ {
+ title: pageType === '1' ? '调解时间' : '司法确认时间',
+ value: pageType === '1' ? ['mediStartTime', 'mediEndTime'] : ['judicStartTime', 'judicEndTime'],
+ type: 'time',
+ },
+ ],
+ };
+ this.data.color = 'color-end';
+ }
+ // 申请人撤回
+ if (card === '7') {
+ this.data.color = 'color-tui';
+ }
+ this.setData({
+ color: this.data.color,
+ content: this.data.content,
+ explain: this.data.explain,
+ simple: this.data.simple,
+ bottomAction: this.data.bottomAction,
+ bottomText: this.data.bottomText,
+ action: this.data.action,
+ });
+ this._formatTime(card);
+ },
+ },
+
+ /**
+ * 组件的方法列表
+ */
+ methods: {
+
+ onRateChange(event) {
+ console.log('event', event.detail);
+ this.setData({
+ rate: event.detail
+ })
+ },
+
+ async _searchCase() {
+ let type = false;
+ try {
+ if (this.data.simple.visible && (this.data.simple.button[0].type === 'signIn' || this.data.simple.button[0].type === 'goToRoom')) {
+ $$.showLoading();
+ const guideTitleRes = await getCaseViewApi(this.data.data.id);
+ $$.hideLoading();
+ if (guideTitleRes.type) {
+ // 操作成功,设定 type 为 true
+ type = true;
+ const guideInfoList = guideTitleRes.data.find((i) => i.guideName === '类案推荐')?.guideInfoList;
+ const legalInfoList = guideTitleRes.data.find((i) => i.guideName === '法条推荐')?.guideInfoList.map(item => ({
+ ...item,
+ showDetails: false // 默认设定为关闭状态
+ }));
+ this.setData({
+ guideInfoList,
+ legalInfoList,
+ newGuideInfoList: guideInfoList,
+ NewLegalInfoList: legalInfoList
+ });
+ const tip = await checkCaseSimilarityApi({
+ caseId: this.data.data.id
+ });
+ if (tip.data === true) {
+ this.setData({
+ showTip: true
+ })
+ }
+ }
+ }
+ return {
+ type
+ };
+ } catch (error) {
+ console.error('刷新失败:', error);
+ return {
+ type: false
+ };
+ }
+ },
+
+
+ // 恢复默认数据
+ _defaultData() {
+ this.data.color = '';
+ // 主要内容
+ this.data.content = [];
+ // 额外说明区
+ this.data.explain = {
+ visible: false
+ };
+ // 额外操作区
+ this.data.simple = {
+ visible: false,
+ button: []
+ };
+ // 底部操作区是否可见
+ this.data.bottomAction = false;
+ // 底部文件展示区
+ this.data.bottomText = {
+ visible: false
+ };
+ this.data.action = [{
+ title: '预约确认',
+ icon: `${$$.url.img}yuyuequeren.png`,
+ type: '3',
+ dot: false,
+ },
+ {
+ title: '补充材料',
+ icon: `${$$.url.img}buchongcailiao.png`,
+ type: '1',
+ dot: false,
+ },
+ {
+ title: '...',
+ type: '10',
+ dot: false,
+ },
+ // {
+ // title: '在线沟通',
+ // icon: `${$$.url.img}zaixiangoutong.png`,
+ // type: '2',
+ // dot: false,
+ // },
+ // {
+ // title: '在线签名',
+ // icon: `${$$.url.img}zaixianqianming.png`,
+ // type: '4',
+ // dot: false,
+ // },
+
+ ];
+ },
+ // 查看文件
+ _handleOpenFiles(e) {
+ let item = e.currentTarget.dataset.item;
+ let url = $$.baseUrl + $$.url.fileShowUrl + item.id;
+ $$.openFiles(item.cat, url, [url]);
+ },
+
+ //补充材料页面
+ goToOtherPage() {
+ // 跳转到其他页面的逻辑
+ wx.navigateTo({
+ url: '../../pages/materialShow/index?caseId=' + this.data.data.id + '&editVisible=true',
+ });
+ },
+
+
+ _q() {
+ let that = this;
+ $$.showModal({
+ title: '推荐内容评价',
+ content: '推荐内容对您有帮助吗?',
+ cancelText: '我再想想',
+ confirmText: '评价完成',
+ success: (res) => {
+ if (res.confirm) {
+ that.submitCase();
+ }
+ },
+ });
+ },
+
+ async submitCase() {
+ $$.showLoading();
+ const res = await rateApi({
+ serviceId: id,
+ rating: rate,
+ });
+ $$.hideLoading();
+ if (res.type) {
+ $$.showToast({
+ icon: 'success',
+ title: '感谢您的评价'
+ });
+ }
+ },
+
+
+ _m(event) {
+ const index = event.currentTarget.dataset.key; // 获取点击的法条索引
+ const currentLegal = this.data.NewLegalInfoList[index]; // 获取当前点击的法条对象
+ currentLegal.showDetails = !currentLegal.showDetails; // 更新当前法条的展开状态
+
+ // 更新数据,只修改当前点击的法条对象,而不是整体更新 NewLegalInfoList 状态
+ this.setData({
+ ['NewLegalInfoList[' + index + ']']: currentLegal
+ });
+ },
+
+
+
+
+ //打开弹窗
+ openPopup() {
+ // 点击评价按钮时触发的操作
+ if (this.data.hasEvaluated) {
+ // 如果用户已经评价过,显示提示消息
+ $$.showToast({
+ title: "不可重复评价"
+ });
+ } else {
+ // 如果用户未评价,则打开弹出框供用户评价
+ this.setData({
+ showModal: !this.data.showModal // 显示弹出框
+ });
+ }
+ },
+
+ _r() {
+ // 用户完成评价后触发的操作
+ this.setData({
+ showModal: false, // 关闭弹出框
+ hasEvaluated: true // 标记用户已经评价过
+ });
+ $$.showToast({
+ title: "评价完成"
+ }); // 显示评价完成的提示消息
+ },
+
+
+
+
+
+
+
+
+
+
+ // 底部操作区操作
+ _handleBottomAction(e) {
+ let type = e.currentTarget.dataset.type;
+ if (type === '1') {
+ // 补充材料
+ // 获取人员数据保存至全局变量中,方便附件上传页面获取有多少人员
+ this._goToMaterial(this.data.data.id);
+ } else if (type === '2') {
+ $$.showToast({
+ title: '功能暂未开放,敬请期待'
+ });
+ } else if (type === '3') {
+ if (this.card === '2_1' || this.card === '3_1') {
+ $$.showToast({
+ title: '抱歉!该案件暂无预约信息'
+ });
+ return false;
+ }
+ // 预约确认
+ app.globalData.caseMsg = this.data.data;
+ app.globalData.caseMsg.caseIndex = this.data.caseindex;
+ wx.navigateTo({
+ url: '../../pages/orderConfirm/index?meetUserId=' + this.data.data.meetInfo.meetUserId + '&pageType=' + this.data.pageType,
+ });
+ }
+ // else if (type === '4') {
+ // // 在线签名
+ // wx.navigateTo({
+ // url: '../../pages/autograph/index',
+ // });
+ // }
+ else if (type === '10') {
+ // ...
+ this.setData({
+ showAdditionalContent: !this.data.showAdditionalContent
+ }); // 当点击 type 为 10 的时候显示额外内容
+ }
+ },
+ // 额外的操作
+ async _handleSimpleButton(e) {
+ let type = e.currentTarget.dataset.type;
+ if (type === 'changeCase') {
+ // 修改申请
+ app.globalData.caseMsg = this.data.data;
+ app.globalData.caseMsg.caseIndex = this.data.caseindex;
+ wx.navigateTo({
+ url: '../../pages/register/index?caseId=' + this.data.data.id + '&change=true',
+ });
+ } else if (type === 'cancelCase') {
+ // 撤销申请
+ $$.showModal({
+ content: '确定撤销申请吗?',
+ success: (res) => {
+ if (res.confirm) {
+ this.triggerEvent('onCancelCase', this.data.data.id);
+ }
+ },
+ });
+ } else if (type === 'signIn') {
+ // 进入签到
+ if (this.data.data.meetInfo.orderStartTime) {
+ let visible = false;
+ let diff_minute = $$.moment(this.data.data.meetInfo.orderStartTime).diff($$.moment(new Date()), 'minute');
+ if (diff_minute > 60) {
+ $$.showModal({
+ title: '签到失败提醒',
+ content: '正式调解开始前1小时内开放签到操作,请稍后再试',
+ showCancel: 'false',
+ confirmText: '我知道了',
+ });
+ visible = true;
+ }
+ if (visible) {
+ return false;
+ }
+ }
+ app.globalData.caseMsg = this.data.data;
+ app.globalData.caseMsg.caseIndex = this.data.caseindex;
+ wx.navigateTo({
+ url: '../../pages/signIn/index?meetUserId=' + this.data.data.meetInfo.meetUserId,
+ });
+ } else if (type === 'goToRoom') {
+ // 进入调解室
+ if (!this.data.data.meetInfo.roomNo) {
+ $$.showModal({
+ title: '进入调解失败提醒',
+ content: '房间号尚未创建,请联系调解员进行确认',
+ showCancel: 'false',
+ confirmText: '我知道了',
+ });
+ return false;
+ }
+ let that = this;
+ wx.setClipboardData({
+ data: that.data.data.meetInfo.roomNo,
+ success: function (res) {
+ wx.getClipboardData({
+ success: function (res) {
+ $$.showToast({
+ icon: 'success',
+ title: '会议号复制成功'
+ });
+ },
+ });
+ },
+ });
+ $$.sleep();
+ // 跳转到小鱼视频小程序
+ wx.navigateToMiniProgram({
+ appId: 'wx5a161b9b42305c0a',
+ path: 'pages/index/main',
+ success(res) {},
+ });
+ } else if (type === 'history') {
+ // 进入调解历程 or 司法历程
+ app.globalData.caseMsg = this.data.data;
+ wx.navigateTo({
+ url: '../../pages/course/index?id=' + this.data.data.id + '&pageType=' + this.data.pageType,
+ });
+ } else if (type === 'copy') {
+ // 复制房间号
+ if (!this.data.data.meetInfo.roomNo) {
+ $$.showToast({
+ title: '抱歉,无房间号'
+ });
+ return false;
+ }
+ this.triggerEvent('onOpenBottomPopup', {
+ data: this.data.data.meetInfo.roomNo,
+ type: 'roomNo'
+ });
+ }
+ },
+
+ async _v() {
+ let a = [];
+ let b = [];
+ if (this.data.newGuideInfoList?.length > 3) {
+ a = this.data.newGuideInfoList.filter((i, idx) => idx > 2);
+ } else {
+ a = this.data.guideInfoList || [];
+ }
+ if (this.data.NewLegalInfoList?.length > 3) {
+ b = this.data.NewLegalInfoList.filter((i, idx) => idx > 2);
+ } else {
+ b = this.data.legalInfoList || [];
+ }
+ this.setData({
+ newGuideInfoList: a,
+ NewLegalInfoList: b
+ });
+ },
+
+ //类案推荐详情
+ async _classicCase(e) {
+ const index = e.currentTarget.dataset.index; // 获取点击的元素索引
+ const selectedItem = this.data.newGuideInfoList[index]; // 根据索引获取对应的数据
+ const guideInfoId = selectedItem.guideInfoId;
+ const guideId = selectedItem.id;
+
+ // 跳转到 classicCase 页面,并传递相应的参数
+ wx.navigateTo({
+ url: `../../pages/classicCase/index?guideInfoId=${guideInfoId}&guideId=${guideId}`
+ });
+ },
+
+ async _handleNewSimpleButton(e) {
+ let type = e.currentTarget.dataset.type;
+ if (type === 'changeCase') {
+ // 修改申请
+ app.globalData.caseMsg = this.data.data;
+ app.globalData.caseMsg.caseIndex = this.data.caseindex;
+ wx.navigateTo({
+ url: '../../pages/register/index?caseId=' + this.data.data.id + '&change=true',
+ });
+ } else if (type === 'signIn') {
+ // 进入签到
+ if (this.data.data.meetInfo.orderStartTime) {
+ let visible = false;
+ let diff_minute = $$.moment(this.data.data.meetInfo.orderStartTime).diff($$.moment(new Date()), 'minute');
+ if (diff_minute > 60) {
+ $$.showModal({
+ title: '签到失败提醒',
+ content: '正式调解开始前1小时内开放签到操作,请稍后再试',
+ showCancel: 'false',
+ confirmText: '我知道了',
+ });
+ visible = true;
+ }
+ if (visible) {
+ return false;
+ }
+ }
+ app.globalData.caseMsg = this.data.data;
+ app.globalData.caseMsg.caseIndex = this.data.caseindex;
+ wx.navigateTo({
+ url: '../../pages/signIn/index?meetUserId=' + this.data.data.meetInfo.meetUserId,
+ });
+ } else if (type === 'goToRoom') {
+ // 进入调解室
+ if (!this.data.data.meetInfo.roomNo) {
+ $$.showModal({
+ title: '进入调解失败提醒',
+ content: '房间号尚未创建,请联系调解员进行确认',
+ showCancel: 'false',
+ confirmText: '我知道了',
+ });
+ return false;
+ }
+ let that = this;
+ wx.setClipboardData({
+ data: that.data.data.meetInfo.roomNo,
+ success: function (res) {
+ wx.getClipboardData({
+ success: function (res) {
+ $$.showToast({
+ icon: 'success',
+ title: '会议号复制成功'
+ });
+ },
+ });
+ },
+ });
+ $$.sleep();
+ // 跳转到小鱼视频小程序
+ wx.navigateToMiniProgram({
+ appId: 'wx5a161b9b42305c0a',
+ path: 'pages/index/main',
+ success(res) {},
+ });
+ } else if (type === 'history') {
+ // 进入调解历程 or 司法历程
+ app.globalData.caseMsg = this.data.data;
+ wx.navigateTo({
+ url: '../../pages/course/index?id=' + this.data.data.id + '&pageType=' + this.data.pageType,
+ });
+ } else if (type === 'copy') {
+ // 复制房间号
+ if (!this.data.data.meetInfo.roomNo) {
+ $$.showToast({
+ title: '抱歉,无房间号'
+ });
+ return false;
+ }
+ this.triggerEvent('onOpenBottomPopup', {
+ data: this.data.data.meetInfo.roomNo,
+ type: 'roomNo'
+ });
+ }
+ },
+ // 判断我的调解 和 我的司法确认的卡片类型便于组件使用
+ _cardType(value) {
+ let result = '1';
+ if (value.process) {
+ if (value.process === '1') {
+ result = '1';
+ } else if (value.process === '2' || value.process === '3') {
+ if (!value.meetInfo.orderStartTime) {
+ result = '_1';
+ } else {
+ result = '_2';
+ }
+ result = value.process + result;
+ } else if (value.process === '4') {
+ result = value.mediResult === '22_00025-1' || value.judicResult === '22_00028-1' ? '4_1' : '4_2';
+ } else {
+ result = value.process;
+ }
+ }
+ this.card = result;
+ return result;
+ },
+ // 格式化时间
+ _formatTime(card) {
+ let arr = ['applyTime', 'mediStartTime', 'mediEndTime', 'errorTime', 'judicStartTime', 'judicEndTime'],
+ arr2 = ['orderStartTime', 'orderEndTime'];
+ let data = this.data.data;
+ arr.forEach((x) => {
+ if (data[x]) {
+ data[x] = $$.timeFormat(data[x]);
+ }
+ });
+ arr2.forEach((x) => {
+ if (data.meetInfo[x]) {
+ data.meetInfo[x] = $$.timeFormat(data.meetInfo[x]);
+ }
+ });
+ data.cardTypeName = data.processName || '-';
+ this.setData({
+ cardData: {
+ ...data
+ }
+ });
+ },
+ // 跳转至案件详情
+ _handleGetCaseDetail() {
+ wx.navigateTo({
+ url: '../../pages/mediateDetail/index?id=' + this.data.data.id + '&pageType=' + this.data.pageType,
+ });
+ },
+ // 跳转至补充材料
+ async _goToMaterial(id) {
+ $$.showLoading();
+ const res = await getPartyApi(id);
+ $$.hideLoading();
+ if (res.type) {
+ app.globalData.material.person = res.data || [];
+ wx.navigateTo({
+ url: '../../pages/materialShow/index?caseId=' + this.data.data.id + '&editVisible=true',
+ });
+ }
+ },
+ // 打开文件
+ _handleOpenFiles(e) {
+ let item = e.currentTarget.dataset.item;
+ let url = $$.baseUrl + $$.url.fileShowUrl + item.id;
+ $$.openFiles(item.cat, url, [url]);
+ },
+ },
+});
\ No newline at end of file
diff --git a/gz-wxparty/components/mediate-card/index.json b/gz-wxparty/components/mediate-card/index.json
new file mode 100644
index 0000000..d7041ce
--- /dev/null
+++ b/gz-wxparty/components/mediate-card/index.json
@@ -0,0 +1,10 @@
+{
+ "component": true,
+ "usingComponents": {
+ "ellipsis-text": "../ellipsis-text/index",
+ "file-card": "../file-card/index",
+ "time-format": "../time-format/index",
+ "van-rate": "../vant/rate"
+
+ }
+}
diff --git a/gz-wxparty/components/mediate-card/index.wxml b/gz-wxparty/components/mediate-card/index.wxml
new file mode 100644
index 0000000..0bc3bb3
--- /dev/null
+++ b/gz-wxparty/components/mediate-card/index.wxml
@@ -0,0 +1,224 @@
+<!--我的调解 or 我的司法确认的案件卡片-->
+
+<view bindtap="_handleGetCaseDetail" class="card {{ active ? 'card-active' : '' }}">
+ <!-- 头部区域 -->
+ <view class="header">
+ <view class="{{ color }} header-title">
+ <view class="header-title-txt">{{ cardData.caseNo || '-' }}</view>
+ </view>
+ <view class="{{ color }}">{{ cardData.cardTypeName }}
+ <van-icon name="arrow" />
+ </view>
+
+ </view>
+ <!-- 主要内容区 -->
+ <block>
+ <view class="card-text" style="display: flex; {{ color === 'color-black' && !simple.visible ? 'border: none' : ''}}; {{simple.visible && item.type === cancelCase ? '' : 'border:none'}}">
+ <view style="margin-right: 24px;">
+ <view class="card-cell" wx:for="{{ baseContent }}" wx:key="index">
+ <view class="card-cell-title">{{ item.title }}</view>
+ </view>
+ <view class="card-cell" wx:for="{{ content }}" wx:key="index">
+ <view class="card-cell-title">{{ item.title }}</view>
+ </view>
+ </view>
+ <view style="{{ color === 'color-black' && !simple.visible ? 'border: none' : '' }}">
+ <view class="card-cell" wx:for="{{ baseContent }}" wx:key="index">
+ <view class="card-cell-value">{{ cardData[item.value] || '-' }}</view>
+ </view>
+ <view class="card-cell" wx:for="{{ content }}" wx:key="index">
+ <view class="card-cell-value">{{ cardData[item.value] || '-' }}</view>
+ </view>
+ </view>
+ </view>
+ <view class="card-text" style="{{ !explain.order ? 'border: none;' : 'border: none' }}" wx:if="{{ content.length !== 0 }}">
+ <view class="card-cell" wx:for="{{ bottomText.content }}" wx:key="index">
+ <view>{{ item.title }}:</view>
+ <view class="card-cell-value" style="{{ item.color ? 'color: ' + item.color : '' }}">
+ <block wx:if="{{ item.type === 'time' }}">{{ cardData[item.value[0]] || '-' }} ~ {{ cardData[item.value[1]] || '-' }}</block>
+ <block wx:else>{{ cardData[item.value] || '-' }}</block>
+ </view>
+ </view>
+ </view>
+ </block>
+ <!-- 额外说明区 -->
+ <view class="explain" wx:if="{{ explain.visible && !explain.order }}">
+ <view class="explain-title">{{ explain.title }}</view>
+ <!-- 异常信息 -->
+ <block wx:if="{{ !!explain.content }}">
+ <ellipsis-text content="{{ explain.content||'' }}" fontsize="24" line="2" suffixVisible="true" />
+ </block>
+ </view>
+ <!-- 预约信息 -->
+ <view class="order" wx:if="{{ explain.order }}">
+ <view class="order-date">
+ <view class="order-date-day">
+ <time-format format="DD" value="{{ cardData.meetInfo.orderStartTime }}" />号
+ </view>
+ <view class="order-date-month">
+ <time-format format="M" value="{{ cardData.meetInfo.orderStartTime }}" />月
+ </view>
+ </view>
+ <view style="flex: 1;">
+ <view class="order-date-time">
+ <view>
+ 预约时间:
+ <time-format format="HH:mm" value="{{ cardData.meetInfo.orderStartTime }}" />
+ <text>{{ ' ~ ' }}</text>
+ <time-format format="HH:mm" value="{{ cardData.meetInfo.orderEndTime }}" />
+ </view>
+ <view class="order-date-type">{{ cardData.meetInfo.meetWayName }}{{ pageType==='1' ? '调解' : '司法确认' }}</view>
+ </view>
+ <view>预约地点:{{ cardData.meetInfo.meetAddr || '-' }}</view>
+ </view>
+ </view>
+ <!-- 底部文件展示区 -->
+ <view class="action-bottom-text" wx:if="{{ bottomText.visible }}">
+ <!-- 文件展示 -->
+ <view catchtap="_handleOpenFiles" class="action-file {{ pageType === '1' ? 'action-file-color1' : 'action-file-color2' }}" data-item="{{ item }}" wx:for="{{ cardData.ownerTypeFile }}" wx:key="index">
+ <view class="action-file-name {{ pageType === '1' ? 'action-file-name-color1' : 'action-file-name-color2' }}">
+ <view>{{ pageType === '1' ? '调解' : '民事' }}</view>
+ <view>{{ pageType === '1' ? '协议' : '裁定' }}</view>
+ </view>
+ <view class="action-file-content">
+ <view class="action-file-content-name">{{ item.name }}</view>
+ <view class="action-file-content-btn {{ pageType === '1' ? 'action-file-content-btn-color1' : 'action-file-content-btn-color2' }}">点击查看</view>
+ </view>
+ </view>
+ </view>
+ <!-- 额外的操作 -->
+ <!-- <view class="simple" wx:if="{{ simple.visible }}">
+ <van-button catchtap="_handleSimpleButton" custom-class="simple-button" data-type="{{ item.type }}" size="small" type="{{ item.buttonType || 'default' }}" wx:for="{{ simple.button }}" wx:key="index">{{ item.title }}</van-button>
+ </view> -->
+ <view class="simple" wx:if="{{ simple.visible }}">
+ <van-button catchtap="_handleSimpleButton" custom-class="simple-button" data-type="{{ item.type }}" size="small" type="{{ item.buttonType || 'default' }}" wx:for="{{ simple.button }}" wx:key="index" wx:if="{{ item.type !== 'signIn' && item.type !== 'goToRoom' && item.type !== 'copy'}}">{{ item.title }}</van-button>
+ </view>
+
+
+
+
+ <!-- 新底部操作区 -->
+ <!-- -->
+ <block wx:if="{{ simple.visible && (simple.button[0].type === 'signIn' || simple.button[0].type === 'goToRoom') }}">
+ <view class="NewButton">
+ <block wx:for="{{ action }}" wx:key="{{ index }}">
+ <view wx:if="{{ index === 0}}" class="NewRedButton" catchtap="_handleBottomAction" data-type="{{ item.type }}">
+ <image src="/img/finish_1.png" class="img"></image>{{ item.title }}
+ </view>
+ <block wx:elif="{{ index === 1 }}">
+ <view class="NewRedButton" catchtap="_handleSimpleButton" custom-class="simple-button" data-type="{{ item.type }}" wx:if="{{ index === 0 }}" wx:for="{{ simple.button }}" wx:key="index">
+ <image src="/img/meeting_1.png" class="img" wx:if="{{ simple.button[0].type === 'goToRoom' }}"></image>
+ <image src="/img/arrive_1.png" class="img" wx:if="{{ simple.button[0].type === 'signIn' }}"></image>
+ <view>{{ item.title }}</view>
+ </view>
+ </block>
+ <view wx:if="{{ index === 2}}" class="NewRedButton1" catchtap="_handleBottomAction" data-type="{{ item.type }}">
+ {{ item.title }}
+ </view>
+ </block>
+ <view class="ButtonCover" wx:if="{{ showAdditionalContent }}">
+ <view class="ButtonCoverContent" bindtap="goToOtherPage">补充材料</view>
+ <view class="ButtonCoverContent" catchtap="_handleSimpleButton" custom-class="simple-button" data-type="{{ item.type }}" wx:if="{{ index === 1 }}" wx:for="{{ simple.button }}" wx:key="index">在线调解房间号</view>
+ </view>
+
+ </view>
+ <view class="action-bottom">
+
+ </view>
+ <view style="padding: 0 16px;">
+ <view class="case" wx:if="{{ showTip }}">
+ <view class="img-case_2">
+ <image src="/img/case_2.png" class="img"></image>
+ </view>
+ <view>
+ 通过与相似类案的大数据分析,建议您优先选择案件调解方式。这将有效为您节约时间和金钱成本,以更容易保持双方关系的方式让您收获满意的结果。
+ </view>
+ </view>
+ <view class="caseBox">
+ <view class="caseBox-title">
+ <image src="/img/case_1.png" class="img"></image>为您推荐与本案相似的典型案例
+ </view>
+ <!--wx:if="{{ index < 3 }}"-->
+ <view class="newBox">
+ <view class="caseBox-content" catch:tap="_classicCase" wx:for="{{ newGuideInfoList}}" wx:key="index" data-index="{{index}}">
+ <view class="caseBox-dot"></view>
+ <!-- {{item.caseSimilarity}} -->
+ <view class="caseBox-Item">{{item.guideTitle}}</view>
+ <view class="caseBox-arrow">
+ <van-icon name="arrow" size="8" />
+ </view>
+ </view>
+
+ </view>
+ <view class="caseLegalBox-title">
+ <image src="/img/case_1.png" class="img"></image>为您推荐与本案相关的专业法条
+ </view>
+ <view class="newBox1">
+ <view wx:for="{{NewLegalInfoList}}" x:key="index" data-key="{{ index }}" catch:tap="_m">
+ <view>
+ <view class="caseLegalBox-content">
+ <view class="caseLegalBox-dot"></view>
+ <view class="caseLegalBox-Item">{{item.guideText}}</view>
+ <view class="caseLegalBox-arrow">
+ <van-icon name="arrow-up" size="8" wx:if="{{ !item.showDetails }}" />
+ <van-icon name="arrow-down" size="8" wx:else />
+ </view>
+ </view>
+ <view wx:if="{{ item.showDetails }}">
+ <view style="background-color: #fff; padding:0 8px 8px 8px; font-size: 12px;">
+ <text>{{item.guideText}}</text>
+ </view>
+ </view>
+ </view>
+ </view>
+
+ </view>
+ <view class="evaluate">
+ <!-- <image class="img" src="/img/update_1.png" catch:tap="_v"></image>
+ <image class="img1" src="/img/Like_1.png" catch:tap="openPopup"></image> -->
+ </view>
+
+ </view>
+ </view>
+ </block>
+</view>
+<!-- <view class="action-bottom" wx:if="{{ bottomAction }}">
+ <view
+ catchtap="_handleBottomAction"
+ class="action-bottom-item"
+ data-type="{{ item.type }}"
+ wx:for="{{ action }}"
+ wx:if="{{ pageType === '2' && item.type === '1' ? false : index < 2 }}"
+ wx:key="index"
+ >
+ <view class="action-bottom-actionTitle1">{{ item.title }}</view>
+ </view>
+ </view> -->
+
+
+<!-- 底部操作区 -->
+<!-- <view class="action-bottom" wx:if="{{ bottomAction }}">
+ <view catchtap="_handleBottomAction" class="action-bottom-item" data-type="{{ item.type }}" wx:for="{{ action }}" wx:if="{{ pageType === '2' && item.type === '1' ? false : true }}" wx:key="index">
+ <van-icon custom-class="action-bottom-item-image" dot="{{ item.dot }}" name="{{ item.icon }}" />
+ <view class="action-bottom-actionTitle">{{ item.title }}</view>
+ </view>
+ </view> -->
+
+<view class="popup-box" wx:if="{{showModal}}">
+ <view class="overBox">
+ <view class="judgment">推荐内容评价</view>
+ <view class="help">推荐内容对您有什么帮助吗?</view>
+ <view class="star">
+ <van-rate v-model="value" :size="24" bind:change="onRateChange" color="rgba(255,146,0,1)" void-icon="star" void-color="#eee" gutter="16px" />
+ </view>
+ <view class="buttonBox">
+ <view class="think" catch:tap="openPopup">
+ 我再想想
+ </view>
+ <view class="judgmentFinish" catch:tap="_r">
+ 评价完成
+ </view>
+ </view>
+
+ </view>
+</view>
\ No newline at end of file
diff --git a/gz-wxparty/components/mediate-card/index.wxss b/gz-wxparty/components/mediate-card/index.wxss
new file mode 100644
index 0000000..eb0fce1
--- /dev/null
+++ b/gz-wxparty/components/mediate-card/index.wxss
@@ -0,0 +1,418 @@
+/* components/mediate-card/index.wxss */
+@import '../../styles/public_components.wxss';
+
+.color-black {
+ color: var(--text-color);
+}
+
+.color-black::before {
+ background-color: var(--text-color);
+}
+
+.color-tui {
+ color: var(--text-color);
+}
+
+.color-tui::before {
+ background-color: var(--text-color);
+}
+
+.color-dai {
+ color: #d16902;
+}
+
+.color-dai::before {
+ background-color: #d16902;
+}
+
+.color-ing {
+ color: #1989fa;
+}
+
+.color-ing::before {
+ background-color: #1989fa;
+}
+
+.color-end {
+ color: #05aeae;
+}
+
+.color-end::before {
+ background-color: #05aeae;
+}
+
+.color-fail {
+ color: #ee0a24;
+}
+
+.color-fail::before {
+ background-color: #ee0a24;
+}
+
+.card {
+ background-color: #ffffff;
+ border-radius: var(--border-radius-card);
+ overflow: hidden;
+}
+
+.card-active {
+ border: 2rpx solid var(--main-color);
+}
+
+.header {
+ height: 84rpx;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ border-bottom: 2rpx solid var(--border-color);
+ margin: 0 32rpx;
+ line-height: 28rpx;
+}
+
+.header-title {
+ display: flex;
+ align-items: center;
+ font-weight: 600;
+ position: relative;
+ color: var(--text-color);
+}
+
+.header-title::before {
+ content: '';
+ width: 8rpx;
+ height: 28rpx;
+ border-radius: 4rpx;
+ position: absolute;
+ left: -32rpx;
+ top: 4rpx;
+}
+
+.header-title-txt {
+ padding-right: 16rpx;
+}
+
+.simple {
+ text-align: right;
+ margin: 24rpx 0;
+}
+
+.simple-button {
+ margin-right: 32rpx;
+}
+
+.action-bottom {
+ display: flex;
+ border-top: 1px solid var(--border-color);
+ margin: 0 32rpx;
+ gap: 24rpx;
+}
+
+.action-bottom-actionTitle {
+ font-size: 24rpx;
+ line-height: 24rpx;
+ margin-top: 14rpx;
+}
+
+
+
+.action-bottom-text {
+ border-bottom: 1px solid var(--border-color);
+ margin: 0 32rpx;
+}
+
+.action-bottom-item {
+ flex: 1;
+ font-size: 28rpx;
+ text-align: center;
+ padding: 24rpx 0;
+}
+
+.action-bottom-item-image {
+ font-size: 70rpx !important;
+}
+
+.card-text {
+ font-size: 24rpx;
+ line-height: 40rpx;
+ padding: 16rpx 0;
+ border-bottom: 2rpx solid var(--border-color);
+ margin: 0 32rpx;
+}
+
+
+.card-text .card-cell {
+ padding: 0;
+}
+
+.explain {
+ background-color: var(--gray-4);
+ border-radius: var(--border-radius-card-sm);
+ padding: 16rpx;
+ margin: 0 32rpx;
+ margin-bottom: 24rpx;
+ font-size: 28rpx;
+}
+
+.explain-title {
+ margin-bottom: 8rpx;
+ font-weight: 600;
+ font-size: 24rpx;
+ line-height: 24rpx;
+}
+
+
+.NewButton {
+ display: flex;
+ flex-wrap: nowrap;
+ gap: 12px;
+ margin: 12px 16px;
+}
+
+.NewRedButton {
+ background-color: #FFE6E6;
+ min-width: 126px;
+ height: 32px;
+ border-radius: var(--border-radius-card-sm);
+ display: flex;
+ color: #D1021C;
+ justify-content: center;
+ align-items: center;
+}
+
+.NewRedButton1 {
+ background-color: #FFE6E6;
+ min-width: 48px;
+ height: 32px;
+ border-radius: var(--border-radius-card-sm);
+ display: flex;
+ color: #D1021C;
+ justify-content: center;
+ font-size: 16px;
+}
+
+.ButtonCover {
+ background-color: #FFE6E6;
+ width: 108px;
+ position: absolute;
+ z-index: 100;
+ right: 0;
+ margin-top: 38px;
+ margin-right: 23px;
+ color: #D1021C;
+ font-size: 12px;
+ border-radius: var(--border-radius-card-sm);
+}
+
+.ButtonCoverContent {
+ line-height: 20px;
+ margin: 8px auto 8px 12px;
+}
+
+.case {
+ background-color: rgba(24, 144, 255, 0.12);
+ color: rgba(24, 144, 255, 1);
+ border-radius: 4px;
+ margin-top: 12px;
+ padding: 4px 0;
+ margin-bottom: 8px;
+ font-size: 12px;
+ display: flex;
+ justify-content: space-between;
+ padding: 4px 8px 4px 8px;
+}
+
+.caseBox {
+ background-color: rgba(246, 247, 251, 1);
+ border-radius: var(--border-radius-card-sm);
+ padding: 0px 8px 0px 8px;
+}
+
+.caseBox-title {
+ color: rgba(0, 0, 0, 0.9);
+ font-size: 12px;
+ line-height: 20px;
+ display: flex;
+ align-items: center;
+ margin-bottom: 8px;
+ padding-top: 12px;
+}
+
+.caseLegalBox-title {
+ color: rgba(0, 0, 0, 0.9);
+ font-size: 12px;
+ line-height: 20px;
+ display: flex;
+ align-items: center;
+ padding-top: 12px;
+}
+
+.caseBox-content {
+ background-color: #fff;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 4px;
+}
+
+.caseLegalBox-content {
+ display: flex;
+ background-color: #fff;
+ align-items: center;
+ margin-top: 8px;
+ justify-content: center;
+}
+
+.caseBox-dot {
+ height: 6px;
+ width: 6px;
+ border-radius: 50%;
+ background-color: rgba(217, 217, 217, 0.6);
+}
+
+.caseLegalBox-dot {
+ height: 6px;
+ width: 6px;
+ border-radius: 50%;
+ background-color: rgba(217, 217, 217, 0.6);
+ margin-left: 8px;
+ margin-right: 4px;
+}
+
+
+.caseBox-Item {
+ font-size: 12px;
+ margin: 8px 13px 8px 6px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 250px;
+}
+
+.caseLegalBox-Item {
+ font-size: 12px;
+ margin: 8px 13px 8px 6px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ width: 250px;
+}
+
+.caseBox-arrow {
+ width: 16px;
+ height: 16px;
+ border-radius: 50%;
+ background-color: rgba(246, 247, 251, 1);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.caseLegalBox-arrow {
+ width: 16px;
+ height: 16px;
+ border-radius: 50%;
+ background-color: rgba(246, 247, 251, 1);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-right: 8px;
+}
+
+.img-case_2 {
+ display: flex;
+ margin-top: 4px;
+}
+
+.img {
+ height: 12px;
+ width: 12px;
+ margin-right: 4px;
+}
+
+.img1 {
+ height: 12px;
+ width: 12px;
+ margin-right: 1px;
+}
+
+.evaluate {
+ display: flex;
+ justify-content: flex-end;
+ gap: 18px;
+ margin-top: 12px;
+ margin-bottom: 13px;
+ padding-bottom: 13px;
+}
+
+/* 蒙层 */
+.popup-box {
+ position: fixed;
+ z-index: 100;
+ top: 0;
+ left: 0;
+ background-color: rgba(0, 0, 0, 0.5);
+ width: 100%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.overBox {
+ background-color: #fff;
+ width: 300px;
+ z-index: 101;
+ position: absolute;
+ box-shadow: 0px 8px 24px 0px rgba(0, 0, 0, 0.16);
+ border-radius: 8px;
+}
+
+.judgment {
+ font-size: 17px;
+ line-height: 24px;
+ display: flex;
+ justify-content: center;
+ margin-top: 20px;
+}
+
+.help {
+ color: rgba(23, 26, 29, 0.6);
+ font-size: 14px;
+ margin: 12px 20px;
+}
+
+.star {
+ z-index: 102;
+ margin: 0px 20px 16PX 20PX;
+}
+
+.buttonBox {
+ display: flex;
+ border-top: 1px solid rgba(126, 134, 142, 0.16);
+ height: 48px;
+ font-size: 17px;
+}
+
+.think {
+ flex: 1;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-right: 1px solid rgba(126, 134, 142, 0.16);
+}
+
+.judgmentFinish {
+ flex: 1;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: rgba(209, 2, 28, 1);
+}
+
+.newBox {
+ max-height: 125px;
+ overflow-y: auto;
+}
+
+
+
diff --git a/gz-wxparty/components/mediate-detail/index.js b/gz-wxparty/components/mediate-detail/index.js
new file mode 100644
index 0000000..6981636
--- /dev/null
+++ b/gz-wxparty/components/mediate-detail/index.js
@@ -0,0 +1,163 @@
+const $$ = require('../../utils/util');
+
+Component({
+ /**
+ * 组件的属性列表
+ */
+ properties: {
+ pageType: String, // '1':我的调解; '2':我的司法确认, '3':登记页面
+ caseData: {
+ // 案件数据
+ type: Object,
+ value: {},
+ },
+ materialNum: String, // 相关材料数量,只有申请调解时查看才会传递
+ type: {
+ // '1':待受理;'2':待调解(待开始);'3':调解中(进行中);'4':调解结束(已结束);'5':调解-退回;'6':不予受理;'7':异常终止
+ type: String,
+ value: '1',
+ },
+ },
+
+ /**
+ * 组件的初始数据
+ */
+ data: {
+ imgUrl: $$.url.img,
+ titleShow: {
+ '09_01001-1': ['自然人', '姓名', '真实姓名'],
+ '09_01001-2': ['法人', '企业名称', '企业全名', '法定代表人姓名'],
+ '09_01001-3': ['机构代表人', '机构名称', '机构全名', '机构代表人姓名'],
+ },
+ partyList: [], // 申请人 or 被申请人 or 代理人信息
+ sealVisible: '', // 退回 or 不予受理 or 异常终止显示
+ mediateVisible: false, // 调解信息是否显示
+ mediate_fileInfoList: [],
+ mediate_data: [],
+ judicialVisible: false, // 司法确认信息是否显示
+ judicial_fileInfoList: [],
+ judicial_data: [],
+ caseClaimHtml: '',
+ caseDesHtml: '',
+ },
+
+ observers: {
+ 'caseData.id,caseData.process': function () {
+ if (this.data.pageType === '1') {
+ this._mediateData(this.data.caseData);
+ }
+ if (this.data.pageType === '2') {
+ this._judicialData(this.data.caseData.judicInfo, this.data.caseData);
+ this._mediateData(this.data.caseData.caseInfo);
+ }
+ if (this.data.pageType === '3') {
+ this.data.caseData.fileSize = this.data.materialNum;
+ this._mediateData(this.data.caseData);
+ }
+ },
+ },
+
+ /**
+ * 组件的方法列表
+ */
+ methods: {
+ // 整理司法确认数据
+ _judicialData(data, caseData) {
+ let fileInfoList = [];
+ data.fileInfoList?.forEach((x) => {
+ fileInfoList = fileInfoList.concat(x.fileList || []);
+ });
+ // 判断展示
+ let judicialVisible = false;
+ let sealVisible = '';
+ let obj = {};
+ // 判断司法确认信息展示
+ if (['1', '6', '7'].indexOf(this.data.type) === -1) {
+ judicialVisible = true;
+ }
+ if (this.data.type === '6' || this.data.type === '7') {
+ sealVisible = caseData.processName;
+ }
+ obj = { judicialVisible: judicialVisible, sealVisible: sealVisible };
+ this.setData({
+ judicial_data: data,
+ mediateVisible: true,
+ judicial_fileInfoList: fileInfoList,
+ ...obj,
+ });
+ },
+ // 整理调解数据
+ _mediateData(data) {
+ // 合并当事人
+ let partyList = [];
+ let plaintiffList = [];
+ data.plaintiffList?.forEach((x, t) => {
+ plaintiffList.push({ ...x, type: 'plaintiffList', orderNum: data.plaintiffList.length !== 1 && t + 1 });
+ });
+ let defendantList = [];
+ data.defendantList?.forEach((x, t) => {
+ defendantList.push({ ...x, type: 'defendantList', orderNum: data.defendantList.length !== 1 && t + 1 });
+ });
+ partyList = [...plaintiffList, ...defendantList];
+ let fileInfoList = [];
+ data.fileInfoList?.forEach((x) => {
+ fileInfoList = fileInfoList.concat(x.fileList || []);
+ });
+ // 判断展示
+ let mediateVisible = false;
+ let sealVisible = '';
+ let obj = {};
+ // 判断调解信息展示
+ if (this.data.pageType === '1') {
+ if (['1', '5', '6', '7'].indexOf(this.data.type) === -1) {
+ mediateVisible = true;
+ }
+ if (this.data.type === '5') {
+ sealVisible = data.caseStatusName;
+ }
+ if (this.data.type === '6' || this.data.type === '7') {
+ sealVisible = data.processName;
+ }
+ obj = { mediateVisible: mediateVisible, sealVisible: sealVisible };
+ }
+ this.setData({
+ mediate_data: data,
+ partyList: partyList,
+ mediate_fileInfoList: fileInfoList,
+ caseClaimHtml: `<pre class="pre">${data.caseClaim || '-'}</pre>`,
+ caseDesHtml: `<pre class="pre">${data.caseDes || '-'}</pre>`,
+ ...obj,
+ });
+ },
+ // 打开文件
+ _handleOpenFiles(e) {
+ let item = e.currentTarget.dataset.item;
+ let url = $$.baseUrl + $$.url.fileShowUrl + item.id;
+ $$.openFiles(item.cat, url, [url]);
+ },
+ // 复制
+ _handleCopy(e) {
+ let text = e.currentTarget.dataset.text;
+ if (!text) {
+ $$.showToast({ title: '暂无房间号' });
+ return;
+ }
+ wx.setClipboardData({
+ data: text,
+ success: function (res) {
+ wx.getClipboardData({
+ success: function (res) {
+ $$.showToast({ icon: 'success', title: '复制成功' });
+ },
+ });
+ },
+ });
+ },
+ // 跳转至材料上传页面
+ handleGoToMaterial(e) {
+ wx.navigateTo({
+ url: '../../pages/materialShow/index?caseId=' + e.currentTarget.dataset.id,
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/components/mediate-detail/index.json b/gz-wxparty/components/mediate-detail/index.json
new file mode 100644
index 0000000..1def063
--- /dev/null
+++ b/gz-wxparty/components/mediate-detail/index.json
@@ -0,0 +1,8 @@
+{
+ "component": true,
+ "usingComponents": {
+ "ellipsis-text": "../ellipsis-text/index",
+ "file-card": "../file-card/index",
+ "time-format": "../time-format/index"
+ }
+}
diff --git a/gz-wxparty/components/mediate-detail/index.wxml b/gz-wxparty/components/mediate-detail/index.wxml
new file mode 100644
index 0000000..637e91d
--- /dev/null
+++ b/gz-wxparty/components/mediate-detail/index.wxml
@@ -0,0 +1,269 @@
+<!--调解详情 or 司法确认详情组件-->
+<wxs module="wxs" src="../../utils/wxs/util.wxs" />
+
+<!-- 司法确认信息 -->
+<view class="card" wx:if="{{ judicialVisible }}">
+ <view class="user">
+ <image class="user-avatar" src="{{ imgUrl }}avatar-fg.png" />
+ <view class="user-content">
+ <view class="user-content-header">
+ <view class="user-content-header-title">{{ judicial_data.judgeName || '-' }}</view>
+ <van-icon color="#232323" name="phone-circle-o" size="16" />
+ <view class="user-content-header-phone" style="color:#232323">{{ judicial_data.judgeMobile || '-' }}</view>
+ </view>
+ <view class="user-content-subTitle">
+ <ellipsis-text content="承办法官 | {{ judicial_data.courtName || '-' }}" fontsize="24" />
+ </view>
+ </view>
+ </view>
+ <!-- 待开始 - 预约信息 -->
+ <view class="order" wx:if="{{ type === '2' && !!judicial_data.orderStartTime }}">
+ <view class="order-date">
+ <view class="order-date-day">
+ <time-format format="DD" value="{{ judicial_data.orderStartTime }}" />号
+ </view>
+ <view class="order-date-month">
+ <time-format format="M" value="{{ judicial_data.orderStartTime }}" />月
+ </view>
+ </view>
+ <view style="flex: 1;">
+ <view class="order-date-time">
+ <view>
+ 预约时间:
+ <time-format format="HH:mm" value="{{ judicial_data.orderStartTime }}" />
+ <text>{{ ' ~ ' }}</text>
+ <time-format format="HH:mm" value="{{ judicial_data.orderEndTime }}" />
+ </view>
+ <view class="order-date-type">{{ judicial_data.meetWayName }}调解</view>
+ </view>
+ <view>预约地点:{{ judicial_data.meetAddr || '-' }}</view>
+ </view>
+ </view>
+ <!-- 进行中 - 司法确认信息 -->
+ <view class="mediateMsg mediateMsg-judge" wx:if="{{ type === '3' && !!judicial_data.judicStartTime }}">
+ <view>司法确认开始时间:{{ judicial_data.judicStartTime || '-' }}</view>
+ <view>司法确认地点:{{ judicial_data.meetAddr || '-' }}</view>
+ <view>司法确认方式:{{ judicial_data.meetWayName || '-' }}</view>
+ <view style="display:flex">
+ 线上司法确认房间号:{{ judicial_data.roomNo || '-' }}
+ <view bind:tap="_handleCopy" class="mediateMsg-copy" data-text="{{ judicial_data.roomNo }}">
+ <van-icon name="{{ imgUrl }}copy.png" size="12" />
+ <view style="padding-left:8rpx">复制</view>
+ </view>
+ </view>
+ </view>
+ <!-- 司法确认结束 -->
+ <block wx:if="{{ type === '4' }}">
+ <view class="mediateMsg mediateMsg-judge mediateMsg-margin">
+ <view>司法确认时间:{{ judicial_data.judicStartTime || '-' }} ~ {{ judicial_data.judicEndTime || '-' }}</view>
+ <view>司法确认地点:{{ judicial_data.meetAddr || '-' }}</view>
+ <view>司法确认方式:{{ judicial_data.meetWayName || '-' }}</view>
+ <view>
+ 司法确认结果:
+ <text style="color: {{ judicial_data.judicResult === '22_00028-1' ? '#07c160' : '#ee0a24' }};">{{ judicial_data.judicResultName || '-' }}</text>
+ </view>
+ </view>
+ <view
+ catchtap="_handleOpenFiles"
+ class="action-file action-file-color2"
+ data-item="{{ item }}"
+ style="{{ judicial_fileInfoList.length - 1 === index ? 'margin-bottom: 0;' : '' }}"
+ wx:for="{{ judicial_fileInfoList }}"
+ wx:key="index"
+ >
+ <view class="action-file-name action-file-name-color2">
+ <view>民事</view>
+ <view>裁定</view>
+ </view>
+ <view class="action-file-content">
+ <view class="action-file-content-name">{{ item.name }}</view>
+ <view class="action-file-content-btn action-file-content-btn-color2">点击查看</view>
+ </view>
+ </view>
+ </block>
+</view>
+
+<!-- 调解信息 -->
+<view class="card" wx:if="{{ mediateVisible }}">
+ <view class="user">
+ <image class="user-avatar" src="{{ imgUrl }}avatar-tjy.png" />
+ <view class="user-content">
+ <view class="user-content-header">
+ <view class="user-content-header-title">{{ mediate_data.mediator || '-' }}</view>
+ <van-icon color="#71B4E3" name="phone-circle-o" size="16" />
+ <view class="user-content-header-phone" style="color:#71B4E3">{{ mediate_data.mediatorMobile || '-' }}</view>
+ </view>
+ <view class="user-content-subTitle">
+ <ellipsis-text content="调解员 | {{ mediate_data.mediateUnitName || '-' }}" fontsize="24" />
+ </view>
+ </view>
+ </view>
+ <block wx:if="{{ pageType === '1' }}">
+ <!-- 待调解 - 预约信息 -->
+ <view class="order" wx:if="{{ type === '2' && !!mediate_data.meetInfo.orderStartTime }}">
+ <view class="order-date">
+ <view class="order-date-day">
+ <time-format format="DD" value="{{ mediate_data.meetInfo.orderStartTime }}" />号
+ </view>
+ <view class="order-date-month">
+ <time-format format="M" value="{{ mediate_data.meetInfo.orderStartTime }}" />月
+ </view>
+ </view>
+ <view style="flex: 1;">
+ <view class="order-date-time">
+ <view>
+ 预约时间:
+ <time-format format="HH:mm" value="{{ mediate_data.meetInfo.orderStartTime }}" />
+ <text>{{ ' ~ ' }}</text>
+ <time-format format="HH:mm" value="{{ mediate_data.meetInfo.orderEndTime }}" />
+ </view>
+ <view class="order-date-type">{{ mediate_data.meetInfo.meetWayName }}调解</view>
+ </view>
+ <view>预约地点:{{ mediate_data.meetInfo.meetAddr || '-' }}</view>
+ </view>
+ </view>
+ <!-- 调解中 - 调解信息 -->
+ <view class="mediateMsg" wx:if="{{ type === '3' && !!mediate_data.mediStartTime }}">
+ <view>调解开始时间:<time-format value="{{ mediate_data.mediStartTime }}" /></view>
+ <view>调解地点:{{ mediate_data.meetInfo.meetAddr || '-' }}</view>
+ <view>调解方式:{{ mediate_data.meetInfo.meetWayName || '-' }}</view>
+ <view style="display:flex">
+ 线上调解房间号:{{ mediate_data.meetInfo.roomNo || '-' }}
+ <view bind:tap="_handleCopy" class="mediateMsg-copy" data-text="{{ mediate_data.meetInfo.roomNo }}">
+ <van-icon name="{{ imgUrl }}copy.png" size="12" />
+ <view style="padding-left:8rpx">复制</view>
+ </view>
+ </view>
+ </view>
+ </block>
+ <!-- 调解结束 -->
+ <block wx:if="{{ type === '4' || pageType === '2'}}">
+ <view class="mediateMsg mediateMsg-margin">
+ <view wx:if="{{ judicialVisible }}">调解案号:{{ mediate_data.caseNo || '-' }}</view>
+ <view>
+ 调解时间:
+ <time-format value="{{ mediate_data.mediStartTime }}" />
+ <text>{{' ~ '}}</text>
+ <time-format value="{{ mediate_data.mediEndTime }}" />
+ </view>
+ <view>调解地点:{{ mediate_data.meetInfo.meetAddr || '-' }}</view>
+ <view>调解方式:{{ mediate_data.meetInfo.meetWayName || '-' }}</view>
+ <view>
+ 调解结果:
+ <text style="color: {{ mediate_data.mediResult === '22_00025-1' ? '#07c160' : '#ee0a24' }};">{{ mediate_data.mediResultName || '-' }}</text>
+ </view>
+ </view>
+ <view
+ catchtap="_handleOpenFiles"
+ class="action-file action-file-color1"
+ data-item="{{ item }}"
+ style="{{ mediate_fileInfoList.length - 1 === index ? 'margin-bottom: 0;' : '' }}"
+ wx:for="{{ mediate_fileInfoList }}"
+ wx:key="index"
+ >
+ <view class="action-file-name action-file-name-color1">
+ <view>调解</view>
+ <view>协议</view>
+ </view>
+ <view class="action-file-content">
+ <view class="action-file-content-name">{{ item.name }}</view>
+ <view class="action-file-content-btn action-file-content-btn-color1">点击查看</view>
+ </view>
+ </view>
+ </block>
+</view>
+
+<!-- 纠纷信息 -->
+<block>
+ <!-- 意向组织 or 意向调解员 -->
+ <view
+ class="card card2"
+ style="background: linear-gradient(95deg,rgba(173,198,255,0.50) 0%, rgba(214,228,255,0.80) 4%, rgba(214,228,255,0.55) 100%)"
+ wx:if="{{ mediate_data.wantUserId || mediate_data.wantUnitId }}"
+ >
+ <view class="cell">
+ <view class="cell-title">意向{{ mediate_data.wantUserId ? '调解员' : '调解组织' }}</view>
+ <view class="cell-select">{{ mediate_data.wantUserId ? mediate_data.wantUserName : mediate_data.wantUnitName }}</view>
+ </view>
+ </view>
+ <view class="card">
+ <view class="cell3">
+ <view class="cell-title-placeholder">纠纷发生地</view>
+ <view>{{ mediate_data.prov ? wxs.showLocation(mediate_data) : '-' }}</view>
+ </view>
+ <view class="cell3">
+ <view class="cell-title-placeholder">纠纷发生详址</view>
+ <view>{{ mediate_data.addr || '-' }}</view>
+ </view>
+ <view class="cell3">
+ <view class="cell-title-placeholder">纠纷类型</view>
+ <view>{{ mediate_data.caseTypeName || '-' }}</view>
+ </view>
+ <view class="cell3">
+ <view class="cell-title-placeholder">纠纷描述</view>
+ <view>
+ <rich-text nodes="{{ caseDesHtml }}"></rich-text>
+ </view>
+ </view>
+ <view class="cell3">
+ <view class="cell-title-placeholder">调解请求</view>
+ <view>
+ <rich-text nodes="{{ caseClaimHtml }}"></rich-text>
+ </view>
+ </view>
+ </view>
+ <!-- 申请人 and 被申请人 -->
+ <view class="card card3">
+ <block wx:for="{{ partyList }}" wx:key="index">
+ <view class="party">
+ <view class="party-img {{ item.type === 'plaintiffList' ? 'party-img-shen' : 'party-img-bei' }}">{{ item.type === 'plaintiffList' ? '申请' : '被申' }}</view>
+ <view class="party-content">
+ <view class="party-content-title">
+ <view class="party-content-title-name">
+ <ellipsis-text content="{{ item.trueName }}" />
+ </view>
+ <view class="party-content-title-phone">{{ item.mobile }}</view>
+ </view>
+ <view class="party-content-subTitle">
+ <ellipsis-text
+ content="{{ titleShow[item.perClass][0] }}{{ !!item.deputy ? ' | ' : '' }}{{ item.deputy || '' }}{{ item.certiNo ? ' | ' : '' }}{{ item.certiNo }}"
+ fontsize="24"
+ />
+ </view>
+ </view>
+ </view>
+ <!-- 代理人 -->
+ <view class="party" wx:if="{{ !!item.agent }}">
+ <view class="party-img party-img-shen">{{ item.type === 'plaintiffList' ? '申请' : '被申' }}</view>
+ <view class="party-content">
+ <view class="party-content-title">
+ <view class="party-content-title-name">
+ <ellipsis-text content="{{ item.agent.trueName }}" />
+ </view>
+ <view class="party-content-title-phone">{{ item.agent.mobile }}</view>
+ <view class="tag {{ item.type === 'plaintiffList' ? 'tag-cyan' : 'tag-orange' }}" style="margin-left:16rpx">代理人</view>
+ </view>
+ <view class="party-content-subTitle">
+ <ellipsis-text content="代理对象 | {{ item.trueName }}" fontsize="24" />
+ </view>
+ </view>
+ </view>
+ </block>
+ </view>
+ <!-- 纠纷材料 -->
+ <view class="card card2">
+ <view bindtap="handleGoToMaterial" class="cell" data-id="{{ mediate_data.id }}">
+ <view class="cell-title">纠纷材料</view>
+ <view class="cell-select">{{ mediate_data.fileSize || 0 }}份资料</view>
+ <view class="cell-arrow">
+ <van-icon name="arrow" />
+ </view>
+ </view>
+ </view>
+</block>
+
+<!-- 退回 or 不予受理 or 异常终止显示 -->
+<view class="seal" wx:if="{{ !!sealVisible }}">
+ <image class="seal-image" src="{{ imgUrl }}detail-seal.png" />
+ <view class="seal-text">{{ sealVisible || '不予受理' }}</view>
+</view>
diff --git a/gz-wxparty/components/mediate-detail/index.wxss b/gz-wxparty/components/mediate-detail/index.wxss
new file mode 100644
index 0000000..3278a00
--- /dev/null
+++ b/gz-wxparty/components/mediate-detail/index.wxss
@@ -0,0 +1,121 @@
+/* components/mediate-detail/index.wxss */
+@import '../../styles/public_components.wxss';
+
+.card {
+ padding: 24rpx 32rpx;
+ background-color: #ffffff;
+ margin: 0 var(--padding-my);
+ border-radius: var(--border-radius-card);
+ margin-top: 16rpx;
+}
+
+.card2 {
+ padding: 0 32rpx;
+}
+
+.card3 {
+ padding: 4rpx 32rpx;
+}
+
+.user {
+ display: flex;
+ align-items: center;
+}
+
+.user-avatar {
+ width: 88rpx;
+ height: 88rpx;
+ margin-right: 16rpx;
+}
+
+.user-content {
+ flex: 1;
+ overflow: hidden;
+}
+
+.user-content-header {
+ display: flex;
+ align-items: center;
+}
+
+.user-content-header-title {
+ font-weight: 600;
+ margin-right: 16rpx;
+}
+
+.user-content-header-phone {
+ font-size: 24rpx;
+ margin-left: 8rpx;
+}
+
+.user-content-subTitle {
+ font-size: 24rpx;
+ line-height: 40rpx;
+ color: var(--second-text-color);
+}
+
+.order {
+ margin-left: 0;
+ margin-right: 0;
+}
+
+.mediateMsg {
+ background-color: rgba(113, 180, 227, 0.1);
+ border-radius: 10rpx;
+ font-size: 24rpx;
+ line-height: 40rpx;
+ padding: 24rpx 32rpx;
+ margin-top: 16rpx;
+}
+
+.mediateMsg-judge {
+ background-color: rgba(249, 241, 189, 0.6);
+}
+
+.mediateMsg-margin {
+ margin-bottom: 24rpx;
+}
+
+.mediateMsg-copy {
+ position: relative;
+ display: flex;
+ align-items: center;
+ padding-left: 8rpx;
+ margin-left: 8rpx;
+}
+
+.mediateMsg-copy::before {
+ content: '';
+ position: absolute;
+ left: 0;
+ height: 24rpx;
+ width: 2rpx;
+ background-color: var(--text-color);
+}
+
+.seal {
+ position: absolute;
+ z-index: 999;
+ transform: rotate(13deg);
+ right: var(--padding-my);
+ top: 150rpx;
+}
+
+.seal-image {
+ width: 360rpx;
+ height: 120rpx;
+}
+
+.seal-text {
+ position: absolute;
+ font-size: 40rpx;
+ line-height: 60rpx;
+ letter-spacing: 20rpx;
+ top: 30rpx;
+ z-index: 999;
+ left: 0;
+ right: 0;
+ text-align: center;
+ font-weight: 600;
+ color: #fc5159;
+}
diff --git a/gz-wxparty/components/personal-data-dom/index.js b/gz-wxparty/components/personal-data-dom/index.js
new file mode 100644
index 0000000..99b2337
--- /dev/null
+++ b/gz-wxparty/components/personal-data-dom/index.js
@@ -0,0 +1,197 @@
+// components/personal-data-dom/index.js
+const $$ = require('../../utils/util');
+const app = getApp();
+
+
+// 获取信息
+function getUserInfoApi() {
+ return $$.request({
+ url: 'paUser/getUserInfo',
+ type: 'get',
+ service: 'cust'
+ });
+}
+
+Component({
+ /**
+ * 组件的属性列表
+ * submitData: object form数据
+ * type: string 判断当前使用组件的页面realNameAuthentication为实名认证页面
+ * isCheck: boolean 判断是否只读不可修改
+ * isImproveData: boolean 判断是否是完善资料,则不显示证件信息
+ */
+ properties: {
+ submitData: {
+ type: Object,
+ value: {},
+ },
+ type: {
+ type: String,
+ value: '',
+ },
+ isCheck: {
+ type: Boolean,
+ value: false,
+ },
+ isImproveData: {
+ type: Boolean,
+ value: false,
+ },
+ },
+
+ /**
+ * 组件的初始数据
+ */
+ select: {}, // 下拉框资源
+ location: [],
+ data: {},
+
+ pageLifetimes: {
+ show() {
+ $$.showLoading();
+ this._getSelectOptionData();
+ this._getLocationData();
+ this._getUserInfo();
+ },
+ },
+
+ /**
+ * 组件的方法列表
+ */
+ methods: {
+ //
+ _handleChange(e) {
+ let key = e.currentTarget.dataset.key;
+ if (key === 'clearidcard') {
+ this.triggerEvent('handleChange', {
+ key: 'idcard',
+ value: ''
+ });
+ } else {
+ this.triggerEvent('handleChange', {
+ key,
+ value: e.detail
+ });
+ }
+ },
+ // 展示弹出层
+ _handleShowPopup(e) {
+ if (this.data.isCheck) {
+ return false;
+ }
+ let type = e.currentTarget.dataset.type;
+ let title = e.currentTarget.dataset.title;
+ let selectData = [];
+ if (type === 'location') {
+ let selectOption = JSON.parse(JSON.stringify(this.location));
+ let indexArr = $$.getLocationIndex(selectOption, this.data.submitData);
+ selectData = [{
+ values: selectOption,
+ defaultIndex: indexArr[0]
+ },
+ {
+ values: selectOption[indexArr[0]].children,
+ defaultIndex: indexArr[1]
+ },
+ {
+ values: selectOption[indexArr[0]].children[indexArr[1]].children || [],
+ defaultIndex: indexArr[2]
+ },
+ {
+ values: selectOption[indexArr[0]].children[indexArr[1]].children[indexArr[2]].children || [],
+ defaultIndex: indexArr[3]
+ },
+ ];
+ selectData.forEach((x) => {
+ x.values.forEach((y) => {
+ delete y.children;
+ });
+ });
+ } else {
+ let selectOption = this.select[type];
+ selectData = selectOption;
+ }
+ this.triggerEvent('handleShowPopup', {
+ visible: true,
+ title: title,
+ type: type,
+ selectData: selectData,
+ });
+ },
+ // 获取手机号码
+ _handleGetPhoneNumber(e) {
+ this.triggerEvent('handleGetPhoneNumber', e.detail.code);
+ },
+ // 获取个人信息
+ async _getUserInfo() {
+ console.log('个人信息')
+ console.log(app.globalData.access_token, 'app.globalData.access_token1111111')
+ // const res = await getUserInfoApi();
+ // $$.hideLoading();
+ // if (res.type) {
+ // this.triggerEvent('getUserInfo', res.data);
+ // }
+ const res = await getUserInfoApi();
+ $$.hideLoading();
+ if (res.type) {
+ if(res.data.trueName !== null)
+ this.triggerEvent('getUserInfo', res.data);
+ }
+ if (app.globalData.access_token && res.data.trueName === null) {
+ let actoken = app.globalData.access_token;
+ wx.request({
+ url: 'https://xcx.pinganbaiyun.cn/p_060_cs_intf/api_001/sv_002_get_paby_login_info', //仅为示例,并非真实的接口地址
+ data: {
+ "access_token": '测试token',
+ "app_id": "测试",
+ "secret": "测试"
+ },
+ method: 'post',
+ success: (res1) => {
+ $$.hideLoading();
+ this.triggerEvent('getUserInfo', {
+ ...res1.data[0],
+ trueName: res1.data[0].XM,
+ idcard: res1.data[0].ZJHM,
+ mobile: res1.data[0].LXDH
+ });
+ }
+ })
+ }
+
+
+
+ },
+ // 请求下拉框资源
+ async _getSelectOptionData() {
+ const res = await $$.commonRequest({
+ url: `${$$.url.assets}selectOption.json`,
+ type: 'get'
+ });
+ if (res) {
+ this.select = {
+ cardType: [],
+ sex: [],
+ };
+ this.select.cardType = res.data.cardType || [];
+ this.select.sex = res.data.sex || [];
+ }
+ },
+ // 获取省市区等地理资源
+ async _getLocationData() {
+ $$.showLoading();
+ const res = await $$.commonRequest({
+ url: `${$$.url.assets}locationSelect.json`,
+ type: 'get'
+ });
+ $$.hideLoading();
+ if (res) {
+ let location = [];
+ $$.province.forEach((x) => {
+ location.push(res[x][0]);
+ });
+ this.location = location;
+ }
+ },
+ },
+});
\ No newline at end of file
diff --git a/gz-wxparty/components/personal-data-dom/index.json b/gz-wxparty/components/personal-data-dom/index.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/gz-wxparty/components/personal-data-dom/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/gz-wxparty/components/personal-data-dom/index.wxml b/gz-wxparty/components/personal-data-dom/index.wxml
new file mode 100644
index 0000000..da3c114
--- /dev/null
+++ b/gz-wxparty/components/personal-data-dom/index.wxml
@@ -0,0 +1,81 @@
+<!--完善资料页面 和 实名认证页面的form表单公用组件-->
+<wxs module="wxs" src="../../utils/wxs/util.wxs" />
+
+<van-cell-group border="{{false}}">
+ <van-field
+ bind:change="_handleChange"
+ clearable
+ data-key="trueName"
+ label="真实姓名"
+ placeholder="请输入"
+ readonly="{{ isCheck }}"
+ required="{{ type === 'realNameAuthentication' ? true : false }}"
+ value="{{ submitData.trueName || '' }}"
+ />
+ <van-field
+ wx:if="{{ !isImproveData }}"
+ bindtap="_handleShowPopup"
+ data-title="证件类型"
+ data-type="cardType"
+ is-link="{{ !isCheck }}"
+ label="证件类型"
+ placeholder="请选择"
+ readonly
+ value="{{ submitData.idcardTypeName || '' }}"
+ />
+ <van-field
+ wx:if="{{ !isImproveData }}"
+ bind:change="_handleChange"
+ data-key="idcard"
+ label="证件号码"
+ placeholder="请输入"
+ readonly="{{ isCheck }}"
+ required="{{ type === 'realNameAuthentication' ? true : false }}"
+ type="idcard"
+ value="{{ submitData.idcard || '' }}"
+ />
+ <van-field
+ bind:change="_handleChange"
+ data-key="mobile"
+ label="联系方式"
+ placeholder="请输入"
+ readonly="{{ isCheck }}"
+ required="{{ type === 'realNameAuthentication' ? true : false }}"
+ type="number"
+ value="{{ submitData.mobile || '' }}"
+ >
+ <view slot="button" style="display: {{ isCheck ? 'none' : '' }};">
+ <van-button bindgetphonenumber="_handleGetPhoneNumber" open-type="getPhoneNumber" size="small" type="primary">点击获取</van-button>
+ </view>
+ </van-field>
+ <block wx:if="{{ type !== 'realNameAuthentication' }}">
+ <van-field
+ bindtap="_handleShowPopup"
+ data-title="性别"
+ data-type="sex"
+ is-link="{{ !isCheck }}"
+ label="性别"
+ placeholder="请选择"
+ readonly
+ value="{{ submitData.sexName || '' }}"
+ />
+ </block>
+ <van-field
+ bindtap="_handleShowPopup"
+ data-title="居住地"
+ data-type="location"
+ is-link="{{ !isCheck }}"
+ label="居住地"
+ placeholder="省/市/区(县)/街道"
+ readonly
+ value="{{ submitData.prov ? wxs.showLocation(submitData) : '' }}"
+ />
+ <block wx:if="{{ type === 'realNameAuthentication' }}">
+ <van-cell border="{{ false }}">
+ <van-checkbox bind:change="_handleChange" data-key="agree" shape="square" slot="title" value="{{ submitData.agree || false }}">
+ <text class="form-text">我同意并授权以上信息用于矛盾纠纷的调解申请、进度查询等操作</text>
+ </van-checkbox>
+ </van-cell>
+ </block>
+ <slot></slot>
+</van-cell-group>
diff --git a/gz-wxparty/components/personal-data-dom/index.wxss b/gz-wxparty/components/personal-data-dom/index.wxss
new file mode 100644
index 0000000..dc16b2d
--- /dev/null
+++ b/gz-wxparty/components/personal-data-dom/index.wxss
@@ -0,0 +1 @@
+/* components/personal-data-dom/index.wxss */
\ No newline at end of file
diff --git a/gz-wxparty/components/recording/index.js b/gz-wxparty/components/recording/index.js
new file mode 100644
index 0000000..f6ea5d8
--- /dev/null
+++ b/gz-wxparty/components/recording/index.js
@@ -0,0 +1,186 @@
+// components/recording/index.js
+const $$ = require('../../utils/util');
+const app = getApp();
+
+Component({
+ /**
+ * 组件的属性列表
+ */
+ properties: {},
+
+ /**
+ * 组件的初始数据
+ */
+ countdown: null,
+ recordMannager: null,
+ data: {
+ imgUrl: $$.url.img,
+ overlayShow: false,
+ second: 60, // 录音时长
+ recordVisible: false, // 是否开启录音
+ popup: {
+ visible: false,
+ content: '',
+ },
+ tooltipVisible: false,
+ },
+
+ pageLifetimes: {
+ hide: function () {
+ if (this.countdown) {
+ clearInterval(this.countdown);
+ }
+ if (this.recordMannager) {
+ this.recordMannager.stop();
+ }
+ },
+ },
+
+ /**
+ * 组件的方法列表
+ */
+ methods: {
+ // 使用改文字
+ _handleUseWords() {
+ this.triggerEvent('getwords', this.data.popup.content);
+ this.setData({ popup: { visible: false, content: '' }, overlayShow: false });
+ },
+ // 修改文字
+ _handleChangeWords(e) {
+ this.data.popup.content = e.detail;
+ this.setData({ popup: this.data.popup });
+ },
+ // 语音转文字
+ _transferText(e) {
+ $$.showLoading();
+ let speakUrl = e.tempFilePath;
+ let that = this;
+ wx.uploadFile({
+ url: `${$$.baseUrl}${$$.url.sys}/api/v1/xfyun/speech`,
+ filePath: speakUrl,
+ name: 'fileNames',
+ header: { Authorization: app.globalData.token },
+ complete(res) {
+ $$.hideLoading();
+ if (res.errMsg === 'uploadFile:ok') {
+ const { code, data, msg } = JSON.parse(res.data);
+ if (code === '0' || code === 0) {
+ that.setData({
+ popup: {
+ visible: true,
+ content: data,
+ },
+ tooltipVisible: data ? true : false,
+ });
+ setTimeout(() => {
+ that.setData({ tooltipVisible: false });
+ }, 2000);
+ } else {
+ $$.showToast({ icon: 'error', title: msg });
+ }
+ } else {
+ $$.showToast({ icon: 'error', title: '录音转写失败' });
+ }
+ },
+ });
+ },
+ // 录音开始触发
+ _startRecord() {
+ let that = this;
+ this.countdown = setInterval(() => {
+ if (that.data.second - 1 <= 0) {
+ that.recordMannager.stop();
+ }
+ that.setData({ second: that.data.second - 1 });
+ }, 1000);
+ this.setData({ second: 60, recordVisible: true });
+ },
+ // 录音结束触发
+ _endRecord(e) {
+ if (this.countdown) {
+ clearInterval(this.countdown);
+ }
+ if (60 - this.data.second <= 5) {
+ $$.showToast({ title: '抱歉!录音时间过短,请重新录入' });
+ this.setData({ second: 60, recordVisible: false });
+ return false;
+ }
+ this.setData({ second: 60, recordVisible: false });
+ this._transferText(e);
+ },
+ // 点击 开始说话 and 结束说话
+ _handleStartOrEnd() {
+ // 结束说话
+ if (this.data.recordVisible) {
+ this.recordMannager.stop();
+ return false;
+ }
+ $$.showLoading();
+ let that = this;
+ wx.getSetting({
+ success(res) {
+ if (res.authSetting['scope.record'] === false) {
+ $$.hideLoading();
+ $$.showModal({
+ content: '抱歉!此功能需授权麦克风录音功能',
+ confirmText: '跳转授权',
+ success: (res) => {
+ if (res.confirm) {
+ wx.openSetting({
+ success(res) {
+ if (res.authSetting['scope.record']) {
+ $$.showToast({ title: '授权成功' });
+ } else {
+ $$.showToast({ title: '授权失败' });
+ }
+ },
+ });
+ }
+ },
+ });
+ return false;
+ }
+ // 开始说话
+ if (!that.data.recordVisible) {
+ const recordMannager = wx.getRecorderManager();
+ recordMannager.onStart(() => that._startRecord());
+ recordMannager.onStop((e) => that._endRecord(e));
+ recordMannager.onError((e) => {
+ $$.showToast({ title: '抱歉!录音时间过短,请重新录入' });
+ that.setData({ second: 60, recordVisible: false });
+ });
+ const options = {
+ duration: 60000,
+ sampleRate: 16000,
+ numberOfChannels: 1,
+ encodeBitRate: 96000,
+ format: 'pcm',
+ };
+ recordMannager.start(options);
+ that.recordMannager = recordMannager;
+ $$.hideLoading();
+ }
+ },
+ });
+ },
+ // 进入录音界面
+ _handleOpenRecording(e) {
+ this.triggerEvent('onVisible', { visible: true });
+ this.setData({ overlayShow: true });
+ },
+ // 关闭录音界面
+ _handleHiddenRecording() {
+ if (this.data.recordVisible) {
+ return false;
+ }
+ this.triggerEvent('onVisible', { visible: false });
+ this.setData({ overlayShow: false });
+ },
+ // 关闭文字显示
+ _handleClosePopup() {
+ this.setData({ popup: { visible: false } });
+ },
+ // 阻止冒泡
+ _catchtop() {},
+ },
+});
diff --git a/gz-wxparty/components/recording/index.json b/gz-wxparty/components/recording/index.json
new file mode 100644
index 0000000..7fd09b7
--- /dev/null
+++ b/gz-wxparty/components/recording/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "tooltip": "../tooltip/index"
+ }
+}
diff --git a/gz-wxparty/components/recording/index.wxml b/gz-wxparty/components/recording/index.wxml
new file mode 100644
index 0000000..99eab17
--- /dev/null
+++ b/gz-wxparty/components/recording/index.wxml
@@ -0,0 +1,62 @@
+<!--录音转文字-->
+<van-button bind:click="_handleOpenRecording" block color="#F2F2F2" custom-style="color:rgba(0,0,0,85)" type="primary">语音录入</van-button>
+<van-overlay bind:click="_handleHiddenRecording" show="{{ overlayShow }}" z-index="999">
+ <view catchtap="_catchtop" class="recording">
+ <!-- 语音动画 -->
+ <block wx:if="{{ recordVisible }}">
+ <view class="time-box">
+ <view class="time-box-top">
+ <view class="hr hr1" />
+ <view class="hr hr2" />
+ <view class="hr hr3" />
+ <view class="hr hr4" />
+ <view class="hr hr5" />
+ <view class="hr hr6" />
+ <view class="hr hr7" />
+ <view class="hr hr8" />
+ <view class="hr hr9" />
+ <view class="hr hr10" />
+ </view>
+ <view class="time-box-bottom">
+ <view class="hr hr1" />
+ <view class="hr hr2" />
+ <view class="hr hr3" />
+ <view class="hr hr4" />
+ <view class="hr hr5" />
+ <view class="hr hr6" />
+ <view class="hr hr7" />
+ <view class="hr hr8" />
+ <view class="hr hr9" />
+ <view class="hr hr10" />
+ </view>
+ </view>
+ <view class="recording-title">点击下方按钮后结束说话</view>
+ <view>(还可以说{{ second }}秒)</view>
+ </block>
+ <block wx:else>
+ <image class="recording-img" src="{{ imgUrl }}recording.png" />
+ <view class="recording-title">点击下方按钮后开始说话</view>
+ <view>(最长支持60秒)</view>
+ </block>
+ </view>
+ <view catchtap="_catchtop" class="recording-button-bg">
+ <van-button bind:click="_handleStartOrEnd" block color="#ffffff" custom-class="recording-button" plain>{{ recordVisible ? '结束说话' : '开始说话' }}</van-button>
+ </view>
+</van-overlay>
+<van-popup bind:close="_handleClosePopup" closeable position="bottom" round show="{{ popup.visible }}" title="调解请说" z-index="999">
+ <view class="recording-content">
+ <tooltip content="点击文字可进行修改" visible="{{ tooltipVisible }}" />
+ <van-field
+ autosize="{{ { maxHeight: 400, minHeight: 50 } }}"
+ bind:change="_handleChangeWords"
+ border="{{ false }}"
+ custom-style="padding:0"
+ placeholder="无转写可直接编辑"
+ type="textarea"
+ value="{{ popup.content }}"
+ />
+ </view>
+ <view class="recording-popup-button">
+ <van-button bind:click="_handleUseWords" block data-type="next" type="primary">使用文字</van-button>
+ </view>
+</van-popup>
diff --git a/gz-wxparty/components/recording/index.wxss b/gz-wxparty/components/recording/index.wxss
new file mode 100644
index 0000000..8bbc587
--- /dev/null
+++ b/gz-wxparty/components/recording/index.wxss
@@ -0,0 +1,163 @@
+/* components/recording/index.wxss */
+@import '../../styles/public_components.wxss';
+
+.recording {
+ position: absolute;
+ width: 350rpx;
+ padding: 48rpx 0;
+ top: 15%;
+ left: 50%;
+ margin-left: -175rpx;
+ text-align: center;
+ color: #ffffff;
+ border-radius: 20rpx;
+ border: 4rpx solid #ffffff;
+ font-size: 28rpx;
+}
+
+.recording-img {
+ width: 150rpx;
+ height: 150rpx;
+}
+
+.recording-title {
+ padding: 24rpx 0;
+}
+
+.recording-button-bg {
+ padding: 32rpx var(--padding-my);
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: env(safe-area-inset-bottom);
+}
+
+.recording-button-bg .recording-button {
+ background-color: rgba(0, 0, 0, 0.5);
+}
+
+.recording-content {
+ position: relative;
+ padding: 32rpx;
+ margin-bottom: 146rpx;
+}
+
+.recording-popup-button {
+ padding: 32rpx;
+ border-top: 2rpx solid var(--border-color);
+ position: fixed;
+ bottom: env(safe-area-inset-bottom);
+ left: 0;
+ right: 0;
+}
+
+.time-box {
+ position: relative;
+ height: 120rpx;
+ left: 50%;
+ margin-left: -86rpx;
+}
+
+.time-box-top {
+ position: absolute;
+ bottom: 50%;
+}
+
+.time-box-bottom {
+ position: absolute;
+ top: 50%;
+ transform: rotateX(180deg);
+}
+
+.hr {
+ background-color: red;
+ width: 10rpx;
+ height: 10rpx;
+ bottom: 0;
+ position: absolute;
+ background: #ffffff;
+ animation: bodong 0.5s infinite ease;
+ border-top-left-radius: 5rpx;
+ border-top-right-radius: 5rpx;
+}
+
+.hr1 {
+ left: 0;
+ animation-delay: 1s;
+ animation-duration: 1s;
+}
+
+.hr2 {
+ left: 18rpx;
+ animation-delay: 0.9s;
+ animation-duration: 0.9s;
+}
+
+.hr3 {
+ left: 36rpx;
+ animation-delay: 0.8s;
+ animation-duration: 0.8s;
+}
+
+.hr4 {
+ left: 54rpx;
+ animation-delay: 0.7s;
+ animation-duration: 0.7s;
+}
+
+.hr5 {
+ left: 72rpx;
+ animation-delay: 0.6s;
+ animation-duration: 0.6s;
+}
+
+.hr6 {
+ left: 90rpx;
+ animation-delay: 0.5s;
+ animation-duration: 0.5s;
+}
+
+.hr7 {
+ left: 108rpx;
+ animation-delay: 0.7s;
+ animation-duration: 0.7s;
+}
+
+.hr8 {
+ left: 126rpx;
+ animation-delay: 0.6s;
+ animation-duration: 0.6s;
+}
+
+.hr9 {
+ left: 144rpx;
+ animation-delay: 0.8s;
+ animation-duration: 0.8s;
+}
+
+.hr10 {
+ left: 162rpx;
+ animation-delay: 1s;
+ animation-duration: 1s;
+}
+
+@keyframes bodong {
+ 0% {
+ height: 10rpx;
+ }
+ 20% {
+ height: 20rpx;
+ }
+ 30% {
+ height: 30rpx;
+ }
+ 60% {
+ height: 60rpx;
+ }
+ 80% {
+ height: 30rpx;
+ }
+ 100% {
+ height: 10rpx;
+ }
+}
diff --git a/gz-wxparty/components/steps/index.js b/gz-wxparty/components/steps/index.js
new file mode 100644
index 0000000..ae465a6
--- /dev/null
+++ b/gz-wxparty/components/steps/index.js
@@ -0,0 +1,25 @@
+const $$ = require('../../utils/util');
+
+Component({
+ /**
+ * 组件的属性列表
+ * stepsData: array 步骤条数据,一维数组,只需步骤名称
+ * stepsActive: number 步骤条当前选择下标
+ * stepsType: 步骤条的类型, 'number' , 'picture'
+ */
+ properties: {
+ stepsData: {
+ type: Array,
+ value: [],
+ },
+ stepsActive: Number,
+ stepsType: {
+ type: String,
+ value: 'number',
+ },
+ },
+
+ data: {
+ imgUrl: $$.url.img,
+ },
+});
diff --git a/gz-wxparty/components/steps/index.json b/gz-wxparty/components/steps/index.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/gz-wxparty/components/steps/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/gz-wxparty/components/steps/index.wxml b/gz-wxparty/components/steps/index.wxml
new file mode 100644
index 0000000..85f12b8
--- /dev/null
+++ b/gz-wxparty/components/steps/index.wxml
@@ -0,0 +1,39 @@
+<!--步骤条-->
+<view class="steps">
+ <block wx:if="{{ stepsType === 'number' }}">
+ <view class="steps-item {{ index <= stepsActive && 'steps-item-active' }}" wx:for="{{ stepsData }}" wx:key="index">
+ <view class="steps-item-round" wx:if="{{ index > stepsActive }}">{{ index + 1 }}</view>
+ <view class="steps-item-round" wx:else>
+ <van-icon name="success" />
+ </view>
+ <view class="steps-item-text">{{ item }}</view>
+ <view class="steps-item-icon" wx:if="{{ index < stepsData.length - 1 }}">
+ <block wx:if="{{ index > stepsActive }}">
+ <van-icon name="{{ imgUrl }}steps-arrow.png" size="14" />
+ </block>
+ <block wx:else>
+ <van-icon name="{{ imgUrl }}steps-arrow-active.png" size="14" />
+ </block>
+ </view>
+ </view>
+ </block>
+ <block wx:else>
+ <view class="steps-item {{ index <= stepsActive && 'steps-item-active' }}" wx:for="{{ stepsData }}" wx:key="index">
+ <view class="steps-item-round" wx:if="{{ index > stepsActive }}">
+ <van-icon name="{{ imgUrl }}{{ item.icon }}" />
+ </view>
+ <view class="steps-item-round" wx:else>
+ <van-icon name="{{ imgUrl }}{{ item.activeIcon }}" />
+ </view>
+ <view class="steps-item-text">{{ item.title }}</view>
+ <view class="steps-item-icon" wx:if="{{ index < stepsData.length - 1 }}">
+ <block wx:if="{{ index > stepsActive }}">
+ <van-icon name="{{ imgUrl }}steps-arrow.png" size="14" />
+ </block>
+ <block wx:else>
+ <van-icon name="{{ imgUrl }}steps-arrow-active.png" size="14" />
+ </block>
+ </view>
+ </view>
+ </block>
+</view>
diff --git a/gz-wxparty/components/steps/index.wxss b/gz-wxparty/components/steps/index.wxss
new file mode 100644
index 0000000..1838218
--- /dev/null
+++ b/gz-wxparty/components/steps/index.wxss
@@ -0,0 +1,51 @@
+/* components/steps/index.wxss */
+.steps {
+ display: flex;
+ align-items: center;
+ background-color: #ffffff;
+}
+
+.steps-item {
+ position: relative;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+.steps-item-active,
+.steps-item-active .steps-item-icon {
+ color: var(--main-color);
+}
+
+.steps-item-active .steps-item-round {
+ background-color: var(--red-1);
+ color: var(--main-color);
+}
+
+.steps-item-round {
+ position: relative;
+ width: 60rpx;
+ height: 60rpx;
+ border-radius: 50%;
+ color: #646566;
+ margin-bottom: 8rpx;
+ background-color: #f2f2f2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.steps-item-text {
+ font-size: 24rpx;
+ line-height: 40rpx;
+}
+
+.steps-item-icon {
+ position: absolute;
+ z-index: 999;
+ top: 50%;
+ margin-top: -16rpx;
+ right: -16rpx;
+ color: #cccccc;
+}
diff --git a/gz-wxparty/components/tabbar-page/index.js b/gz-wxparty/components/tabbar-page/index.js
new file mode 100644
index 0000000..0fd1aca
--- /dev/null
+++ b/gz-wxparty/components/tabbar-page/index.js
@@ -0,0 +1,110 @@
+// components/tabbarPage/index.js
+const $$ = require('../../utils/util');
+const app = getApp();
+
+Component({
+ /**
+ * 组件的初始数据
+ */
+ data: {
+ mediate: $$.url.img + 'mediate.png',
+ mediate_active: $$.url.img + 'mediate-active.png',
+ active: 0,
+ loginVisible: !!app.globalData.token,
+ moreFunctionVisible: false,
+ moreFunctionList: [
+ {
+ title: '找调解组员',
+ subTitle: '专业的调解员为您快速解忧',
+ icon: `${$$.url.img}mediator.png`,
+ url: '../../pages/findAdjust/index?type=1',
+ key: '3',
+ },
+ {
+ title: '找调解组织',
+ subTitle: '身边的调解组织为您解忧',
+ icon: `${$$.url.img}organization.png`,
+ url: '../../pages/findAdjust/index?type=2',
+ key: '2',
+ },
+ // TODO:协助调解是“调解员端”功能,在当事人小程序中暂时隐藏
+ // {
+ // title: '协助调解',
+ // subTitle: '参与到外部调解并提供帮助',
+ // icon: `${$$.url.img}assistMediate.png`,
+ // url: '../../pages/assistMediate/index',
+ // key: '5',
+ // },
+ {
+ title: '我的司法确认',
+ subTitle: '查询司法确认受理进度',
+ icon: `${$$.url.img}judicial-confirmation.png`,
+ url: '../../pages/myJudicialConfirmation/index',
+ key: '1',
+ },
+ {
+ title: '个人中心',
+ subTitle: '实名认证,完善个人信息',
+ icon: `${$$.url.img}me-center.png`,
+ url: '../../pages/me/index',
+ key: '4',
+ },
+ ],
+ },
+
+ pageLifetimes: {
+ show: function () {
+ if (app.globalData.token && !this.data.loginVisible) {
+ this.setData({ loginVisible: true });
+ }
+ if (!app.globalData.token) {
+ this.setData({ loginVisible: false });
+ }
+ },
+ },
+
+ /**
+ * 组件的方法列表
+ */
+ methods: {
+ // 退出登录
+ loginOut() {
+ this.setData({ loginVisible: false });
+ },
+ // 更多功能进入
+ _handleGoPage(e) {
+ let url = e.currentTarget.dataset.url;
+ let key = e.currentTarget.dataset.key;
+ if (['2', '3', '4'].includes(key) && $$.userTest('login')) {
+ wx.navigateTo({
+ url: url,
+ });
+ }
+ if (['1', '5'].includes(key) && $$.userTest('all')) {
+ wx.navigateTo({
+ url: url,
+ });
+ }
+ },
+ // 切换tab
+ _handleChangeTab(event) {
+ if (event.detail === 1) {
+ this._handleMaskVisible();
+ return false;
+ }
+ if (event.detail === 2 && !this.data.loginVisible) {
+ wx.navigateTo({ url: '../../pages/login/index' });
+ return false;
+ }
+ if (event.detail === 3) {
+ if ($$.userTest('all')) {
+ wx.navigateTo({ url: '../../pages/myMediate/index' });
+ }
+ }
+ },
+ // 关闭mask
+ _handleMaskVisible() {
+ this.setData({ moreFunctionVisible: !this.data.moreFunctionVisible });
+ },
+ },
+});
diff --git a/gz-wxparty/components/tabbar-page/index.json b/gz-wxparty/components/tabbar-page/index.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/gz-wxparty/components/tabbar-page/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/gz-wxparty/components/tabbar-page/index.wxml b/gz-wxparty/components/tabbar-page/index.wxml
new file mode 100644
index 0000000..02e6f5f
--- /dev/null
+++ b/gz-wxparty/components/tabbar-page/index.wxml
@@ -0,0 +1,37 @@
+<!--tabbar页面引入tabbar-->
+<!-- 页面内容 -->
+<view class="tabbar-main">
+ <slot></slot>
+</view>
+<!-- tabbar -->
+<van-tabbar active="{{ active }}" placeholder bind:change="_handleChangeTab">
+ <van-tabbar-item icon="wap-home-o">首页</van-tabbar-item>
+ <van-tabbar-item>
+ <view class="tabbar-apps">
+ <van-icon name="apps-o" size="24" />
+ </view>
+ </van-tabbar-item>
+ <van-tabbar-item style="display:{{ loginVisible && 'none' }}" icon="contact">登录</van-tabbar-item>
+ <van-tabbar-item style="display:{{ !loginVisible && 'none' }}">
+ <image slot="icon" src="{{ mediate }}" class="tabbar-icon" />
+ <image slot="icon-active" src="{{ mediate_active }}" class="tabbar-icon" />
+ 我的调解
+ </van-tabbar-item>
+</van-tabbar>
+<!-- 更多功能 -->
+<block>
+ <view class="more-function" style="transform:{{ moreFunctionVisible ? 'translate3d(0, 0, 0)' : 'translate3d(0, 1000rpx, 0)' }}">
+ <view wx:for="{{ moreFunctionList }}" wx:key="index" bindtap="_handleGoPage" data-key="{{ item.key }}" data-url="{{ item.url }}" class="more-function-item">
+ <image class="more-function-img" src="{{ item.icon }}" />
+ <view>
+ <view>{{ item.title }}</view>
+ <view class="more-function-text">{{ item.subTitle }}</view>
+ </view>
+ </view>
+ </view>
+ <view style="display: {{ moreFunctionVisible ? 'flex' : 'none' }};" class="more-function-close" bindtap="_handleMaskVisible">
+ <van-icon name="cross" size="20" />
+ </view>
+</block>
+<!-- 遮罩层 -->
+<van-overlay show="{{ moreFunctionVisible }}" bind:click="_handleMaskVisible" z-index="99" custom-style="background-color:#333333" />
\ No newline at end of file
diff --git a/gz-wxparty/components/tabbar-page/index.wxss b/gz-wxparty/components/tabbar-page/index.wxss
new file mode 100644
index 0000000..8f10c6c
--- /dev/null
+++ b/gz-wxparty/components/tabbar-page/index.wxss
@@ -0,0 +1,73 @@
+/* components/tabbarPage/index.wxss */
+.tabbar-main {
+ position: relative;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+}
+
+.tabbar-apps {
+ width: 110rpx;
+ height: 68rpx;
+ color: #ffffff;
+ border-radius: 20rpx;
+ background-color: var(--main-color);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ box-shadow: 0px 0 6px 4px rgb(0 0 0 / 10%);
+}
+
+.tabbar-icon {
+ width: 36rpx;
+ height: 32rpx;
+}
+
+.more-function {
+ position: fixed;
+ bottom: 128rpx;
+ z-index: 999;
+ transition: transform 0.5s;
+ transform: translate3d(0, 1000rpx, 0);
+ left: 50%;
+ margin-left: -200rpx;
+ margin-bottom: env(safe-area-inset-bottom);
+}
+
+.more-function-close {
+ position: fixed;
+ z-index: 999;
+ bottom: 12rpx;
+ width: 108rpx;
+ height: 68rpx;
+ left: 50%;
+ margin-left: -54rpx;
+ text-align: center;
+ background-color: #ffffff;
+ border-radius: 35rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: env(safe-area-inset-bottom);
+}
+
+.more-function-img {
+ width: 100rpx;
+ height: 100rpx;
+ margin-right: 16rpx;
+}
+
+.more-function-item {
+ display: flex;
+ align-items: center;
+ color: #ffffff;
+ margin-bottom: 64rpx;
+}
+
+.more-function-text {
+ font-size: 24rpx;
+ line-height: 24rpx;
+ color: #c0b2b2;
+ padding-top: 16rpx;
+}
diff --git a/gz-wxparty/components/time-format/index.js b/gz-wxparty/components/time-format/index.js
new file mode 100644
index 0000000..e979bcc
--- /dev/null
+++ b/gz-wxparty/components/time-format/index.js
@@ -0,0 +1,53 @@
+/*
+ * @Company: hugeInfo
+ * @Author: ldh
+ * @Date: 2022-06-06 11:40:55
+ * @LastEditTime: 2022-06-15 09:18:40
+ * @LastEditors: ldh
+ * @Version: 1.0.0
+ * @Description:
+ */
+// components/time-format/index.js
+const $$ = require('../../utils/util');
+
+Component({
+ /**
+ * 组件的属性列表
+ */
+ properties: {
+ value: String,
+ format: String,
+ fromtype: String,
+ },
+
+ /**
+ * 组件的初始数据
+ */
+ data: {
+ time: '',
+ },
+
+ observers: {
+ value: function () {
+ this.setData({ time: $$.timeFormat(this.data.value, this.data.format || undefined) });
+ },
+ },
+
+ lifetimes: {
+ ready: function () {
+ if (this.data.fromtype === 'messageCenter') {
+ let str = '今天 ';
+ let nowTime = $$.moment();
+ let time = $$.moment(this.data.value || new Date());
+ let diffTime = time.diff(nowTime, 'hours');
+ if (diffTime > 0 && diffTime <= 1) {
+ str = '今天 ';
+ }
+ if (diffTime >= -1 && diffTime < 0) {
+ str = '昨天 ';
+ }
+ this.setData({ time: str + $$.timeFormat(this.data.value || new Date(), 'HH:mm') });
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/components/time-format/index.json b/gz-wxparty/components/time-format/index.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/gz-wxparty/components/time-format/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/gz-wxparty/components/time-format/index.wxml b/gz-wxparty/components/time-format/index.wxml
new file mode 100644
index 0000000..eefcf82
--- /dev/null
+++ b/gz-wxparty/components/time-format/index.wxml
@@ -0,0 +1,2 @@
+<!--components/time-format/index.wxml-->
+<text>{{ time || '-' }}</text>
\ No newline at end of file
diff --git a/gz-wxparty/components/time-format/index.wxss b/gz-wxparty/components/time-format/index.wxss
new file mode 100644
index 0000000..7b5205c
--- /dev/null
+++ b/gz-wxparty/components/time-format/index.wxss
@@ -0,0 +1 @@
+/* components/time-format/index.wxss */
\ No newline at end of file
diff --git a/gz-wxparty/components/tooltip/index.js b/gz-wxparty/components/tooltip/index.js
new file mode 100644
index 0000000..5d5b499
--- /dev/null
+++ b/gz-wxparty/components/tooltip/index.js
@@ -0,0 +1,25 @@
+Component({
+ /**
+ * 组件的属性列表
+ * width: number 展示宽度
+ * content: string 展示内容
+ * visible: boolean 是否显示
+ * placement: string 方向,可传入参数:left,right,center
+ */
+ properties: {
+ content: String,
+ visible: Boolean,
+ width: {
+ type: Number,
+ value: 300,
+ },
+ placement: {
+ type: String,
+ value: 'center',
+ },
+ fontsize: {
+ type: String,
+ value: '28rpx',
+ },
+ },
+});
diff --git a/gz-wxparty/components/tooltip/index.json b/gz-wxparty/components/tooltip/index.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/gz-wxparty/components/tooltip/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/gz-wxparty/components/tooltip/index.wxml b/gz-wxparty/components/tooltip/index.wxml
new file mode 100644
index 0000000..044ac74
--- /dev/null
+++ b/gz-wxparty/components/tooltip/index.wxml
@@ -0,0 +1,12 @@
+<!--components/tooltip/index.wxml-->
+<view
+ class="tooltip"
+ style="{{ placement === 'left' ? 'left:0;' : placement === 'right' ? 'right:0;' : 'left:50%;margin-left:-'+ width / 2 + 'rpx' }}"
+ wx:if="{{ visible }}"
+>
+ <view
+ class="tooltip-arrow"
+ style="{{ placement === 'left' ? 'left:24rpx;' : placement === 'right' ? 'right:24rpx;' : 'left:50%;margin-left:-16rpx' }}"
+ />
+ <view class="tooltip-content" style="width:{{ width }}rpx;{{ fontsize ? 'font-size: ' + fontsize : '' }}">{{ content }}</view>
+</view>
diff --git a/gz-wxparty/components/tooltip/index.wxss b/gz-wxparty/components/tooltip/index.wxss
new file mode 100644
index 0000000..e24e95f
--- /dev/null
+++ b/gz-wxparty/components/tooltip/index.wxss
@@ -0,0 +1,40 @@
+/* components/tooltip/index.wxss */
+.tooltip {
+ position: absolute;
+ bottom: 100%;
+ margin-bottom: 24rpx;
+ align-content: center;
+ z-index: 999;
+}
+
+.tooltip-content {
+ position: relative;
+ padding: 8rpx 0;
+ color: #fff;
+ text-align: center;
+ text-decoration: none;
+ word-wrap: break-word;
+ background-color: #3c3d3f;
+ border-radius: 4rpx;
+ box-shadow: 0 6rpx 12rpx -8rpx #0000001f, 0 12rpx 32rpx #00000014, 0 18rpx 56rpx 16rpx #0000000d;
+ font-size: 28rpx;
+ line-height: 1.5;
+}
+
+.tooltip-arrow {
+ position: absolute;
+ width: 32rpx;
+ height: 32rpx;
+ overflow: hidden;
+ border-radius: 4rpx;
+ transform: rotate(45deg);
+ bottom: -14rpx;
+}
+
+.tooltip-arrow::before {
+ position: absolute;
+ width: 32rpx;
+ height: 32rpx;
+ background-color: #3c3d3f;
+ content: '';
+}
diff --git a/gz-wxparty/components/vant/button/index.d.ts b/gz-wxparty/components/vant/button/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/button/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/button/index.js b/gz-wxparty/components/vant/button/index.js
new file mode 100644
index 0000000..0e3c134
--- /dev/null
+++ b/gz-wxparty/components/vant/button/index.js
@@ -0,0 +1,64 @@
+import { VantComponent } from '../common/component';
+import { button } from '../mixins/button';
+import { canIUseFormFieldButton } from '../common/version';
+const mixins = [button];
+if (canIUseFormFieldButton()) {
+ mixins.push('wx://form-field-button');
+}
+VantComponent({
+ 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: String,
+ },
+ methods: {
+ onClick(event) {
+ this.$emit('click', event);
+ const { canIUseGetUserProfile, openType, getUserProfileDesc, lang, } = this.data;
+ if (openType === 'getUserInfo' && canIUseGetUserProfile) {
+ wx.getUserProfile({
+ desc: getUserProfileDesc || ' ',
+ lang: lang || 'en',
+ complete: (userProfile) => {
+ this.$emit('getuserinfo', userProfile);
+ },
+ });
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/button/index.json b/gz-wxparty/components/vant/button/index.json
new file mode 100644
index 0000000..e00a588
--- /dev/null
+++ b/gz-wxparty/components/vant/button/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index",
+ "van-loading": "../loading/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/button/index.wxml b/gz-wxparty/components/vant/button/index.wxml
new file mode 100644
index 0000000..8034845
--- /dev/null
+++ b/gz-wxparty/components/vant/button/index.wxml
@@ -0,0 +1,53 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<button
+ id="{{ id }}"
+ data-detail="{{ dataset }}"
+ class="custom-class {{ utils.bem('button', [type, size, { block, round, plain, square, loading, disabled, hairline, unclickable: disabled || loading }]) }} {{ hairline ? 'van-hairline--surround' : '' }}"
+ hover-class="van-button--active hover-class"
+ lang="{{ lang }}"
+ form-type="{{ formType }}"
+ style="{{ computed.rootStyle({ plain, color, customStyle }) }}"
+ open-type="{{ disabled || loading || (canIUseGetUserProfile && openType === 'getUserInfo') ? '' : openType }}"
+ business-id="{{ businessId }}"
+ session-from="{{ sessionFrom }}"
+ send-message-title="{{ sendMessageTitle }}"
+ send-message-path="{{ sendMessagePath }}"
+ send-message-img="{{ sendMessageImg }}"
+ show-message-card="{{ showMessageCard }}"
+ app-parameter="{{ appParameter }}"
+ aria-label="{{ ariaLabel }}"
+ bindtap="{{ disabled || loading ? '' : 'onClick' }}"
+ bindgetuserinfo="onGetUserInfo"
+ bindcontact="onContact"
+ bindgetphonenumber="onGetPhoneNumber"
+ binderror="onError"
+ bindlaunchapp="onLaunchApp"
+ bindopensetting="onOpenSetting"
+>
+ <block wx:if="{{ loading }}">
+ <van-loading
+ custom-class="loading-class"
+ size="{{ loadingSize }}"
+ type="{{ loadingType }}"
+ color="{{ computed.loadingColor({ type, color, plain }) }}"
+ />
+ <view wx:if="{{ loadingText }}" class="van-button__loading-text">
+ {{ loadingText }}
+ </view>
+ </block>
+ <block wx:else>
+ <van-icon
+ wx:if="{{ icon }}"
+ size="1.2em"
+ name="{{ icon }}"
+ class-prefix="{{ classPrefix }}"
+ class="van-button__icon"
+ custom-style="line-height: inherit;"
+ />
+ <view class="van-button__text">
+ <slot />
+ </view>
+ </block>
+</button>
diff --git a/gz-wxparty/components/vant/button/index.wxs b/gz-wxparty/components/vant/button/index.wxs
new file mode 100644
index 0000000..8b649fe
--- /dev/null
+++ b/gz-wxparty/components/vant/button/index.wxs
@@ -0,0 +1,39 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+
+function rootStyle(data) {
+ if (!data.color) {
+ return data.customStyle;
+ }
+
+ var properties = {
+ color: data.plain ? data.color : '#fff',
+ background: data.plain ? null : data.color,
+ };
+
+ // hide border when color is linear-gradient
+ if (data.color.indexOf('gradient') !== -1) {
+ properties.border = 0;
+ } else {
+ properties['border-color'] = data.color;
+ }
+
+ return style([properties, data.customStyle]);
+}
+
+function loadingColor(data) {
+ if (data.plain) {
+ return data.color ? data.color : '#c9c9c9';
+ }
+
+ if (data.type === 'default') {
+ return '#c9c9c9';
+ }
+
+ return '#fff';
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+ loadingColor: loadingColor,
+};
diff --git a/gz-wxparty/components/vant/button/index.wxss b/gz-wxparty/components/vant/button/index.wxss
new file mode 100644
index 0000000..4d98787
--- /dev/null
+++ b/gz-wxparty/components/vant/button/index.wxss
@@ -0,0 +1,144 @@
+@import '../common/index.wxss';
+.van-button {
+ -webkit-text-size-adjust: 100%;
+ align-items: center;
+ -webkit-appearance: none;
+ border-radius: var(--button-border-radius, 2px);
+ box-sizing: border-box;
+ display: inline-flex;
+ font-size: var(--button-default-font-size, 16px);
+ height: var(--button-default-height, 44px);
+ justify-content: center;
+ line-height: var(--button-line-height, 20px);
+ padding: 0;
+ position: relative;
+ text-align: center;
+ transition: opacity 0.2s;
+ vertical-align: middle;
+}
+.van-button:before {
+ background-color: #000;
+ border: inherit;
+ border-color: #000;
+ border-radius: inherit;
+ content: ' ';
+ height: 100%;
+ left: 50%;
+ opacity: 0;
+ position: absolute;
+ top: 50%;
+ transform: translate(-50%, -50%);
+ width: 100%;
+}
+.van-button:after {
+ border-width: 0;
+}
+.van-button--active:before {
+ opacity: 0.15;
+}
+.van-button--unclickable:after {
+ display: none;
+}
+.van-button--default {
+ background: var(--button-default-background-color, #fff);
+ border: var(--button-border-width, 1px) solid var(--button-default-border-color, #ebedf0);
+ color: var(--button-default-color, #323233);
+}
+.van-button--primary {
+ background: var(--button-primary-background-color, #07c160);
+ border: var(--button-border-width, 1px) solid var(--button-primary-border-color, #07c160);
+ color: var(--button-primary-color, #fff);
+}
+.van-button--info {
+ background: var(--button-info-background-color, #1989fa);
+ border: var(--button-border-width, 1px) solid var(--button-info-border-color, #1989fa);
+ color: var(--button-info-color, #fff);
+}
+.van-button--danger {
+ background: var(--button-danger-background-color, #ee0a24);
+ border: var(--button-border-width, 1px) solid var(--button-danger-border-color, #ee0a24);
+ color: var(--button-danger-color, #fff);
+}
+.van-button--warning {
+ background: var(--button-warning-background-color, #ff976a);
+ border: var(--button-border-width, 1px) solid var(--button-warning-border-color, #ff976a);
+ color: var(--button-warning-color, #fff);
+}
+.van-button--plain {
+ background: var(--button-plain-background-color, #fff);
+}
+.van-button--plain.van-button--primary {
+ color: var(--button-primary-background-color, #07c160);
+}
+.van-button--plain.van-button--info {
+ color: var(--button-info-background-color, #1989fa);
+}
+.van-button--plain.van-button--danger {
+ color: var(--button-danger-background-color, #ee0a24);
+}
+.van-button--plain.van-button--warning {
+ color: var(--button-warning-background-color, #ff976a);
+}
+.van-button--large {
+ height: var(--button-large-height, 50px);
+ width: 100%;
+}
+.van-button--normal {
+ font-size: var(--button-normal-font-size, 14px);
+ padding: 0 15px;
+}
+.van-button--small {
+ font-size: var(--button-small-font-size, 12px);
+ height: var(--button-small-height, 30px);
+ min-width: var(--button-small-min-width, 60px);
+ padding: 0 var(--padding-xs, 8px);
+}
+.van-button--mini {
+ display: inline-block;
+ font-size: var(--button-mini-font-size, 10px);
+ height: var(--button-mini-height, 22px);
+ min-width: var(--button-mini-min-width, 50px);
+}
+.van-button--mini + .van-button--mini {
+ margin-left: 5px;
+}
+.van-button--block {
+ display: flex;
+ width: 100%;
+}
+.van-button--round {
+ border-radius: var(--button-round-border-radius, 999px);
+}
+.van-button--square {
+ border-radius: 0;
+}
+.van-button--disabled {
+ opacity: var(--button-disabled-opacity, 0.5);
+}
+.van-button__text {
+ display: inline;
+}
+.van-button__icon + .van-button__text:not(:empty),
+.van-button__loading-text {
+ margin-left: 16rpx;
+}
+.van-button__icon {
+ line-height: inherit !important;
+ min-width: 1em;
+ vertical-align: top;
+}
+.van-button--hairline {
+ border-width: 0;
+ padding-top: 1px;
+}
+.van-button--hairline:after {
+ border-color: inherit;
+ border-radius: calc(var(--button-border-radius, 2px) * 2);
+ border-width: 1px;
+}
+.van-button--hairline.van-button--round:after {
+ border-radius: var(--button-round-border-radius, 999px);
+}
+.van-button--hairline.van-button--square:after {
+ border-radius: 0;
+}
diff --git a/gz-wxparty/components/vant/cell-group/index.d.ts b/gz-wxparty/components/vant/cell-group/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/cell-group/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/cell-group/index.js b/gz-wxparty/components/vant/cell-group/index.js
new file mode 100644
index 0000000..170760f
--- /dev/null
+++ b/gz-wxparty/components/vant/cell-group/index.js
@@ -0,0 +1,11 @@
+import { VantComponent } from '../common/component';
+VantComponent({
+ props: {
+ title: String,
+ border: {
+ type: Boolean,
+ value: true,
+ },
+ inset: Boolean,
+ },
+});
diff --git a/gz-wxparty/components/vant/cell-group/index.json b/gz-wxparty/components/vant/cell-group/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/components/vant/cell-group/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/components/vant/cell-group/index.wxml b/gz-wxparty/components/vant/cell-group/index.wxml
new file mode 100644
index 0000000..311e064
--- /dev/null
+++ b/gz-wxparty/components/vant/cell-group/index.wxml
@@ -0,0 +1,11 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ wx:if="{{ title }}"
+ class="{{ utils.bem('cell-group__title', { inset }) }}"
+>
+ {{ title }}
+</view>
+<view class="custom-class {{ utils.bem('cell-group', { inset }) }} {{ border ? 'van-hairline--top-bottom' : '' }}">
+ <slot />
+</view>
diff --git a/gz-wxparty/components/vant/cell-group/index.wxss b/gz-wxparty/components/vant/cell-group/index.wxss
new file mode 100644
index 0000000..08b252f
--- /dev/null
+++ b/gz-wxparty/components/vant/cell-group/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-cell-group--inset{border-radius:var(--cell-group-inset-border-radius,8px);margin:var(--cell-group-inset-padding,0 16px);overflow:hidden}.van-cell-group__title{color:var(--cell-group-title-color,#969799);font-size:var(--cell-group-title-font-size,14px);line-height:var(--cell-group-title-line-height,16px);padding:var(--cell-group-title-padding,16px 16px 8px)}.van-cell-group__title--inset{padding:var(--cell-group-inset-title-padding,16px 16px 8px 32px)}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/cell/index.d.ts b/gz-wxparty/components/vant/cell/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/cell/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/cell/index.js b/gz-wxparty/components/vant/cell/index.js
new file mode 100644
index 0000000..35548b9
--- /dev/null
+++ b/gz-wxparty/components/vant/cell/index.js
@@ -0,0 +1,38 @@
+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,
+ },
+ titleStyle: String,
+ },
+ methods: {
+ onClick(event) {
+ this.$emit('click', event.detail);
+ this.jumpLink();
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/cell/index.json b/gz-wxparty/components/vant/cell/index.json
new file mode 100644
index 0000000..0a336c0
--- /dev/null
+++ b/gz-wxparty/components/vant/cell/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/cell/index.wxml b/gz-wxparty/components/vant/cell/index.wxml
new file mode 100644
index 0000000..8387c3c
--- /dev/null
+++ b/gz-wxparty/components/vant/cell/index.wxml
@@ -0,0 +1,47 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="custom-class {{ utils.bem('cell', [size, { center, required, borderless: !border, clickable: isLink || clickable }]) }}"
+ hover-class="van-cell--hover hover-class"
+ hover-stay-time="70"
+ style="{{ customStyle }}"
+ bind:tap="onClick"
+>
+ <van-icon
+ wx:if="{{ icon }}"
+ name="{{ icon }}"
+ class="van-cell__left-icon-wrap"
+ custom-class="van-cell__left-icon"
+ />
+ <slot wx:else name="icon" />
+
+ <view
+ style="{{ computed.titleStyle({ titleWidth, titleStyle }) }}"
+ class="van-cell__title title-class"
+ >
+
+ <block wx:if="{{ title }}">{{ title }}</block>
+ <slot wx:else name="title" />
+
+ <view wx:if="{{ label || useLabelSlot }}" class="van-cell__label label-class">
+ <slot wx:if="{{ useLabelSlot }}" name="label" />
+ <block wx:elif="{{ label }}">{{ label }}</block>
+ </view>
+ </view>
+
+ <view class="van-cell__value value-class">
+ <block wx:if="{{ value || value === 0 }}">{{ value }}</block>
+ <slot wx:else />
+ </view>
+
+ <van-icon
+ wx:if="{{ isLink }}"
+ name="{{ arrowDirection ? 'arrow' + '-' + arrowDirection : 'arrow' }}"
+ class="van-cell__right-icon-wrap right-icon-class"
+ custom-class="van-cell__right-icon"
+ />
+ <slot wx:else name="right-icon" />
+
+ <slot name="extra" />
+</view>
diff --git a/gz-wxparty/components/vant/cell/index.wxs b/gz-wxparty/components/vant/cell/index.wxs
new file mode 100644
index 0000000..e3500c4
--- /dev/null
+++ b/gz-wxparty/components/vant/cell/index.wxs
@@ -0,0 +1,17 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function titleStyle(data) {
+ return style([
+ {
+ 'max-width': addUnit(data.titleWidth),
+ 'min-width': addUnit(data.titleWidth),
+ },
+ data.titleStyle,
+ ]);
+}
+
+module.exports = {
+ titleStyle: titleStyle,
+};
diff --git a/gz-wxparty/components/vant/cell/index.wxss b/gz-wxparty/components/vant/cell/index.wxss
new file mode 100644
index 0000000..1802f8e
--- /dev/null
+++ b/gz-wxparty/components/vant/cell/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-cell{background-color:var(--cell-background-color,#fff);box-sizing:border-box;color:var(--cell-text-color,#323233);display:flex;font-size:var(--cell-font-size,14px);line-height:var(--cell-line-height,24px);padding:var(--cell-vertical-padding,10px) var(--cell-horizontal-padding,16px);position:relative;width:100%}.van-cell:after{border-bottom:1px solid #ebedf0;bottom:0;box-sizing:border-box;content:" ";left:16px;pointer-events:none;position:absolute;right:16px;transform:scaleY(.5);transform-origin:center}.van-cell--borderless:after{display:none}.van-cell-group{background-color:var(--cell-background-color,#fff)}.van-cell__label{color:var(--cell-label-color,#969799);font-size:var(--cell-label-font-size,12px);line-height:var(--cell-label-line-height,18px);margin-top:var(--cell-label-margin-top,3px)}.van-cell__value{color:var(--cell-value-color,#969799);overflow:hidden;text-align:right;vertical-align:middle}.van-cell__title,.van-cell__value{flex:1}.van-cell__title:empty,.van-cell__value:empty{display:none}.van-cell__left-icon-wrap,.van-cell__right-icon-wrap{align-items:center;display:flex;font-size:var(--cell-icon-size,16px);height:var(--cell-line-height,24px)}.van-cell__left-icon-wrap{margin-right:var(--padding-base,4px)}.van-cell__right-icon-wrap{color:var(--cell-right-icon-color,#969799);margin-left:var(--padding-base,4px)}.van-cell__left-icon{vertical-align:middle}.van-cell__left-icon,.van-cell__right-icon{line-height:var(--cell-line-height,24px)}.van-cell--clickable.van-cell--hover{background-color:var(--cell-active-color,#f2f3f5)}.van-cell--required{overflow:visible}.van-cell--required:before{color:var(--cell-required-color,#ee0a24);content:"*";font-size:var(--cell-font-size,14px);left:var(--padding-xs,8px);position:absolute}.van-cell--center{align-items:center}.van-cell--large{padding-bottom:var(--cell-large-vertical-padding,12px);padding-top:var(--cell-large-vertical-padding,12px)}.van-cell--large .van-cell__title{font-size:var(--cell-large-title-font-size,16px)}.van-cell--large .van-cell__value{font-size:var(--cell-large-value-font-size,16px)}.van-cell--large .van-cell__label{font-size:var(--cell-large-label-font-size,14px)}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/checkbox-group/index.d.ts b/gz-wxparty/components/vant/checkbox-group/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/checkbox-group/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/checkbox-group/index.js b/gz-wxparty/components/vant/checkbox-group/index.js
new file mode 100644
index 0000000..c47d97d
--- /dev/null
+++ b/gz-wxparty/components/vant/checkbox-group/index.js
@@ -0,0 +1,36 @@
+import { useChildren } from '../common/relation';
+import { VantComponent } from '../common/component';
+VantComponent({
+ field: true,
+ relation: useChildren('checkbox', function (target) {
+ this.updateChild(target);
+ }),
+ props: {
+ max: Number,
+ value: {
+ type: Array,
+ observer: 'updateChildren',
+ },
+ disabled: {
+ type: Boolean,
+ observer: 'updateChildren',
+ },
+ direction: {
+ type: String,
+ value: 'vertical',
+ },
+ },
+ methods: {
+ updateChildren() {
+ this.children.forEach((child) => this.updateChild(child));
+ },
+ updateChild(child) {
+ const { value, disabled, direction } = this.data;
+ child.setData({
+ value: value.indexOf(child.data.name) !== -1,
+ parentDisabled: disabled,
+ direction,
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/checkbox-group/index.json b/gz-wxparty/components/vant/checkbox-group/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/components/vant/checkbox-group/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/components/vant/checkbox-group/index.wxml b/gz-wxparty/components/vant/checkbox-group/index.wxml
new file mode 100644
index 0000000..638bf9d
--- /dev/null
+++ b/gz-wxparty/components/vant/checkbox-group/index.wxml
@@ -0,0 +1,5 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view class="{{ utils.bem('checkbox-group', [{ horizontal: direction === 'horizontal' }]) }}">
+ <slot />
+</view>
diff --git a/gz-wxparty/components/vant/checkbox-group/index.wxss b/gz-wxparty/components/vant/checkbox-group/index.wxss
new file mode 100644
index 0000000..c5666d7
--- /dev/null
+++ b/gz-wxparty/components/vant/checkbox-group/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-checkbox-group--horizontal{display:flex;flex-wrap:wrap}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/checkbox/index.d.ts b/gz-wxparty/components/vant/checkbox/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/checkbox/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/checkbox/index.js b/gz-wxparty/components/vant/checkbox/index.js
new file mode 100644
index 0000000..e3b78ab
--- /dev/null
+++ b/gz-wxparty/components/vant/checkbox/index.js
@@ -0,0 +1,77 @@
+import { useParent } from '../common/relation';
+import { VantComponent } from '../common/component';
+function emit(target, value) {
+ target.$emit('input', value);
+ target.$emit('change', value);
+}
+VantComponent({
+ field: true,
+ relation: useParent('checkbox-group'),
+ classes: ['icon-class', 'label-class'],
+ props: {
+ value: Boolean,
+ disabled: Boolean,
+ useIconSlot: Boolean,
+ checkedColor: String,
+ labelPosition: {
+ type: String,
+ value: 'right',
+ },
+ labelDisabled: Boolean,
+ shape: {
+ type: String,
+ value: 'round',
+ },
+ iconSize: {
+ type: null,
+ value: 20,
+ },
+ },
+ data: {
+ parentDisabled: false,
+ direction: 'vertical',
+ },
+ methods: {
+ emitChange(value) {
+ if (this.parent) {
+ this.setParentValue(this.parent, value);
+ }
+ else {
+ emit(this, value);
+ }
+ },
+ toggle() {
+ const { parentDisabled, disabled, value } = this.data;
+ if (!disabled && !parentDisabled) {
+ this.emitChange(!value);
+ }
+ },
+ onClickLabel() {
+ const { labelDisabled, parentDisabled, disabled, value } = this.data;
+ if (!disabled && !labelDisabled && !parentDisabled) {
+ this.emitChange(!value);
+ }
+ },
+ setParentValue(parent, value) {
+ const parentValue = parent.data.value.slice();
+ const { name } = this.data;
+ const { max } = parent.data;
+ if (value) {
+ if (max && parentValue.length >= max) {
+ return;
+ }
+ if (parentValue.indexOf(name) === -1) {
+ parentValue.push(name);
+ emit(parent, parentValue);
+ }
+ }
+ else {
+ const index = parentValue.indexOf(name);
+ if (index !== -1) {
+ parentValue.splice(index, 1);
+ emit(parent, parentValue);
+ }
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/checkbox/index.json b/gz-wxparty/components/vant/checkbox/index.json
new file mode 100644
index 0000000..0a336c0
--- /dev/null
+++ b/gz-wxparty/components/vant/checkbox/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/checkbox/index.wxml b/gz-wxparty/components/vant/checkbox/index.wxml
new file mode 100644
index 0000000..39a7bb0
--- /dev/null
+++ b/gz-wxparty/components/vant/checkbox/index.wxml
@@ -0,0 +1,31 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view class="{{ utils.bem('checkbox', [{ horizontal: direction === 'horizontal' }]) }} custom-class">
+ <view
+ wx:if="{{ labelPosition === 'left' }}"
+ class="label-class {{ utils.bem('checkbox__label', [labelPosition, { disabled: disabled || parentDisabled }]) }}"
+ bindtap="onClickLabel"
+ >
+ <slot />
+ </view>
+ <view class="van-checkbox__icon-wrap" bindtap="toggle">
+ <slot wx:if="{{ useIconSlot }}" name="icon" />
+ <van-icon
+ wx:else
+ name="success"
+ size="0.8em"
+ class="{{ utils.bem('checkbox__icon', [shape, { disabled: disabled || parentDisabled, checked: value }]) }}"
+ style="{{ computed.iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) }}"
+ custom-class="icon-class"
+ custom-style="line-height: 1.25em;"
+ />
+ </view>
+ <view
+ wx:if="{{ labelPosition === 'right' }}"
+ class="label-class {{ utils.bem('checkbox__label', [labelPosition, { disabled: disabled || parentDisabled }]) }}"
+ bindtap="onClickLabel"
+ >
+ <slot />
+ </view>
+</view>
diff --git a/gz-wxparty/components/vant/checkbox/index.wxs b/gz-wxparty/components/vant/checkbox/index.wxs
new file mode 100644
index 0000000..eb9c772
--- /dev/null
+++ b/gz-wxparty/components/vant/checkbox/index.wxs
@@ -0,0 +1,20 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) {
+ var styles = {
+ 'font-size': addUnit(iconSize),
+ };
+
+ if (checkedColor && value && !disabled && !parentDisabled) {
+ styles['border-color'] = checkedColor;
+ styles['background-color'] = checkedColor;
+ }
+
+ return style(styles);
+}
+
+module.exports = {
+ iconStyle: iconStyle,
+};
diff --git a/gz-wxparty/components/vant/checkbox/index.wxss b/gz-wxparty/components/vant/checkbox/index.wxss
new file mode 100644
index 0000000..da2272a
--- /dev/null
+++ b/gz-wxparty/components/vant/checkbox/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-checkbox{align-items:center;display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-checkbox--horizontal{margin-right:12px}.van-checkbox__icon-wrap,.van-checkbox__label{line-height:var(--checkbox-size,20px)}.van-checkbox__icon-wrap{flex:none}.van-checkbox__icon{align-items:center;border:1px solid var(--checkbox-border-color,#c8c9cc);box-sizing:border-box;color:transparent;display:flex;font-size:var(--checkbox-size,20px);height:1em;justify-content:center;text-align:center;transition-duration:var(--checkbox-transition-duration,.2s);transition-property:color,border-color,background-color;width:1em}.van-checkbox__icon--round{border-radius:100%}.van-checkbox__icon--checked{background-color:var(--checkbox-checked-icon-color,#1989fa);border-color:var(--checkbox-checked-icon-color,#1989fa);color:#fff}.van-checkbox__icon--disabled{background-color:var(--checkbox-disabled-background-color,#ebedf0);border-color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__icon--disabled.van-checkbox__icon--checked{color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__label{word-wrap:break-word;color:var(--checkbox-label-color,#323233);padding-left:var(--checkbox-label-margin,10px)}.van-checkbox__label--left{float:left;margin:0 var(--checkbox-label-margin,10px) 0 0}.van-checkbox__label--disabled{color:var(--checkbox-disabled-label-color,#c8c9cc)}.van-checkbox__label:empty{margin:0}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/col/index.d.ts b/gz-wxparty/components/vant/col/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/col/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/col/index.js b/gz-wxparty/components/vant/col/index.js
new file mode 100644
index 0000000..02bb78d
--- /dev/null
+++ b/gz-wxparty/components/vant/col/index.js
@@ -0,0 +1,9 @@
+import { useParent } from '../common/relation';
+import { VantComponent } from '../common/component';
+VantComponent({
+ relation: useParent('row'),
+ props: {
+ span: Number,
+ offset: Number,
+ },
+});
diff --git a/gz-wxparty/components/vant/col/index.json b/gz-wxparty/components/vant/col/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/components/vant/col/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/components/vant/col/index.wxml b/gz-wxparty/components/vant/col/index.wxml
new file mode 100644
index 0000000..975348b
--- /dev/null
+++ b/gz-wxparty/components/vant/col/index.wxml
@@ -0,0 +1,9 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="custom-class {{ utils.bem('col', [span]) }} {{ offset ? 'van-col--offset-' + offset : '' }}"
+ style="{{ computed.rootStyle({ gutter }) }}"
+>
+ <slot />
+</view>
diff --git a/gz-wxparty/components/vant/col/index.wxs b/gz-wxparty/components/vant/col/index.wxs
new file mode 100644
index 0000000..507c1cb
--- /dev/null
+++ b/gz-wxparty/components/vant/col/index.wxs
@@ -0,0 +1,18 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function rootStyle(data) {
+ if (!data.gutter) {
+ return '';
+ }
+
+ return style({
+ 'padding-right': addUnit(data.gutter / 2),
+ 'padding-left': addUnit(data.gutter / 2),
+ });
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+};
diff --git a/gz-wxparty/components/vant/col/index.wxss b/gz-wxparty/components/vant/col/index.wxss
new file mode 100644
index 0000000..2fa265e
--- /dev/null
+++ b/gz-wxparty/components/vant/col/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-col{box-sizing:border-box;float:left}.van-col--1{width:4.16666667%}.van-col--offset-1{margin-left:4.16666667%}.van-col--2{width:8.33333333%}.van-col--offset-2{margin-left:8.33333333%}.van-col--3{width:12.5%}.van-col--offset-3{margin-left:12.5%}.van-col--4{width:16.66666667%}.van-col--offset-4{margin-left:16.66666667%}.van-col--5{width:20.83333333%}.van-col--offset-5{margin-left:20.83333333%}.van-col--6{width:25%}.van-col--offset-6{margin-left:25%}.van-col--7{width:29.16666667%}.van-col--offset-7{margin-left:29.16666667%}.van-col--8{width:33.33333333%}.van-col--offset-8{margin-left:33.33333333%}.van-col--9{width:37.5%}.van-col--offset-9{margin-left:37.5%}.van-col--10{width:41.66666667%}.van-col--offset-10{margin-left:41.66666667%}.van-col--11{width:45.83333333%}.van-col--offset-11{margin-left:45.83333333%}.van-col--12{width:50%}.van-col--offset-12{margin-left:50%}.van-col--13{width:54.16666667%}.van-col--offset-13{margin-left:54.16666667%}.van-col--14{width:58.33333333%}.van-col--offset-14{margin-left:58.33333333%}.van-col--15{width:62.5%}.van-col--offset-15{margin-left:62.5%}.van-col--16{width:66.66666667%}.van-col--offset-16{margin-left:66.66666667%}.van-col--17{width:70.83333333%}.van-col--offset-17{margin-left:70.83333333%}.van-col--18{width:75%}.van-col--offset-18{margin-left:75%}.van-col--19{width:79.16666667%}.van-col--offset-19{margin-left:79.16666667%}.van-col--20{width:83.33333333%}.van-col--offset-20{margin-left:83.33333333%}.van-col--21{width:87.5%}.van-col--offset-21{margin-left:87.5%}.van-col--22{width:91.66666667%}.van-col--offset-22{margin-left:91.66666667%}.van-col--23{width:95.83333333%}.van-col--offset-23{margin-left:95.83333333%}.van-col--24{width:100%}.van-col--offset-24{margin-left:100%}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/common/color.d.ts b/gz-wxparty/components/vant/common/color.d.ts
new file mode 100644
index 0000000..386f307
--- /dev/null
+++ b/gz-wxparty/components/vant/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/gz-wxparty/components/vant/common/color.js b/gz-wxparty/components/vant/common/color.js
new file mode 100644
index 0000000..6b285bd
--- /dev/null
+++ b/gz-wxparty/components/vant/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/gz-wxparty/components/vant/common/component.d.ts b/gz-wxparty/components/vant/common/component.d.ts
new file mode 100644
index 0000000..1d0fd27
--- /dev/null
+++ b/gz-wxparty/components/vant/common/component.d.ts
@@ -0,0 +1,4 @@
+/// <reference types="miniprogram-api-typings" />
+import { VantComponentOptions } from 'definitions/index';
+declare function VantComponent<Data extends WechatMiniprogram.Component.DataOption, Props extends WechatMiniprogram.Component.PropertyOption, Methods extends WechatMiniprogram.Component.MethodOption>(vantOptions: VantComponentOptions<Data, Props, Methods>): void;
+export { VantComponent };
diff --git a/gz-wxparty/components/vant/common/component.js b/gz-wxparty/components/vant/common/component.js
new file mode 100644
index 0000000..8528dc0
--- /dev/null
+++ b/gz-wxparty/components/vant/common/component.js
@@ -0,0 +1,45 @@
+import { basic } from '../mixins/basic';
+function mapKeys(source, target, map) {
+ Object.keys(map).forEach((key) => {
+ if (source[key]) {
+ target[map[key]] = source[key];
+ }
+ });
+}
+function VantComponent(vantOptions) {
+ const options = {};
+ mapKeys(vantOptions, options, {
+ data: 'data',
+ props: 'properties',
+ mixins: 'behaviors',
+ methods: 'methods',
+ beforeCreate: 'created',
+ created: 'attached',
+ mounted: 'ready',
+ destroyed: 'detached',
+ classes: 'externalClasses',
+ });
+ // add default externalClasses
+ options.externalClasses = options.externalClasses || [];
+ options.externalClasses.push('custom-class');
+ // add default behaviors
+ options.behaviors = options.behaviors || [];
+ options.behaviors.push(basic);
+ // add relations
+ const { relation } = vantOptions;
+ if (relation) {
+ options.relations = relation.relations;
+ options.behaviors.push(relation.mixin);
+ }
+ // map field to form-field behavior
+ if (vantOptions.field) {
+ options.behaviors.push('wx://form-field');
+ }
+ // add default options
+ options.options = {
+ multipleSlots: true,
+ addGlobalClass: true,
+ };
+ Component(options);
+}
+export { VantComponent };
diff --git a/gz-wxparty/components/vant/common/index.wxss b/gz-wxparty/components/vant/common/index.wxss
new file mode 100644
index 0000000..ddd8795
--- /dev/null
+++ b/gz-wxparty/components/vant/common/index.wxss
@@ -0,0 +1,69 @@
+.van-ellipsis {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+.van-multi-ellipsis--l2 {
+ -webkit-line-clamp: 2;
+}
+.van-multi-ellipsis--l2,
+.van-multi-ellipsis--l3 {
+ -webkit-box-orient: vertical;
+ display: -webkit-box;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.van-multi-ellipsis--l3 {
+ -webkit-line-clamp: 3;
+}
+.van-clearfix:after {
+ clear: both;
+ content: '';
+ display: table;
+}
+.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 {
+ border: 0 solid #ebedf0;
+ bottom: -50%;
+ box-sizing: border-box;
+ content: ' ';
+ left: -50%;
+ pointer-events: none;
+ position: absolute;
+ right: -50%;
+ top: -50%;
+ transform: scale(0.5);
+ transform-origin: center;
+}
+.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;
+}
diff --git a/gz-wxparty/components/vant/common/relation.d.ts b/gz-wxparty/components/vant/common/relation.d.ts
new file mode 100644
index 0000000..4b5af00
--- /dev/null
+++ b/gz-wxparty/components/vant/common/relation.d.ts
@@ -0,0 +1,15 @@
+/// <reference types="miniprogram-api-typings" />
+declare type TrivialInstance = WechatMiniprogram.Component.TrivialInstance;
+export declare function useParent(name: string, onEffect?: (this: TrivialInstance) => void): {
+ relations: {
+ [x: string]: WechatMiniprogram.Component.RelationOption;
+ };
+ mixin: string;
+};
+export declare function useChildren(name: string, onEffect?: (this: TrivialInstance, target: TrivialInstance) => void): {
+ relations: {
+ [x: string]: WechatMiniprogram.Component.RelationOption;
+ };
+ mixin: string;
+};
+export {};
diff --git a/gz-wxparty/components/vant/common/relation.js b/gz-wxparty/components/vant/common/relation.js
new file mode 100644
index 0000000..04e2934
--- /dev/null
+++ b/gz-wxparty/components/vant/common/relation.js
@@ -0,0 +1,56 @@
+export function useParent(name, onEffect) {
+ const path = `../${name}/index`;
+ return {
+ relations: {
+ [path]: {
+ type: 'ancestor',
+ linked() {
+ onEffect && onEffect.call(this);
+ },
+ linkChanged() {
+ onEffect && onEffect.call(this);
+ },
+ unlinked() {
+ onEffect && onEffect.call(this);
+ },
+ },
+ },
+ mixin: Behavior({
+ created() {
+ Object.defineProperty(this, 'parent', {
+ get: () => this.getRelationNodes(path)[0],
+ });
+ Object.defineProperty(this, 'index', {
+ // @ts-ignore
+ get: () => { var _a, _b; return (_b = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.indexOf(this); },
+ });
+ },
+ }),
+ };
+}
+export function useChildren(name, onEffect) {
+ const path = `../${name}/index`;
+ return {
+ relations: {
+ [path]: {
+ type: 'descendant',
+ linked(target) {
+ onEffect && onEffect.call(this, target);
+ },
+ linkChanged(target) {
+ onEffect && onEffect.call(this, target);
+ },
+ unlinked(target) {
+ onEffect && onEffect.call(this, target);
+ },
+ },
+ },
+ mixin: Behavior({
+ created() {
+ Object.defineProperty(this, 'children', {
+ get: () => this.getRelationNodes(path) || [],
+ });
+ },
+ }),
+ };
+}
diff --git a/gz-wxparty/components/vant/common/style/clearfix.wxss b/gz-wxparty/components/vant/common/style/clearfix.wxss
new file mode 100644
index 0000000..442246f
--- /dev/null
+++ b/gz-wxparty/components/vant/common/style/clearfix.wxss
@@ -0,0 +1 @@
+.van-clearfix:after{clear:both;content:"";display:table}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/common/style/ellipsis.wxss b/gz-wxparty/components/vant/common/style/ellipsis.wxss
new file mode 100644
index 0000000..ee701df
--- /dev/null
+++ b/gz-wxparty/components/vant/common/style/ellipsis.wxss
@@ -0,0 +1 @@
+.van-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.van-multi-ellipsis--l3{-webkit-line-clamp:3}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/common/style/hairline.wxss b/gz-wxparty/components/vant/common/style/hairline.wxss
new file mode 100644
index 0000000..f7c6260
--- /dev/null
+++ b/gz-wxparty/components/vant/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{border:0 solid #ebedf0;bottom:-50%;box-sizing:border-box;content:" ";left:-50%;pointer-events:none;position:absolute;right:-50%;top:-50%;transform:scale(.5);transform-origin:center}.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/gz-wxparty/components/vant/common/style/mixins/clearfix.wxss b/gz-wxparty/components/vant/common/style/mixins/clearfix.wxss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/gz-wxparty/components/vant/common/style/mixins/clearfix.wxss
diff --git a/gz-wxparty/components/vant/common/style/mixins/ellipsis.wxss b/gz-wxparty/components/vant/common/style/mixins/ellipsis.wxss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/gz-wxparty/components/vant/common/style/mixins/ellipsis.wxss
diff --git a/gz-wxparty/components/vant/common/style/mixins/hairline.wxss b/gz-wxparty/components/vant/common/style/mixins/hairline.wxss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/gz-wxparty/components/vant/common/style/mixins/hairline.wxss
diff --git a/gz-wxparty/components/vant/common/style/var.wxss b/gz-wxparty/components/vant/common/style/var.wxss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/gz-wxparty/components/vant/common/style/var.wxss
diff --git a/gz-wxparty/components/vant/common/utils.d.ts b/gz-wxparty/components/vant/common/utils.d.ts
new file mode 100644
index 0000000..af36e60
--- /dev/null
+++ b/gz-wxparty/components/vant/common/utils.d.ts
@@ -0,0 +1,14 @@
+/// <reference types="miniprogram-api-typings" />
+/// <reference types="node" />
+export { isDef } from './validator';
+export declare function range(num: number, min: number, max: number): number;
+export declare function nextTick(cb: (...args: any[]) => void): void;
+export declare function getSystemInfoSync(): WechatMiniprogram.SystemInfo;
+export declare function addUnit(value?: string | number): string | undefined;
+export declare function requestAnimationFrame(cb: () => void): NodeJS.Timeout | WechatMiniprogram.NodesRef;
+export declare function pickExclude(obj: unknown, keys: string[]): {};
+export declare function getRect(context: WechatMiniprogram.Component.TrivialInstance, selector: string): Promise<WechatMiniprogram.BoundingClientRectCallbackResult>;
+export declare function getAllRect(context: WechatMiniprogram.Component.TrivialInstance, selector: string): Promise<WechatMiniprogram.BoundingClientRectCallbackResult[]>;
+export declare function groupSetData(context: WechatMiniprogram.Component.TrivialInstance, cb: () => void): void;
+export declare function toPromise(promiseLike: Promise<unknown> | unknown): Promise<unknown>;
+export declare function getCurrentPage<T>(): T & WechatMiniprogram.OptionalInterface<WechatMiniprogram.Page.ILifetime> & WechatMiniprogram.Page.InstanceProperties & WechatMiniprogram.Page.InstanceMethods<WechatMiniprogram.IAnyObject> & WechatMiniprogram.Page.Data<WechatMiniprogram.IAnyObject> & WechatMiniprogram.IAnyObject;
diff --git a/gz-wxparty/components/vant/common/utils.js b/gz-wxparty/components/vant/common/utils.js
new file mode 100644
index 0000000..d06acb1
--- /dev/null
+++ b/gz-wxparty/components/vant/common/utils.js
@@ -0,0 +1,92 @@
+import { isDef, isNumber, isPlainObject, isPromise } from './validator';
+import { canIUseGroupSetData, canIUseNextTick } from './version';
+export { isDef } from './validator';
+export function range(num, min, max) {
+ return Math.min(Math.max(num, min), max);
+}
+export function nextTick(cb) {
+ if (canIUseNextTick()) {
+ wx.nextTick(cb);
+ }
+ else {
+ setTimeout(() => {
+ cb();
+ }, 1000 / 30);
+ }
+}
+let systemInfo;
+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;
+}
+export function requestAnimationFrame(cb) {
+ const systemInfo = getSystemInfoSync();
+ if (systemInfo.platform === 'devtools') {
+ return setTimeout(() => {
+ cb();
+ }, 1000 / 30);
+ }
+ return wx
+ .createSelectorQuery()
+ .selectViewport()
+ .boundingClientRect()
+ .exec(() => {
+ cb();
+ });
+}
+export function pickExclude(obj, keys) {
+ if (!isPlainObject(obj)) {
+ return {};
+ }
+ return Object.keys(obj).reduce((prev, key) => {
+ if (!keys.includes(key)) {
+ prev[key] = obj[key];
+ }
+ return prev;
+ }, {});
+}
+export function getRect(context, selector) {
+ return new Promise((resolve) => {
+ wx.createSelectorQuery()
+ .in(context)
+ .select(selector)
+ .boundingClientRect()
+ .exec((rect = []) => resolve(rect[0]));
+ });
+}
+export function getAllRect(context, selector) {
+ return new Promise((resolve) => {
+ wx.createSelectorQuery()
+ .in(context)
+ .selectAll(selector)
+ .boundingClientRect()
+ .exec((rect = []) => resolve(rect[0]));
+ });
+}
+export function groupSetData(context, cb) {
+ if (canIUseGroupSetData()) {
+ context.groupSetData(cb);
+ }
+ else {
+ cb();
+ }
+}
+export function toPromise(promiseLike) {
+ if (isPromise(promiseLike)) {
+ return promiseLike;
+ }
+ return Promise.resolve(promiseLike);
+}
+export function getCurrentPage() {
+ const pages = getCurrentPages();
+ return pages[pages.length - 1];
+}
diff --git a/gz-wxparty/components/vant/common/validator.d.ts b/gz-wxparty/components/vant/common/validator.d.ts
new file mode 100644
index 0000000..152894a
--- /dev/null
+++ b/gz-wxparty/components/vant/common/validator.d.ts
@@ -0,0 +1,9 @@
+export declare function isFunction(val: unknown): val is Function;
+export declare function isPlainObject(val: unknown): val is Record<string, unknown>;
+export declare function isPromise<T = unknown>(val: unknown): val is Promise<T>;
+export declare function isDef(value: unknown): boolean;
+export declare function isObj(x: unknown): x is Record<string, unknown>;
+export declare function isNumber(value: string): boolean;
+export declare function isBoolean(value: unknown): value is boolean;
+export declare function isImageUrl(url: string): boolean;
+export declare function isVideoUrl(url: string): boolean;
diff --git a/gz-wxparty/components/vant/common/validator.js b/gz-wxparty/components/vant/common/validator.js
new file mode 100644
index 0000000..f11f844
--- /dev/null
+++ b/gz-wxparty/components/vant/common/validator.js
@@ -0,0 +1,31 @@
+// eslint-disable-next-line @typescript-eslint/ban-types
+export function isFunction(val) {
+ return typeof val === 'function';
+}
+export function isPlainObject(val) {
+ return val !== null && typeof val === 'object' && !Array.isArray(val);
+}
+export function isPromise(val) {
+ return isPlainObject(val) && isFunction(val.then) && isFunction(val.catch);
+}
+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 isBoolean(value) {
+ return typeof value === 'boolean';
+}
+const IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i;
+const VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv)/i;
+export function isImageUrl(url) {
+ return IMAGE_REGEXP.test(url);
+}
+export function isVideoUrl(url) {
+ return VIDEO_REGEXP.test(url);
+}
diff --git a/gz-wxparty/components/vant/common/version.d.ts b/gz-wxparty/components/vant/common/version.d.ts
new file mode 100644
index 0000000..988b226
--- /dev/null
+++ b/gz-wxparty/components/vant/common/version.d.ts
@@ -0,0 +1,7 @@
+export declare function canIUseModel(): boolean;
+export declare function canIUseFormFieldButton(): boolean;
+export declare function canIUseAnimate(): boolean;
+export declare function canIUseGroupSetData(): boolean;
+export declare function canIUseNextTick(): boolean;
+export declare function canIUseCanvas2d(): boolean;
+export declare function canIUseGetUserProfile(): boolean;
diff --git a/gz-wxparty/components/vant/common/version.js b/gz-wxparty/components/vant/common/version.js
new file mode 100644
index 0000000..eb85185
--- /dev/null
+++ b/gz-wxparty/components/vant/common/version.js
@@ -0,0 +1,48 @@
+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;
+}
+function gte(version) {
+ const system = getSystemInfoSync();
+ return compareVersion(system.SDKVersion, version) >= 0;
+}
+export function canIUseModel() {
+ return gte('2.9.3');
+}
+export function canIUseFormFieldButton() {
+ return gte('2.10.3');
+}
+export function canIUseAnimate() {
+ return gte('2.9.0');
+}
+export function canIUseGroupSetData() {
+ return gte('2.4.0');
+}
+export function canIUseNextTick() {
+ return wx.canIUse('nextTick');
+}
+export function canIUseCanvas2d() {
+ return gte('2.9.0');
+}
+export function canIUseGetUserProfile() {
+ return !!wx.getUserProfile;
+}
diff --git a/gz-wxparty/components/vant/definitions/index.d.ts b/gz-wxparty/components/vant/definitions/index.d.ts
new file mode 100644
index 0000000..a7cc750
--- /dev/null
+++ b/gz-wxparty/components/vant/definitions/index.d.ts
@@ -0,0 +1,27 @@
+/// <reference types="miniprogram-api-typings" />
+interface VantComponentInstance {
+ parent: WechatMiniprogram.Component.TrivialInstance;
+ children: WechatMiniprogram.Component.TrivialInstance[];
+ index: number;
+ $emit: (name: string, detail?: unknown, options?: WechatMiniprogram.Component.TriggerEventOption) => void;
+}
+export declare type VantComponentOptions<Data extends WechatMiniprogram.Component.DataOption, Props extends WechatMiniprogram.Component.PropertyOption, Methods extends WechatMiniprogram.Component.MethodOption> = {
+ data?: Data;
+ field?: boolean;
+ classes?: string[];
+ mixins?: string[];
+ props?: Props;
+ relation?: {
+ relations: Record<string, WechatMiniprogram.Component.RelationOption>;
+ mixin: string;
+ };
+ methods?: Methods;
+ beforeCreate?: () => void;
+ created?: () => void;
+ mounted?: () => void;
+ destroyed?: () => void;
+} & ThisType<VantComponentInstance & WechatMiniprogram.Component.Instance<Data & {
+ name: string;
+ value: any;
+} & Record<string, any>, Props, Methods> & Record<string, any>>;
+export {};
diff --git a/gz-wxparty/components/vant/definitions/index.js b/gz-wxparty/components/vant/definitions/index.js
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/definitions/index.js
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/divider/index.d.ts b/gz-wxparty/components/vant/divider/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/divider/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/divider/index.js b/gz-wxparty/components/vant/divider/index.js
new file mode 100644
index 0000000..9596edd
--- /dev/null
+++ b/gz-wxparty/components/vant/divider/index.js
@@ -0,0 +1,12 @@
+import { VantComponent } from '../common/component';
+VantComponent({
+ props: {
+ dashed: Boolean,
+ hairline: Boolean,
+ contentPosition: String,
+ fontSize: String,
+ borderColor: String,
+ textColor: String,
+ customStyle: String,
+ },
+});
diff --git a/gz-wxparty/components/vant/divider/index.json b/gz-wxparty/components/vant/divider/index.json
new file mode 100644
index 0000000..a89ef4d
--- /dev/null
+++ b/gz-wxparty/components/vant/divider/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
diff --git a/gz-wxparty/components/vant/divider/index.wxml b/gz-wxparty/components/vant/divider/index.wxml
new file mode 100644
index 0000000..f6a5a45
--- /dev/null
+++ b/gz-wxparty/components/vant/divider/index.wxml
@@ -0,0 +1,9 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="custom-class {{ utils.bem('divider', [{ dashed, hairline }, contentPosition]) }}"
+ style="{{ computed.rootStyle({ borderColor, textColor, fontSize, customStyle }) }}"
+>
+ <slot />
+</view>
diff --git a/gz-wxparty/components/vant/divider/index.wxs b/gz-wxparty/components/vant/divider/index.wxs
new file mode 100644
index 0000000..215b14f
--- /dev/null
+++ b/gz-wxparty/components/vant/divider/index.wxs
@@ -0,0 +1,18 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function rootStyle(data) {
+ return style([
+ {
+ 'border-color': data.borderColor,
+ color: data.textColor,
+ 'font-size': addUnit(data.fontSize),
+ },
+ data.customStyle,
+ ]);
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+};
diff --git a/gz-wxparty/components/vant/divider/index.wxss b/gz-wxparty/components/vant/divider/index.wxss
new file mode 100644
index 0000000..e91dc44
--- /dev/null
+++ b/gz-wxparty/components/vant/divider/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-divider{align-items:center;border:0 solid var(--divider-border-color,#ebedf0);color:var(--divider-text-color,#969799);display:flex;font-size:var(--divider-font-size,14px);line-height:var(--divider-line-height,24px);margin:var(--divider-margin,16px 0)}.van-divider:after,.van-divider:before{border-color:inherit;border-style:inherit;border-width:1px 0 0;box-sizing:border-box;display:block;flex:1;height:1px}.van-divider:before{content:""}.van-divider--hairline:after,.van-divider--hairline:before{transform:scaleY(.5)}.van-divider--dashed{border-style:dashed}.van-divider--center:before,.van-divider--left:before,.van-divider--right:before{margin-right:var(--divider-content-padding,16px)}.van-divider--center:after,.van-divider--left:after,.van-divider--right:after{content:"";margin-left:var(--divider-content-padding,16px)}.van-divider--left:before{max-width:var(--divider-content-left-width,10%)}.van-divider--right:after{max-width:var(--divider-content-right-width,10%)}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/empty/index.d.ts b/gz-wxparty/components/vant/empty/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/empty/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/empty/index.js b/gz-wxparty/components/vant/empty/index.js
new file mode 100644
index 0000000..842e1bb
--- /dev/null
+++ b/gz-wxparty/components/vant/empty/index.js
@@ -0,0 +1,10 @@
+import { VantComponent } from '../common/component';
+VantComponent({
+ props: {
+ description: String,
+ image: {
+ type: String,
+ value: 'default',
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/empty/index.json b/gz-wxparty/components/vant/empty/index.json
new file mode 100644
index 0000000..a89ef4d
--- /dev/null
+++ b/gz-wxparty/components/vant/empty/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
diff --git a/gz-wxparty/components/vant/empty/index.wxml b/gz-wxparty/components/vant/empty/index.wxml
new file mode 100644
index 0000000..9c7b719
--- /dev/null
+++ b/gz-wxparty/components/vant/empty/index.wxml
@@ -0,0 +1,22 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view class="custom-class van-empty">
+ <view class="van-empty__image">
+ <slot name="image"></slot>
+ </view>
+ <view class="van-empty__image">
+ <image wx:if="{{ image }}" class="van-empty__image__img" src="{{ computed.imageUrl(image) }}" />
+ </view>
+
+ <view class="van-empty__description">
+ <slot name="description"></slot>
+ </view>
+ <view class="van-empty__description">
+ {{ description }}
+ </view>
+
+ <view class="van-empty__bottom">
+ <slot></slot>
+ </view>
+</view>
diff --git a/gz-wxparty/components/vant/empty/index.wxs b/gz-wxparty/components/vant/empty/index.wxs
new file mode 100644
index 0000000..cf92ece
--- /dev/null
+++ b/gz-wxparty/components/vant/empty/index.wxs
@@ -0,0 +1,15 @@
+/* eslint-disable */
+var PRESETS = ['error', 'search', 'default', 'network'];
+
+function imageUrl(image) {
+ if (PRESETS.indexOf(image) !== -1) {
+ return 'https://img.yzcdn.cn/vant/empty-image-' + image + '.png';
+ }
+
+ return image;
+}
+
+module.exports = {
+ imageUrl: imageUrl,
+};
+
diff --git a/gz-wxparty/components/vant/empty/index.wxss b/gz-wxparty/components/vant/empty/index.wxss
new file mode 100644
index 0000000..0fb74fe
--- /dev/null
+++ b/gz-wxparty/components/vant/empty/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-empty{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:32px 0}.van-empty__image{height:160px;width:160px}.van-empty__image:empty{display:none}.van-empty__image__img{height:100%;width:100%}.van-empty__image:not(:empty)+.van-empty__image{display:none}.van-empty__description{color:#969799;font-size:14px;line-height:20px;margin-top:16px;padding:0 60px}.van-empty__description:empty,.van-empty__description:not(:empty)+.van-empty__description{display:none}.van-empty__bottom{margin-top:24px}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/field/index.d.ts b/gz-wxparty/components/vant/field/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/field/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/field/index.js b/gz-wxparty/components/vant/field/index.js
new file mode 100644
index 0000000..35627a2
--- /dev/null
+++ b/gz-wxparty/components/vant/field/index.js
@@ -0,0 +1,107 @@
+import { nextTick } from '../common/utils';
+import { VantComponent } from '../common/component';
+import { commonProps, inputProps, textareaProps } from './props';
+VantComponent({
+ field: true,
+ classes: ['input-class', 'right-icon-class', 'label-class'],
+ props: Object.assign(Object.assign(Object.assign(Object.assign({}, commonProps), inputProps), textareaProps), { size: String, icon: String, label: String, error: Boolean, center: Boolean, isLink: Boolean, leftIcon: String, rightIcon: String, autosize: null, required: Boolean, iconClass: String, clickable: Boolean, inputAlign: String, customStyle: String, errorMessage: String, arrowDirection: String, showWordLimit: Boolean, errorMessageAlign: String, readonly: {
+ type: Boolean,
+ observer: 'setShowClear',
+ }, clearable: {
+ type: Boolean,
+ observer: 'setShowClear',
+ }, clearTrigger: {
+ type: String,
+ value: 'focus',
+ }, border: {
+ type: Boolean,
+ value: true,
+ }, titleWidth: {
+ type: String,
+ value: '6.2em',
+ }, clearIcon: {
+ type: String,
+ value: 'clear',
+ } }),
+ data: {
+ focused: false,
+ innerValue: '',
+ showClear: false,
+ },
+ created() {
+ this.value = this.data.value;
+ this.setData({ innerValue: this.value });
+ },
+ methods: {
+ onInput(event) {
+ const { value = '' } = event.detail || {};
+ this.value = value;
+ this.setShowClear();
+ this.emitChange();
+ },
+ onFocus(event) {
+ this.focused = true;
+ this.setShowClear();
+ this.$emit('focus', event.detail);
+ },
+ onBlur(event) {
+ this.focused = false;
+ this.setShowClear();
+ this.$emit('blur', event.detail);
+ },
+ onClickIcon() {
+ this.$emit('click-icon');
+ },
+ onClickInput(event) {
+ this.$emit('click-input', event.detail);
+ },
+ onClear() {
+ this.setData({ innerValue: '' });
+ this.value = '';
+ this.setShowClear();
+ nextTick(() => {
+ this.emitChange();
+ this.$emit('clear', '');
+ });
+ },
+ onConfirm(event) {
+ const { value = '' } = event.detail || {};
+ this.value = value;
+ this.setShowClear();
+ this.$emit('confirm', value);
+ },
+ setValue(value) {
+ this.value = value;
+ this.setShowClear();
+ if (value === '') {
+ this.setData({ innerValue: '' });
+ }
+ this.emitChange();
+ },
+ onLineChange(event) {
+ this.$emit('linechange', event.detail);
+ },
+ onKeyboardHeightChange(event) {
+ this.$emit('keyboardheightchange', event.detail);
+ },
+ emitChange() {
+ this.setData({ value: this.value });
+ nextTick(() => {
+ this.$emit('input', this.value);
+ this.$emit('change', this.value);
+ });
+ },
+ setShowClear() {
+ const { clearable, readonly, clearTrigger } = this.data;
+ const { focused, value } = this;
+ let showClear = false;
+ if (clearable && !readonly) {
+ const hasValue = !!value;
+ const trigger = clearTrigger === 'always' || (clearTrigger === 'focus' && focused);
+ showClear = hasValue && trigger;
+ }
+ this.setData({ showClear });
+ },
+ noop() { },
+ },
+});
diff --git a/gz-wxparty/components/vant/field/index.json b/gz-wxparty/components/vant/field/index.json
new file mode 100644
index 0000000..5906c50
--- /dev/null
+++ b/gz-wxparty/components/vant/field/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-cell": "../cell/index",
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/field/index.wxml b/gz-wxparty/components/vant/field/index.wxml
new file mode 100644
index 0000000..f42d0ab
--- /dev/null
+++ b/gz-wxparty/components/vant/field/index.wxml
@@ -0,0 +1,57 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<van-cell
+ size="{{ size }}"
+ icon="{{ leftIcon }}"
+ center="{{ center }}"
+ border="{{ border }}"
+ is-link="{{ isLink }}"
+ required="{{ required }}"
+ clickable="{{ clickable }}"
+ title-width="{{ titleWidth }}"
+ title-style="margin-right: 12px;"
+ custom-style="{{ customStyle }}"
+ arrow-direction="{{ arrowDirection }}"
+ custom-class="van-field"
+>
+ <slot />
+ <slot name="left-icon" slot="icon" />
+ <view wx:if="{{ label }}" class="label-class {{ utils.bem('field__label', { disabled }) }}" slot="title">
+ {{ label }}
+ </view>
+ <slot wx:else name="label" slot="title" />
+ <view class="{{ utils.bem('field__body', [type]) }}">
+ <view class="{{ utils.bem('field__control', [inputAlign, 'custom']) }}" bindtap="onClickInput">
+ <slot name="input" />
+ </view>
+ <include wx:if="{{ type === 'textarea' }}" src="./textarea.wxml" />
+ <include wx:else src="./input.wxml" />
+
+ <van-icon
+ wx:if="{{ showClear }}"
+ name="{{ clearIcon }}"
+ class="van-field__clear-root van-field__icon-root"
+ catch:touchstart="onClear"
+ />
+ <view class="van-field__icon-container" bind:tap="onClickIcon">
+ <van-icon
+ wx:if="{{ rightIcon || icon }}"
+ name="{{ rightIcon || icon }}"
+ class="van-field__icon-root {{ iconClass }}"
+ custom-class="right-icon-class"
+ />
+ <slot name="right-icon" />
+ <slot name="icon" />
+ </view>
+ <view class="van-field__button">
+ <slot name="button" />
+ </view>
+ </view>
+ <view wx:if="{{ showWordLimit && maxlength }}" class="van-field__word-limit">
+ <view class="{{ utils.bem('field__word-num', { full: value.length >= maxlength }) }}">{{ value.length >= maxlength ? maxlength : value.length }}</view>/{{ maxlength }}
+ </view>
+ <view wx:if="{{ errorMessage }}" class="{{ utils.bem('field__error-message', [errorMessageAlign, { disabled, error }]) }}">
+ {{ errorMessage }}
+ </view>
+</van-cell>
diff --git a/gz-wxparty/components/vant/field/index.wxs b/gz-wxparty/components/vant/field/index.wxs
new file mode 100644
index 0000000..78575b9
--- /dev/null
+++ b/gz-wxparty/components/vant/field/index.wxs
@@ -0,0 +1,18 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function inputStyle(autosize) {
+ if (autosize && autosize.constructor === 'Object') {
+ return style({
+ 'min-height': addUnit(autosize.minHeight),
+ 'max-height': addUnit(autosize.maxHeight),
+ });
+ }
+
+ return '';
+}
+
+module.exports = {
+ inputStyle: inputStyle,
+};
diff --git a/gz-wxparty/components/vant/field/index.wxss b/gz-wxparty/components/vant/field/index.wxss
new file mode 100644
index 0000000..e62ed24
--- /dev/null
+++ b/gz-wxparty/components/vant/field/index.wxss
@@ -0,0 +1,134 @@
+@import '../common/index.wxss';
+.van-field {
+ --cell-icon-size: var(--field-icon-size, 16px);
+}
+.van-field__label {
+ color: var(--field-label-color, #646566);
+}
+.van-field__label--disabled {
+ color: var(--field-disabled-text-color, #c8c9cc);
+}
+.van-field__body {
+ align-items: center;
+ display: flex;
+}
+.van-field__body--textarea {
+ box-sizing: border-box;
+ line-height: 1.2em;
+ min-height: var(--cell-line-height, 24px);
+ padding: 3.6px 0;
+}
+.van-field__control:empty + .van-field__control {
+ display: block;
+}
+.van-field__control {
+ background-color: initial;
+ border: 0;
+ box-sizing: border-box;
+ color: var(--field-input-text-color, #323233);
+ display: none;
+ height: var(--cell-line-height, 24px);
+ line-height: inherit;
+ margin: 0;
+ min-height: var(--cell-line-height, 24px);
+ padding: 0;
+ position: relative;
+ resize: none;
+ text-align: left;
+ width: 100%;
+}
+.van-field__control:empty {
+ display: none;
+}
+.van-field__control--textarea {
+ height: var(--field-text-area-min-height, 18px);
+ min-height: var(--field-text-area-min-height, 18px);
+}
+.van-field__control--error {
+ color: var(--field-input-error-text-color, #ee0a24);
+}
+.van-field__control--disabled {
+ background-color: initial;
+ color: var(--field-input-disabled-text-color, #c8c9cc);
+ opacity: 1;
+}
+.van-field__control--center {
+ text-align: center;
+}
+.van-field__control--right {
+ text-align: right;
+}
+.van-field__control--custom {
+ align-items: center;
+ display: flex;
+ min-height: var(--cell-line-height, 24px);
+}
+.van-field__placeholder {
+ color: var(--field-placeholder-text-color, #c8c9cc);
+ left: 0;
+ pointer-events: none;
+ position: absolute;
+ right: 0;
+ top: 0;
+}
+.van-field__placeholder--error {
+ color: var(--field-error-message-color, #ee0a24);
+}
+.van-field__icon-root {
+ align-items: center;
+ display: flex;
+ min-height: var(--cell-line-height, 24px);
+}
+.van-field__clear-root,
+.van-field__icon-container {
+ line-height: inherit;
+ margin-right: calc(var(--padding-xs, 8px) * -1);
+ padding: 0 var(--padding-xs, 8px);
+ vertical-align: middle;
+}
+.van-field__button,
+.van-field__clear-root,
+.van-field__icon-container {
+ flex-shrink: 0;
+}
+.van-field__clear-root {
+ color: var(--field-clear-icon-color, #c8c9cc);
+ font-size: var(--field-clear-icon-size, 16px);
+}
+.van-field__icon-container {
+ color: var(--field-icon-container-color, #969799);
+ font-size: var(--field-icon-size, 16px);
+}
+.van-field__icon-container:empty {
+ display: none;
+}
+.van-field__button {
+ padding-left: var(--padding-xs, 8px);
+}
+.van-field__button:empty {
+ display: none;
+}
+.van-field__error-message {
+ color: var(--field-error-message-color, #ee0a24);
+ font-size: var(--field-error-message-text-font-size, 12px);
+ text-align: left;
+}
+.van-field__error-message--center {
+ text-align: center;
+}
+.van-field__error-message--right {
+ text-align: right;
+}
+.van-field__word-limit {
+ color: var(--field-word-limit-color, #646566);
+ font-size: var(--field-word-limit-font-size, 12px);
+ line-height: var(--field-word-limit-line-height, 16px);
+ margin-top: var(--padding-base, 4px);
+ text-align: right;
+}
+.van-field__word-num {
+ display: inline;
+}
+.van-field__word-num--full {
+ color: var(--field-word-num-full-color, #ee0a24);
+}
diff --git a/gz-wxparty/components/vant/field/input.wxml b/gz-wxparty/components/vant/field/input.wxml
new file mode 100644
index 0000000..dc247aa
--- /dev/null
+++ b/gz-wxparty/components/vant/field/input.wxml
@@ -0,0 +1,28 @@
+<input
+ class="{{ utils.bem('field__control', [inputAlign, { disabled, error }]) }} input-class"
+ type="{{ type }}"
+ focus="{{ focus }}"
+ cursor="{{ cursor }}"
+ value="{{ innerValue || '' }}"
+ auto-focus="{{ autoFocus }}"
+ disabled="{{ disabled || readonly }}"
+ maxlength="{{ maxlength }}"
+ placeholder="{{ placeholder }}"
+ placeholder-style="{{ placeholderStyle }}"
+ placeholder-class="{{ utils.bem('field__placeholder', { error }) }}"
+ confirm-type="{{ confirmType }}"
+ confirm-hold="{{ confirmHold }}"
+ hold-keyboard="{{ holdKeyboard }}"
+ cursor-spacing="{{ cursorSpacing }}"
+ adjust-position="{{ adjustPosition }}"
+ selection-end="{{ selectionEnd }}"
+ selection-start="{{ selectionStart }}"
+ always-embed="{{ alwaysEmbed }}"
+ password="{{ password || type === 'password' }}"
+ bindinput="onInput"
+ bindtap="onClickInput"
+ bindblur="onBlur"
+ bindfocus="onFocus"
+ bindconfirm="onConfirm"
+ bindkeyboardheightchange="onKeyboardHeightChange"
+/>
diff --git a/gz-wxparty/components/vant/field/props.d.ts b/gz-wxparty/components/vant/field/props.d.ts
new file mode 100644
index 0000000..5cd130a
--- /dev/null
+++ b/gz-wxparty/components/vant/field/props.d.ts
@@ -0,0 +1,4 @@
+/// <reference types="miniprogram-api-typings" />
+export declare const commonProps: WechatMiniprogram.Component.PropertyOption;
+export declare const inputProps: WechatMiniprogram.Component.PropertyOption;
+export declare const textareaProps: WechatMiniprogram.Component.PropertyOption;
diff --git a/gz-wxparty/components/vant/field/props.js b/gz-wxparty/components/vant/field/props.js
new file mode 100644
index 0000000..ae405b3
--- /dev/null
+++ b/gz-wxparty/components/vant/field/props.js
@@ -0,0 +1,64 @@
+export const commonProps = {
+ value: {
+ type: String,
+ observer(value) {
+ if (value !== this.value) {
+ this.setData({ innerValue: value });
+ this.value = value;
+ }
+ },
+ },
+ placeholder: String,
+ placeholderStyle: String,
+ placeholderClass: String,
+ disabled: Boolean,
+ maxlength: {
+ type: Number,
+ value: -1,
+ },
+ cursorSpacing: {
+ type: Number,
+ value: 50,
+ },
+ autoFocus: Boolean,
+ focus: Boolean,
+ cursor: {
+ type: Number,
+ value: -1,
+ },
+ selectionStart: {
+ type: Number,
+ value: -1,
+ },
+ selectionEnd: {
+ type: Number,
+ value: -1,
+ },
+ adjustPosition: {
+ type: Boolean,
+ value: true,
+ },
+ holdKeyboard: Boolean,
+};
+export const inputProps = {
+ type: {
+ type: String,
+ value: 'text',
+ },
+ password: Boolean,
+ confirmType: String,
+ confirmHold: Boolean,
+ alwaysEmbed: Boolean,
+};
+export const textareaProps = {
+ autoHeight: Boolean,
+ fixed: Boolean,
+ showConfirmBar: {
+ type: Boolean,
+ value: true,
+ },
+ disableDefaultPadding: {
+ type: Boolean,
+ value: true,
+ },
+};
diff --git a/gz-wxparty/components/vant/field/textarea.wxml b/gz-wxparty/components/vant/field/textarea.wxml
new file mode 100644
index 0000000..5015a51
--- /dev/null
+++ b/gz-wxparty/components/vant/field/textarea.wxml
@@ -0,0 +1,29 @@
+<textarea
+ class="{{ utils.bem('field__control', [inputAlign, type, { disabled, error }]) }} input-class"
+ fixed="{{ fixed }}"
+ focus="{{ focus }}"
+ cursor="{{ cursor }}"
+ value="{{ innerValue }}"
+ auto-focus="{{ autoFocus }}"
+ disabled="{{ disabled || readonly }}"
+ maxlength="{{ maxlength }}"
+ placeholder="{{ placeholder }}"
+ placeholder-style="{{ placeholderStyle }}"
+ placeholder-class="{{ utils.bem('field__placeholder', { error, disabled }) }}"
+ auto-height="{{ !!autosize }}"
+ style="{{ computed.inputStyle(autosize) }}"
+ cursor-spacing="{{ cursorSpacing }}"
+ adjust-position="{{ adjustPosition }}"
+ show-confirm-bar="{{ showConfirmBar }}"
+ hold-keyboard="{{ holdKeyboard }}"
+ selection-end="{{ selectionEnd }}"
+ selection-start="{{ selectionStart }}"
+ disable-default-padding="{{ disableDefaultPadding }}"
+ bindinput="onInput"
+ bindtap="onClickInput"
+ bindblur="onBlur"
+ bindfocus="onFocus"
+ bindconfirm="onConfirm"
+ bindlinechange="onLineChange"
+ bindkeyboardheightchange="onKeyboardHeightChange"
+/>
diff --git a/gz-wxparty/components/vant/icon/index.d.ts b/gz-wxparty/components/vant/icon/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/icon/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/icon/index.js b/gz-wxparty/components/vant/icon/index.js
new file mode 100644
index 0000000..34fee33
--- /dev/null
+++ b/gz-wxparty/components/vant/icon/index.js
@@ -0,0 +1,20 @@
+import { VantComponent } from '../common/component';
+VantComponent({
+ props: {
+ dot: Boolean,
+ info: null,
+ size: null,
+ color: String,
+ customStyle: String,
+ classPrefix: {
+ type: String,
+ value: 'van-icon',
+ },
+ name: String,
+ },
+ methods: {
+ onClick() {
+ this.$emit('click');
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/icon/index.json b/gz-wxparty/components/vant/icon/index.json
new file mode 100644
index 0000000..bf0ebe0
--- /dev/null
+++ b/gz-wxparty/components/vant/icon/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-info": "../info/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/icon/index.wxml b/gz-wxparty/components/vant/icon/index.wxml
new file mode 100644
index 0000000..3c70174
--- /dev/null
+++ b/gz-wxparty/components/vant/icon/index.wxml
@@ -0,0 +1,20 @@
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="{{ computed.rootClass({ classPrefix, name }) }}"
+ style="{{ computed.rootStyle({ customStyle, color, size }) }}"
+ bindtap="onClick"
+>
+ <van-info
+ wx:if="{{ info !== null || dot }}"
+ dot="{{ dot }}"
+ info="{{ info }}"
+ custom-class="van-icon__info"
+ />
+ <image
+ wx:if="{{ computed.isImage(name) }}"
+ src="{{ name }}"
+ mode="aspectFit"
+ class="van-icon__image"
+ />
+</view>
diff --git a/gz-wxparty/components/vant/icon/index.wxs b/gz-wxparty/components/vant/icon/index.wxs
new file mode 100644
index 0000000..45e3aa0
--- /dev/null
+++ b/gz-wxparty/components/vant/icon/index.wxs
@@ -0,0 +1,39 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function isImage(name) {
+ return name.indexOf('/') !== -1;
+}
+
+function rootClass(data) {
+ var classes = ['custom-class'];
+
+ if (data.classPrefix != null) {
+ classes.push(data.classPrefix);
+ }
+
+ if (isImage(data.name)) {
+ classes.push('van-icon--image');
+ } else if (data.classPrefix != null) {
+ classes.push(data.classPrefix + '-' + data.name);
+ }
+
+ return classes.join(' ');
+}
+
+function rootStyle(data) {
+ return style([
+ {
+ color: data.color,
+ 'font-size': addUnit(data.size),
+ },
+ data.customStyle,
+ ]);
+}
+
+module.exports = {
+ isImage: isImage,
+ rootClass: rootClass,
+ rootStyle: rootStyle,
+};
diff --git a/gz-wxparty/components/vant/icon/index.wxss b/gz-wxparty/components/vant/icon/index.wxss
new file mode 100644
index 0000000..61a7d68
--- /dev/null
+++ b/gz-wxparty/components/vant/icon/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-icon{text-rendering:auto;-webkit-font-smoothing:antialiased;font:normal normal normal 14px/1 vant-icon;font-size:inherit;position:relative}.van-icon,.van-icon:before{display:inline-block}.van-icon-exchange:before{content:"\e6af"}.van-icon-eye:before{content:"\e6b0"}.van-icon-enlarge:before{content:"\e6b1"}.van-icon-expand-o:before{content:"\e6b2"}.van-icon-eye-o:before{content:"\e6b3"}.van-icon-expand:before{content:"\e6b4"}.van-icon-filter-o:before{content:"\e6b5"}.van-icon-fire:before{content:"\e6b6"}.van-icon-fail:before{content:"\e6b7"}.van-icon-failure:before{content:"\e6b8"}.van-icon-fire-o:before{content:"\e6b9"}.van-icon-flag-o:before{content:"\e6ba"}.van-icon-font:before{content:"\e6bb"}.van-icon-font-o:before{content:"\e6bc"}.van-icon-gem-o:before{content:"\e6bd"}.van-icon-flower-o:before{content:"\e6be"}.van-icon-gem:before{content:"\e6bf"}.van-icon-gift-card:before{content:"\e6c0"}.van-icon-friends:before{content:"\e6c1"}.van-icon-friends-o:before{content:"\e6c2"}.van-icon-gold-coin:before{content:"\e6c3"}.van-icon-gold-coin-o:before{content:"\e6c4"}.van-icon-good-job-o:before{content:"\e6c5"}.van-icon-gift:before{content:"\e6c6"}.van-icon-gift-o:before{content:"\e6c7"}.van-icon-gift-card-o:before{content:"\e6c8"}.van-icon-good-job:before{content:"\e6c9"}.van-icon-home-o:before{content:"\e6ca"}.van-icon-goods-collect:before{content:"\e6cb"}.van-icon-graphic:before{content:"\e6cc"}.van-icon-goods-collect-o:before{content:"\e6cd"}.van-icon-hot-o:before{content:"\e6ce"}.van-icon-info:before{content:"\e6cf"}.van-icon-hotel-o:before{content:"\e6d0"}.van-icon-info-o:before{content:"\e6d1"}.van-icon-hot-sale-o:before{content:"\e6d2"}.van-icon-hot:before{content:"\e6d3"}.van-icon-like:before{content:"\e6d4"}.van-icon-idcard:before{content:"\e6d5"}.van-icon-invitation:before{content:"\e6d6"}.van-icon-like-o:before{content:"\e6d7"}.van-icon-hot-sale:before{content:"\e6d8"}.van-icon-location-o:before{content:"\e6d9"}.van-icon-location:before{content:"\e6da"}.van-icon-label:before{content:"\e6db"}.van-icon-lock:before{content:"\e6dc"}.van-icon-label-o:before{content:"\e6dd"}.van-icon-map-marked:before{content:"\e6de"}.van-icon-logistics:before{content:"\e6df"}.van-icon-manager:before{content:"\e6e0"}.van-icon-more:before{content:"\e6e1"}.van-icon-live:before{content:"\e6e2"}.van-icon-manager-o:before{content:"\e6e3"}.van-icon-medal:before{content:"\e6e4"}.van-icon-more-o:before{content:"\e6e5"}.van-icon-music-o:before{content:"\e6e6"}.van-icon-music:before{content:"\e6e7"}.van-icon-new-arrival-o:before{content:"\e6e8"}.van-icon-medal-o:before{content:"\e6e9"}.van-icon-new-o:before{content:"\e6ea"}.van-icon-free-postage:before{content:"\e6eb"}.van-icon-newspaper-o:before{content:"\e6ec"}.van-icon-new-arrival:before{content:"\e6ed"}.van-icon-minus:before{content:"\e6ee"}.van-icon-orders-o:before{content:"\e6ef"}.van-icon-new:before{content:"\e6f0"}.van-icon-paid:before{content:"\e6f1"}.van-icon-notes-o:before{content:"\e6f2"}.van-icon-other-pay:before{content:"\e6f3"}.van-icon-pause-circle:before{content:"\e6f4"}.van-icon-pause:before{content:"\e6f5"}.van-icon-pause-circle-o:before{content:"\e6f6"}.van-icon-peer-pay:before{content:"\e6f7"}.van-icon-pending-payment:before{content:"\e6f8"}.van-icon-passed:before{content:"\e6f9"}.van-icon-plus:before{content:"\e6fa"}.van-icon-phone-circle-o:before{content:"\e6fb"}.van-icon-phone-o:before{content:"\e6fc"}.van-icon-printer:before{content:"\e6fd"}.van-icon-photo-fail:before{content:"\e6fe"}.van-icon-phone:before{content:"\e6ff"}.van-icon-photo-o:before{content:"\e700"}.van-icon-play-circle:before{content:"\e701"}.van-icon-play:before{content:"\e702"}.van-icon-phone-circle:before{content:"\e703"}.van-icon-point-gift-o:before{content:"\e704"}.van-icon-point-gift:before{content:"\e705"}.van-icon-play-circle-o:before{content:"\e706"}.van-icon-shrink:before{content:"\e707"}.van-icon-photo:before{content:"\e708"}.van-icon-qr:before{content:"\e709"}.van-icon-qr-invalid:before{content:"\e70a"}.van-icon-question-o:before{content:"\e70b"}.van-icon-revoke:before{content:"\e70c"}.van-icon-replay:before{content:"\e70d"}.van-icon-service:before{content:"\e70e"}.van-icon-question:before{content:"\e70f"}.van-icon-search:before{content:"\e710"}.van-icon-refund-o:before{content:"\e711"}.van-icon-service-o:before{content:"\e712"}.van-icon-scan:before{content:"\e713"}.van-icon-share:before{content:"\e714"}.van-icon-send-gift-o:before{content:"\e715"}.van-icon-share-o:before{content:"\e716"}.van-icon-setting:before{content:"\e717"}.van-icon-points:before{content:"\e718"}.van-icon-photograph:before{content:"\e719"}.van-icon-shop:before{content:"\e71a"}.van-icon-shop-o:before{content:"\e71b"}.van-icon-shop-collect-o:before{content:"\e71c"}.van-icon-shop-collect:before{content:"\e71d"}.van-icon-smile:before{content:"\e71e"}.van-icon-shopping-cart-o:before{content:"\e71f"}.van-icon-sign:before{content:"\e720"}.van-icon-sort:before{content:"\e721"}.van-icon-star-o:before{content:"\e722"}.van-icon-smile-comment-o:before{content:"\e723"}.van-icon-stop:before{content:"\e724"}.van-icon-stop-circle-o:before{content:"\e725"}.van-icon-smile-o:before{content:"\e726"}.van-icon-star:before{content:"\e727"}.van-icon-success:before{content:"\e728"}.van-icon-stop-circle:before{content:"\e729"}.van-icon-records:before{content:"\e72a"}.van-icon-shopping-cart:before{content:"\e72b"}.van-icon-tosend:before{content:"\e72c"}.van-icon-todo-list:before{content:"\e72d"}.van-icon-thumb-circle-o:before{content:"\e72e"}.van-icon-thumb-circle:before{content:"\e72f"}.van-icon-umbrella-circle:before{content:"\e730"}.van-icon-underway:before{content:"\e731"}.van-icon-upgrade:before{content:"\e732"}.van-icon-todo-list-o:before{content:"\e733"}.van-icon-tv-o:before{content:"\e734"}.van-icon-underway-o:before{content:"\e735"}.van-icon-user-o:before{content:"\e736"}.van-icon-vip-card-o:before{content:"\e737"}.van-icon-vip-card:before{content:"\e738"}.van-icon-send-gift:before{content:"\e739"}.van-icon-wap-home:before{content:"\e73a"}.van-icon-wap-nav:before{content:"\e73b"}.van-icon-volume-o:before{content:"\e73c"}.van-icon-video:before{content:"\e73d"}.van-icon-wap-home-o:before{content:"\e73e"}.van-icon-volume:before{content:"\e73f"}.van-icon-warning:before{content:"\e740"}.van-icon-weapp-nav:before{content:"\e741"}.van-icon-wechat-pay:before{content:"\e742"}.van-icon-warning-o:before{content:"\e743"}.van-icon-wechat:before{content:"\e744"}.van-icon-setting-o:before{content:"\e745"}.van-icon-youzan-shield:before{content:"\e746"}.van-icon-warn-o:before{content:"\e747"}.van-icon-smile-comment:before{content:"\e748"}.van-icon-user-circle-o:before{content:"\e749"}.van-icon-video-o:before{content:"\e74a"}.van-icon-add-square:before{content:"\e65c"}.van-icon-add:before{content:"\e65d"}.van-icon-arrow-down:before{content:"\e65e"}.van-icon-arrow-up:before{content:"\e65f"}.van-icon-arrow:before{content:"\e660"}.van-icon-after-sale:before{content:"\e661"}.van-icon-add-o:before{content:"\e662"}.van-icon-alipay:before{content:"\e663"}.van-icon-ascending:before{content:"\e664"}.van-icon-apps-o:before{content:"\e665"}.van-icon-aim:before{content:"\e666"}.van-icon-award:before{content:"\e667"}.van-icon-arrow-left:before{content:"\e668"}.van-icon-award-o:before{content:"\e669"}.van-icon-audio:before{content:"\e66a"}.van-icon-bag-o:before{content:"\e66b"}.van-icon-balance-list:before{content:"\e66c"}.van-icon-back-top:before{content:"\e66d"}.van-icon-bag:before{content:"\e66e"}.van-icon-balance-pay:before{content:"\e66f"}.van-icon-balance-o:before{content:"\e670"}.van-icon-bar-chart-o:before{content:"\e671"}.van-icon-bars:before{content:"\e672"}.van-icon-balance-list-o:before{content:"\e673"}.van-icon-birthday-cake-o:before{content:"\e674"}.van-icon-bookmark:before{content:"\e675"}.van-icon-bill:before{content:"\e676"}.van-icon-bell:before{content:"\e677"}.van-icon-browsing-history-o:before{content:"\e678"}.van-icon-browsing-history:before{content:"\e679"}.van-icon-bookmark-o:before{content:"\e67a"}.van-icon-bulb-o:before{content:"\e67b"}.van-icon-bullhorn-o:before{content:"\e67c"}.van-icon-bill-o:before{content:"\e67d"}.van-icon-calendar-o:before{content:"\e67e"}.van-icon-brush-o:before{content:"\e67f"}.van-icon-card:before{content:"\e680"}.van-icon-cart-o:before{content:"\e681"}.van-icon-cart-circle:before{content:"\e682"}.van-icon-cart-circle-o:before{content:"\e683"}.van-icon-cart:before{content:"\e684"}.van-icon-cash-on-deliver:before{content:"\e685"}.van-icon-cash-back-record:before{content:"\e686"}.van-icon-cashier-o:before{content:"\e687"}.van-icon-chart-trending-o:before{content:"\e688"}.van-icon-certificate:before{content:"\e689"}.van-icon-chat:before{content:"\e68a"}.van-icon-clear:before{content:"\e68b"}.van-icon-chat-o:before{content:"\e68c"}.van-icon-checked:before{content:"\e68d"}.van-icon-clock:before{content:"\e68e"}.van-icon-clock-o:before{content:"\e68f"}.van-icon-close:before{content:"\e690"}.van-icon-closed-eye:before{content:"\e691"}.van-icon-circle:before{content:"\e692"}.van-icon-cluster-o:before{content:"\e693"}.van-icon-column:before{content:"\e694"}.van-icon-comment-circle-o:before{content:"\e695"}.van-icon-cluster:before{content:"\e696"}.van-icon-comment:before{content:"\e697"}.van-icon-comment-o:before{content:"\e698"}.van-icon-comment-circle:before{content:"\e699"}.van-icon-completed:before{content:"\e69a"}.van-icon-credit-pay:before{content:"\e69b"}.van-icon-coupon:before{content:"\e69c"}.van-icon-debit-pay:before{content:"\e69d"}.van-icon-coupon-o:before{content:"\e69e"}.van-icon-contact:before{content:"\e69f"}.van-icon-descending:before{content:"\e6a0"}.van-icon-desktop-o:before{content:"\e6a1"}.van-icon-diamond-o:before{content:"\e6a2"}.van-icon-description:before{content:"\e6a3"}.van-icon-delete:before{content:"\e6a4"}.van-icon-diamond:before{content:"\e6a5"}.van-icon-delete-o:before{content:"\e6a6"}.van-icon-cross:before{content:"\e6a7"}.van-icon-edit:before{content:"\e6a8"}.van-icon-ellipsis:before{content:"\e6a9"}.van-icon-down:before{content:"\e6aa"}.van-icon-discount:before{content:"\e6ab"}.van-icon-ecard-pay:before{content:"\e6ac"}.van-icon-envelop-o:before{content:"\e6ae"}.van-icon-shield-o:before{content:"\e74b"}.van-icon-guide-o:before{content:"\e74c"}.van-icon-cash-o:before{content:"\e74d"}.van-icon-qq:before{content:"\e74e"}.van-icon-wechat-moments:before{content:"\e74f"}.van-icon-weibo:before{content:"\e750"}.van-icon-link-o:before{content:"\e751"}.van-icon-miniprogram-o:before{content:"\e752"}@font-face{font-display:auto;font-family:vant-icon;font-style:normal;font-weight:400;src:url(https://at.alicdn.com/t/font_2553510_iv4v8nulyz.woff2?t=1649083952952) format("woff2"),url(https://at.alicdn.com/t/font_2553510_iv4v8nulyz.woff?t=1649083952952) format("woff"),url(https://at.alicdn.com/t/font_2553510_iv4v8nulyz.ttf?t=1649083952952) format("truetype")}:host{align-items:center;display:inline-flex;justify-content:center}.van-icon--image{height:1em;width:1em}.van-icon__image{height:100%;width:100%}.van-icon__info{z-index:1}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/image/index.d.ts b/gz-wxparty/components/vant/image/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/image/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/image/index.js b/gz-wxparty/components/vant/image/index.js
new file mode 100644
index 0000000..06c9dd1
--- /dev/null
+++ b/gz-wxparty/components/vant/image/index.js
@@ -0,0 +1,60 @@
+import { VantComponent } from '../common/component';
+import { button } from '../mixins/button';
+VantComponent({
+ mixins: [button],
+ classes: ['custom-class', 'loading-class', 'error-class', 'image-class'],
+ props: {
+ src: {
+ type: String,
+ observer() {
+ this.setData({
+ error: false,
+ loading: true,
+ });
+ },
+ },
+ round: Boolean,
+ width: null,
+ height: null,
+ radius: null,
+ lazyLoad: Boolean,
+ useErrorSlot: Boolean,
+ useLoadingSlot: Boolean,
+ showMenuByLongpress: Boolean,
+ fit: {
+ type: String,
+ value: 'fill',
+ },
+ showError: {
+ type: Boolean,
+ value: true,
+ },
+ showLoading: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ data: {
+ error: false,
+ loading: true,
+ viewStyle: '',
+ },
+ methods: {
+ onLoad(event) {
+ this.setData({
+ loading: false,
+ });
+ this.$emit('load', event.detail);
+ },
+ onError(event) {
+ this.setData({
+ loading: false,
+ error: true,
+ });
+ this.$emit('error', event.detail);
+ },
+ onClick(event) {
+ this.$emit('click', event.detail);
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/image/index.json b/gz-wxparty/components/vant/image/index.json
new file mode 100644
index 0000000..e00a588
--- /dev/null
+++ b/gz-wxparty/components/vant/image/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index",
+ "van-loading": "../loading/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/image/index.wxml b/gz-wxparty/components/vant/image/index.wxml
new file mode 100644
index 0000000..d3092bd
--- /dev/null
+++ b/gz-wxparty/components/vant/image/index.wxml
@@ -0,0 +1,34 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ style="{{ computed.rootStyle({ width, height, radius }) }}"
+ class="custom-class {{ utils.bem('image', { round })}}"
+ bind:tap="onClick"
+>
+ <image
+ wx:if="{{ !error }}"
+ src="{{ src }}"
+ mode="{{ computed.mode(fit) }}"
+ lazy-load="{{ lazyLoad }}"
+ class="image-class van-image__img"
+ show-menu-by-longpress="{{ showMenuByLongpress }}"
+ bind:load="onLoad"
+ bind:error="onError"
+ />
+
+ <view
+ wx:if="{{ loading && showLoading }}"
+ class="loading-class van-image__loading"
+ >
+ <slot wx:if="{{ useLoadingSlot }}" name="loading" />
+ <van-icon wx:else name="photo" custom-class="van-image__loading-icon" />
+ </view>
+ <view
+ wx:if="{{ error && showError }}"
+ class="error-class van-image__error"
+ >
+ <slot wx:if="{{ useErrorSlot }}" name="error" />
+ <van-icon wx:else name="photo-fail" custom-class="van-image__error-icon" />
+ </view>
+</view>
diff --git a/gz-wxparty/components/vant/image/index.wxs b/gz-wxparty/components/vant/image/index.wxs
new file mode 100644
index 0000000..cec14b8
--- /dev/null
+++ b/gz-wxparty/components/vant/image/index.wxs
@@ -0,0 +1,32 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function rootStyle(data) {
+ return style([
+ {
+ width: addUnit(data.width),
+ height: addUnit(data.height),
+ 'border-radius': addUnit(data.radius),
+ },
+ data.radius ? 'overflow: hidden' : null,
+ ]);
+}
+
+var FIT_MODE_MAP = {
+ none: 'center',
+ fill: 'scaleToFill',
+ cover: 'aspectFill',
+ contain: 'aspectFit',
+ widthFix: 'widthFix',
+ heightFix: 'heightFix',
+};
+
+function mode(fit) {
+ return FIT_MODE_MAP[fit];
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+ mode: mode,
+};
diff --git a/gz-wxparty/components/vant/image/index.wxss b/gz-wxparty/components/vant/image/index.wxss
new file mode 100644
index 0000000..a9c6ebb
--- /dev/null
+++ b/gz-wxparty/components/vant/image/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-image{display:inline-block;position:relative}.van-image--round{border-radius:50%;overflow:hidden}.van-image--round .van-image__img{border-radius:inherit}.van-image__error,.van-image__img,.van-image__loading{display:block;height:100%;width:100%}.van-image__error,.van-image__loading{align-items:center;background-color:var(--image-placeholder-background-color,#f7f8fa);color:var(--image-placeholder-text-color,#969799);display:flex;flex-direction:column;font-size:var(--image-placeholder-font-size,14px);justify-content:center;left:0;position:absolute;top:0}.van-image__loading-icon{color:var(--image-loading-icon-color,#dcdee0);font-size:var(--image-loading-icon-size,32px)!important}.van-image__error-icon{color:var(--image-error-icon-color,#dcdee0);font-size:var(--image-error-icon-size,32px)!important}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/info/index.d.ts b/gz-wxparty/components/vant/info/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/info/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/info/index.js b/gz-wxparty/components/vant/info/index.js
new file mode 100644
index 0000000..6eac8f8
--- /dev/null
+++ b/gz-wxparty/components/vant/info/index.js
@@ -0,0 +1,8 @@
+import { VantComponent } from '../common/component';
+VantComponent({
+ props: {
+ dot: Boolean,
+ info: null,
+ customStyle: String,
+ },
+});
diff --git a/gz-wxparty/components/vant/info/index.json b/gz-wxparty/components/vant/info/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/components/vant/info/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/components/vant/info/index.wxml b/gz-wxparty/components/vant/info/index.wxml
new file mode 100644
index 0000000..b39b524
--- /dev/null
+++ b/gz-wxparty/components/vant/info/index.wxml
@@ -0,0 +1,7 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ wx:if="{{ info !== null && info !== '' || dot }}"
+ class="van-info {{ utils.bem('info', { dot }) }} custom-class"
+ style="{{ customStyle }}"
+>{{ dot ? '' : info }}</view>
diff --git a/gz-wxparty/components/vant/info/index.wxss b/gz-wxparty/components/vant/info/index.wxss
new file mode 100644
index 0000000..e77cdfb
--- /dev/null
+++ b/gz-wxparty/components/vant/info/index.wxss
@@ -0,0 +1,30 @@
+@import '../common/index.wxss';
+.van-info {
+ align-items: center;
+ background-color: var(--info-background-color, #ee0a24);
+ border: var(--info-border-width, 1px) solid #fff;
+ border-radius: var(--info-size, 16px);
+ box-sizing: border-box;
+ color: var(--info-color, #fff);
+ display: inline-flex;
+ font-family: var(--info-font-family, -apple-system-font, Helvetica Neue, Arial, sans-serif);
+ font-size: var(--info-font-size, 12px);
+ font-weight: var(--info-font-weight, 500);
+ height: var(--info-size, 16px);
+ justify-content: center;
+ min-width: var(--info-size, 16px);
+ padding: var(--info-padding, 0 3px);
+ position: absolute;
+ right: 6px;
+ top: 0;
+ transform: translate(50%, -50%);
+ transform-origin: 100%;
+ white-space: nowrap;
+}
+.van-info--dot {
+ background-color: var(--info-dot-color, #ee0a24);
+ border-radius: 100%;
+ height: var(--info-dot-size, 8px);
+ min-width: 0;
+ width: var(--info-dot-size, 8px);
+}
diff --git a/gz-wxparty/components/vant/loading/index.d.ts b/gz-wxparty/components/vant/loading/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/loading/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/loading/index.js b/gz-wxparty/components/vant/loading/index.js
new file mode 100644
index 0000000..f5f96ba
--- /dev/null
+++ b/gz-wxparty/components/vant/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/gz-wxparty/components/vant/loading/index.json b/gz-wxparty/components/vant/loading/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/components/vant/loading/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/components/vant/loading/index.wxml b/gz-wxparty/components/vant/loading/index.wxml
new file mode 100644
index 0000000..7d4a539
--- /dev/null
+++ b/gz-wxparty/components/vant/loading/index.wxml
@@ -0,0 +1,19 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view class="custom-class {{ utils.bem('loading', { vertical }) }}">
+ <view
+ class="van-loading__spinner van-loading__spinner--{{ type }}"
+ style="{{ computed.spinnerStyle({ color, size }) }}"
+ >
+ <view
+ wx:if="{{ type === 'spinner' }}"
+ wx:for="{{ array12 }}"
+ wx:key="index"
+ class="van-loading__dot"
+ />
+ </view>
+ <view class="van-loading__text" style="{{ computed.textStyle({ textSize }) }}">
+ <slot />
+ </view>
+</view>
diff --git a/gz-wxparty/components/vant/loading/index.wxs b/gz-wxparty/components/vant/loading/index.wxs
new file mode 100644
index 0000000..02a0b80
--- /dev/null
+++ b/gz-wxparty/components/vant/loading/index.wxs
@@ -0,0 +1,22 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function spinnerStyle(data) {
+ return style({
+ color: data.color,
+ width: addUnit(data.size),
+ height: addUnit(data.size),
+ });
+}
+
+function textStyle(data) {
+ return style({
+ 'font-size': addUnit(data.textSize),
+ });
+}
+
+module.exports = {
+ spinnerStyle: spinnerStyle,
+ textStyle: textStyle,
+};
diff --git a/gz-wxparty/components/vant/loading/index.wxss b/gz-wxparty/components/vant/loading/index.wxss
new file mode 100644
index 0000000..fc84e84
--- /dev/null
+++ b/gz-wxparty/components/vant/loading/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';:host{font-size:0;line-height:1}.van-loading{align-items:center;color:var(--loading-spinner-color,#c8c9cc);display:inline-flex;justify-content:center}.van-loading__spinner{animation:van-rotate var(--loading-spinner-animation-duration,.8s) linear infinite;box-sizing:border-box;height:var(--loading-spinner-size,30px);max-height:100%;max-width:100%;position:relative;width:var(--loading-spinner-size,30px)}.van-loading__spinner--spinner{animation-timing-function:steps(12)}.van-loading__spinner--circular{border:1px solid transparent;border-radius:100%;border-top-color:initial}.van-loading__text{color:var(--loading-text-color,#969799);font-size:var(--loading-text-font-size,14px);line-height:var(--loading-text-line-height,20px);margin-left:var(--padding-xs,8px)}.van-loading__text:empty{display:none}.van-loading--vertical{flex-direction:column}.van-loading--vertical .van-loading__text{margin:var(--padding-xs,8px) 0 0}.van-loading__dot{height:100%;left:0;position:absolute;top:0;width:100%}.van-loading__dot:before{background-color:currentColor;border-radius:40%;content:" ";display:block;height:25%;margin:0 auto;width:2px}.van-loading__dot:first-of-type{opacity:1;transform:rotate(30deg)}.van-loading__dot:nth-of-type(2){opacity:.9375;transform:rotate(60deg)}.van-loading__dot:nth-of-type(3){opacity:.875;transform:rotate(90deg)}.van-loading__dot:nth-of-type(4){opacity:.8125;transform:rotate(120deg)}.van-loading__dot:nth-of-type(5){opacity:.75;transform:rotate(150deg)}.van-loading__dot:nth-of-type(6){opacity:.6875;transform:rotate(180deg)}.van-loading__dot:nth-of-type(7){opacity:.625;transform:rotate(210deg)}.van-loading__dot:nth-of-type(8){opacity:.5625;transform:rotate(240deg)}.van-loading__dot:nth-of-type(9){opacity:.5;transform:rotate(270deg)}.van-loading__dot:nth-of-type(10){opacity:.4375;transform:rotate(300deg)}.van-loading__dot:nth-of-type(11){opacity:.375;transform:rotate(330deg)}.van-loading__dot:nth-of-type(12){opacity:.3125;transform:rotate(1turn)}@keyframes van-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/mixins/basic.d.ts b/gz-wxparty/components/vant/mixins/basic.d.ts
new file mode 100644
index 0000000..b273369
--- /dev/null
+++ b/gz-wxparty/components/vant/mixins/basic.d.ts
@@ -0,0 +1 @@
+export declare const basic: string;
diff --git a/gz-wxparty/components/vant/mixins/basic.js b/gz-wxparty/components/vant/mixins/basic.js
new file mode 100644
index 0000000..617cc07
--- /dev/null
+++ b/gz-wxparty/components/vant/mixins/basic.js
@@ -0,0 +1,11 @@
+export const basic = Behavior({
+ methods: {
+ $emit(name, detail, options) {
+ this.triggerEvent(name, detail, options);
+ },
+ set(data) {
+ this.setData(data);
+ return new Promise((resolve) => wx.nextTick(resolve));
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/mixins/button.d.ts b/gz-wxparty/components/vant/mixins/button.d.ts
new file mode 100644
index 0000000..b51db87
--- /dev/null
+++ b/gz-wxparty/components/vant/mixins/button.d.ts
@@ -0,0 +1 @@
+export declare const button: string;
diff --git a/gz-wxparty/components/vant/mixins/button.js b/gz-wxparty/components/vant/mixins/button.js
new file mode 100644
index 0000000..ac1e569
--- /dev/null
+++ b/gz-wxparty/components/vant/mixins/button.js
@@ -0,0 +1,41 @@
+import { canIUseGetUserProfile } from '../common/version';
+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,
+ openType: String,
+ getUserProfileDesc: String,
+ },
+ data: {
+ canIUseGetUserProfile: canIUseGetUserProfile(),
+ },
+ methods: {
+ onGetUserInfo(event) {
+ this.triggerEvent('getuserinfo', event.detail);
+ },
+ onContact(event) {
+ this.triggerEvent('contact', event.detail);
+ },
+ onGetPhoneNumber(event) {
+ this.triggerEvent('getphonenumber', event.detail);
+ },
+ onError(event) {
+ this.triggerEvent('error', event.detail);
+ },
+ onLaunchApp(event) {
+ this.triggerEvent('launchapp', event.detail);
+ },
+ onOpenSetting(event) {
+ this.triggerEvent('opensetting', event.detail);
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/mixins/link.d.ts b/gz-wxparty/components/vant/mixins/link.d.ts
new file mode 100644
index 0000000..d58043b
--- /dev/null
+++ b/gz-wxparty/components/vant/mixins/link.d.ts
@@ -0,0 +1 @@
+export declare const link: string;
diff --git a/gz-wxparty/components/vant/mixins/link.js b/gz-wxparty/components/vant/mixins/link.js
new file mode 100644
index 0000000..8c274e1
--- /dev/null
+++ b/gz-wxparty/components/vant/mixins/link.js
@@ -0,0 +1,23 @@
+export const link = Behavior({
+ properties: {
+ url: String,
+ linkType: {
+ type: String,
+ value: 'navigateTo',
+ },
+ },
+ methods: {
+ jumpLink(urlKey = 'url') {
+ const url = this.data[urlKey];
+ if (url) {
+ if (this.data.linkType === 'navigateTo' &&
+ getCurrentPages().length > 9) {
+ wx.redirectTo({ url });
+ }
+ else {
+ wx[this.data.linkType]({ url });
+ }
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/mixins/page-scroll.d.ts b/gz-wxparty/components/vant/mixins/page-scroll.d.ts
new file mode 100644
index 0000000..a316bb8
--- /dev/null
+++ b/gz-wxparty/components/vant/mixins/page-scroll.d.ts
@@ -0,0 +1,5 @@
+/// <reference types="miniprogram-api-typings" />
+declare type IPageScrollOption = WechatMiniprogram.Page.IPageScrollOption;
+declare type Scroller = (this: WechatMiniprogram.Component.TrivialInstance, event?: IPageScrollOption) => void;
+export declare const pageScrollMixin: (scroller: Scroller) => string;
+export {};
diff --git a/gz-wxparty/components/vant/mixins/page-scroll.js b/gz-wxparty/components/vant/mixins/page-scroll.js
new file mode 100644
index 0000000..0a0a561
--- /dev/null
+++ b/gz-wxparty/components/vant/mixins/page-scroll.js
@@ -0,0 +1,36 @@
+import { getCurrentPage, isDef } from '../common/utils';
+function onPageScroll(event) {
+ const { vanPageScroller = [] } = getCurrentPage();
+ vanPageScroller.forEach((scroller) => {
+ if (typeof scroller === 'function') {
+ // @ts-ignore
+ scroller(event);
+ }
+ });
+}
+export const pageScrollMixin = (scroller) => Behavior({
+ attached() {
+ const page = getCurrentPage();
+ if (!isDef(page)) {
+ return;
+ }
+ 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() {
+ var _a;
+ const page = getCurrentPage();
+ if (isDef(page)) {
+ page.vanPageScroller =
+ ((_a = page.vanPageScroller) === null || _a === void 0 ? void 0 : _a.filter((item) => item !== scroller)) || [];
+ }
+ },
+});
diff --git a/gz-wxparty/components/vant/mixins/touch.d.ts b/gz-wxparty/components/vant/mixins/touch.d.ts
new file mode 100644
index 0000000..35ee831
--- /dev/null
+++ b/gz-wxparty/components/vant/mixins/touch.d.ts
@@ -0,0 +1 @@
+export declare const touch: string;
diff --git a/gz-wxparty/components/vant/mixins/touch.js b/gz-wxparty/components/vant/mixins/touch.js
new file mode 100644
index 0000000..ecefae8
--- /dev/null
+++ b/gz-wxparty/components/vant/mixins/touch.js
@@ -0,0 +1,37 @@
+// @ts-nocheck
+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/gz-wxparty/components/vant/mixins/transition.d.ts b/gz-wxparty/components/vant/mixins/transition.d.ts
new file mode 100644
index 0000000..dd829e5
--- /dev/null
+++ b/gz-wxparty/components/vant/mixins/transition.d.ts
@@ -0,0 +1 @@
+export declare function transition(showDefaultValue: boolean): string;
diff --git a/gz-wxparty/components/vant/mixins/transition.js b/gz-wxparty/components/vant/mixins/transition.js
new file mode 100644
index 0000000..bc7fc8e
--- /dev/null
+++ b/gz-wxparty/components/vant/mixins/transition.js
@@ -0,0 +1,115 @@
+// @ts-nocheck
+import { requestAnimationFrame } from '../common/utils';
+import { isObj } from '../common/validator';
+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`,
+});
+export function transition(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,
+ },
+ ready() {
+ if (this.data.show === true) {
+ this.observeShow(true, 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');
+ requestAnimationFrame(() => {
+ if (this.status !== 'enter') {
+ return;
+ }
+ this.$emit('enter');
+ this.setData({
+ inited: true,
+ display: true,
+ classes: classNames.enter,
+ currentDuration,
+ });
+ requestAnimationFrame(() => {
+ if (this.status !== 'enter') {
+ return;
+ }
+ this.transitionEnded = false;
+ this.setData({ classes: classNames['enter-to'] });
+ });
+ });
+ },
+ 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');
+ requestAnimationFrame(() => {
+ if (this.status !== 'leave') {
+ return;
+ }
+ this.$emit('leave');
+ this.setData({
+ classes: classNames.leave,
+ currentDuration,
+ });
+ requestAnimationFrame(() => {
+ if (this.status !== 'leave') {
+ return;
+ }
+ this.transitionEnded = false;
+ setTimeout(() => this.onTransitionEnd(), currentDuration);
+ this.setData({ classes: classNames['leave-to'] });
+ });
+ });
+ },
+ 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/gz-wxparty/components/vant/overlay/index.d.ts b/gz-wxparty/components/vant/overlay/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/overlay/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/overlay/index.js b/gz-wxparty/components/vant/overlay/index.js
new file mode 100644
index 0000000..48117a0
--- /dev/null
+++ b/gz-wxparty/components/vant/overlay/index.js
@@ -0,0 +1,26 @@
+import { VantComponent } from '../common/component';
+VantComponent({
+ props: {
+ show: Boolean,
+ customStyle: String,
+ duration: {
+ type: null,
+ value: 300,
+ },
+ zIndex: {
+ type: Number,
+ value: 1,
+ },
+ lockScroll: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ methods: {
+ onClick() {
+ this.$emit('click');
+ },
+ // for prevent touchmove
+ noop() { },
+ },
+});
diff --git a/gz-wxparty/components/vant/overlay/index.json b/gz-wxparty/components/vant/overlay/index.json
new file mode 100644
index 0000000..c14a65f
--- /dev/null
+++ b/gz-wxparty/components/vant/overlay/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-transition": "../transition/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/overlay/index.wxml b/gz-wxparty/components/vant/overlay/index.wxml
new file mode 100644
index 0000000..92734a0
--- /dev/null
+++ b/gz-wxparty/components/vant/overlay/index.wxml
@@ -0,0 +1,21 @@
+<van-transition
+ wx:if="{{ lockScroll }}"
+ show="{{ show }}"
+ custom-class="van-overlay"
+ custom-style="z-index: {{ zIndex }}; {{ customStyle }}"
+ duration="{{ duration }}"
+ bind:tap="onClick"
+ catch:touchmove="noop"
+>
+ <slot></slot>
+</van-transition>
+<van-transition
+ wx:else
+ show="{{ show }}"
+ custom-class="van-overlay"
+ custom-style="z-index: {{ zIndex }}; {{ customStyle }}"
+ duration="{{ duration }}"
+ bind:tap="onClick"
+>
+ <slot></slot>
+</van-transition>
diff --git a/gz-wxparty/components/vant/overlay/index.wxss b/gz-wxparty/components/vant/overlay/index.wxss
new file mode 100644
index 0000000..d1ad81a
--- /dev/null
+++ b/gz-wxparty/components/vant/overlay/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-overlay{background-color:var(--overlay-background-color,rgba(0,0,0,.7));height:100%;left:0;position:fixed;top:0;width:100%}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/picker-column/index.d.ts b/gz-wxparty/components/vant/picker-column/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/picker-column/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/picker-column/index.js b/gz-wxparty/components/vant/picker-column/index.js
new file mode 100644
index 0000000..abcc520
--- /dev/null
+++ b/gz-wxparty/components/vant/picker-column/index.js
@@ -0,0 +1,118 @@
+import { VantComponent } from '../common/component';
+import { range } from '../common/utils';
+import { isObj } from '../common/validator';
+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/gz-wxparty/components/vant/picker-column/index.json b/gz-wxparty/components/vant/picker-column/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/components/vant/picker-column/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/components/vant/picker-column/index.wxml b/gz-wxparty/components/vant/picker-column/index.wxml
new file mode 100644
index 0000000..f2c8da2
--- /dev/null
+++ b/gz-wxparty/components/vant/picker-column/index.wxml
@@ -0,0 +1,23 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="van-picker-column custom-class"
+ style="{{ computed.rootStyle({ itemHeight, visibleItemCount }) }}"
+ bind:touchstart="onTouchStart"
+ catch:touchmove="onTouchMove"
+ bind:touchend="onTouchEnd"
+ bind:touchcancel="onTouchEnd"
+>
+ <view style="{{ computed.wrapperStyle({ offset, itemHeight, visibleItemCount, duration }) }}">
+ <view
+ wx:for="{{ options }}"
+ wx:for-item="option"
+ wx:key="index"
+ data-index="{{ index }}"
+ style="height: {{ itemHeight }}px"
+ class="van-ellipsis {{ utils.bem('picker-column__item', { disabled: option && option.disabled, selected: index === currentIndex }) }} {{ index === currentIndex ? 'active-class' : '' }}"
+ bindtap="onClickItem"
+ >{{ computed.optionText(option, valueKey) }}</view>
+ </view>
+</view>
diff --git a/gz-wxparty/components/vant/picker-column/index.wxs b/gz-wxparty/components/vant/picker-column/index.wxs
new file mode 100644
index 0000000..2d5a611
--- /dev/null
+++ b/gz-wxparty/components/vant/picker-column/index.wxs
@@ -0,0 +1,36 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function isObj(x) {
+ var type = typeof x;
+ return x !== null && (type === 'object' || type === 'function');
+}
+
+function optionText(option, valueKey) {
+ return isObj(option) && option[valueKey] != null ? option[valueKey] : option;
+}
+
+function rootStyle(data) {
+ return style({
+ height: addUnit(data.itemHeight * data.visibleItemCount),
+ });
+}
+
+function wrapperStyle(data) {
+ var offset = addUnit(
+ data.offset + (data.itemHeight * (data.visibleItemCount - 1)) / 2
+ );
+
+ return style({
+ transition: 'transform ' + data.duration + 'ms',
+ 'line-height': addUnit(data.itemHeight),
+ transform: 'translate3d(0, ' + offset + ', 0)',
+ });
+}
+
+module.exports = {
+ optionText: optionText,
+ rootStyle: rootStyle,
+ wrapperStyle: wrapperStyle,
+};
diff --git a/gz-wxparty/components/vant/picker-column/index.wxss b/gz-wxparty/components/vant/picker-column/index.wxss
new file mode 100644
index 0000000..519a438
--- /dev/null
+++ b/gz-wxparty/components/vant/picker-column/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-picker-column{color:var(--picker-option-text-color,#000);font-size:var(--picker-option-font-size,16px);overflow:hidden;text-align:center}.van-picker-column__item{padding:0 5px}.van-picker-column__item--selected{color:var(--picker-option-selected-text-color,#323233);font-weight:var(--font-weight-bold,500)}.van-picker-column__item--disabled{opacity:var(--picker-option-disabled-opacity,.3)}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/picker/index.d.ts b/gz-wxparty/components/vant/picker/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/picker/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/picker/index.js b/gz-wxparty/components/vant/picker/index.js
new file mode 100644
index 0000000..cef057d
--- /dev/null
+++ b/gz-wxparty/components/vant/picker/index.js
@@ -0,0 +1,136 @@
+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;
+ if (Array.isArray(this.children) && this.children.length) {
+ this.setColumns().catch(() => { });
+ }
+ },
+ } }),
+ beforeCreate() {
+ Object.defineProperty(this, 'children', {
+ get: () => this.selectAllComponents('.van-picker__column') || [],
+ });
+ },
+ 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/gz-wxparty/components/vant/picker/index.json b/gz-wxparty/components/vant/picker/index.json
new file mode 100644
index 0000000..2fcec89
--- /dev/null
+++ b/gz-wxparty/components/vant/picker/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "picker-column": "../picker-column/index",
+ "loading": "../loading/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/picker/index.wxml b/gz-wxparty/components/vant/picker/index.wxml
new file mode 100644
index 0000000..8564ccc
--- /dev/null
+++ b/gz-wxparty/components/vant/picker/index.wxml
@@ -0,0 +1,37 @@
+<wxs src="./index.wxs" module="computed" />
+
+<view class="van-picker custom-class">
+ <include wx:if="{{ toolbarPosition === 'top' }}" src="./toolbar.wxml" />
+
+ <view wx:if="{{ loading }}" class="van-picker__loading">
+ <loading color="#1989fa"/>
+ </view>
+
+ <view
+ class="van-picker__columns"
+ style="{{ computed.columnsStyle({ itemHeight, visibleItemCount }) }}"
+ catch:touchmove="noop"
+ >
+ <picker-column
+ class="van-picker__column"
+ wx:for="{{ computed.columns(columns) }}"
+ wx:key="index"
+ data-index="{{ index }}"
+ custom-class="column-class"
+ value-key="{{ valueKey }}"
+ initial-options="{{ item.values }}"
+ default-index="{{ item.defaultIndex || defaultIndex }}"
+ item-height="{{ itemHeight }}"
+ visible-item-count="{{ visibleItemCount }}"
+ active-class="active-class"
+ bind:change="onChange"
+ />
+ <view class="van-picker__mask" style="{{ computed.maskStyle({ itemHeight, visibleItemCount }) }}" />
+ <view
+ class="van-picker__frame van-hairline--top-bottom"
+ style="{{ computed.frameStyle({ itemHeight }) }}"
+ />
+ </view>
+
+ <include wx:if="{{ toolbarPosition === 'bottom' }}" src="./toolbar.wxml" />
+</view>
diff --git a/gz-wxparty/components/vant/picker/index.wxs b/gz-wxparty/components/vant/picker/index.wxs
new file mode 100644
index 0000000..0abbd10
--- /dev/null
+++ b/gz-wxparty/components/vant/picker/index.wxs
@@ -0,0 +1,42 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+var array = require('../wxs/array.wxs');
+
+function columnsStyle(data) {
+ return style({
+ height: addUnit(data.itemHeight * data.visibleItemCount),
+ });
+}
+
+function maskStyle(data) {
+ return style({
+ 'background-size':
+ '100% ' + addUnit((data.itemHeight * (data.visibleItemCount - 1)) / 2),
+ });
+}
+
+function frameStyle(data) {
+ return style({
+ height: addUnit(data.itemHeight),
+ });
+}
+
+function columns(columns) {
+ if (!array.isArray(columns)) {
+ return [];
+ }
+
+ if (columns.length && !columns[0].values) {
+ return [{ values: columns }];
+ }
+
+ return columns;
+}
+
+module.exports = {
+ columnsStyle: columnsStyle,
+ frameStyle: frameStyle,
+ maskStyle: maskStyle,
+ columns: columns,
+};
diff --git a/gz-wxparty/components/vant/picker/index.wxss b/gz-wxparty/components/vant/picker/index.wxss
new file mode 100644
index 0000000..d924abb
--- /dev/null
+++ b/gz-wxparty/components/vant/picker/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-picker{-webkit-text-size-adjust:100%;background-color:var(--picker-background-color,#fff);overflow:hidden;position:relative;-webkit-user-select:none;user-select:none}.van-picker__toolbar{display:flex;height:var(--picker-toolbar-height,44px);justify-content:space-between;line-height:var(--picker-toolbar-height,44px)}.van-picker__cancel,.van-picker__confirm{font-size:var(--picker-action-font-size,14px);padding:var(--picker-action-padding,0 16px)}.van-picker__cancel--hover,.van-picker__confirm--hover{opacity:.7}.van-picker__confirm{color:var(--picker-confirm-action-color,#576b95)}.van-picker__cancel{color:var(--picker-cancel-action-color,#969799)}.van-picker__title{font-size:var(--picker-option-font-size,16px);font-weight:var(--font-weight-bold,500);max-width:50%;text-align:center}.van-picker__columns{display:flex;position:relative}.van-picker__column{flex:1 1;width:0}.van-picker__loading{align-items:center;background-color:var(--picker-loading-mask-color,hsla(0,0%,100%,.9));bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:4}.van-picker__mask{-webkit-backface-visibility:hidden;backface-visibility:hidden;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-position:top,bottom;background-repeat:no-repeat;height:100%;left:0;top:0;width:100%;z-index:2}.van-picker__frame,.van-picker__mask{pointer-events:none;position:absolute}.van-picker__frame{left:16px;right:16px;top:50%;transform:translateY(-50%);z-index:1}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/picker/shared.d.ts b/gz-wxparty/components/vant/picker/shared.d.ts
new file mode 100644
index 0000000..c548045
--- /dev/null
+++ b/gz-wxparty/components/vant/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/gz-wxparty/components/vant/picker/shared.js b/gz-wxparty/components/vant/picker/shared.js
new file mode 100644
index 0000000..5f21f32
--- /dev/null
+++ b/gz-wxparty/components/vant/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: 6,
+ },
+ itemHeight: {
+ type: Number,
+ value: 44,
+ },
+};
diff --git a/gz-wxparty/components/vant/picker/toolbar.wxml b/gz-wxparty/components/vant/picker/toolbar.wxml
new file mode 100644
index 0000000..414f612
--- /dev/null
+++ b/gz-wxparty/components/vant/picker/toolbar.wxml
@@ -0,0 +1,23 @@
+<view wx:if="{{ showToolbar }}" class="van-picker__toolbar toolbar-class">
+ <view
+ class="van-picker__cancel"
+ hover-class="van-picker__cancel--hover"
+ hover-stay-time="70"
+ data-type="cancel"
+ bindtap="emit"
+ >
+ {{ cancelButtonText }}
+ </view>
+ <view wx:if="{{ title }}" class="van-picker__title van-ellipsis">{{
+ title
+ }}</view>
+ <view
+ class="van-picker__confirm"
+ hover-class="van-picker__confirm--hover"
+ hover-stay-time="70"
+ data-type="confirm"
+ bindtap="emit"
+ >
+ {{ confirmButtonText }}
+ </view>
+</view>
diff --git a/gz-wxparty/components/vant/popup/index.d.ts b/gz-wxparty/components/vant/popup/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/popup/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/popup/index.js b/gz-wxparty/components/vant/popup/index.js
new file mode 100644
index 0000000..a83ccaa
--- /dev/null
+++ b/gz-wxparty/components/vant/popup/index.js
@@ -0,0 +1,81 @@
+import { VantComponent } from '../common/component';
+import { transition } from '../mixins/transition';
+VantComponent({
+ classes: ['enter-class', 'enter-active-class', 'enter-to-class', 'leave-class', 'leave-active-class', 'leave-to-class', 'close-icon-class'],
+ mixins: [transition(false)],
+ props: {
+ round: Boolean,
+ closeable: Boolean,
+ customStyle: String,
+ overlayStyle: String,
+ transition: {
+ type: String,
+ observer: 'observeClass',
+ },
+ zIndex: {
+ type: Number,
+ value: 100,
+ },
+ overlay: {
+ type: Boolean,
+ value: true,
+ },
+ closeIcon: {
+ type: String,
+ value: 'cross',
+ },
+ title: String,
+ closeIconPosition: {
+ type: String,
+ value: 'top-right',
+ },
+ closeOnClickOverlay: {
+ type: Boolean,
+ value: true,
+ },
+ position: {
+ type: String,
+ value: 'center',
+ observer: 'observeClass',
+ },
+ safeAreaInsetBottom: {
+ type: Boolean,
+ value: true,
+ },
+ safeAreaInsetTop: {
+ type: Boolean,
+ value: false,
+ },
+ lockScroll: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ created() {
+ this.observeClass();
+ },
+ methods: {
+ onClickCloseIcon() {
+ this.$emit('close');
+ },
+ onClickOverlay() {
+ this.$emit('click-overlay');
+ if (this.data.closeOnClickOverlay) {
+ this.$emit('close');
+ }
+ },
+ observeClass() {
+ const { transition, position, duration } = this.data;
+ const updateData = {
+ name: transition || position,
+ };
+ if (transition === 'none') {
+ updateData.duration = 0;
+ this.originDuration = duration;
+ } else if (this.originDuration != null) {
+ updateData.duration = this.originDuration;
+ }
+ this.setData(updateData);
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/popup/index.json b/gz-wxparty/components/vant/popup/index.json
new file mode 100644
index 0000000..88a6eab
--- /dev/null
+++ b/gz-wxparty/components/vant/popup/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index",
+ "van-overlay": "../overlay/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/popup/index.wxml b/gz-wxparty/components/vant/popup/index.wxml
new file mode 100644
index 0000000..f39b33b
--- /dev/null
+++ b/gz-wxparty/components/vant/popup/index.wxml
@@ -0,0 +1,39 @@
+<wxs module="utils" src="../wxs/utils.wxs" />
+<wxs module="computed" src="./index.wxs" />
+
+<van-overlay
+ bind:click="onClickOverlay"
+ custom-style="{{ overlayStyle }}"
+ duration="{{ duration }}"
+ lock-scroll="{{ lockScroll }}"
+ show="{{ show }}"
+ wx:if="{{ overlay }}"
+ z-index="{{ zIndex }}"
+/>
+<view
+ bind:transitionend="onTransitionEnd"
+ class="custom-class {{ classes }} {{ utils.bem('popup', [position, { round, safe: safeAreaInsetBottom, safeTop: safeAreaInsetTop }]) }}"
+ style="{{ computed.popupStyle({ zIndex, currentDuration, display, customStyle }) }}"
+ wx:if="{{ inited }}"
+>
+ <block wx:if="{{ position === 'bottom' }}">
+ <view class="van-popup__header">
+ <view wx:if="{{ !!title }}">{{ title }}</view>
+ <van-icon bind:tap="onClickCloseIcon" class="close-icon-class" name="{{ closeIcon }}" wx:if="{{ closeable }}" />
+ </view>
+ <slot />
+ </block>
+ <block wx:else>
+ <slot />
+ <van-icon
+ bind:tap="onClickCloseIcon"
+ class="close-icon-class van-popup__close-icon van-popup__close-icon--{{ closeIconPosition }}"
+ name="{{ closeIcon }}"
+ wx:if="{{ closeable }}"
+ />
+ </block>
+</view>
+
+<view style="display:none" wx:else>
+ <slot />
+</view>
diff --git a/gz-wxparty/components/vant/popup/index.wxs b/gz-wxparty/components/vant/popup/index.wxs
new file mode 100644
index 0000000..8d59f24
--- /dev/null
+++ b/gz-wxparty/components/vant/popup/index.wxs
@@ -0,0 +1,18 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+
+function popupStyle(data) {
+ return style([
+ {
+ 'z-index': data.zIndex,
+ '-webkit-transition-duration': data.currentDuration + 'ms',
+ 'transition-duration': data.currentDuration + 'ms',
+ },
+ data.display ? null : 'display: none',
+ data.customStyle,
+ ]);
+}
+
+module.exports = {
+ popupStyle: popupStyle,
+};
diff --git a/gz-wxparty/components/vant/popup/index.wxss b/gz-wxparty/components/vant/popup/index.wxss
new file mode 100644
index 0000000..305874b
--- /dev/null
+++ b/gz-wxparty/components/vant/popup/index.wxss
@@ -0,0 +1,151 @@
+@import '../common/index.wxss';
+.van-popup {
+ -webkit-overflow-scrolling: touch;
+ animation: ease both;
+ background-color: var(--popup-background-color, #fff);
+ box-sizing: border-box;
+ max-height: 100%;
+ overflow-y: auto;
+ position: fixed;
+ transition-timing-function: ease;
+}
+.van-popup--center {
+ left: 50%;
+ top: 50%;
+ transform: translate3d(-50%, -50%, 0);
+}
+.van-popup--center.van-popup--round {
+ border-radius: var(--popup-round-border-radius, 16px);
+}
+.van-popup--top {
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+.van-popup--top.van-popup--round {
+ border-radius: 0 0 var(--popup-round-border-radius, var(--popup-round-border-radius, 16px))
+ var(--popup-round-border-radius, var(--popup-round-border-radius, 16px));
+}
+.van-popup--right {
+ right: 0;
+ top: 50%;
+ transform: translate3d(0, -50%, 0);
+}
+.van-popup--right.van-popup--round {
+ border-radius: var(--popup-round-border-radius, var(--popup-round-border-radius, 16px)) 0 0
+ var(--popup-round-border-radius, var(--popup-round-border-radius, 16px));
+}
+.van-popup--bottom {
+ bottom: 0;
+ left: 0;
+ width: 100%;
+}
+.van-popup--bottom.van-popup--round {
+ border-radius: var(--popup-round-border-radius, var(--popup-round-border-radius, 16px))
+ var(--popup-round-border-radius, var(--popup-round-border-radius, 16px)) 0 0;
+}
+.van-popup--left {
+ left: 0;
+ top: 50%;
+ transform: translate3d(0, -50%, 0);
+}
+.van-popup--left.van-popup--round {
+ border-radius: 0 var(--popup-round-border-radius, var(--popup-round-border-radius, 16px))
+ var(--popup-round-border-radius, var(--popup-round-border-radius, 16px)) 0;
+}
+.van-popup--bottom.van-popup--safe {
+ padding-bottom: env(safe-area-inset-bottom);
+}
+.van-popup--safeTop {
+ padding-top: env(safe-area-inset-top);
+}
+.van-popup__close-icon {
+ color: var(--popup-close-icon-color, #969799);
+ font-size: var(--popup-close-icon-size, 18px);
+ position: absolute;
+ z-index: var(--popup-close-icon-z-index, 1);
+}
+.van-popup__close-icon--top-left {
+ left: var(--popup-close-icon-margin, 16px);
+ top: var(--popup-close-icon-margin, 16px);
+}
+.van-popup__close-icon--top-right {
+ right: var(--popup-close-icon-margin, 16px);
+ top: var(--popup-close-icon-margin, 16px);
+}
+.van-popup__close-icon--bottom-left {
+ bottom: var(--popup-close-icon-margin, 16px);
+ left: var(--popup-close-icon-margin, 16px);
+}
+.van-popup__close-icon--bottom-right {
+ bottom: var(--popup-close-icon-margin, 16px);
+ right: var(--popup-close-icon-margin, 16px);
+}
+.van-popup__close-icon:active {
+ opacity: 0.6;
+}
+.van-scale-enter-active,
+.van-scale-leave-active {
+ transition-property: opacity, transform;
+}
+.van-scale-enter,
+.van-scale-leave-to {
+ opacity: 0;
+ transform: translate3d(-50%, -50%, 0) scale(0.7);
+}
+.van-fade-enter-active,
+.van-fade-leave-active {
+ transition-property: opacity;
+}
+.van-fade-enter,
+.van-fade-leave-to {
+ opacity: 0;
+}
+.van-center-enter-active,
+.van-center-leave-active {
+ transition-property: opacity;
+}
+.van-center-enter,
+.van-center-leave-to {
+ opacity: 0;
+}
+.van-bottom-enter-active,
+.van-bottom-leave-active,
+.van-left-enter-active,
+.van-left-leave-active,
+.van-right-enter-active,
+.van-right-leave-active,
+.van-top-enter-active,
+.van-top-leave-active {
+ transition-property: transform;
+}
+.van-bottom-enter,
+.van-bottom-leave-to {
+ transform: translate3d(0, 100%, 0);
+}
+.van-top-enter,
+.van-top-leave-to {
+ transform: translate3d(0, -100%, 0);
+}
+.van-left-enter,
+.van-left-leave-to {
+ transform: translate3d(-100%, -50%, 0);
+}
+.van-right-enter,
+.van-right-leave-to {
+ transform: translate3d(100%, -50%, 0);
+}
+.van-popup__header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 24rpx 32rpx 0;
+ font-weight: 600;
+ font-size: 32rpx;
+ line-height: 48rpx;
+ z-index: 999;
+}
+.van-popup__main {
+ margin-top: 96rpx;
+ position: relative;
+}
diff --git a/gz-wxparty/components/vant/rate/README.md b/gz-wxparty/components/vant/rate/README.md
new file mode 100644
index 0000000..0195770
--- /dev/null
+++ b/gz-wxparty/components/vant/rate/README.md
@@ -0,0 +1,159 @@
+# Rate 评分
+
+### 介绍
+
+用于对事物进行评级操作。
+
+### 引入
+
+在`app.json`或`index.json`中引入组件,详细介绍见[快速上手](#/quickstart#yin-ru-zu-jian)。
+
+```json
+"usingComponents": {
+ "van-rate": "@vant/weapp/rate/index"
+}
+```
+
+## 代码演示
+
+### 基础用法
+
+```html
+<van-rate value="{{ value }}" bind:change="onChange" />
+```
+
+```javascript
+Page({
+ data: {
+ value: 3,
+ },
+
+ onChange(event) {
+ this.setData({
+ value: event.detail,
+ });
+ },
+});
+```
+
+### 自定义图标
+
+```html
+<van-rate
+ value="{{ value }}"
+ icon="like"
+ void-icon="like-o"
+ bind:change="onChange"
+/>
+```
+
+### 自定义样式
+
+```html
+<van-rate
+ value="{{ value }}"
+ size="{{ 25 }}"
+ color="#ffd21e"
+ void-icon="star"
+ void-color="#eee"
+ bind:change="onChange"
+/>
+```
+
+### 半星
+
+```html
+<van-rate
+ value="{{ value }}"
+ allow-half
+ void-icon="star"
+ void-color="#eee"
+ bind:change="onChange"
+/>
+```
+
+```javascript
+Page({
+ data: {
+ value: 2.5,
+ },
+
+ onChange(event) {
+ this.setData({
+ value: event.detail,
+ });
+ },
+});
+```
+
+### 自定义数量
+
+```html
+<van-rate value="{{ value }}" count="{{ 6 }}" bind:change="onChange" />
+```
+
+### 禁用状态
+
+```html
+<van-rate disabled value="{{ value }}" bind:change="onChange" />
+```
+
+### 只读状态
+
+```html
+<van-rate readonly value="{{ value }}" bind:change="onChange" />
+```
+
+### 监听 change 事件
+
+评分变化时,会触发 `change` 事件。
+
+```html
+<van-rate value="{{ value }}" bind:change="onChange" />
+```
+
+```javascript
+Page({
+ data: {
+ value: 2,
+ },
+
+ onChange(event) {
+ Toast('当前值:' + event.detail);
+ },
+});
+```
+
+## API
+
+### Props
+
+| 参数 | 说明 | 类型 | 默认值 |
+| --- | --- | --- | --- |
+| name | 在表单内提交时的标识符 | _string_ | - |
+| value | 当前分值 | _number_ | - |
+| count | 图标总数 | _number_ | `5` |
+| size | 图标大小,默认单位为 `px` | _string \| number_ | `20px` |
+| gutter | 图标间距,默认单位为 `px` | _string \| number_ | `4px` |
+| color | 选中时的颜色 | _string_ | `#ffd21e` |
+| void-color | 未选中时的颜色 | _string_ | `#c7c7c7` |
+| icon | 选中时的图标名称或图片链接,可选值见 [Icon 组件](#/icon) | _string_ | `star` |
+| void-icon | 未选中时的图标名称或图片链接,可选值见 [Icon 组件](#/icon) | _string_ | `star-o` |
+| allow-half | 是否允许半选 | _boolean_ | `false` |
+| readonly | 是否为只读状态 | _boolean_ | `false` |
+| disabled | 是否禁用评分 | _boolean_ | `false` |
+| disabled-color | 禁用时的颜色 | _string_ | `#bdbdbd` |
+| touchable | 是否可以通过滑动手势选择评分 | _boolean_ | `true` |
+
+### Events
+
+| 事件名称 | 说明 | 回调参数 |
+| -------- | ------------------------ | --------------------- |
+| bind:change | 当前分值变化时触发的事件 | event.detail:当前分值 |
+
+### 外部样式类
+
+| 类名 | 说明 |
+| ------------ | ------------ |
+| custom-class | 根节点样式类 |
+| icon-class | 图标样式类 |
diff --git a/gz-wxparty/components/vant/rate/demo/index.json b/gz-wxparty/components/vant/rate/demo/index.json
new file mode 100644
index 0000000..5e8b209
--- /dev/null
+++ b/gz-wxparty/components/vant/rate/demo/index.json
@@ -0,0 +1,8 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-rate": "../../rate/index",
+ "van-toast": "../../toast/index",
+ "demo-block": "../../../example/components/demo-block/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/rate/demo/index.less b/gz-wxparty/components/vant/rate/demo/index.less
new file mode 100644
index 0000000..ef26581
--- /dev/null
+++ b/gz-wxparty/components/vant/rate/demo/index.less
@@ -0,0 +1,3 @@
+.rate-position {
+ margin-left: 15px;
+}
diff --git a/gz-wxparty/components/vant/rate/demo/index.ts b/gz-wxparty/components/vant/rate/demo/index.ts
new file mode 100644
index 0000000..2630dde
--- /dev/null
+++ b/gz-wxparty/components/vant/rate/demo/index.ts
@@ -0,0 +1,23 @@
+import { VantComponent } from '../../common/component';
+import Toast from '../../toast/toast';
+
+VantComponent({
+ data: {
+ value1: 3,
+ value2: 3,
+ value3: 3,
+ value4: 2.5,
+ value5: 4,
+ value6: 3,
+ value8: 2,
+ },
+
+ methods: {
+ onChange(event) {
+ Toast({
+ context: this,
+ message: '当前值:' + event.detail,
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/rate/demo/index.wxml b/gz-wxparty/components/vant/rate/demo/index.wxml
new file mode 100644
index 0000000..03a45ae
--- /dev/null
+++ b/gz-wxparty/components/vant/rate/demo/index.wxml
@@ -0,0 +1,70 @@
+<demo-block title="基础用法">
+ <van-rate
+ custom-class="rate-position"
+ model:value="{{ value1 }}"
+ />
+</demo-block>
+
+<demo-block title="自定义图标">
+ <van-rate
+ custom-class="rate-position"
+ icon="like"
+ void-icon="like-o"
+ model:value="{{ value2 }}"
+ />
+</demo-block>
+
+<demo-block title="自定义样式">
+ <van-rate
+ custom-class="rate-position"
+ model:value="{{ value3 }}"
+ size="{{ 25 }}"
+ color="#ffd21e"
+ void-icon="star"
+ void-color="#eee"
+ />
+</demo-block>
+
+<demo-block title="半星">
+ <van-rate
+ custom-class="rate-position"
+ model:value="{{ value4 }}"
+ allow-half
+ void-icon="star"
+ void-color="#eee"
+ />
+</demo-block>
+
+<demo-block title="自定义数量">
+ <van-rate
+ custom-class="rate-position"
+ model:value="{{ value5 }}"
+ count="{{ 6 }}"
+ />
+</demo-block>
+
+<demo-block title="禁用状态">
+ <van-rate
+ custom-class="rate-position"
+ value="{{ value6 }}"
+ disabled
+ />
+</demo-block>
+
+<demo-block title="只读状态">
+ <van-rate
+ custom-class="rate-position"
+ value="{{ value6 }}"
+ readonly
+ />
+</demo-block>
+
+<demo-block title="监听 change 事件">
+ <van-rate
+ custom-class="rate-position"
+ value="{{ value8 }}"
+ bind:change="onChange"
+ />
+</demo-block>
+
+<van-toast id="van-toast" />
diff --git a/gz-wxparty/components/vant/rate/index.d.ts b/gz-wxparty/components/vant/rate/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/rate/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/rate/index.js b/gz-wxparty/components/vant/rate/index.js
new file mode 100644
index 0000000..23b7345
--- /dev/null
+++ b/gz-wxparty/components/vant/rate/index.js
@@ -0,0 +1,78 @@
+import { getAllRect } from '../common/utils';
+import { VantComponent } from '../common/component';
+import { canIUseModel } from '../common/version';
+VantComponent({
+ field: true,
+ classes: ['icon-class'],
+ props: {
+ value: {
+ type: Number,
+ observer(value) {
+ if (value !== this.data.innerValue) {
+ this.setData({ innerValue: value });
+ }
+ },
+ },
+ readonly: Boolean,
+ disabled: Boolean,
+ allowHalf: Boolean,
+ size: null,
+ icon: {
+ type: String,
+ value: 'star',
+ },
+ voidIcon: {
+ type: String,
+ value: 'star-o',
+ },
+ color: String,
+ voidColor: String,
+ disabledColor: String,
+ count: {
+ type: Number,
+ value: 5,
+ observer(value) {
+ this.setData({ innerCountArray: Array.from({ length: value }) });
+ },
+ },
+ gutter: null,
+ touchable: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ data: {
+ innerValue: 0,
+ innerCountArray: Array.from({ length: 5 }),
+ },
+ methods: {
+ onSelect(event) {
+ const { data } = this;
+ const { score } = event.currentTarget.dataset;
+ if (!data.disabled && !data.readonly) {
+ this.setData({ innerValue: score + 1 });
+ if (canIUseModel()) {
+ this.setData({ value: score + 1 });
+ }
+ wx.nextTick(() => {
+ this.$emit('input', score + 1);
+ this.$emit('change', score + 1);
+ });
+ }
+ },
+ onTouchMove(event) {
+ const { touchable } = this.data;
+ if (!touchable)
+ return;
+ const { clientX } = event.touches[0];
+ getAllRect(this, '.van-rate__icon').then((list) => {
+ const target = list
+ .sort((cur, next) => cur.dataset.score - next.dataset.score)
+ .find((item) => clientX >= item.left && clientX <= item.right);
+ if (target != null) {
+ this.onSelect(Object.assign(Object.assign({}, event), { currentTarget: target }));
+ }
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/rate/index.json b/gz-wxparty/components/vant/rate/index.json
new file mode 100644
index 0000000..0a336c0
--- /dev/null
+++ b/gz-wxparty/components/vant/rate/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/rate/index.less b/gz-wxparty/components/vant/rate/index.less
new file mode 100644
index 0000000..b537bcd
--- /dev/null
+++ b/gz-wxparty/components/vant/rate/index.less
@@ -0,0 +1,39 @@
+@import '../common/style/var.less';
+
+.van-rate {
+ display: inline-flex;
+ user-select: none;
+
+ &__item {
+ position: relative;
+ padding: 0 var(--rate-horizontal-padding, @rate-horizontal-padding);
+
+ &:not(:last-child) {
+ padding-right: var(--rate-icon-gutter, @rate-icon-gutter);
+ }
+ }
+
+ &__icon {
+ display: block;
+ height: 100%;
+ color: var(--rate-icon-void-color, @rate-icon-void-color);
+ font-size: var(--rate-icon-size, @rate-icon-size);
+
+ &--half {
+ position: absolute;
+ top: 0;
+ width: 0.5em;
+ overflow: hidden;
+ left: var(--rate-horizontal-padding, @rate-horizontal-padding);
+ color: var(--rate-icon-full-color, @rate-icon-full-color);
+ }
+
+ &--full {
+ color: var(--rate-icon-full-color, @rate-icon-full-color);
+ }
+
+ &--disabled {
+ color: var(--rate-icon-disabled-color, @rate-icon-disabled-color);
+ }
+ }
+}
diff --git a/gz-wxparty/components/vant/rate/index.ts b/gz-wxparty/components/vant/rate/index.ts
new file mode 100644
index 0000000..6a95c65
--- /dev/null
+++ b/gz-wxparty/components/vant/rate/index.ts
@@ -0,0 +1,91 @@
+import { getAllRect } from '../common/utils';
+import { VantComponent } from '../common/component';
+import { canIUseModel } from '../common/version';
+
+VantComponent({
+ field: true,
+
+ classes: ['icon-class'],
+
+ props: {
+ value: {
+ type: Number,
+ observer(value: number) {
+ if (value !== this.data.innerValue) {
+ this.setData({ innerValue: value });
+ }
+ },
+ },
+ readonly: Boolean,
+ disabled: Boolean,
+ allowHalf: Boolean,
+ size: null,
+ icon: {
+ type: String,
+ value: 'star',
+ },
+ voidIcon: {
+ type: String,
+ value: 'star-o',
+ },
+ color: String,
+ voidColor: String,
+ disabledColor: String,
+ count: {
+ type: Number,
+ value: 5,
+ observer(value: number) {
+ this.setData({ innerCountArray: Array.from({ length: value }) });
+ },
+ },
+ gutter: null,
+ touchable: {
+ type: Boolean,
+ value: true,
+ },
+ },
+
+ data: {
+ innerValue: 0,
+ innerCountArray: Array.from({ length: 5 }),
+ },
+
+ methods: {
+ onSelect(event: WechatMiniprogram.CustomEvent) {
+ const { data } = this;
+ const { score } = event.currentTarget.dataset;
+ if (!data.disabled && !data.readonly) {
+ this.setData({ innerValue: score + 1 });
+
+ if (canIUseModel()) {
+ this.setData({ value: score + 1 });
+ }
+
+ wx.nextTick(() => {
+ this.$emit('input', score + 1);
+ this.$emit('change', score + 1);
+ });
+ }
+ },
+
+ onTouchMove(event: WechatMiniprogram.TouchEvent) {
+ const { touchable } = this.data;
+ if (!touchable) return;
+
+ const { clientX } = event.touches[0];
+
+ getAllRect(this, '.van-rate__icon').then((list) => {
+ const target = list
+ .sort((cur, next) => cur.dataset.score - next.dataset.score)
+ .find((item) => clientX >= item.left && clientX <= item.right);
+
+ if (target != null) {
+ this.onSelect({
+ ...event,
+ currentTarget: (target as unknown) as WechatMiniprogram.Target,
+ });
+ }
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/rate/index.wxml b/gz-wxparty/components/vant/rate/index.wxml
new file mode 100644
index 0000000..049714c
--- /dev/null
+++ b/gz-wxparty/components/vant/rate/index.wxml
@@ -0,0 +1,35 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="../wxs/style.wxs" module="style" />
+
+<view
+ class="{{ utils.bem('rate') }} custom-class"
+ bind:touchmove="onTouchMove"
+>
+ <view
+ class="{{ utils.bem('rate__item') }}"
+ wx:for="{{ innerCountArray }}"
+ wx:key="index"
+ style="{{ style({ paddingRight: index !== count - 1 ? utils.addUnit(gutter) : null }) }}"
+ >
+ <van-icon
+ name="{{ index + 1 <= innerValue ? icon : voidIcon }}"
+ class="{{ utils.bem('rate__icon', [{ disabled, full: index + 1 <= innerValue }])}}"
+ style="{{ style({ fontSize: utils.addUnit(size) }) }}"
+ custom-class="icon-class"
+ data-score="{{ index }}"
+ color="{{ disabled ? disabledColor : index + 1 <= innerValue ? color : voidColor }}"
+ bind:click="onSelect"
+ />
+
+ <van-icon
+ wx:if="{{ allowHalf }}"
+ name="{{ index + 0.5 <= innerValue ? icon : voidIcon }}"
+ class="{{ utils.bem('rate__icon', ['half', { disabled, full: index + 0.5 <= innerValue }]) }}"
+ style="{{ style({ fontSize: utils.addUnit(size) }) }}"
+ custom-class="icon-class"
+ data-score="{{ index - 0.5 }}"
+ color="{{ disabled ? disabledColor : index + 0.5 <= innerValue ? color : voidColor }}"
+ bind:click="onSelect"
+ />
+ </view>
+</view>
diff --git a/gz-wxparty/components/vant/rate/index.wxss b/gz-wxparty/components/vant/rate/index.wxss
new file mode 100644
index 0000000..470e4f4
--- /dev/null
+++ b/gz-wxparty/components/vant/rate/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-rate{display:inline-flex;-webkit-user-select:none;user-select:none}.van-rate__item{padding:0 var(--rate-horizontal-padding,2px);position:relative}.van-rate__item:not(:last-child){padding-right:var(--rate-icon-gutter,4px)}.van-rate__icon{color:var(--rate-icon-void-color,#c8c9cc);display:block;font-size:var(--rate-icon-size,20px);height:100%}.van-rate__icon--half{left:var(--rate-horizontal-padding,2px);overflow:hidden;position:absolute;top:0;width:.5em}.van-rate__icon--full,.van-rate__icon--half{color:var(--rate-icon-full-color,#ee0a24)}.van-rate__icon--disabled{color:var(--rate-icon-disabled-color,#c8c9cc)}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/rate/test/__snapshots__/demo.spec.ts.snap b/gz-wxparty/components/vant/rate/test/__snapshots__/demo.spec.ts.snap
new file mode 100644
index 0000000..8a3e477
--- /dev/null
+++ b/gz-wxparty/components/vant/rate/test/__snapshots__/demo.spec.ts.snap
@@ -0,0 +1,977 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`should render demo and match snapshot 1`] = `
+<main>
+ <demo-block>
+ <wx-view
+ class="custom-class demo-block van-clearfix "
+ >
+ <wx-view
+ class="demo-block__title"
+ >
+ 基础用法
+ </wx-view>
+ <van-rate
+ customClass="rate-position"
+ >
+ <wx-view
+ class="van-rate custom-class"
+ bind:touchmove="onTouchMove"
+ >
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{0}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{1}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{2}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{3}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star-o"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{4}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star-o"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ </wx-view>
+ </van-rate>
+ </wx-view>
+ </demo-block>
+ <demo-block>
+ <wx-view
+ class="custom-class demo-block van-clearfix "
+ >
+ <wx-view
+ class="demo-block__title"
+ >
+ 自定义图标
+ </wx-view>
+ <van-rate
+ customClass="rate-position"
+ >
+ <wx-view
+ class="van-rate custom-class"
+ bind:touchmove="onTouchMove"
+ >
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{0}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-like"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{1}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-like"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{2}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-like"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{3}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-like-o"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{4}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-like-o"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ </wx-view>
+ </van-rate>
+ </wx-view>
+ </demo-block>
+ <demo-block>
+ <wx-view
+ class="custom-class demo-block van-clearfix "
+ >
+ <wx-view
+ class="demo-block__title"
+ >
+ 自定义样式
+ </wx-view>
+ <van-rate
+ customClass="rate-position"
+ >
+ <wx-view
+ class="van-rate custom-class"
+ bind:touchmove="onTouchMove"
+ >
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{0}}"
+ style="font-size:25px"
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style="color:#ffd21e"
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{1}}"
+ style="font-size:25px"
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style="color:#ffd21e"
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{2}}"
+ style="font-size:25px"
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style="color:#ffd21e"
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{3}}"
+ style="font-size:25px"
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style="color:#eee"
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{4}}"
+ style="font-size:25px"
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style="color:#eee"
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ </wx-view>
+ </van-rate>
+ </wx-view>
+ </demo-block>
+ <demo-block>
+ <wx-view
+ class="custom-class demo-block van-clearfix "
+ >
+ <wx-view
+ class="demo-block__title"
+ >
+ 半星
+ </wx-view>
+ <van-rate
+ customClass="rate-position"
+ >
+ <wx-view
+ class="van-rate custom-class"
+ bind:touchmove="onTouchMove"
+ >
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{0}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ <van-icon
+ class="van-rate__icon van-rate__icon--half van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{-0.5}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{1}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ <van-icon
+ class="van-rate__icon van-rate__icon--half van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{0.5}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{2}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style="color:#eee"
+ bind:tap="onClick"
+ />
+ </van-icon>
+ <van-icon
+ class="van-rate__icon van-rate__icon--half van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{1.5}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{3}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style="color:#eee"
+ bind:tap="onClick"
+ />
+ </van-icon>
+ <van-icon
+ class="van-rate__icon van-rate__icon--half"
+ customClass="icon-class"
+ data-score="{{2.5}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style="color:#eee"
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{4}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style="color:#eee"
+ bind:tap="onClick"
+ />
+ </van-icon>
+ <van-icon
+ class="van-rate__icon van-rate__icon--half"
+ customClass="icon-class"
+ data-score="{{3.5}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style="color:#eee"
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ </wx-view>
+ </van-rate>
+ </wx-view>
+ </demo-block>
+ <demo-block>
+ <wx-view
+ class="custom-class demo-block van-clearfix "
+ >
+ <wx-view
+ class="demo-block__title"
+ >
+ 自定义数量
+ </wx-view>
+ <van-rate
+ customClass="rate-position"
+ >
+ <wx-view
+ class="van-rate custom-class"
+ bind:touchmove="onTouchMove"
+ >
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{0}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{1}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{2}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{3}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{4}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star-o"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{5}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star-o"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ </wx-view>
+ </van-rate>
+ </wx-view>
+ </demo-block>
+ <demo-block>
+ <wx-view
+ class="custom-class demo-block van-clearfix "
+ >
+ <wx-view
+ class="demo-block__title"
+ >
+ 禁用状态
+ </wx-view>
+ <van-rate
+ customClass="rate-position"
+ >
+ <wx-view
+ class="van-rate custom-class"
+ bind:touchmove="onTouchMove"
+ >
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--disabled van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{0}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--disabled van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{1}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--disabled van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{2}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--disabled"
+ customClass="icon-class"
+ data-score="{{3}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star-o"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--disabled"
+ customClass="icon-class"
+ data-score="{{4}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star-o"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ </wx-view>
+ </van-rate>
+ </wx-view>
+ </demo-block>
+ <demo-block>
+ <wx-view
+ class="custom-class demo-block van-clearfix "
+ >
+ <wx-view
+ class="demo-block__title"
+ >
+ 只读状态
+ </wx-view>
+ <van-rate
+ customClass="rate-position"
+ >
+ <wx-view
+ class="van-rate custom-class"
+ bind:touchmove="onTouchMove"
+ >
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{0}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{1}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{2}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{3}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star-o"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{4}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star-o"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ </wx-view>
+ </van-rate>
+ </wx-view>
+ </demo-block>
+ <demo-block>
+ <wx-view
+ class="custom-class demo-block van-clearfix "
+ >
+ <wx-view
+ class="demo-block__title"
+ >
+ 监听 change 事件
+ </wx-view>
+ <van-rate
+ customClass="rate-position"
+ bind:change="onChange"
+ >
+ <wx-view
+ class="van-rate custom-class"
+ bind:touchmove="onTouchMove"
+ >
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{0}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon van-rate__icon--full"
+ customClass="icon-class"
+ data-score="{{1}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{2}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star-o"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{3}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star-o"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ <wx-view
+ class="van-rate__item"
+ style=""
+ >
+ <van-icon
+ class="van-rate__icon"
+ customClass="icon-class"
+ data-score="{{4}}"
+ style=""
+ bind:click="onSelect"
+ >
+ <wx-view
+ class="custom-class van-icon van-icon-star-o"
+ style=""
+ bind:tap="onClick"
+ />
+ </van-icon>
+ </wx-view>
+ </wx-view>
+ </van-rate>
+ </wx-view>
+ </demo-block>
+ <van-toast
+ id="van-toast"
+ >
+ <van-transition
+ customClass="van-toast__container"
+ />
+ </van-toast>
+</main>
+`;
diff --git a/gz-wxparty/components/vant/rate/test/demo.spec.ts b/gz-wxparty/components/vant/rate/test/demo.spec.ts
new file mode 100644
index 0000000..4c3798c
--- /dev/null
+++ b/gz-wxparty/components/vant/rate/test/demo.spec.ts
@@ -0,0 +1,11 @@
+import path from 'path';
+import simulate from 'miniprogram-simulate';
+
+test('should render demo and match snapshot', () => {
+ const id = simulate.load(path.resolve(__dirname, '../demo/index'), {
+ rootPath: path.resolve(__dirname, '../../'),
+ });
+ const comp = simulate.render(id);
+ comp.attach(document.createElement('parent-wrapper'));
+ expect(comp.toJSON()).toMatchSnapshot();
+});
diff --git a/gz-wxparty/components/vant/row/index.d.ts b/gz-wxparty/components/vant/row/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/row/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/row/index.js b/gz-wxparty/components/vant/row/index.js
new file mode 100644
index 0000000..cc844f8
--- /dev/null
+++ b/gz-wxparty/components/vant/row/index.js
@@ -0,0 +1,23 @@
+import { VantComponent } from '../common/component';
+import { useChildren } from '../common/relation';
+VantComponent({
+ relation: useChildren('col', function (target) {
+ const { gutter } = this.data;
+ if (gutter) {
+ target.setData({ gutter });
+ }
+ }),
+ props: {
+ gutter: {
+ type: Number,
+ observer: 'setGutter',
+ },
+ },
+ methods: {
+ setGutter() {
+ this.children.forEach((col) => {
+ col.setData(this.data);
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/row/index.json b/gz-wxparty/components/vant/row/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/components/vant/row/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/components/vant/row/index.wxml b/gz-wxparty/components/vant/row/index.wxml
new file mode 100644
index 0000000..69a4359
--- /dev/null
+++ b/gz-wxparty/components/vant/row/index.wxml
@@ -0,0 +1,5 @@
+<wxs src="./index.wxs" module="computed" />
+
+<view class="van-row custom-class" style="{{ computed.rootStyle({ gutter }) }}">
+ <slot />
+</view>
diff --git a/gz-wxparty/components/vant/row/index.wxs b/gz-wxparty/components/vant/row/index.wxs
new file mode 100644
index 0000000..f5c5958
--- /dev/null
+++ b/gz-wxparty/components/vant/row/index.wxs
@@ -0,0 +1,18 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function rootStyle(data) {
+ if (!data.gutter) {
+ return '';
+ }
+
+ return style({
+ 'margin-right': addUnit(-data.gutter / 2),
+ 'margin-left': addUnit(-data.gutter / 2),
+ });
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+};
diff --git a/gz-wxparty/components/vant/row/index.wxss b/gz-wxparty/components/vant/row/index.wxss
new file mode 100644
index 0000000..bb8946b
--- /dev/null
+++ b/gz-wxparty/components/vant/row/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-row:after{clear:both;content:"";display:table}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/search/index.d.ts b/gz-wxparty/components/vant/search/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/search/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/search/index.js b/gz-wxparty/components/vant/search/index.js
new file mode 100644
index 0000000..d6f4bfa
--- /dev/null
+++ b/gz-wxparty/components/vant/search/index.js
@@ -0,0 +1,89 @@
+import { VantComponent } from '../common/component';
+import { canIUseModel } from '../common/version';
+VantComponent({
+ field: true,
+ classes: ['field-class', 'input-class', 'cancel-class'],
+ props: {
+ label: String,
+ focus: Boolean,
+ error: Boolean,
+ disabled: Boolean,
+ readonly: Boolean,
+ inputAlign: String,
+ showAction: Boolean,
+ useActionSlot: Boolean,
+ useLeftIconSlot: Boolean,
+ useRightIconSlot: Boolean,
+ leftIcon: {
+ type: String,
+ value: 'search',
+ },
+ rightIcon: String,
+ placeholder: String,
+ placeholderStyle: String,
+ actionText: {
+ type: String,
+ value: '取消',
+ },
+ background: {
+ type: String,
+ value: '#ffffff',
+ },
+ maxlength: {
+ type: Number,
+ value: -1,
+ },
+ shape: {
+ type: String,
+ value: 'square',
+ },
+ clearable: {
+ type: Boolean,
+ value: true,
+ },
+ clearTrigger: {
+ type: String,
+ value: 'focus',
+ },
+ clearIcon: {
+ type: String,
+ value: 'clear',
+ },
+ },
+ methods: {
+ onChange(event) {
+ if (canIUseModel()) {
+ this.setData({ value: event.detail });
+ }
+ this.$emit('change', event.detail);
+ },
+ onCancel() {
+ /**
+ * 修复修改输入框值时,输入框失焦和赋值同时触发,赋值失效
+ * https://github.com/youzan/@vant/weapp/issues/1768
+ */
+ setTimeout(() => {
+ if (canIUseModel()) {
+ this.setData({ value: '' });
+ }
+ this.$emit('cancel');
+ this.$emit('change', '');
+ }, 200);
+ },
+ onSearch(event) {
+ this.$emit('search', event.detail);
+ },
+ onFocus(event) {
+ this.$emit('focus', event.detail);
+ },
+ onBlur(event) {
+ this.$emit('blur', event.detail);
+ },
+ onClear(event) {
+ this.$emit('clear', event.detail);
+ },
+ onClickInput(event) {
+ this.$emit('click-input', event.detail);
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/search/index.json b/gz-wxparty/components/vant/search/index.json
new file mode 100644
index 0000000..b4cfe91
--- /dev/null
+++ b/gz-wxparty/components/vant/search/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-field": "../field/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/search/index.wxml b/gz-wxparty/components/vant/search/index.wxml
new file mode 100644
index 0000000..8800070
--- /dev/null
+++ b/gz-wxparty/components/vant/search/index.wxml
@@ -0,0 +1,53 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ class="{{ utils.bem('search', { withaction: showAction || useActionSlot }) }} custom-class"
+ style="background: {{ background }}"
+>
+ <view class="{{ utils.bem('search__content', [shape]) }}">
+ <view class="van-search__label" wx:if="{{ label }}">{{ label }}</view>
+ <slot wx:else name="label" />
+
+ <van-field
+ type="search"
+ left-icon="{{ !useLeftIconSlot ? leftIcon : '' }}"
+ right-icon="{{ !useRightIconSlot ? rightIcon : '' }}"
+ focus="{{ focus }}"
+ error="{{ error }}"
+ border="{{ false }}"
+ confirm-type="search"
+ class="van-search__field field-class"
+ value="{{ value || '' }}"
+ disabled="{{ disabled }}"
+ readonly="{{ readonly }}"
+ clearable="{{ clearable }}"
+ clear-trigger="{{ clearTrigger }}"
+ clear-icon="{{ clearIcon }}"
+ maxlength="{{ maxlength }}"
+ input-align="{{ inputAlign }}"
+ input-class="input-class"
+ placeholder="{{ placeholder }}"
+ placeholder-style="{{ placeholderStyle }}"
+ custom-style="padding: 5px 10px 5px 0; background-color: transparent;"
+ bind:blur="onBlur"
+ bind:focus="onFocus"
+ bind:change="onChange"
+ bind:confirm="onSearch"
+ bind:clear="onClear"
+ bind:click-input="onClickInput"
+ >
+ <slot wx:if="{{ useLeftIconSlot }}" name="left-icon" slot="left-icon" />
+ <slot wx:if="{{ useRightIconSlot }}" name="right-icon" slot="right-icon" />
+ </van-field>
+ </view>
+
+ <view
+ wx:if="{{ showAction || useActionSlot }}"
+ class="van-search__action"
+ hover-class="van-search__action--hover"
+ hover-stay-time="70"
+ >
+ <slot wx:if="{{ useActionSlot }}" name="action" />
+ <view wx:else bind:tap="onCancel" class="cancel-class">{{ actionText }}</view>
+ </view>
+</view>
diff --git a/gz-wxparty/components/vant/search/index.wxss b/gz-wxparty/components/vant/search/index.wxss
new file mode 100644
index 0000000..212f7aa
--- /dev/null
+++ b/gz-wxparty/components/vant/search/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-search{align-items:center;box-sizing:border-box;display:flex;padding:var(--search-padding,10px 12px)}.van-search__content{background-color:var(--search-background-color,#f7f8fa);border-radius:2px;display:flex;flex:1;padding-left:var(--padding-sm,12px)}.van-search__content--round{border-radius:999px}.van-search__label{color:var(--search-label-color,#323233);font-size:var(--search-label-font-size,14px);line-height:var(--search-input-height,34px);padding:var(--search-label-padding,0 5px)}.van-search__field{flex:1}.van-search__field__left-icon{color:var(--search-left-icon-color,#969799)}.van-search--withaction{padding-right:0}.van-search__action{color:var(--search-action-text-color,#323233);font-size:var(--search-action-font-size,14px);line-height:var(--search-input-height,34px);padding:var(--search-action-padding,0 8px)}.van-search__action--hover{background-color:#f2f3f5}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/sticky/index.d.ts b/gz-wxparty/components/vant/sticky/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/sticky/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/sticky/index.js b/gz-wxparty/components/vant/sticky/index.js
new file mode 100644
index 0000000..e1ae6df
--- /dev/null
+++ b/gz-wxparty/components/vant/sticky/index.js
@@ -0,0 +1,118 @@
+import { getRect } from '../common/utils';
+import { VantComponent } from '../common/component';
+import { isDef } from '../common/validator';
+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([
+ getRect(this, 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;
+ }
+ getRect(this, ROOT_ELEMENT).then((root) => {
+ if (!isDef(root)) {
+ return;
+ }
+ 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;
+ }, {});
+ if (Object.keys(diff).length > 0) {
+ 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/gz-wxparty/components/vant/sticky/index.json b/gz-wxparty/components/vant/sticky/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/components/vant/sticky/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/components/vant/sticky/index.wxml b/gz-wxparty/components/vant/sticky/index.wxml
new file mode 100644
index 0000000..15e9f4a
--- /dev/null
+++ b/gz-wxparty/components/vant/sticky/index.wxml
@@ -0,0 +1,8 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view class="custom-class van-sticky" style="{{ computed.containerStyle({ fixed, height, zIndex }) }}">
+ <view class="{{ utils.bem('sticky-wrap', { fixed }) }}" style="{{ computed.wrapStyle({ fixed, offsetTop, transform, zIndex }) }}">
+ <slot />
+ </view>
+</view>
diff --git a/gz-wxparty/components/vant/sticky/index.wxs b/gz-wxparty/components/vant/sticky/index.wxs
new file mode 100644
index 0000000..be99d89
--- /dev/null
+++ b/gz-wxparty/components/vant/sticky/index.wxs
@@ -0,0 +1,25 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function wrapStyle(data) {
+ return style({
+ transform: data.transform
+ ? 'translate3d(0, ' + data.transform + 'px, 0)'
+ : '',
+ top: data.fixed ? addUnit(data.offsetTop) : '',
+ 'z-index': data.zIndex,
+ });
+}
+
+function containerStyle(data) {
+ return style({
+ height: data.fixed ? addUnit(data.height) : '',
+ 'z-index': data.zIndex,
+ });
+}
+
+module.exports = {
+ wrapStyle: wrapStyle,
+ containerStyle: containerStyle,
+};
diff --git a/gz-wxparty/components/vant/sticky/index.wxss b/gz-wxparty/components/vant/sticky/index.wxss
new file mode 100644
index 0000000..34d76aa
--- /dev/null
+++ b/gz-wxparty/components/vant/sticky/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-sticky{position:relative}.van-sticky-wrap--fixed{left:0;position:fixed;right:0}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/switch/index.d.ts b/gz-wxparty/components/vant/switch/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/switch/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/switch/index.js b/gz-wxparty/components/vant/switch/index.js
new file mode 100644
index 0000000..4cad09c
--- /dev/null
+++ b/gz-wxparty/components/vant/switch/index.js
@@ -0,0 +1,36 @@
+import { VantComponent } from '../common/component';
+VantComponent({
+ field: true,
+ classes: ['node-class'],
+ props: {
+ checked: null,
+ loading: Boolean,
+ disabled: Boolean,
+ activeColor: String,
+ inactiveColor: String,
+ size: {
+ type: String,
+ value: '30',
+ },
+ activeValue: {
+ type: null,
+ value: true,
+ },
+ inactiveValue: {
+ type: null,
+ value: false,
+ },
+ },
+ methods: {
+ onClick() {
+ const { activeValue, inactiveValue, disabled, loading } = this.data;
+ if (disabled || loading) {
+ return;
+ }
+ const checked = this.data.checked === activeValue;
+ const value = checked ? inactiveValue : activeValue;
+ this.$emit('input', value);
+ this.$emit('change', value);
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/switch/index.json b/gz-wxparty/components/vant/switch/index.json
new file mode 100644
index 0000000..01077f5
--- /dev/null
+++ b/gz-wxparty/components/vant/switch/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-loading": "../loading/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/switch/index.wxml b/gz-wxparty/components/vant/switch/index.wxml
new file mode 100644
index 0000000..4e9789b
--- /dev/null
+++ b/gz-wxparty/components/vant/switch/index.wxml
@@ -0,0 +1,16 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="{{ utils.bem('switch', { on: checked === activeValue, disabled }) }} custom-class"
+ style="{{ computed.rootStyle({ size, checked, activeColor, inactiveColor, activeValue }) }}"
+ bind:tap="onClick"
+>
+ <view class="van-switch__node node-class">
+ <van-loading
+ wx:if="{{ loading }}"
+ color="{{ computed.loadingColor({ checked, activeColor, inactiveColor, activeValue }) }}"
+ custom-class="van-switch__loading"
+ />
+ </view>
+</view>
diff --git a/gz-wxparty/components/vant/switch/index.wxs b/gz-wxparty/components/vant/switch/index.wxs
new file mode 100644
index 0000000..3ae387a
--- /dev/null
+++ b/gz-wxparty/components/vant/switch/index.wxs
@@ -0,0 +1,26 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function rootStyle(data) {
+ var currentColor = data.checked === data.activeValue ? data.activeColor : data.inactiveColor;
+
+ return style({
+ 'font-size': addUnit(data.size),
+ 'background-color': currentColor,
+ });
+}
+
+var BLUE = '#1989fa';
+var GRAY_DARK = '#969799';
+
+function loadingColor(data) {
+ return data.checked === data.activeValue
+ ? data.activeColor || BLUE
+ : data.inactiveColor || GRAY_DARK;
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+ loadingColor: loadingColor,
+};
diff --git a/gz-wxparty/components/vant/switch/index.wxss b/gz-wxparty/components/vant/switch/index.wxss
new file mode 100644
index 0000000..35929de
--- /dev/null
+++ b/gz-wxparty/components/vant/switch/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-switch{background-color:var(--switch-background-color,#fff);border:var(--switch-border,1px solid rgba(0,0,0,.1));border-radius:var(--switch-node-size,1em);box-sizing:initial;display:inline-block;height:var(--switch-height,1em);position:relative;transition:background-color var(--switch-transition-duration,.3s);width:var(--switch-width,2em)}.van-switch__node{background-color:var(--switch-node-background-color,#fff);border-radius:100%;box-shadow:var(--switch-node-box-shadow,0 3px 1px 0 rgba(0,0,0,.05),0 2px 2px 0 rgba(0,0,0,.1),0 3px 3px 0 rgba(0,0,0,.05));height:var(--switch-node-size,1em);left:0;position:absolute;top:0;transition:var(--switch-transition-duration,.3s) cubic-bezier(.3,1.05,.4,1.05);width:var(--switch-node-size,1em);z-index:var(--switch-node-z-index,1)}.van-switch__loading{height:50%;left:25%;position:absolute!important;top:25%;width:50%}.van-switch--on{background-color:var(--switch-on-background-color,#1989fa)}.van-switch--on .van-switch__node{transform:translateX(calc(var(--switch-width, 2em) - var(--switch-node-size, 1em)))}.van-switch--disabled{opacity:var(--switch-disabled-opacity,.4)}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/tab/index.d.ts b/gz-wxparty/components/vant/tab/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/tab/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/tab/index.js b/gz-wxparty/components/vant/tab/index.js
new file mode 100644
index 0000000..9ada62e
--- /dev/null
+++ b/gz-wxparty/components/vant/tab/index.js
@@ -0,0 +1,56 @@
+import { useParent } from '../common/relation';
+import { VantComponent } from '../common/component';
+VantComponent({
+ relation: useParent('tabs'),
+ 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: null,
+ 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/gz-wxparty/components/vant/tab/index.json b/gz-wxparty/components/vant/tab/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/components/vant/tab/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/components/vant/tab/index.wxml b/gz-wxparty/components/vant/tab/index.wxml
new file mode 100644
index 0000000..f5e99f2
--- /dev/null
+++ b/gz-wxparty/components/vant/tab/index.wxml
@@ -0,0 +1,8 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ class="custom-class {{ utils.bem('tab__pane', { active, inactive: !active }) }}"
+ style="{{ shouldShow ? '' : 'display: none;' }}"
+>
+ <slot wx:if="{{ shouldRender }}" />
+</view>
diff --git a/gz-wxparty/components/vant/tab/index.wxss b/gz-wxparty/components/vant/tab/index.wxss
new file mode 100644
index 0000000..1c90c88
--- /dev/null
+++ b/gz-wxparty/components/vant/tab/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';:host{box-sizing:border-box;flex-shrink:0;width:100%}.van-tab__pane{-webkit-overflow-scrolling:touch;box-sizing:border-box;overflow-y:auto}.van-tab__pane--active{height:auto}.van-tab__pane--inactive{height:0;overflow:visible}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/tabbar-item/index.d.ts b/gz-wxparty/components/vant/tabbar-item/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/tabbar-item/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/tabbar-item/index.js b/gz-wxparty/components/vant/tabbar-item/index.js
new file mode 100644
index 0000000..4154399
--- /dev/null
+++ b/gz-wxparty/components/vant/tabbar-item/index.js
@@ -0,0 +1,56 @@
+import { VantComponent } from '../common/component';
+import { useParent } from '../common/relation';
+VantComponent({
+ props: {
+ info: null,
+ name: null,
+ icon: String,
+ dot: Boolean,
+ iconPrefix: {
+ type: String,
+ value: 'van-icon',
+ },
+ },
+ relation: useParent('tabbar'),
+ data: {
+ active: false,
+ activeColor: '',
+ inactiveColor: '',
+ },
+ methods: {
+ onClick() {
+ const { parent } = this;
+ if (parent) {
+ const index = parent.children.indexOf(this);
+ const active = this.data.name || index;
+ if (active !== this.data.active) {
+ parent.$emit('change', active);
+ }
+ }
+ this.$emit('click');
+ },
+ updateFromParent() {
+ const { parent } = this;
+ if (!parent) {
+ return;
+ }
+ const index = parent.children.indexOf(this);
+ const parentData = parent.data;
+ const { data } = this;
+ const active = (data.name || index) === parentData.active;
+ const patch = {};
+ if (active !== data.active) {
+ patch.active = active;
+ }
+ if (parentData.activeColor !== data.activeColor) {
+ patch.activeColor = parentData.activeColor;
+ }
+ if (parentData.inactiveColor !== data.inactiveColor) {
+ patch.inactiveColor = parentData.inactiveColor;
+ }
+ if (Object.keys(patch).length > 0) {
+ this.setData(patch);
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/tabbar-item/index.json b/gz-wxparty/components/vant/tabbar-item/index.json
new file mode 100644
index 0000000..16f174c
--- /dev/null
+++ b/gz-wxparty/components/vant/tabbar-item/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index",
+ "van-info": "../info/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/tabbar-item/index.wxml b/gz-wxparty/components/vant/tabbar-item/index.wxml
new file mode 100644
index 0000000..524728f
--- /dev/null
+++ b/gz-wxparty/components/vant/tabbar-item/index.wxml
@@ -0,0 +1,28 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ class="{{ utils.bem('tabbar-item', { active }) }} custom-class"
+ style="color: {{ active ? activeColor : inactiveColor }}"
+ bindtap="onClick"
+>
+ <view class="van-tabbar-item__icon">
+ <van-icon
+ wx:if="{{ icon }}"
+ name="{{ icon }}"
+ class-prefix="{{ iconPrefix }}"
+ custom-class="van-tabbar-item__icon__inner"
+ />
+ <block wx:else>
+ <slot wx:if="{{ active }}" name="icon-active" />
+ <slot wx:else name="icon" />
+ </block>
+ <van-info
+ dot="{{ dot }}"
+ info="{{ info }}"
+ custom-class="van-tabbar-item__info"
+ />
+ </view>
+ <view class="van-tabbar-item__text">
+ <slot />
+ </view>
+</view>
diff --git a/gz-wxparty/components/vant/tabbar-item/index.wxss b/gz-wxparty/components/vant/tabbar-item/index.wxss
new file mode 100644
index 0000000..0c2c6f5
--- /dev/null
+++ b/gz-wxparty/components/vant/tabbar-item/index.wxss
@@ -0,0 +1,29 @@
+@import '../common/index.wxss';
+:host {
+ flex: 1;
+}
+.van-tabbar-item {
+ align-items: center;
+ color: var(--tabbar-item-text-color, #646566);
+ display: flex;
+ flex-direction: column;
+ font-size: var(--tabbar-item-font-size, 12px);
+ height: 100%;
+ justify-content: center;
+ line-height: var(--tabbar-item-line-height, 1);
+}
+.van-tabbar-item__icon {
+ font-size: var(--tabbar-item-icon-size, 22px);
+ margin-bottom: var(--tabbar-item-margin-bottom, 4px);
+ position: relative;
+}
+.van-tabbar-item__icon__inner {
+ display: block;
+ min-width: 1em;
+}
+.van-tabbar-item--active {
+ color: var(--tabbar-item-active-color, #1989fa);
+}
+.van-tabbar-item__info {
+ margin-top: 2px;
+}
diff --git a/gz-wxparty/components/vant/tabbar/index.d.ts b/gz-wxparty/components/vant/tabbar/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/tabbar/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/tabbar/index.js b/gz-wxparty/components/vant/tabbar/index.js
new file mode 100644
index 0000000..5444999
--- /dev/null
+++ b/gz-wxparty/components/vant/tabbar/index.js
@@ -0,0 +1,69 @@
+import { VantComponent } from '../common/component';
+import { useChildren } from '../common/relation';
+import { getRect } from '../common/utils';
+VantComponent({
+ relation: useChildren('tabbar-item', function () {
+ this.updateChildren();
+ }),
+ props: {
+ active: {
+ type: null,
+ observer: 'updateChildren',
+ },
+ activeColor: {
+ type: String,
+ observer: 'updateChildren',
+ },
+ inactiveColor: {
+ type: String,
+ observer: 'updateChildren',
+ },
+ fixed: {
+ type: Boolean,
+ value: true,
+ observer: 'setHeight',
+ },
+ placeholder: {
+ type: Boolean,
+ observer: 'setHeight',
+ },
+ border: {
+ type: Boolean,
+ value: true,
+ },
+ zIndex: {
+ type: Number,
+ value: 1,
+ },
+ safeAreaInsetBottom: {
+ type: Boolean,
+ value: true,
+ },
+ myHeight: {
+ type: String,
+ value: ''
+ }
+ },
+ data: {
+ height: 50,
+ },
+ methods: {
+ updateChildren() {
+ const { children } = this;
+ if (!Array.isArray(children) || !children.length) {
+ return;
+ }
+ children.forEach((child) => child.updateFromParent());
+ },
+ setHeight() {
+ if (!this.data.fixed || !this.data.placeholder) {
+ return;
+ }
+ wx.nextTick(() => {
+ getRect(this, '.van-tabbar').then((res) => {
+ this.setData({ height: res.height });
+ });
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/tabbar/index.json b/gz-wxparty/components/vant/tabbar/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/components/vant/tabbar/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/components/vant/tabbar/index.wxml b/gz-wxparty/components/vant/tabbar/index.wxml
new file mode 100644
index 0000000..a453e1a
--- /dev/null
+++ b/gz-wxparty/components/vant/tabbar/index.wxml
@@ -0,0 +1,10 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ class="{{ border ? 'van-hairline--top-bottom' : '' }} {{ utils.bem('tabbar', { fixed, safe: safeAreaInsetBottom }) }} custom-class"
+ style="{{ zIndex ? 'z-index: ' + zIndex : '' }};{{ myHeight ? 'height: ' + myHeight : '' }}px;"
+>
+ <slot />
+</view>
+
+<view wx:if="{{ fixed && placeholder }}" style="height: {{ height }}px;"></view>
diff --git a/gz-wxparty/components/vant/tabbar/index.wxss b/gz-wxparty/components/vant/tabbar/index.wxss
new file mode 100644
index 0000000..048e8f5
--- /dev/null
+++ b/gz-wxparty/components/vant/tabbar/index.wxss
@@ -0,0 +1,16 @@
+@import '../common/index.wxss';
+.van-tabbar {
+ background-color: var(--tabbar-background-color, #fff);
+ box-sizing: initial;
+ display: flex;
+ height: var(--tabbar-height, 50px);
+ width: 100%;
+}
+.van-tabbar--fixed {
+ bottom: 0;
+ left: 0;
+ position: fixed;
+}
+.van-tabbar--safe {
+ padding-bottom: env(safe-area-inset-bottom);
+}
diff --git a/gz-wxparty/components/vant/tabs/index.d.ts b/gz-wxparty/components/vant/tabs/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/tabs/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/tabs/index.js b/gz-wxparty/components/vant/tabs/index.js
new file mode 100644
index 0000000..7aa9ad9
--- /dev/null
+++ b/gz-wxparty/components/vant/tabs/index.js
@@ -0,0 +1,278 @@
+import { VantComponent } from '../common/component';
+import { touch } from '../mixins/touch';
+import { getAllRect, getRect, groupSetData, nextTick, requestAnimationFrame, } from '../common/utils';
+import { isDef } from '../common/validator';
+import { useChildren } from '../common/relation';
+VantComponent({
+ mixins: [touch],
+ classes: ['nav-class', 'tab-class', 'tab-active-class', 'line-class'],
+ relation: useChildren('tab', function () {
+ this.updateTabs();
+ }),
+ props: {
+ sticky: Boolean,
+ border: Boolean,
+ swipeable: Boolean,
+ titleActiveColor: String,
+ titleInactiveColor: String,
+ color: String,
+ animated: {
+ type: Boolean,
+ observer() {
+ this.children.forEach((child, index) => child.updateRender(index === this.data.currentIndex, this));
+ },
+ },
+ lineWidth: {
+ type: null,
+ value: 40,
+ observer: 'resize',
+ },
+ lineHeight: {
+ type: null,
+ value: -1,
+ },
+ active: {
+ type: null,
+ value: 0,
+ observer(name) {
+ if (name !== this.getCurrentName()) {
+ this.setCurrentIndexByName(name);
+ }
+ },
+ },
+ type: {
+ type: String,
+ value: 'line',
+ },
+ ellipsis: {
+ type: Boolean,
+ value: true,
+ },
+ duration: {
+ type: Number,
+ value: 0.3,
+ },
+ zIndex: {
+ type: Number,
+ value: 1,
+ },
+ swipeThreshold: {
+ type: Number,
+ value: 5,
+ observer(value) {
+ this.setData({
+ scrollable: this.children.length > value || !this.data.ellipsis,
+ });
+ },
+ },
+ offsetTop: {
+ type: Number,
+ value: 0,
+ },
+ lazyRender: {
+ type: Boolean,
+ value: true,
+ },
+ disabled:{
+ type: Boolean,
+ value: false
+ }
+ },
+ data: {
+ tabs: [],
+ scrollLeft: 0,
+ scrollable: false,
+ currentIndex: 0,
+ container: null,
+ skipTransition: true,
+ scrollWithAnimation: false,
+ lineOffsetLeft: 0,
+ },
+ mounted() {
+ requestAnimationFrame(() => {
+ this.swiping = true;
+ this.setData({
+ container: () => this.createSelectorQuery().select('.van-tabs'),
+ });
+ this.resize();
+ this.scrollIntoView();
+ });
+ },
+ methods: {
+ updateTabs() {
+ const { children = [], data } = this;
+ this.setData({
+ tabs: children.map((child) => child.data),
+ scrollable: this.children.length > data.swipeThreshold || !data.ellipsis,
+ });
+ this.setCurrentIndexByName(data.active || this.getCurrentName());
+ },
+ 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 (this.data.disabled){
+ this.trigger('click');
+ return;
+ }
+ if (child.data.disabled) {
+ this.trigger('disabled', child);
+ }
+ else {
+ this.setCurrentIndex(index);
+ 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;
+ }
+ groupSetData(this, () => {
+ 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 });
+ requestAnimationFrame(() => {
+ this.resize();
+ this.scrollIntoView();
+ });
+ nextTick(() => {
+ this.trigger('input');
+ if (shouldEmitChange) {
+ this.trigger('change');
+ }
+ });
+ },
+ getCurrentName() {
+ const activeTab = this.children[this.data.currentIndex];
+ if (activeTab) {
+ return activeTab.getComputedName();
+ }
+ },
+ resize() {
+ if (this.data.type !== 'line') {
+ return;
+ }
+ const { currentIndex, ellipsis, skipTransition } = this.data;
+ Promise.all([
+ getAllRect(this, '.van-tab'),
+ getRect(this, '.van-tabs__line'),
+ ]).then(([rects = [], lineRect]) => {
+ const rect = rects[currentIndex];
+ if (rect == null) {
+ return;
+ }
+ let lineOffsetLeft = rects
+ .slice(0, currentIndex)
+ .reduce((prev, curr) => prev + curr.width, 0);
+ lineOffsetLeft +=
+ (rect.width - lineRect.width) / 2 + (ellipsis ? 0 : 8);
+ this.setData({ lineOffsetLeft });
+ this.swiping = true;
+ if (skipTransition) {
+ nextTick(() => {
+ this.setData({ skipTransition: false });
+ });
+ }
+ });
+ },
+ // scroll active tab into view
+ scrollIntoView() {
+ const { currentIndex, scrollable, scrollWithAnimation } = this.data;
+ if (!scrollable) {
+ return;
+ }
+ Promise.all([
+ getAllRect(this, '.van-tab'),
+ getRect(this, '.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,
+ });
+ if (!scrollWithAnimation) {
+ nextTick(() => {
+ this.setData({ scrollWithAnimation: true });
+ });
+ }
+ });
+ },
+ onTouchScroll(event) {
+ this.$emit('scroll', event.detail);
+ },
+ onTouchStart(event) {
+ if (!this.data.swipeable)
+ return;
+ this.swiping = true;
+ this.touchStart(event);
+ },
+ onTouchMove(event) {
+ if (!this.data.swipeable || !this.swiping)
+ return;
+ this.touchMove(event);
+ },
+ // watch swipe touch end
+ onTouchEnd() {
+ if (!this.data.swipeable || !this.swiping)
+ return;
+ const { direction, deltaX, offsetX } = this;
+ const minSwipeDistance = 50;
+ if (direction === 'horizontal' && offsetX >= minSwipeDistance) {
+ const index = this.getAvaiableTab(deltaX);
+ if (index !== -1) {
+ this.setCurrentIndex(index);
+ }
+ }
+ this.swiping = false;
+ },
+ getAvaiableTab(direction) {
+ const { tabs, currentIndex } = this.data;
+ const step = direction > 0 ? -1 : 1;
+ for (let i = step; currentIndex + i < tabs.length && currentIndex + i >= 0; i += step) {
+ const index = currentIndex + i;
+ if (index >= 0 &&
+ index < tabs.length &&
+ tabs[index] &&
+ !tabs[index].disabled) {
+ return index;
+ }
+ }
+ return -1;
+ },
+ },
+});
diff --git a/gz-wxparty/components/vant/tabs/index.json b/gz-wxparty/components/vant/tabs/index.json
new file mode 100644
index 0000000..19c0bc3
--- /dev/null
+++ b/gz-wxparty/components/vant/tabs/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-info": "../info/index",
+ "van-sticky": "../sticky/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/tabs/index.wxml b/gz-wxparty/components/vant/tabs/index.wxml
new file mode 100644
index 0000000..f76dd63
--- /dev/null
+++ b/gz-wxparty/components/vant/tabs/index.wxml
@@ -0,0 +1,63 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view class="custom-class {{ utils.bem('tabs', [type]) }}">
+ <van-sticky
+ disabled="{{ !sticky }}"
+ z-index="{{ zIndex }}"
+ offset-top="{{ offsetTop }}"
+ container="{{ container }}"
+ bind:scroll="onTouchScroll"
+ >
+ <view class="{{ utils.bem('tabs__wrap', { scrollable }) }} {{ type === 'line' && border ? 'van-hairline--top-bottom' : '' }}">
+ <slot name="nav-left" />
+
+ <scroll-view
+ scroll-x="{{ scrollable }}"
+ scroll-with-animation="{{ scrollWithAnimation }}"
+ scroll-left="{{ scrollLeft }}"
+ class="{{ utils.bem('tabs__scroll', [type]) }}"
+ style="{{ color ? 'border-color: ' + color : '' }}"
+ >
+ <view class="{{ utils.bem('tabs__nav', [type, { complete: !ellipsis }]) }} nav-class" style="{{ computed.navStyle(color, type) }}">
+ <view wx:if="{{ type === 'line' }}" class="van-tabs__line" style="{{ computed.lineStyle({ color, lineOffsetLeft, lineHeight, skipTransition, duration, lineWidth }) }}" />
+ <view
+ wx:for="{{ tabs }}"
+ wx:key="index"
+ data-index="{{ index }}"
+ class="{{ computed.tabClass(index === currentIndex, ellipsis) }} {{ utils.bem('tab', { active: index === currentIndex, disabled: item.disabled, complete: !ellipsis }) }}"
+ style="{{ computed.tabStyle({ active: index === currentIndex, ellipsis, color, type, disabled: item.disabled, titleActiveColor, titleInactiveColor, swipeThreshold, scrollable }) }}"
+ bind:tap="onTap"
+ >
+ <view class="{{ ellipsis ? 'van-ellipsis' : '' }}" style="{{ item.titleStyle }}">
+ {{ item.title }}
+ <van-info
+ wx:if="{{ item.info !== null || item.dot }}"
+ info="{{ item.info }}"
+ dot="{{ item.dot }}"
+ custom-class="van-tab__title__info"
+ />
+ </view>
+ </view>
+ </view>
+ </scroll-view>
+
+ <slot name="nav-right" />
+ </view>
+ </van-sticky>
+
+ <view
+ class="van-tabs__content"
+ bind:touchstart="onTouchStart"
+ bind:touchmove="onTouchMove"
+ bind:touchend="onTouchEnd"
+ bind:touchcancel="onTouchEnd"
+ >
+ <view
+ class="{{ utils.bem('tabs__track', [{ animated }]) }} van-tabs__track"
+ style="{{ computed.trackStyle({ duration, currentIndex, animated }) }}"
+ >
+ <slot />
+ </view>
+ </view>
+</view>
diff --git a/gz-wxparty/components/vant/tabs/index.wxs b/gz-wxparty/components/vant/tabs/index.wxs
new file mode 100644
index 0000000..a027c7b
--- /dev/null
+++ b/gz-wxparty/components/vant/tabs/index.wxs
@@ -0,0 +1,82 @@
+/* eslint-disable */
+var utils = require('../wxs/utils.wxs');
+var style = require('../wxs/style.wxs');
+
+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(data) {
+ var titleColor = data.active
+ ? data.titleActiveColor
+ : data.titleInactiveColor;
+
+ var ellipsis = data.scrollable && data.ellipsis;
+
+ // card theme color
+ if (data.type === 'card') {
+ return style({
+ 'border-color': data.color,
+ 'background-color': !data.disabled && data.active ? data.color : null,
+ color: titleColor || (!data.disabled && !data.active ? data.color : null),
+ 'flex-basis': ellipsis ? 88 / data.swipeThreshold + '%' : null,
+ });
+ }
+
+ return style({
+ color: titleColor,
+ 'flex-basis': ellipsis ? 88 / data.swipeThreshold + '%' : null,
+ });
+}
+
+function navStyle(color, type) {
+ return style({
+ 'border-color': type === 'card' && color ? color : null,
+ });
+}
+
+function trackStyle(data) {
+ if (!data.animated) {
+ return '';
+ }
+
+ return style({
+ left: -100 * data.currentIndex + '%',
+ 'transition-duration': data.duration + 's',
+ '-webkit-transition-duration': data.duration + 's',
+ });
+}
+
+function lineStyle(data) {
+ return style({
+ width: utils.addUnit(data.lineWidth),
+ transform: 'translateX(' + data.lineOffsetLeft + 'px)',
+ '-webkit-transform': 'translateX(' + data.lineOffsetLeft + 'px)',
+ 'background-color': data.color,
+ height: data.lineHeight !== -1 ? utils.addUnit(data.lineHeight) : null,
+ 'border-radius':
+ data.lineHeight !== -1 ? utils.addUnit(data.lineHeight) : null,
+ 'transition-duration': !data.skipTransition ? data.duration + 's' : null,
+ '-webkit-transition-duration': !data.skipTransition
+ ? data.duration + 's'
+ : null,
+ });
+}
+
+module.exports = {
+ tabClass: tabClass,
+ tabStyle: tabStyle,
+ trackStyle: trackStyle,
+ lineStyle: lineStyle,
+ navStyle: navStyle,
+};
diff --git a/gz-wxparty/components/vant/tabs/index.wxss b/gz-wxparty/components/vant/tabs/index.wxss
new file mode 100644
index 0000000..7742cef
--- /dev/null
+++ b/gz-wxparty/components/vant/tabs/index.wxss
@@ -0,0 +1,115 @@
+@import '../common/index.wxss';
+.van-tabs {
+ -webkit-tap-highlight-color: transparent;
+ position: relative;
+}
+.van-tabs__wrap {
+ display: flex;
+ overflow: hidden;
+}
+.van-tabs__wrap--scrollable .van-tab {
+ flex: 0 0 22%;
+}
+.van-tabs__wrap--scrollable .van-tab--complete {
+ flex: 1 0 auto !important;
+ padding: 0 12px;
+}
+.van-tabs__wrap--scrollable .van-tabs__nav--complete {
+ padding-left: 8px;
+ padding-right: 8px;
+}
+.van-tabs__scroll {
+ background-color: var(--tabs-nav-background-color, #fff);
+}
+.van-tabs__scroll--line {
+ box-sizing: initial;
+ height: calc(100% + 15px);
+}
+.van-tabs__scroll--card {
+ border: 1px solid var(--tabs-default-color, #ee0a24);
+ border-radius: 2px;
+ box-sizing: border-box;
+ margin: 0 var(--padding-md, 16px);
+ width: calc(100% - var(--padding-md, 16px) * 2);
+}
+.van-tabs__scroll::-webkit-scrollbar {
+ display: none;
+}
+.van-tabs__nav {
+ display: flex;
+ position: relative;
+ -webkit-user-select: none;
+ user-select: none;
+}
+.van-tabs__nav--card {
+ box-sizing: border-box;
+ height: var(--tabs-card-height, 30px);
+}
+.van-tabs__nav--card .van-tab {
+ border-right: 1px solid var(--tabs-default-color, #ee0a24);
+ color: var(--tabs-default-color, #ee0a24);
+ line-height: calc(var(--tabs-card-height, 30px) - 2px);
+}
+.van-tabs__nav--card .van-tab:last-child {
+ border-right: none;
+}
+.van-tabs__nav--card .van-tab.van-tab--active {
+ background-color: var(--tabs-default-color, #ee0a24);
+ color: #fff;
+}
+.van-tabs__nav--card .van-tab--disabled {
+ color: var(--tab-disabled-text-color, #c8c9cc);
+}
+.van-tabs__line {
+ background-color: var(--tabs-bottom-bar-color, #ee0a24);
+ border-radius: var(--tabs-bottom-bar-height, 3px);
+ bottom: 0;
+ height: var(--tabs-bottom-bar-height, 3px);
+ left: 0;
+ position: absolute;
+ z-index: 1;
+}
+.van-tabs__track {
+ height: 100%;
+ position: relative;
+ width: 100%;
+}
+.van-tabs__track--animated {
+ display: flex;
+ transition-property: left;
+}
+.van-tabs__content {
+ overflow: hidden;
+}
+.van-tabs--line .van-tabs__wrap {
+ height: var(--tabs-line-height, 44px);
+}
+.van-tabs--card .van-tabs__wrap {
+ height: var(--tabs-card-height, 30px);
+}
+.van-tab {
+ box-sizing: border-box;
+ color: var(--tab-text-color, #646566);
+ cursor: pointer;
+ flex: 1;
+ font-size: var(--tab-font-size, 14px);
+ line-height: 44rpx;
+ min-width: 0;
+ position: relative;
+ text-align: center;
+ height: var(--tabs-line-height);
+ font-weight: var(--font-weight-bold);
+}
+.van-tab--active {
+ color: var(--tab-active-text-color, #323233);
+ font-weight: var(--font-weight-bold, 500);
+}
+.van-tab--disabled {
+ color: var(--tab-disabled-text-color, #c8c9cc);
+}
+.van-tab__title__info {
+ display: inline-block;
+ position: relative !important;
+ top: -1px !important;
+ transform: translateX(0) !important;
+}
diff --git a/gz-wxparty/components/vant/toast/index.d.ts b/gz-wxparty/components/vant/toast/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/toast/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/toast/index.js b/gz-wxparty/components/vant/toast/index.js
new file mode 100644
index 0000000..414e746
--- /dev/null
+++ b/gz-wxparty/components/vant/toast/index.js
@@ -0,0 +1,29 @@
+import { VantComponent } from '../common/component';
+VantComponent({
+ props: {
+ show: Boolean,
+ mask: Boolean,
+ message: String,
+ forbidClick: Boolean,
+ zIndex: {
+ type: Number,
+ value: 1000,
+ },
+ type: {
+ type: String,
+ value: 'text',
+ },
+ loadingType: {
+ type: String,
+ value: 'circular',
+ },
+ position: {
+ type: String,
+ value: 'middle',
+ },
+ },
+ methods: {
+ // for prevent touchmove
+ noop() { },
+ },
+});
diff --git a/gz-wxparty/components/vant/toast/index.json b/gz-wxparty/components/vant/toast/index.json
new file mode 100644
index 0000000..9b1b78c
--- /dev/null
+++ b/gz-wxparty/components/vant/toast/index.json
@@ -0,0 +1,9 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index",
+ "van-loading": "../loading/index",
+ "van-overlay": "../overlay/index",
+ "van-transition": "../transition/index"
+ }
+}
diff --git a/gz-wxparty/components/vant/toast/index.wxml b/gz-wxparty/components/vant/toast/index.wxml
new file mode 100644
index 0000000..dbbaab5
--- /dev/null
+++ b/gz-wxparty/components/vant/toast/index.wxml
@@ -0,0 +1,36 @@
+<van-overlay
+ wx:if="{{ mask || forbidClick }}"
+ show="{{ show }}"
+ z-index="{{ zIndex }}"
+ custom-style="{{ mask ? '' : 'background-color: transparent;' }}"
+/>
+<van-transition
+ show="{{ show }}"
+ custom-style="z-index: {{ zIndex }}"
+ custom-class="van-toast__container"
+>
+ <view
+ class="van-toast van-toast--{{ (type === 'text' || type === 'html') ? 'text' : 'icon' }} van-toast--{{ position }}"
+ catch:touchmove="noop"
+ >
+ <!-- text only -->
+ <text wx:if="{{ type === 'text' }}">{{ message }}</text>
+
+ <!-- html only -->
+ <rich-text wx:elif="{{ type === 'html' }}" nodes="{{ message }}"></rich-text>
+
+ <!-- with icon -->
+ <block wx:else>
+ <van-loading
+ wx:if="{{ type === 'loading' }}"
+ color="white"
+ type="{{ loadingType }}"
+ custom-class="van-toast__loading"
+ />
+ <van-icon wx:else class="van-toast__icon" name="{{ type === 'fail' ? 'warning' : type }}" />
+ <text wx:if="{{ message }}" class="van-toast__text">{{ message }}</text>
+ </block>
+
+ <slot />
+ </view>
+</van-transition>
diff --git a/gz-wxparty/components/vant/toast/index.wxss b/gz-wxparty/components/vant/toast/index.wxss
new file mode 100644
index 0000000..4c66b8e
--- /dev/null
+++ b/gz-wxparty/components/vant/toast/index.wxss
@@ -0,0 +1,49 @@
+@import '../common/index.wxss';
+.van-toast {
+ word-wrap: break-word;
+ align-items: center;
+ background-color: var(--toast-background-color, rgba(0, 0, 0, 0.7));
+ border-radius: var(--toast-border-radius, 8px);
+ box-sizing: initial;
+ color: var(--toast-text-color, #fff);
+ display: flex;
+ flex-direction: column;
+ font-size: var(--toast-font-size, 14px);
+ justify-content: center;
+ line-height: var(--toast-line-height, 20px);
+ white-space: pre-wrap;
+}
+.van-toast__container {
+ left: 50%;
+ max-width: var(--toast-max-width, 70%);
+ position: fixed;
+ top: 50%;
+ transform: translate(-50%, -50%);
+ width: -webkit-fit-content;
+ width: fit-content;
+}
+.van-toast--text {
+ min-width: var(--toast-text-min-width, 96px);
+ padding: var(--toast-text-padding, 8px 12px);
+}
+.van-toast--icon {
+ min-height: var(--toast-default-min-height, 88px);
+ padding: var(--toast-default-padding, 16px);
+ min-width: var(--toast-default-width, 88px);
+ max-width: 400rpx;
+}
+.van-toast--icon .van-toast__icon {
+ font-size: var(--toast-icon-size, 36px);
+}
+.van-toast--icon .van-toast__text {
+ padding-top: 8px;
+}
+.van-toast__loading {
+ margin: 10px 0;
+}
+.van-toast--top {
+ transform: translateY(-30vh);
+}
+.van-toast--bottom {
+ transform: translateY(30vh);
+}
diff --git a/gz-wxparty/components/vant/toast/toast.d.ts b/gz-wxparty/components/vant/toast/toast.d.ts
new file mode 100644
index 0000000..db3f40e
--- /dev/null
+++ b/gz-wxparty/components/vant/toast/toast.d.ts
@@ -0,0 +1,26 @@
+/// <reference types="miniprogram-api-typings" />
+declare type ToastMessage = string | number;
+interface ToastOptions {
+ show?: boolean;
+ type?: string;
+ mask?: boolean;
+ zIndex?: number;
+ context?: WechatMiniprogram.Component.TrivialInstance | WechatMiniprogram.Page.TrivialInstance;
+ position?: string;
+ duration?: number;
+ selector?: string;
+ forbidClick?: boolean;
+ loadingType?: string;
+ message?: ToastMessage;
+ onClose?: () => void;
+}
+declare function Toast(toastOptions: ToastOptions | ToastMessage): WechatMiniprogram.Component.TrivialInstance | undefined;
+declare namespace Toast {
+ var loading: (options: ToastMessage | ToastOptions) => WechatMiniprogram.Component.TrivialInstance | undefined;
+ var success: (options: ToastMessage | ToastOptions) => WechatMiniprogram.Component.TrivialInstance | undefined;
+ var fail: (options: ToastMessage | ToastOptions) => WechatMiniprogram.Component.TrivialInstance | undefined;
+ var clear: () => void;
+ var setDefaultOptions: (options: ToastOptions) => void;
+ var resetDefaultOptions: () => void;
+}
+export default Toast;
diff --git a/gz-wxparty/components/vant/toast/toast.js b/gz-wxparty/components/vant/toast/toast.js
new file mode 100644
index 0000000..10775f3
--- /dev/null
+++ b/gz-wxparty/components/vant/toast/toast.js
@@ -0,0 +1,66 @@
+import { isObj } from '../common/validator';
+const defaultOptions = {
+ type: 'text',
+ mask: false,
+ message: '',
+ show: true,
+ zIndex: 1000,
+ duration: 2000,
+ position: 'middle',
+ forbidClick: false,
+ loadingType: 'circular',
+ selector: '#van-toast',
+};
+let queue = [];
+let currentOptions = Object.assign({}, defaultOptions);
+function parseOptions(message) {
+ return isObj(message) ? message : { message };
+}
+function getContext() {
+ const pages = getCurrentPages();
+ return pages[pages.length - 1];
+}
+function Toast(toastOptions) {
+ const options = Object.assign(Object.assign({}, currentOptions), parseOptions(toastOptions));
+ const context = options.context || getContext();
+ const toast = context.selectComponent(options.selector);
+ if (!toast) {
+ console.warn('未找到 van-toast 节点,请确认 selector 及 context 是否正确');
+ return;
+ }
+ delete options.context;
+ delete options.selector;
+ toast.clear = () => {
+ toast.setData({ show: false });
+ if (options.onClose) {
+ options.onClose();
+ }
+ };
+ queue.push(toast);
+ toast.setData(options);
+ clearTimeout(toast.timer);
+ if (options.duration != null && options.duration > 0) {
+ toast.timer = setTimeout(() => {
+ toast.clear();
+ queue = queue.filter((item) => item !== toast);
+ }, options.duration);
+ }
+ return toast;
+}
+const createMethod = (type) => (options) => Toast(Object.assign({ type }, parseOptions(options)));
+Toast.loading = createMethod('loading');
+Toast.success = createMethod('success');
+Toast.fail = createMethod('fail');
+Toast.clear = () => {
+ queue.forEach((toast) => {
+ toast.clear();
+ });
+ queue = [];
+};
+Toast.setDefaultOptions = (options) => {
+ Object.assign(currentOptions, options);
+};
+Toast.resetDefaultOptions = () => {
+ currentOptions = Object.assign({}, defaultOptions);
+};
+export default Toast;
diff --git a/gz-wxparty/components/vant/transition/index.d.ts b/gz-wxparty/components/vant/transition/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/components/vant/transition/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/components/vant/transition/index.js b/gz-wxparty/components/vant/transition/index.js
new file mode 100644
index 0000000..59bb984
--- /dev/null
+++ b/gz-wxparty/components/vant/transition/index.js
@@ -0,0 +1,13 @@
+import { VantComponent } from '../common/component';
+import { transition } from '../mixins/transition';
+VantComponent({
+ classes: [
+ 'enter-class',
+ 'enter-active-class',
+ 'enter-to-class',
+ 'leave-class',
+ 'leave-active-class',
+ 'leave-to-class',
+ ],
+ mixins: [transition(true)],
+});
diff --git a/gz-wxparty/components/vant/transition/index.json b/gz-wxparty/components/vant/transition/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/components/vant/transition/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/components/vant/transition/index.wxml b/gz-wxparty/components/vant/transition/index.wxml
new file mode 100644
index 0000000..82097a3
--- /dev/null
+++ b/gz-wxparty/components/vant/transition/index.wxml
@@ -0,0 +1,14 @@
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ wx:if="{{ inited }}"
+ class="van-transition custom-class {{ classes }}"
+ style="{{ computed.rootStyle({ currentDuration, display, customStyle }) }}"
+ bind:transitionend="onTransitionEnd"
+>
+ <slot />
+</view>
+
+<view wx:else style="display:none">
+ <slot />
+</view>
diff --git a/gz-wxparty/components/vant/transition/index.wxs b/gz-wxparty/components/vant/transition/index.wxs
new file mode 100644
index 0000000..e0babf6
--- /dev/null
+++ b/gz-wxparty/components/vant/transition/index.wxs
@@ -0,0 +1,17 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+
+function rootStyle(data) {
+ return style([
+ {
+ '-webkit-transition-duration': data.currentDuration + 'ms',
+ 'transition-duration': data.currentDuration + 'ms',
+ },
+ data.display ? null : 'display: none',
+ data.customStyle,
+ ]);
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+};
diff --git a/gz-wxparty/components/vant/transition/index.wxss b/gz-wxparty/components/vant/transition/index.wxss
new file mode 100644
index 0000000..3a3d37f
--- /dev/null
+++ b/gz-wxparty/components/vant/transition/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-transition{transition-timing-function:ease}.van-fade-enter-active,.van-fade-leave-active{transition-property:opacity}.van-fade-enter,.van-fade-leave-to{opacity:0}.van-fade-down-enter-active,.van-fade-down-leave-active,.van-fade-left-enter-active,.van-fade-left-leave-active,.van-fade-right-enter-active,.van-fade-right-leave-active,.van-fade-up-enter-active,.van-fade-up-leave-active{transition-property:opacity,transform}.van-fade-up-enter,.van-fade-up-leave-to{opacity:0;transform:translate3d(0,100%,0)}.van-fade-down-enter,.van-fade-down-leave-to{opacity:0;transform:translate3d(0,-100%,0)}.van-fade-left-enter,.van-fade-left-leave-to{opacity:0;transform:translate3d(-100%,0,0)}.van-fade-right-enter,.van-fade-right-leave-to{opacity:0;transform:translate3d(100%,0,0)}.van-slide-down-enter-active,.van-slide-down-leave-active,.van-slide-left-enter-active,.van-slide-left-leave-active,.van-slide-right-enter-active,.van-slide-right-leave-active,.van-slide-up-enter-active,.van-slide-up-leave-active{transition-property:transform}.van-slide-up-enter,.van-slide-up-leave-to{transform:translate3d(0,100%,0)}.van-slide-down-enter,.van-slide-down-leave-to{transform:translate3d(0,-100%,0)}.van-slide-left-enter,.van-slide-left-leave-to{transform:translate3d(-100%,0,0)}.van-slide-right-enter,.van-slide-right-leave-to{transform:translate3d(100%,0,0)}
\ No newline at end of file
diff --git a/gz-wxparty/components/vant/wxs/add-unit.wxs b/gz-wxparty/components/vant/wxs/add-unit.wxs
new file mode 100644
index 0000000..4f33462
--- /dev/null
+++ b/gz-wxparty/components/vant/wxs/add-unit.wxs
@@ -0,0 +1,12 @@
+/* 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;
diff --git a/gz-wxparty/components/vant/wxs/array.wxs b/gz-wxparty/components/vant/wxs/array.wxs
new file mode 100644
index 0000000..610089c
--- /dev/null
+++ b/gz-wxparty/components/vant/wxs/array.wxs
@@ -0,0 +1,5 @@
+function isArray(array) {
+ return array && array.constructor === 'Array';
+}
+
+module.exports.isArray = isArray;
diff --git a/gz-wxparty/components/vant/wxs/bem.wxs b/gz-wxparty/components/vant/wxs/bem.wxs
new file mode 100644
index 0000000..1efa129
--- /dev/null
+++ b/gz-wxparty/components/vant/wxs/bem.wxs
@@ -0,0 +1,39 @@
+/* eslint-disable */
+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;
diff --git a/gz-wxparty/components/vant/wxs/memoize.wxs b/gz-wxparty/components/vant/wxs/memoize.wxs
new file mode 100644
index 0000000..8f7f46d
--- /dev/null
+++ b/gz-wxparty/components/vant/wxs/memoize.wxs
@@ -0,0 +1,55 @@
+/**
+ * Simple memoize
+ * wxs doesn't support fn.apply, so this memoize only support up to 2 args
+ */
+/* eslint-disable */
+
+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;
diff --git a/gz-wxparty/components/vant/wxs/object.wxs b/gz-wxparty/components/vant/wxs/object.wxs
new file mode 100644
index 0000000..e077107
--- /dev/null
+++ b/gz-wxparty/components/vant/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/gz-wxparty/components/vant/wxs/style.wxs b/gz-wxparty/components/vant/wxs/style.wxs
new file mode 100644
index 0000000..d88ca7c
--- /dev/null
+++ b/gz-wxparty/components/vant/wxs/style.wxs
@@ -0,0 +1,42 @@
+/* eslint-disable */
+var object = require('./object.wxs');
+var array = require('./array.wxs');
+
+function kebabCase(word) {
+ var newWord = word
+ .replace(getRegExp("[A-Z]", 'g'), function (i) {
+ return '-' + i;
+ })
+ .toLowerCase()
+
+ return newWord;
+}
+
+function style(styles) {
+ if (array.isArray(styles)) {
+ return styles
+ .filter(function (item) {
+ return item != null && item !== '';
+ })
+ .map(function (item) {
+ return style(item);
+ })
+ .join(';');
+ }
+
+ if ('Object' === styles.constructor) {
+ return object
+ .keys(styles)
+ .filter(function (key) {
+ return styles[key] != null && styles[key] !== '';
+ })
+ .map(function (key) {
+ return [kebabCase(key), [styles[key]]].join(':');
+ })
+ .join(';');
+ }
+
+ return styles;
+}
+
+module.exports = style;
diff --git a/gz-wxparty/components/vant/wxs/utils.wxs b/gz-wxparty/components/vant/wxs/utils.wxs
new file mode 100644
index 0000000..f66d33a
--- /dev/null
+++ b/gz-wxparty/components/vant/wxs/utils.wxs
@@ -0,0 +1,10 @@
+/* eslint-disable */
+var bem = require('./bem.wxs');
+var memoize = require('./memoize.wxs');
+var addUnit = require('./add-unit.wxs');
+
+module.exports = {
+ bem: memoize(bem),
+ memoize: memoize,
+ addUnit: addUnit
+};
diff --git a/gz-wxparty/img/Like_1.png b/gz-wxparty/img/Like_1.png
new file mode 100644
index 0000000..1d6c0f4
--- /dev/null
+++ b/gz-wxparty/img/Like_1.png
Binary files differ
diff --git a/gz-wxparty/img/arrive_1.png b/gz-wxparty/img/arrive_1.png
new file mode 100644
index 0000000..10acd3c
--- /dev/null
+++ b/gz-wxparty/img/arrive_1.png
Binary files differ
diff --git a/gz-wxparty/img/case_1.png b/gz-wxparty/img/case_1.png
new file mode 100644
index 0000000..29fb0cd
--- /dev/null
+++ b/gz-wxparty/img/case_1.png
Binary files differ
diff --git a/gz-wxparty/img/case_2.png b/gz-wxparty/img/case_2.png
new file mode 100644
index 0000000..1e06f69
--- /dev/null
+++ b/gz-wxparty/img/case_2.png
Binary files differ
diff --git a/gz-wxparty/img/criticize_1.png b/gz-wxparty/img/criticize_1.png
new file mode 100644
index 0000000..edcfee6
--- /dev/null
+++ b/gz-wxparty/img/criticize_1.png
Binary files differ
diff --git a/gz-wxparty/img/finish_1.png b/gz-wxparty/img/finish_1.png
new file mode 100644
index 0000000..66abd8e
--- /dev/null
+++ b/gz-wxparty/img/finish_1.png
Binary files differ
diff --git a/gz-wxparty/img/meeting_1.png b/gz-wxparty/img/meeting_1.png
new file mode 100644
index 0000000..0ae2245
--- /dev/null
+++ b/gz-wxparty/img/meeting_1.png
Binary files differ
diff --git a/gz-wxparty/img/supplement_1.png b/gz-wxparty/img/supplement_1.png
new file mode 100644
index 0000000..cfe6a93
--- /dev/null
+++ b/gz-wxparty/img/supplement_1.png
Binary files differ
diff --git a/gz-wxparty/img/update_1.png b/gz-wxparty/img/update_1.png
new file mode 100644
index 0000000..1f1d5eb
--- /dev/null
+++ b/gz-wxparty/img/update_1.png
Binary files differ
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.js
new file mode 100644
index 0000000..b7af646
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.js
@@ -0,0 +1,73 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var button_1 = require("../mixins/button");
+(0, component_1.VantComponent)({
+ mixins: [button_1.button],
+ props: {
+ show: Boolean,
+ title: String,
+ cancelText: String,
+ description: String,
+ round: {
+ type: Boolean,
+ value: true,
+ },
+ zIndex: {
+ type: Number,
+ value: 100,
+ },
+ actions: {
+ type: Array,
+ value: [],
+ },
+ overlay: {
+ type: Boolean,
+ value: true,
+ },
+ closeOnClickOverlay: {
+ type: Boolean,
+ value: true,
+ },
+ closeOnClickAction: {
+ type: Boolean,
+ value: true,
+ },
+ safeAreaInsetBottom: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ methods: {
+ onSelect: function (event) {
+ var _this = this;
+ var index = event.currentTarget.dataset.index;
+ var _a = this.data, actions = _a.actions, closeOnClickAction = _a.closeOnClickAction, canIUseGetUserProfile = _a.canIUseGetUserProfile;
+ var item = actions[index];
+ if (item) {
+ this.$emit('select', item);
+ if (closeOnClickAction) {
+ this.onClose();
+ }
+ if (item.openType === 'getUserInfo' && canIUseGetUserProfile) {
+ wx.getUserProfile({
+ desc: item.getUserProfileDesc || ' ',
+ complete: function (userProfile) {
+ _this.$emit('getuserinfo', userProfile);
+ },
+ });
+ }
+ }
+ },
+ onCancel: function () {
+ this.$emit('cancel');
+ },
+ onClose: function () {
+ this.$emit('close');
+ },
+ onClickOverlay: function () {
+ this.$emit('click-overlay');
+ this.onClose();
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.json
new file mode 100644
index 0000000..19bf989
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.json
@@ -0,0 +1,8 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index",
+ "van-popup": "../popup/index",
+ "van-loading": "../loading/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.wxml
new file mode 100644
index 0000000..b04cc3a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.wxml
@@ -0,0 +1,69 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<van-popup
+ show="{{ show }}"
+ position="bottom"
+ round="{{ round }}"
+ z-index="{{ zIndex }}"
+ overlay="{{ overlay }}"
+ custom-class="van-action-sheet"
+ safe-area-inset-bottom="{{ safeAreaInsetBottom }}"
+ close-on-click-overlay="{{ closeOnClickOverlay }}"
+ bind:close="onClickOverlay"
+>
+ <view wx:if="{{ title }}" class="van-action-sheet__header">
+ {{ title }}
+ <van-icon
+ name="cross"
+ custom-class="van-action-sheet__close"
+ bind:click="onClose"
+ />
+ </view>
+ <view wx:if="{{ description }}" class="van-action-sheet__description van-hairline--bottom">
+ {{ description }}
+ </view>
+ <view wx:if="{{ actions && actions.length }}">
+ <!-- button外包一层view,防止actions动态变化,导致渲染时button被打散 -->
+ <button
+ wx:for="{{ actions }}"
+ wx:key="index"
+ open-type="{{ item.disabled || item.loading || (canIUseGetUserProfile && item.openType === 'getUserInfo') ? '' : item.openType }}"
+ style="{{ item.color ? 'color: ' + item.color : '' }}"
+ class="{{ utils.bem('action-sheet__item', { disabled: item.disabled || item.loading }) }} {{ item.className || '' }}"
+ hover-class="van-action-sheet__item--hover"
+ data-index="{{ index }}"
+ bindtap="{{ item.disabled || item.loading ? '' : 'onSelect' }}"
+ bindgetuserinfo="onGetUserInfo"
+ bindcontact="onContact"
+ bindgetphonenumber="onGetPhoneNumber"
+ binderror="onError"
+ bindlaunchapp="onLaunchApp"
+ bindopensetting="onOpenSetting"
+ lang="{{ lang }}"
+ session-from="{{ sessionFrom }}"
+ send-message-title="{{ sendMessageTitle }}"
+ send-message-path="{{ sendMessagePath }}"
+ send-message-img="{{ sendMessageImg }}"
+ show-message-card="{{ showMessageCard }}"
+ app-parameter="{{ appParameter }}"
+ >
+ <block wx:if="{{ !item.loading }}">
+ {{ item.name }}
+ <view wx:if="{{ item.subname }}" class="van-action-sheet__subname" >{{ item.subname }}</view>
+ </block>
+ <van-loading wx:else custom-class="van-action-sheet__loading" size="22px" />
+ </button>
+ </view>
+ <slot />
+ <block wx:if="{{ cancelText }}">
+ <view class="van-action-sheet__gap" />
+ <view
+ class="van-action-sheet__cancel"
+ hover-class="van-action-sheet__cancel--hover"
+ hover-stay-time="70"
+ bind:tap="onCancel"
+ >
+ {{ cancelText }}
+ </view>
+ </block>
+</van-popup>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.wxss
new file mode 100644
index 0000000..eedd361
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/action-sheet/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-action-sheet{color:var(--action-sheet-item-text-color,#323233);max-height:var(--action-sheet-max-height,90%)!important}.van-action-sheet__cancel,.van-action-sheet__item{background-color:var(--action-sheet-item-background,#fff);font-size:var(--action-sheet-item-font-size,16px);line-height:var(--action-sheet-item-line-height,22px);padding:14px 16px;text-align:center}.van-action-sheet__cancel--hover,.van-action-sheet__item--hover{background-color:#f2f3f5}.van-action-sheet__cancel:after,.van-action-sheet__item:after{border-width:0}.van-action-sheet__cancel{color:var(--action-sheet-cancel-text-color,#646566)}.van-action-sheet__gap{background-color:var(--action-sheet-cancel-padding-color,#f7f8fa);display:block;height:var(--action-sheet-cancel-padding-top,8px)}.van-action-sheet__item--disabled{color:var(--action-sheet-item-disabled-text-color,#c8c9cc)}.van-action-sheet__item--disabled.van-action-sheet__item--hover{background-color:var(--action-sheet-item-background,#fff)}.van-action-sheet__subname{color:var(--action-sheet-subname-color,#969799);font-size:var(--action-sheet-subname-font-size,12px);line-height:var(--action-sheet-subname-line-height,20px);margin-top:var(--padding-xs,8px)}.van-action-sheet__header{font-size:var(--action-sheet-header-font-size,16px);font-weight:var(--font-weight-bold,500);line-height:var(--action-sheet-header-height,48px);text-align:center}.van-action-sheet__description{color:var(--action-sheet-description-color,#969799);font-size:var(--action-sheet-description-font-size,14px);line-height:var(--action-sheet-description-line-height,20px);padding:20px var(--padding-md,16px);text-align:center}.van-action-sheet__close{color:var(--action-sheet-close-icon-color,#c8c9cc);font-size:var(--action-sheet-close-icon-size,22px)!important;line-height:inherit!important;padding:var(--action-sheet-close-icon-padding,0 16px);position:absolute!important;right:0;top:0}.van-action-sheet__loading{display:flex!important}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.js
new file mode 100644
index 0000000..f86bb37
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.js
@@ -0,0 +1,232 @@
+"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 utils_1 = require("../common/utils");
+var EMPTY_CODE = '000000';
+(0, 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,
+ }, columnsPlaceholder: {
+ type: Array,
+ observer: function (val) {
+ this.setData({
+ typeToColumnsPlaceholder: {
+ province: val[0] || '',
+ city: val[1] || '',
+ county: val[2] || '',
+ },
+ });
+ },
+ } }),
+ data: {
+ columns: [{ values: [] }, { values: [] }, { values: [] }],
+ typeToColumnsPlaceholder: {},
+ },
+ mounted: function () {
+ var _this = this;
+ (0, utils_1.requestAnimationFrame)(function () {
+ _this.setValues();
+ });
+ },
+ 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.parseValues(value);
+ this.emit('confirm', { value: value, index: index });
+ },
+ emit: function (type, detail) {
+ detail.values = detail.value;
+ delete detail.value;
+ this.$emit(type, detail);
+ },
+ parseValues: function (values) {
+ var columnsPlaceholder = this.data.columnsPlaceholder;
+ return values.map(function (value, index) {
+ if (value &&
+ (!value.code || value.name === columnsPlaceholder[index])) {
+ return __assign(__assign({}, value), { code: '', name: '' });
+ }
+ return value;
+ });
+ },
+ onChange: function (event) {
+ var _this = this;
+ var _a;
+ var _b = event.detail, index = _b.index, picker = _b.picker, value = _b.value;
+ this.code = value[index].code;
+ (_a = this.setValues()) === null || _a === void 0 ? void 0 : _a.then(function () {
+ _this.$emit('change', {
+ picker: picker,
+ values: _this.parseValues(picker.getValues()),
+ index: index,
+ });
+ });
+ },
+ getConfig: function (type) {
+ var areaList = this.data.areaList;
+ return (areaList && areaList["".concat(type, "_list")]) || {};
+ },
+ getList: function (type, code) {
+ if (type !== 'province' && !code) {
+ return [];
+ }
+ var typeToColumnsPlaceholder = this.data.typeToColumnsPlaceholder;
+ var list = this.getConfig(type);
+ var result = Object.keys(list).map(function (code) { return ({
+ code: code,
+ name: list[code],
+ }); });
+ if (code != null) {
+ // 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'
+ ? EMPTY_CODE.slice(2, 4)
+ : EMPTY_CODE.slice(4, 6);
+ result.unshift({
+ code: "".concat(code).concat(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 picker = this.getPicker();
+ if (!picker) {
+ return;
+ }
+ var code = this.code || this.getDefaultCode();
+ var provinceList = this.getList('province');
+ var cityList = this.getList('city', code.slice(0, 2));
+ var stack = [];
+ var indexes = [];
+ var columnsNum = this.data.columnsNum;
+ if (columnsNum >= 1) {
+ stack.push(picker.setColumnValues(0, provinceList, false));
+ indexes.push(this.getIndex('province', code));
+ }
+ if (columnsNum >= 2) {
+ stack.push(picker.setColumnValues(1, cityList, false));
+ indexes.push(this.getIndex('city', code));
+ if (cityList.length && code.slice(2, 4) === '00') {
+ code = cityList[0].code;
+ }
+ }
+ if (columnsNum === 3) {
+ stack.push(picker.setColumnValues(2, this.getList('county', code.slice(0, 4)), false));
+ indexes.push(this.getIndex('county', code));
+ }
+ return Promise.all(stack)
+ .catch(function () { })
+ .then(function () { return picker.setIndexes(indexes); })
+ .catch(function () { });
+ },
+ getDefaultCode: function () {
+ var columnsPlaceholder = this.data.columnsPlaceholder;
+ if (columnsPlaceholder.length) {
+ return EMPTY_CODE;
+ }
+ var countyCodes = Object.keys(this.getConfig('county'));
+ if (countyCodes[0]) {
+ return countyCodes[0];
+ }
+ var cityCodes = Object.keys(this.getConfig('city'));
+ if (cityCodes[0]) {
+ return cityCodes[0];
+ }
+ return '';
+ },
+ getValues: function () {
+ var picker = this.getPicker();
+ if (!picker) {
+ return [];
+ }
+ return this.parseValues(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/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.json
new file mode 100644
index 0000000..a778e91
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-picker": "../picker/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.wxml
new file mode 100644
index 0000000..f7dc51f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.wxml
@@ -0,0 +1,20 @@
+<wxs src="./index.wxs" module="computed" />
+
+<van-picker
+ class="van-area__picker"
+ active-class="active-class"
+ toolbar-class="toolbar-class"
+ column-class="column-class"
+ show-toolbar
+ value-key="name"
+ title="{{ title }}"
+ loading="{{ loading }}"
+ columns="{{ computed.displayColumns(columns, columnsNum) }}"
+ item-height="{{ itemHeight }}"
+ visible-item-count="{{ visibleItemCount }}"
+ cancel-button-text="{{ cancelButtonText }}"
+ confirm-button-text="{{ confirmButtonText }}"
+ bind:change="onChange"
+ bind:confirm="onConfirm"
+ bind:cancel="onCancel"
+/>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.wxs
new file mode 100644
index 0000000..07723c1
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.wxs
@@ -0,0 +1,8 @@
+/* eslint-disable */
+function displayColumns(columns, columnsNum) {
+ return columns.slice(0, +columnsNum);
+}
+
+module.exports = {
+ displayColumns: displayColumns,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.wxss
new file mode 100644
index 0000000..99694d6
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/area/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.js
new file mode 100644
index 0000000..984135c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.js
@@ -0,0 +1,67 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var button_1 = require("../mixins/button");
+var version_1 = require("../common/version");
+var mixins = [button_1.button];
+if ((0, version_1.canIUseFormFieldButton)()) {
+ mixins.push('wx://form-field-button');
+}
+(0, 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: String,
+ },
+ methods: {
+ onClick: function (event) {
+ var _this = this;
+ this.$emit('click', event);
+ var _a = this.data, canIUseGetUserProfile = _a.canIUseGetUserProfile, openType = _a.openType, getUserProfileDesc = _a.getUserProfileDesc, lang = _a.lang;
+ if (openType === 'getUserInfo' && canIUseGetUserProfile) {
+ wx.getUserProfile({
+ desc: getUserProfileDesc || ' ',
+ lang: lang || 'en',
+ complete: function (userProfile) {
+ _this.$emit('getuserinfo', userProfile);
+ },
+ });
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.json
new file mode 100644
index 0000000..e00a588
--- /dev/null
+++ b/gz-wxparty/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/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.wxml
new file mode 100644
index 0000000..8034845
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.wxml
@@ -0,0 +1,53 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<button
+ id="{{ id }}"
+ data-detail="{{ dataset }}"
+ class="custom-class {{ utils.bem('button', [type, size, { block, round, plain, square, loading, disabled, hairline, unclickable: disabled || loading }]) }} {{ hairline ? 'van-hairline--surround' : '' }}"
+ hover-class="van-button--active hover-class"
+ lang="{{ lang }}"
+ form-type="{{ formType }}"
+ style="{{ computed.rootStyle({ plain, color, customStyle }) }}"
+ open-type="{{ disabled || loading || (canIUseGetUserProfile && openType === 'getUserInfo') ? '' : openType }}"
+ business-id="{{ businessId }}"
+ session-from="{{ sessionFrom }}"
+ send-message-title="{{ sendMessageTitle }}"
+ send-message-path="{{ sendMessagePath }}"
+ send-message-img="{{ sendMessageImg }}"
+ show-message-card="{{ showMessageCard }}"
+ app-parameter="{{ appParameter }}"
+ aria-label="{{ ariaLabel }}"
+ bindtap="{{ disabled || loading ? '' : 'onClick' }}"
+ bindgetuserinfo="onGetUserInfo"
+ bindcontact="onContact"
+ bindgetphonenumber="onGetPhoneNumber"
+ binderror="onError"
+ bindlaunchapp="onLaunchApp"
+ bindopensetting="onOpenSetting"
+>
+ <block wx:if="{{ loading }}">
+ <van-loading
+ custom-class="loading-class"
+ size="{{ loadingSize }}"
+ type="{{ loadingType }}"
+ color="{{ computed.loadingColor({ type, color, plain }) }}"
+ />
+ <view wx:if="{{ loadingText }}" class="van-button__loading-text">
+ {{ loadingText }}
+ </view>
+ </block>
+ <block wx:else>
+ <van-icon
+ wx:if="{{ icon }}"
+ size="1.2em"
+ name="{{ icon }}"
+ class-prefix="{{ classPrefix }}"
+ class="van-button__icon"
+ custom-style="line-height: inherit;"
+ />
+ <view class="van-button__text">
+ <slot />
+ </view>
+ </block>
+</button>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.wxs
new file mode 100644
index 0000000..8b649fe
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.wxs
@@ -0,0 +1,39 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+
+function rootStyle(data) {
+ if (!data.color) {
+ return data.customStyle;
+ }
+
+ var properties = {
+ color: data.plain ? data.color : '#fff',
+ background: data.plain ? null : data.color,
+ };
+
+ // hide border when color is linear-gradient
+ if (data.color.indexOf('gradient') !== -1) {
+ properties.border = 0;
+ } else {
+ properties['border-color'] = data.color;
+ }
+
+ return style([properties, data.customStyle]);
+}
+
+function loadingColor(data) {
+ if (data.plain) {
+ return data.color ? data.color : '#c9c9c9';
+ }
+
+ if (data.type === 'default') {
+ return '#c9c9c9';
+ }
+
+ return '#fff';
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+ loadingColor: loadingColor,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.wxss
new file mode 100644
index 0000000..bd8bb5a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/button/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-button{-webkit-text-size-adjust:100%;align-items:center;-webkit-appearance:none;border-radius:var(--button-border-radius,2px);box-sizing:border-box;display:inline-flex;font-size:var(--button-default-font-size,16px);height:var(--button-default-height,44px);justify-content:center;line-height:var(--button-line-height,20px);padding:0;position:relative;text-align:center;transition:opacity .2s;vertical-align:middle}.van-button:before{background-color:#000;border:inherit;border-color:#000;border-radius:inherit;content:" ";height:100%;left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%}.van-button:after{border-width:0}.van-button--active:before{opacity:.15}.van-button--unclickable:after{display:none}.van-button--default{background:var(--button-default-background-color,#fff);border:var(--button-border-width,1px) solid var(--button-default-border-color,#ebedf0);color:var(--button-default-color,#323233)}.van-button--primary{background:var(--button-primary-background-color,#07c160);border:var(--button-border-width,1px) solid var(--button-primary-border-color,#07c160);color:var(--button-primary-color,#fff)}.van-button--info{background:var(--button-info-background-color,#1989fa);border:var(--button-border-width,1px) solid var(--button-info-border-color,#1989fa);color:var(--button-info-color,#fff)}.van-button--danger{background:var(--button-danger-background-color,#ee0a24);border:var(--button-border-width,1px) solid var(--button-danger-border-color,#ee0a24);color:var(--button-danger-color,#fff)}.van-button--warning{background:var(--button-warning-background-color,#ff976a);border:var(--button-border-width,1px) solid var(--button-warning-border-color,#ff976a);color:var(--button-warning-color,#fff)}.van-button--plain{background:var(--button-plain-background-color,#fff)}.van-button--plain.van-button--primary{color:var(--button-primary-background-color,#07c160)}.van-button--plain.van-button--info{color:var(--button-info-background-color,#1989fa)}.van-button--plain.van-button--danger{color:var(--button-danger-background-color,#ee0a24)}.van-button--plain.van-button--warning{color:var(--button-warning-background-color,#ff976a)}.van-button--large{height:var(--button-large-height,50px);width:100%}.van-button--normal{font-size:var(--button-normal-font-size,14px);padding:0 15px}.van-button--small{font-size:var(--button-small-font-size,12px);height:var(--button-small-height,30px);min-width:var(--button-small-min-width,60px);padding:0 var(--padding-xs,8px)}.van-button--mini{display:inline-block;font-size:var(--button-mini-font-size,10px);height:var(--button-mini-height,22px);min-width:var(--button-mini-min-width,50px)}.van-button--mini+.van-button--mini{margin-left:5px}.van-button--block{display:flex;width:100%}.van-button--round{border-radius:var(--button-round-border-radius,999px)}.van-button--square{border-radius:0}.van-button--disabled{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{line-height:inherit!important;min-width:1em;vertical-align:top}.van-button--hairline{border-width:0;padding-top:1px}.van-button--hairline:after{border-color:inherit;border-radius:calc(var(--button-border-radius, 2px)*2);border-width:1px}.van-button--hairline.van-button--round:after{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/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/calendar.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/calendar.wxml
new file mode 100644
index 0000000..808f739
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/calendar.wxml
@@ -0,0 +1,68 @@
+<view class="van-calendar">
+ <header
+ title="{{ title }}"
+ showTitle="{{ showTitle }}"
+ subtitle="{{ subtitle }}"
+ showSubtitle="{{ showSubtitle }}"
+ firstDayOfWeek="{{ firstDayOfWeek }}"
+ bind:click-subtitle="onClickSubtitle"
+ >
+ <slot name="title" slot="title"></slot>
+ </header>
+
+ <scroll-view
+ class="van-calendar__body"
+ scroll-y
+ scroll-into-view="{{ scrollIntoView }}"
+ >
+ <month
+ wx:for="{{ computed.getMonths(minDate, maxDate) }}"
+ wx:key="index"
+ id="month{{ index }}"
+ class="month"
+ data-date="{{ item }}"
+ date="{{ item }}"
+ type="{{ type }}"
+ color="{{ color }}"
+ minDate="{{ minDate }}"
+ maxDate="{{ maxDate }}"
+ showMark="{{ showMark }}"
+ formatter="{{ formatter }}"
+ rowHeight="{{ rowHeight }}"
+ currentDate="{{ currentDate }}"
+ showSubtitle="{{ showSubtitle }}"
+ allowSameDay="{{ allowSameDay }}"
+ showMonthTitle="{{ index !== 0 || !showSubtitle }}"
+ firstDayOfWeek="{{ firstDayOfWeek }}"
+ bind:click="onClickDay"
+ />
+ </scroll-view>
+
+ <view
+ class="{{ utils.bem('calendar__footer', { safeAreaInsetBottom }) }}"
+ >
+ <slot name="footer"></slot>
+ </view>
+
+ <view
+ class="{{ utils.bem('calendar__footer', { safeAreaInsetBottom }) }}"
+ >
+ <van-button
+ wx:if="{{ showConfirm }}"
+ round
+ block
+ type="danger"
+ color="{{ color }}"
+ custom-class="van-calendar__confirm"
+ disabled="{{ computed.getButtonDisabled(type, currentDate) }}"
+ nativeType="text"
+ bind:click="onConfirm"
+ >
+ {{
+ computed.getButtonDisabled(type, currentDate)
+ ? confirmDisabledText
+ : confirmText
+ }}
+ </van-button>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.js
new file mode 100644
index 0000000..544b3a4
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.js
@@ -0,0 +1,45 @@
+"use strict";
+var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
+ if (ar || !(i in from)) {
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
+ ar[i] = from[i];
+ }
+ }
+ return to.concat(ar || Array.prototype.slice.call(from));
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../../../common/component");
+(0, component_1.VantComponent)({
+ props: {
+ title: {
+ type: String,
+ value: '日期选择',
+ },
+ subtitle: String,
+ showTitle: Boolean,
+ showSubtitle: Boolean,
+ firstDayOfWeek: {
+ type: Number,
+ observer: 'initWeekDay',
+ },
+ },
+ data: {
+ weekdays: [],
+ },
+ created: function () {
+ this.initWeekDay();
+ },
+ methods: {
+ initWeekDay: function () {
+ var defaultWeeks = ['日', '一', '二', '三', '四', '五', '六'];
+ var firstDayOfWeek = this.data.firstDayOfWeek || 0;
+ this.setData({
+ weekdays: __spreadArray(__spreadArray([], defaultWeeks.slice(firstDayOfWeek, 7), true), defaultWeeks.slice(0, firstDayOfWeek), true),
+ });
+ },
+ onClickSubtitle: function (event) {
+ this.$emit('click-subtitle', event);
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml
new file mode 100644
index 0000000..7e56c83
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml
@@ -0,0 +1,16 @@
+<view class="van-calendar__header">
+ <block wx:if="{{ showTitle }}">
+ <view class="van-calendar__header-title"><slot name="title"></slot></view>
+ <view class="van-calendar__header-title">{{ title }}</view>
+ </block>
+
+ <view wx:if="{{ showSubtitle }}" class="van-calendar__header-subtitle" bind:tap="onClickSubtitle">
+ {{ subtitle }}
+ </view>
+
+ <view class="van-calendar__weekdays">
+ <view wx:for="{{ weekdays }}" wx:key="index" class="van-calendar__weekday">
+ {{ item }}
+ </view>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss
new file mode 100644
index 0000000..272537e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss
@@ -0,0 +1 @@
+@import '../../../common/index.wxss';.van-calendar__header{box-shadow:var(--calendar-header-box-shadow,0 2px 10px hsla(220,1%,50%,.16));flex-shrink:0}.van-calendar__header-subtitle,.van-calendar__header-title{font-weight:var(--font-weight-bold,500);height:var(--calendar-header-title-height,44px);line-height:var(--calendar-header-title-height,44px);text-align:center}.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:flex}.van-calendar__weekday{flex:1;font-size:var(--calendar-weekdays-font-size,12px);line-height:var(--calendar-weekdays-height,30px);text-align:center}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts
new file mode 100644
index 0000000..3ccf85a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts
@@ -0,0 +1,6 @@
+export interface Day {
+ date: Date;
+ type: string;
+ text: number;
+ bottomInfo?: string;
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.js
new file mode 100644
index 0000000..4d137f5
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.js
@@ -0,0 +1,158 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../../../common/component");
+var utils_1 = require("../../utils");
+(0, 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: null,
+ formatter: {
+ type: null,
+ observer: 'setDays',
+ },
+ currentDate: {
+ type: null,
+ observer: 'setDays',
+ },
+ firstDayOfWeek: {
+ type: Number,
+ 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 = (0, 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 (0, utils_1.compareDay)(item, date) === 0; });
+ };
+ if (isSelected(day)) {
+ var prevDay = (0, utils_1.getPrevDay)(day);
+ var nextDay = (0, 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 = (0, utils_1.compareDay)(day, startDay);
+ if (!endDay) {
+ return compareToStart === 0 ? 'start' : '';
+ }
+ var compareToEnd = (0, 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';
+ }
+ return '';
+ },
+ getDayType: function (day) {
+ var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate, currentDate = _a.currentDate;
+ if ((0, utils_1.compareDay)(day, minDate) < 0 || (0, utils_1.compareDay)(day, maxDate) > 0) {
+ return 'disabled';
+ }
+ if (type === 'single') {
+ return (0, utils_1.compareDay)(day, currentDate) === 0 ? 'selected' : '';
+ }
+ if (type === 'multiple') {
+ return this.getMultipleDayType(day);
+ }
+ /* istanbul ignore else */
+ if (type === 'range') {
+ return this.getRangeDayType(day);
+ }
+ return '';
+ },
+ getBottomInfo: function (type) {
+ if (this.data.type === 'range') {
+ if (type === 'start') {
+ return '开始';
+ }
+ if (type === 'end') {
+ return '结束';
+ }
+ if (type === 'start-end') {
+ return '开始/结束';
+ }
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml
new file mode 100644
index 0000000..0c73b2f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml
@@ -0,0 +1,39 @@
+<wxs src="./index.wxs" module="computed"></wxs>
+<wxs src="../../../wxs/utils.wxs" module="utils" />
+
+<view class="van-calendar__month" style="{{ computed.getMonthStyle(visible, date, rowHeight) }}">
+ <view wx:if="{{ showMonthTitle }}" class="van-calendar__month-title">
+ {{ computed.formatMonthTitle(date) }}
+ </view>
+
+ <view wx:if="{{ visible }}" class="van-calendar__days">
+ <view wx:if="{{ showMark }}" class="van-calendar__month-mark">
+ {{ computed.getMark(date) }}
+ </view>
+
+ <view
+ wx:for="{{ days }}"
+ wx:key="index"
+ style="{{ computed.getDayStyle(item.type, index, date, rowHeight, color, firstDayOfWeek) }}"
+ class="{{ utils.bem('calendar__day', [item.type]) }} {{ item.className }}"
+ data-index="{{ index }}"
+ bindtap="onClick"
+ >
+ <view wx:if="{{ item.type === 'selected' }}" class="van-calendar__selected-day" style="width: {{ rowHeight }}px; height: {{ rowHeight }}px; background: {{ color }}">
+ <view wx:if="{{ item.topInfo }}" class="van-calendar__top-info">{{ item.topInfo }}</view>
+ {{ item.text }}
+ <view wx:if="{{ item.bottomInfo }}" class="van-calendar__bottom-info">
+ {{ item.bottomInfo }}
+ </view>
+ </view>
+
+ <view wx:else>
+ <view wx:if="{{ item.topInfo }}" class="van-calendar__top-info">{{ item.topInfo }}</view>
+ {{ item.text }}
+ <view wx:if="{{ item.bottomInfo }}" class="van-calendar__bottom-info">
+ {{ item.bottomInfo }}
+ </view>
+ </view>
+ </view>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs
new file mode 100644
index 0000000..55e45a5
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs
@@ -0,0 +1,71 @@
+/* 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, firstDayOfWeek) {
+ var style = [];
+ var current = getDate(date).getDay() || 7;
+ var offset = current < firstDayOfWeek ? (7 - firstDayOfWeek + current) :
+ current === 7 && firstDayOfWeek === 0 ? 0 :
+ (current - firstDayOfWeek);
+
+ 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 === 'start-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/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss
new file mode 100644
index 0000000..9aee73d
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss
@@ -0,0 +1 @@
+@import '../../../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-direction:column;height:100%}.van-calendar__month-title{font-size:var(--calendar-month-title-font-size,14px);font-weight:var(--font-weight-bold,500);height:var(--calendar-header-title-height,44px);line-height:var(--calendar-header-title-height,44px);text-align:center}.van-calendar__days{display:flex;flex-wrap:wrap;position:relative;-webkit-user-select:none;user-select:none}.van-calendar__month-mark{color:var(--calendar-month-mark-color,rgba(242,243,245,.8));font-size:var(--calendar-month-mark-font-size,160px);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:0}.van-calendar__day,.van-calendar__selected-day{align-items:center;display:flex;justify-content:center;text-align:center}.van-calendar__day{font-size:var(--calendar-day-font-size,16px);height:var(--calendar-day-height,64px);position:relative;width:14.285%}.van-calendar__day--end,.van-calendar__day--multiple-middle,.van-calendar__day--multiple-selected,.van-calendar__day--start,.van-calendar__day--start-end{background-color:var(--calendar-range-edge-background-color,#ee0a24);color:var(--calendar-range-edge-color,#fff)}.van-calendar__day--start{border-radius:4px 0 0 4px}.van-calendar__day--end{border-radius:0 4px 4px 0}.van-calendar__day--multiple-selected,.van-calendar__day--start-end{border-radius:4px}.van-calendar__day--middle{color:var(--calendar-range-middle-color,#ee0a24)}.van-calendar__day--middle:after{background-color:currentColor;bottom:0;content:"";left:0;opacity:var(--calendar-range-middle-background-opacity,.1);position:absolute;right:0;top:0}.van-calendar__day--disabled{color:var(--calendar-day-disabled-color,#c8c9cc);cursor:default}.van-calendar__bottom-info,.van-calendar__top-info{font-size:var(--calendar-info-font-size,10px);left:0;line-height:var(--calendar-info-line-height,14px);position:absolute;right:0}@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{background-color:var(--calendar-selected-day-background-color,#ee0a24);border-radius:4px;color:var(--calendar-selected-day-color,#fff);height:var(--calendar-selected-day-size,54px);width:var(--calendar-selected-day-size,54px)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.js
new file mode 100644
index 0000000..31989f0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.js
@@ -0,0 +1,360 @@
+"use strict";
+var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
+ if (ar || !(i in from)) {
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
+ ar[i] = from[i];
+ }
+ }
+ return to.concat(ar || Array.prototype.slice.call(from));
+};
+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"));
+var utils_2 = require("../common/utils");
+var initialMinDate = (0, utils_1.getToday)().getTime();
+var initialMaxDate = (function () {
+ var now = (0, utils_1.getToday)();
+ return new Date(now.getFullYear(), now.getMonth() + 6, now.getDate()).getTime();
+})();
+var getTime = function (date) {
+ return date instanceof Date ? date.getTime() : date;
+};
+(0, 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: '确定',
+ },
+ confirmDisabledText: {
+ type: String,
+ value: '确定',
+ },
+ rangePrompt: String,
+ showRangePrompt: {
+ type: Boolean,
+ value: true,
+ },
+ defaultDate: {
+ type: null,
+ observer: function (val) {
+ this.setData({ currentDate: val });
+ this.scrollIntoView();
+ },
+ },
+ allowSameDay: Boolean,
+ type: {
+ type: String,
+ value: 'single',
+ observer: 'reset',
+ },
+ minDate: {
+ type: Number,
+ value: initialMinDate,
+ },
+ maxDate: {
+ type: Number,
+ value: initialMaxDate,
+ },
+ position: {
+ type: String,
+ value: 'bottom',
+ },
+ rowHeight: {
+ type: null,
+ 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: null,
+ value: null,
+ },
+ firstDayOfWeek: {
+ type: Number,
+ value: 0,
+ },
+ readonly: Boolean,
+ },
+ data: {
+ subtitle: '',
+ currentDate: null,
+ scrollIntoView: '',
+ },
+ created: function () {
+ this.setData({
+ currentDate: this.getInitialDate(this.data.defaultDate),
+ });
+ },
+ 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: (0, utils_1.formatMonthTitle)(res.dataset.date) });
+ }
+ });
+ },
+ limitDateRange: function (date, minDate, maxDate) {
+ if (minDate === void 0) { minDate = null; }
+ if (maxDate === void 0) { maxDate = null; }
+ minDate = minDate || this.data.minDate;
+ maxDate = maxDate || this.data.maxDate;
+ if ((0, utils_1.compareDay)(date, minDate) === -1) {
+ return minDate;
+ }
+ if ((0, utils_1.compareDay)(date, maxDate) === 1) {
+ return maxDate;
+ }
+ return date;
+ },
+ getInitialDate: function (defaultDate) {
+ var _this = this;
+ if (defaultDate === void 0) { defaultDate = null; }
+ var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate;
+ var now = (0, utils_1.getToday)().getTime();
+ if (type === 'range') {
+ if (!Array.isArray(defaultDate)) {
+ defaultDate = [];
+ }
+ var _b = defaultDate || [], startDay = _b[0], endDay = _b[1];
+ var start = this.limitDateRange(startDay || now, minDate, (0, utils_1.getPrevDay)(new Date(maxDate)).getTime());
+ var end = this.limitDateRange(endDay || now, (0, utils_1.getNextDay)(new Date(minDate)).getTime());
+ return [start, end];
+ }
+ if (type === 'multiple') {
+ if (Array.isArray(defaultDate)) {
+ return defaultDate.map(function (date) { return _this.limitDateRange(date); });
+ }
+ return [this.limitDateRange(now)];
+ }
+ if (!defaultDate || Array.isArray(defaultDate)) {
+ defaultDate = now;
+ }
+ return this.limitDateRange(defaultDate);
+ },
+ scrollIntoView: function () {
+ var _this = this;
+ (0, utils_2.requestAnimationFrame)(function () {
+ var _a = _this.data, currentDate = _a.currentDate, type = _a.type, show = _a.show, poppable = _a.poppable, minDate = _a.minDate, maxDate = _a.maxDate;
+ // @ts-ignore
+ var targetDate = type === 'single' ? currentDate : currentDate[0];
+ var displayed = show || !poppable;
+ if (!targetDate || !displayed) {
+ return;
+ }
+ var months = (0, utils_1.getMonths)(minDate, maxDate);
+ months.some(function (month, index) {
+ if ((0, utils_1.compareMonth)(month, targetDate) === 0) {
+ _this.setData({ scrollIntoView: "month".concat(index) });
+ return true;
+ }
+ return false;
+ });
+ });
+ },
+ onOpen: function () {
+ this.$emit('open');
+ },
+ onOpened: function () {
+ this.$emit('opened');
+ },
+ onClose: function () {
+ this.$emit('close');
+ },
+ onClosed: function () {
+ this.$emit('closed');
+ },
+ onClickDay: function (event) {
+ if (this.data.readonly) {
+ return;
+ }
+ var date = event.detail.date;
+ var _a = this.data, type = _a.type, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay;
+ if (type === 'range') {
+ // @ts-ignore
+ var startDay_1 = currentDate[0], endDay = currentDate[1];
+ if (startDay_1 && !endDay) {
+ var compareToStart = (0, utils_1.compareDay)(date, startDay_1);
+ if (compareToStart === 1) {
+ var days_1 = this.selectComponent('.month').data.days;
+ days_1.some(function (day, index) {
+ var isDisabled = day.type === 'disabled' &&
+ getTime(startDay_1) < getTime(day.date) &&
+ getTime(day.date) < getTime(date);
+ if (isDisabled) {
+ (date = days_1[index - 1].date);
+ }
+ return isDisabled;
+ });
+ this.select([startDay_1, 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;
+ // @ts-ignore
+ var selected = currentDate.some(function (dateItem, index) {
+ var equal = (0, utils_1.compareDay)(dateItem, date) === 0;
+ if (equal) {
+ selectedIndex_1 = index;
+ }
+ return equal;
+ });
+ if (selected) {
+ // @ts-ignore
+ var cancelDate = currentDate.splice(selectedIndex_1, 1);
+ this.setData({ currentDate: currentDate });
+ this.unselect(cancelDate);
+ }
+ else {
+ // @ts-ignore
+ this.select(__spreadArray(__spreadArray([], currentDate, true), [date], false));
+ }
+ }
+ else {
+ this.select(date, true);
+ }
+ },
+ unselect: function (dateArray) {
+ var date = dateArray[0];
+ if (date) {
+ this.$emit('unselect', (0, 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],
+ (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) {
+ this.setData({
+ currentDate: Array.isArray(date) ? date.map(getTime) : getTime(date),
+ });
+ this.$emit('select', (0, utils_1.copyDates)(date));
+ },
+ checkRange: function (date) {
+ var _a = this.data, maxRange = _a.maxRange, rangePrompt = _a.rangePrompt, showRangePrompt = _a.showRangePrompt;
+ if (maxRange && (0, utils_1.calcDateNum)(date) > maxRange) {
+ if (showRangePrompt) {
+ (0, toast_1.default)({
+ context: this,
+ message: rangePrompt || "\u9009\u62E9\u5929\u6570\u4E0D\u80FD\u8D85\u8FC7 ".concat(maxRange, " \u5929"),
+ });
+ }
+ this.$emit('over-range');
+ return false;
+ }
+ return true;
+ },
+ onConfirm: function () {
+ var _this = this;
+ if (this.data.type === 'range' &&
+ !this.checkRange(this.data.currentDate)) {
+ return;
+ }
+ wx.nextTick(function () {
+ // @ts-ignore
+ _this.$emit('confirm', (0, utils_1.copyDates)(_this.data.currentDate));
+ });
+ },
+ onClickSubtitle: function (event) {
+ this.$emit('click-subtitle', event);
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.json
new file mode 100644
index 0000000..397d5ae
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.json
@@ -0,0 +1,10 @@
+{
+ "component": true,
+ "usingComponents": {
+ "header": "./components/header/index",
+ "month": "./components/month/index",
+ "van-button": "../button/index",
+ "van-popup": "../popup/index",
+ "van-toast": "../toast/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.wxml
new file mode 100644
index 0000000..bc8bcfd
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.wxml
@@ -0,0 +1,25 @@
+<wxs src="./index.wxs" module="computed" />
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<import src="./calendar.wxml" />
+
+<van-popup
+ wx:if="{{ poppable }}"
+ custom-class="van-calendar__popup--{{ position }}"
+ close-icon-class="van-calendar__close-icon"
+ show="{{ show }}"
+ round="{{ round }}"
+ position="{{ position }}"
+ closeable="{{ showTitle || showSubtitle }}"
+ close-on-click-overlay="{{ closeOnClickOverlay }}"
+ bind:enter="onOpen"
+ bind:close="onClose"
+ bind:after-enter="onOpened"
+ bind:after-leave="onClosed"
+>
+ <include src="./calendar.wxml" />
+</van-popup>
+
+<include wx:else src="./calendar.wxml" />
+
+<van-toast id="van-toast" />
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.wxs
new file mode 100644
index 0000000..0c570fc
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.wxs
@@ -0,0 +1,38 @@
+/* eslint-disable */
+var utils = require('./utils.wxs');
+
+function getMonths(minDate, maxDate) {
+ var months = [];
+ var cursor = getDate(minDate);
+
+ cursor.setDate(1);
+ cursor.setMinutes(cursor.getMinutes() - cursor.getTimezoneOffset());
+
+ do {
+ months.push(cursor.getTime());
+ cursor.setMonth(cursor.getMonth() + 1);
+ } while (utils.compareMonth(cursor, getDate(maxDate)) !== 1);
+
+ return months;
+}
+
+function getButtonDisabled(type, currentDate) {
+ if (currentDate == null) {
+ return true;
+ }
+
+ if (type === 'range') {
+ return !currentDate[0] || !currentDate[1];
+ }
+
+ if (type === 'multiple') {
+ return !currentDate.length;
+ }
+
+ return !currentDate;
+}
+
+module.exports = {
+ getMonths: getMonths,
+ getButtonDisabled: getButtonDisabled
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.wxss
new file mode 100644
index 0000000..05df518
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-direction:column;height:var(--calendar-height,100%)}.van-calendar__close-icon{top:11px}.van-calendar__popup--bottom,.van-calendar__popup--top{height:var(--calendar-popup-height,80%)}.van-calendar__popup--left,.van-calendar__popup--right{height:100%}.van-calendar__body{-webkit-overflow-scrolling:touch;flex:1;overflow:auto}.van-calendar__footer{flex-shrink:0;padding:0 var(--padding-md,16px)}.van-calendar__footer--safe-area-inset-bottom{padding-bottom:env(safe-area-inset-bottom)}.van-calendar__footer+.van-calendar__footer,.van-calendar__footer:empty{display:none}.van-calendar__footer:empty+.van-calendar__footer{display:block!important}.van-calendar__confirm{height:var(--calendar-confirm-button-height,36px)!important;line-height:var(--calendar-confirm-button-line-height,34px)!important;margin:var(--calendar-confirm-button-margin,7px 0)!important}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/utils.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/utils.d.ts
new file mode 100644
index 0000000..eb710c0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/utils.d.ts
@@ -0,0 +1,12 @@
+export declare const ROW_HEIGHT = 64;
+export declare function formatMonthTitle(date: Date): string;
+export declare function compareMonth(date1: Date | number, date2: Date | number): 1 | -1 | 0;
+export declare function compareDay(day1: Date | number, day2: Date | number): 1 | -1 | 0;
+export declare function getDayByOffset(date: Date, offset: number): Date;
+export declare function getPrevDay(date: Date): Date;
+export declare function getNextDay(date: Date): Date;
+export declare function getToday(): Date;
+export declare function calcDateNum(date: [Date, Date]): number;
+export declare function copyDates(dates: Date | Date[]): Date | Date[];
+export declare function getMonthEndDay(year: number, month: number): number;
+export declare function getMonths(minDate: number, maxDate: number): number[];
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/utils.js b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/utils.js
new file mode 100644
index 0000000..c9e5df7
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/utils.js
@@ -0,0 +1,97 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getMonths = exports.getMonthEndDay = exports.copyDates = exports.calcDateNum = exports.getToday = exports.getNextDay = exports.getPrevDay = exports.getDayByOffset = exports.compareDay = exports.compareMonth = exports.formatMonthTitle = exports.ROW_HEIGHT = void 0;
+exports.ROW_HEIGHT = 64;
+function formatMonthTitle(date) {
+ if (!(date instanceof Date)) {
+ date = new Date(date);
+ }
+ return "".concat(date.getFullYear(), "\u5E74").concat(date.getMonth() + 1, "\u6708");
+}
+exports.formatMonthTitle = formatMonthTitle;
+function compareMonth(date1, date2) {
+ if (!(date1 instanceof Date)) {
+ date1 = new Date(date1);
+ }
+ if (!(date2 instanceof Date)) {
+ date2 = new Date(date2);
+ }
+ var year1 = date1.getFullYear();
+ var year2 = date2.getFullYear();
+ var month1 = date1.getMonth();
+ var month2 = date2.getMonth();
+ if (year1 === year2) {
+ return month1 === month2 ? 0 : month1 > month2 ? 1 : -1;
+ }
+ return year1 > year2 ? 1 : -1;
+}
+exports.compareMonth = compareMonth;
+function compareDay(day1, day2) {
+ if (!(day1 instanceof Date)) {
+ day1 = new Date(day1);
+ }
+ if (!(day2 instanceof Date)) {
+ day2 = new Date(day2);
+ }
+ var compareMonthResult = compareMonth(day1, day2);
+ if (compareMonthResult === 0) {
+ var date1 = day1.getDate();
+ var date2 = day2.getDate();
+ return date1 === date2 ? 0 : date1 > date2 ? 1 : -1;
+ }
+ return compareMonthResult;
+}
+exports.compareDay = compareDay;
+function getDayByOffset(date, offset) {
+ date = new Date(date);
+ date.setDate(date.getDate() + offset);
+ return date;
+}
+exports.getDayByOffset = getDayByOffset;
+function getPrevDay(date) {
+ return getDayByOffset(date, -1);
+}
+exports.getPrevDay = getPrevDay;
+function getNextDay(date) {
+ return getDayByOffset(date, 1);
+}
+exports.getNextDay = getNextDay;
+function getToday() {
+ var today = new Date();
+ today.setHours(0, 0, 0, 0);
+ return today;
+}
+exports.getToday = getToday;
+function calcDateNum(date) {
+ var day1 = new Date(date[0]).getTime();
+ var day2 = new Date(date[1]).getTime();
+ return (day2 - day1) / (1000 * 60 * 60 * 24) + 1;
+}
+exports.calcDateNum = calcDateNum;
+function copyDates(dates) {
+ if (Array.isArray(dates)) {
+ return dates.map(function (date) {
+ if (date === null) {
+ return date;
+ }
+ return new Date(date);
+ });
+ }
+ return new Date(dates);
+}
+exports.copyDates = copyDates;
+function getMonthEndDay(year, month) {
+ return 32 - new Date(year, month - 1, 32).getDate();
+}
+exports.getMonthEndDay = getMonthEndDay;
+function getMonths(minDate, maxDate) {
+ var months = [];
+ var cursor = new Date(minDate);
+ cursor.setDate(1);
+ do {
+ months.push(cursor.getTime());
+ cursor.setMonth(cursor.getMonth() + 1);
+ } while (compareMonth(cursor, maxDate) !== 1);
+ return months;
+}
+exports.getMonths = getMonths;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/utils.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/utils.wxs
new file mode 100644
index 0000000..e57f6b3
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/calendar/utils.wxs
@@ -0,0 +1,25 @@
+/* eslint-disable */
+function getMonthEndDay(year, month) {
+ return 32 - getDate(year, month - 1, 32).getDate();
+}
+
+function compareMonth(date1, date2) {
+ date1 = getDate(date1);
+ date2 = getDate(date2);
+
+ var year1 = date1.getFullYear();
+ var year2 = date2.getFullYear();
+ var month1 = date1.getMonth();
+ var month2 = date2.getMonth();
+
+ if (year1 === year2) {
+ return month1 === month2 ? 0 : month1 > month2 ? 1 : -1;
+ }
+
+ return year1 > year2 ? 1 : -1;
+}
+
+module.exports = {
+ getMonthEndDay: getMonthEndDay,
+ compareMonth: compareMonth
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.js
new file mode 100644
index 0000000..2815655
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.js
@@ -0,0 +1,51 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var link_1 = require("../mixins/link");
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ classes: [
+ 'num-class',
+ 'desc-class',
+ 'thumb-class',
+ 'title-class',
+ 'price-class',
+ 'origin-price-class',
+ ],
+ mixins: [link_1.link],
+ props: {
+ tag: String,
+ num: String,
+ desc: String,
+ thumb: String,
+ title: String,
+ price: {
+ type: String,
+ observer: 'updatePrice',
+ },
+ centered: Boolean,
+ lazyLoad: Boolean,
+ thumbLink: String,
+ originPrice: String,
+ thumbMode: {
+ type: String,
+ value: 'aspectFit',
+ },
+ currency: {
+ type: String,
+ value: '¥',
+ },
+ },
+ methods: {
+ updatePrice: function () {
+ var price = this.data.price;
+ var priceArr = price.toString().split('.');
+ this.setData({
+ integerStr: priceArr[0],
+ decimalStr: priceArr[1] ? ".".concat(priceArr[1]) : '',
+ });
+ },
+ onClickThumb: function () {
+ this.jumpLink('thumbLink');
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.json
new file mode 100644
index 0000000..e917407
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-tag": "../tag/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.wxml
new file mode 100644
index 0000000..62173e4
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.wxml
@@ -0,0 +1,56 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view class="custom-class van-card">
+ <view class="{{ utils.bem('card__header', { center: centered }) }}">
+ <view class="van-card__thumb" bind:tap="onClickThumb">
+ <image
+ wx:if="{{ thumb }}"
+ src="{{ thumb }}"
+ mode="{{ thumbMode }}"
+ lazy-load="{{ lazyLoad }}"
+ class="van-card__img thumb-class"
+ />
+ <slot wx:else name="thumb" />
+ <van-tag
+ wx:if="{{ tag }}"
+ mark
+ type="danger"
+ custom-class="van-card__tag"
+ >
+ {{ tag }}
+ </van-tag>
+ <slot wx:else name="tag" />
+ </view>
+
+ <view class="van-card__content {{ utils.bem('card__content', { center: centered }) }}">
+ <view>
+ <view wx:if="{{ title }}" class="van-card__title title-class">{{ title }}</view>
+ <slot wx:else name="title" />
+
+ <view wx:if="{{ desc }}" class="van-card__desc desc-class">{{ desc }}</view>
+ <slot wx:else name="desc" />
+
+ <slot name="tags" />
+ </view>
+
+ <view class="van-card__bottom">
+ <slot name="price-top" />
+ <view wx:if="{{ price || price === 0 }}" class="van-card__price price-class">
+ <text>{{ currency }}</text>
+ <text class="van-card__price-integer">{{ integerStr }}</text>
+ <text class="van-card__price-decimal">{{ decimalStr }}</text>
+ </view>
+ <slot wx:else name="price" />
+ <view wx:if="{{ originPrice || originPrice === 0 }}" class="van-card__origin-price origin-price-class">{{ currency }} {{ originPrice }}</view>
+ <slot wx:else name="origin-price" />
+ <view wx:if="{{ num }}" class="van-card__num num-class">x {{ num }}</view>
+ <slot wx:else name="num" />
+ <slot name="bottom" />
+ </view>
+ </view>
+ </view>
+
+ <view class="van-card__footer">
+ <slot name="footer" />
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.wxss
new file mode 100644
index 0000000..0f4d7c5
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/card/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-card{background-color:var(--card-background-color,#fafafa);box-sizing:border-box;color:var(--card-text-color,#323233);font-size:var(--card-font-size,12px);padding:var(--card-padding,8px 16px);position:relative}.van-card__header{display:flex}.van-card__header--center{align-items:center;justify-content:center}.van-card__thumb{flex:none;height:var(--card-thumb-size,88px);margin-right:var(--padding-xs,8px);position:relative;width:var(--card-thumb-size,88px)}.van-card__thumb:empty{display:none}.van-card__img{border-radius:8px;height:100%;width:100%}.van-card__content{display:flex;flex:1;flex-direction:column;justify-content:space-between;min-height:var(--card-thumb-size,88px);min-width:0;position:relative}.van-card__content--center{justify-content:center}.van-card__desc,.van-card__title{word-wrap:break-word}.van-card__title{font-weight:700;line-height:var(--card-title-line-height,16px)}.van-card__desc{color:var(--card-desc-color,#646566);line-height:var(--card-desc-line-height,20px)}.van-card__bottom{line-height:20px}.van-card__price{color:var(--card-price-color,#ee0a24);display:inline-block;font-size:var(--card-price-font-size,12px);font-weight:700}.van-card__price-integer{font-size:var(--card-price-integer-font-size,16px)}.van-card__price-decimal,.van-card__price-integer{font-family:var(--card-price-font-family,Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif)}.van-card__origin-price{color:var(--card-origin-price-color,#646566);display:inline-block;font-size:var(--card-origin-price-font-size,10px);margin-left:5px;text-decoration:line-through}.van-card__num{float:right}.van-card__tag{left:0;position:absolute!important;top:2px}.van-card__footer{flex:none;text-align:right;width:100%}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.js
new file mode 100644
index 0000000..34a93a6
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.js
@@ -0,0 +1,13 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ props: {
+ title: String,
+ border: {
+ type: Boolean,
+ value: true,
+ },
+ inset: Boolean,
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.wxml
new file mode 100644
index 0000000..311e064
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.wxml
@@ -0,0 +1,11 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ wx:if="{{ title }}"
+ class="{{ utils.bem('cell-group__title', { inset }) }}"
+>
+ {{ title }}
+</view>
+<view class="custom-class {{ utils.bem('cell-group', { inset }) }} {{ border ? 'van-hairline--top-bottom' : '' }}">
+ <slot />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.wxss
new file mode 100644
index 0000000..08b252f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/cell-group/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-cell-group--inset{border-radius:var(--cell-group-inset-border-radius,8px);margin:var(--cell-group-inset-padding,0 16px);overflow:hidden}.van-cell-group__title{color:var(--cell-group-title-color,#969799);font-size:var(--cell-group-title-font-size,14px);line-height:var(--cell-group-title-line-height,16px);padding:var(--cell-group-title-padding,16px 16px 8px)}.van-cell-group__title--inset{padding:var(--cell-group-inset-title-padding,16px 16px 8px 32px)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.js
new file mode 100644
index 0000000..80f3039
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.js
@@ -0,0 +1,40 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var link_1 = require("../mixins/link");
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ classes: [
+ 'title-class',
+ 'label-class',
+ 'value-class',
+ 'right-icon-class',
+ 'hover-class',
+ ],
+ mixins: [link_1.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,
+ },
+ titleStyle: String,
+ },
+ methods: {
+ onClick: function (event) {
+ this.$emit('click', event.detail);
+ this.jumpLink();
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.json
new file mode 100644
index 0000000..0a336c0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.wxml
new file mode 100644
index 0000000..8387c3c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.wxml
@@ -0,0 +1,47 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="custom-class {{ utils.bem('cell', [size, { center, required, borderless: !border, clickable: isLink || clickable }]) }}"
+ hover-class="van-cell--hover hover-class"
+ hover-stay-time="70"
+ style="{{ customStyle }}"
+ bind:tap="onClick"
+>
+ <van-icon
+ wx:if="{{ icon }}"
+ name="{{ icon }}"
+ class="van-cell__left-icon-wrap"
+ custom-class="van-cell__left-icon"
+ />
+ <slot wx:else name="icon" />
+
+ <view
+ style="{{ computed.titleStyle({ titleWidth, titleStyle }) }}"
+ class="van-cell__title title-class"
+ >
+
+ <block wx:if="{{ title }}">{{ title }}</block>
+ <slot wx:else name="title" />
+
+ <view wx:if="{{ label || useLabelSlot }}" class="van-cell__label label-class">
+ <slot wx:if="{{ useLabelSlot }}" name="label" />
+ <block wx:elif="{{ label }}">{{ label }}</block>
+ </view>
+ </view>
+
+ <view class="van-cell__value value-class">
+ <block wx:if="{{ value || value === 0 }}">{{ value }}</block>
+ <slot wx:else />
+ </view>
+
+ <van-icon
+ wx:if="{{ isLink }}"
+ name="{{ arrowDirection ? 'arrow' + '-' + arrowDirection : 'arrow' }}"
+ class="van-cell__right-icon-wrap right-icon-class"
+ custom-class="van-cell__right-icon"
+ />
+ <slot wx:else name="right-icon" />
+
+ <slot name="extra" />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.wxs
new file mode 100644
index 0000000..e3500c4
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.wxs
@@ -0,0 +1,17 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function titleStyle(data) {
+ return style([
+ {
+ 'max-width': addUnit(data.titleWidth),
+ 'min-width': addUnit(data.titleWidth),
+ },
+ data.titleStyle,
+ ]);
+}
+
+module.exports = {
+ titleStyle: titleStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.wxss
new file mode 100644
index 0000000..1802f8e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/cell/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-cell{background-color:var(--cell-background-color,#fff);box-sizing:border-box;color:var(--cell-text-color,#323233);display:flex;font-size:var(--cell-font-size,14px);line-height:var(--cell-line-height,24px);padding:var(--cell-vertical-padding,10px) var(--cell-horizontal-padding,16px);position:relative;width:100%}.van-cell:after{border-bottom:1px solid #ebedf0;bottom:0;box-sizing:border-box;content:" ";left:16px;pointer-events:none;position:absolute;right:16px;transform:scaleY(.5);transform-origin:center}.van-cell--borderless:after{display:none}.van-cell-group{background-color:var(--cell-background-color,#fff)}.van-cell__label{color:var(--cell-label-color,#969799);font-size:var(--cell-label-font-size,12px);line-height:var(--cell-label-line-height,18px);margin-top:var(--cell-label-margin-top,3px)}.van-cell__value{color:var(--cell-value-color,#969799);overflow:hidden;text-align:right;vertical-align:middle}.van-cell__title,.van-cell__value{flex:1}.van-cell__title:empty,.van-cell__value:empty{display:none}.van-cell__left-icon-wrap,.van-cell__right-icon-wrap{align-items:center;display:flex;font-size:var(--cell-icon-size,16px);height:var(--cell-line-height,24px)}.van-cell__left-icon-wrap{margin-right:var(--padding-base,4px)}.van-cell__right-icon-wrap{color:var(--cell-right-icon-color,#969799);margin-left:var(--padding-base,4px)}.van-cell__left-icon{vertical-align:middle}.van-cell__left-icon,.van-cell__right-icon{line-height:var(--cell-line-height,24px)}.van-cell--clickable.van-cell--hover{background-color:var(--cell-active-color,#f2f3f5)}.van-cell--required{overflow:visible}.van-cell--required:before{color:var(--cell-required-color,#ee0a24);content:"*";font-size:var(--cell-font-size,14px);left:var(--padding-xs,8px);position:absolute}.van-cell--center{align-items:center}.van-cell--large{padding-bottom:var(--cell-large-vertical-padding,12px);padding-top:var(--cell-large-vertical-padding,12px)}.van-cell--large .van-cell__title{font-size:var(--cell-large-title-font-size,16px)}.van-cell--large .van-cell__value{font-size:var(--cell-large-value-font-size,16px)}.van-cell--large .van-cell__label{font-size:var(--cell-large-label-font-size,14px)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.js
new file mode 100644
index 0000000..80c93a1
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.js
@@ -0,0 +1,39 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var relation_1 = require("../common/relation");
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ field: true,
+ relation: (0, relation_1.useChildren)('checkbox', function (target) {
+ this.updateChild(target);
+ }),
+ props: {
+ max: Number,
+ value: {
+ type: Array,
+ observer: 'updateChildren',
+ },
+ disabled: {
+ type: Boolean,
+ observer: 'updateChildren',
+ },
+ direction: {
+ type: String,
+ value: 'vertical',
+ },
+ },
+ methods: {
+ updateChildren: function () {
+ var _this = this;
+ this.children.forEach(function (child) { return _this.updateChild(child); });
+ },
+ updateChild: function (child) {
+ var _a = this.data, value = _a.value, disabled = _a.disabled, direction = _a.direction;
+ child.setData({
+ value: value.indexOf(child.data.name) !== -1,
+ parentDisabled: disabled,
+ direction: direction,
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml
new file mode 100644
index 0000000..638bf9d
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml
@@ -0,0 +1,5 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view class="{{ utils.bem('checkbox-group', [{ horizontal: direction === 'horizontal' }]) }}">
+ <slot />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss
new file mode 100644
index 0000000..c5666d7
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-checkbox-group--horizontal{display:flex;flex-wrap:wrap}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.js
new file mode 100644
index 0000000..6247365
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.js
@@ -0,0 +1,79 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var relation_1 = require("../common/relation");
+var component_1 = require("../common/component");
+function emit(target, value) {
+ target.$emit('input', value);
+ target.$emit('change', value);
+}
+(0, component_1.VantComponent)({
+ field: true,
+ relation: (0, relation_1.useParent)('checkbox-group'),
+ classes: ['icon-class', 'label-class'],
+ props: {
+ value: Boolean,
+ disabled: Boolean,
+ useIconSlot: Boolean,
+ checkedColor: String,
+ labelPosition: {
+ type: String,
+ value: 'right',
+ },
+ labelDisabled: Boolean,
+ shape: {
+ type: String,
+ value: 'round',
+ },
+ iconSize: {
+ type: null,
+ value: 20,
+ },
+ },
+ data: {
+ parentDisabled: false,
+ direction: 'vertical',
+ },
+ methods: {
+ emitChange: function (value) {
+ if (this.parent) {
+ this.setParentValue(this.parent, value);
+ }
+ else {
+ emit(this, value);
+ }
+ },
+ toggle: function () {
+ var _a = this.data, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value;
+ if (!disabled && !parentDisabled) {
+ this.emitChange(!value);
+ }
+ },
+ onClickLabel: function () {
+ var _a = this.data, labelDisabled = _a.labelDisabled, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value;
+ if (!disabled && !labelDisabled && !parentDisabled) {
+ this.emitChange(!value);
+ }
+ },
+ setParentValue: function (parent, value) {
+ var parentValue = parent.data.value.slice();
+ var name = this.data.name;
+ var max = parent.data.max;
+ if (value) {
+ if (max && parentValue.length >= max) {
+ return;
+ }
+ if (parentValue.indexOf(name) === -1) {
+ parentValue.push(name);
+ emit(parent, parentValue);
+ }
+ }
+ else {
+ var index = parentValue.indexOf(name);
+ if (index !== -1) {
+ parentValue.splice(index, 1);
+ emit(parent, parentValue);
+ }
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.json
new file mode 100644
index 0000000..0a336c0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.wxml
new file mode 100644
index 0000000..39a7bb0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.wxml
@@ -0,0 +1,31 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view class="{{ utils.bem('checkbox', [{ horizontal: direction === 'horizontal' }]) }} custom-class">
+ <view
+ wx:if="{{ labelPosition === 'left' }}"
+ class="label-class {{ utils.bem('checkbox__label', [labelPosition, { disabled: disabled || parentDisabled }]) }}"
+ bindtap="onClickLabel"
+ >
+ <slot />
+ </view>
+ <view class="van-checkbox__icon-wrap" bindtap="toggle">
+ <slot wx:if="{{ useIconSlot }}" name="icon" />
+ <van-icon
+ wx:else
+ name="success"
+ size="0.8em"
+ class="{{ utils.bem('checkbox__icon', [shape, { disabled: disabled || parentDisabled, checked: value }]) }}"
+ style="{{ computed.iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) }}"
+ custom-class="icon-class"
+ custom-style="line-height: 1.25em;"
+ />
+ </view>
+ <view
+ wx:if="{{ labelPosition === 'right' }}"
+ class="label-class {{ utils.bem('checkbox__label', [labelPosition, { disabled: disabled || parentDisabled }]) }}"
+ bindtap="onClickLabel"
+ >
+ <slot />
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.wxs
new file mode 100644
index 0000000..eb9c772
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.wxs
@@ -0,0 +1,20 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) {
+ var styles = {
+ 'font-size': addUnit(iconSize),
+ };
+
+ if (checkedColor && value && !disabled && !parentDisabled) {
+ styles['border-color'] = checkedColor;
+ styles['background-color'] = checkedColor;
+ }
+
+ return style(styles);
+}
+
+module.exports = {
+ iconStyle: iconStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.wxss
new file mode 100644
index 0000000..da2272a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/checkbox/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-checkbox{align-items:center;display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-checkbox--horizontal{margin-right:12px}.van-checkbox__icon-wrap,.van-checkbox__label{line-height:var(--checkbox-size,20px)}.van-checkbox__icon-wrap{flex:none}.van-checkbox__icon{align-items:center;border:1px solid var(--checkbox-border-color,#c8c9cc);box-sizing:border-box;color:transparent;display:flex;font-size:var(--checkbox-size,20px);height:1em;justify-content:center;text-align:center;transition-duration:var(--checkbox-transition-duration,.2s);transition-property:color,border-color,background-color;width:1em}.van-checkbox__icon--round{border-radius:100%}.van-checkbox__icon--checked{background-color:var(--checkbox-checked-icon-color,#1989fa);border-color:var(--checkbox-checked-icon-color,#1989fa);color:#fff}.van-checkbox__icon--disabled{background-color:var(--checkbox-disabled-background-color,#ebedf0);border-color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__icon--disabled.van-checkbox__icon--checked{color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__label{word-wrap:break-word;color:var(--checkbox-label-color,#323233);padding-left:var(--checkbox-label-margin,10px)}.van-checkbox__label--left{float:left;margin:0 var(--checkbox-label-margin,10px) 0 0}.van-checkbox__label--disabled{color:var(--checkbox-disabled-label-color,#c8c9cc)}.van-checkbox__label:empty{margin:0}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/circle/canvas.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/circle/canvas.d.ts
new file mode 100644
index 0000000..15268c9
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/circle/canvas.d.ts
@@ -0,0 +1,4 @@
+/// <reference types="miniprogram-api-typings" />
+declare type CanvasContext = WechatMiniprogram.CanvasContext;
+export declare function adaptor(ctx: CanvasContext & Record<string, unknown>): CanvasContext;
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/circle/canvas.js b/gz-wxparty/miniprogram_npm/@vant/weapp/circle/canvas.js
new file mode 100644
index 0000000..d81df74
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/circle/canvas.js
@@ -0,0 +1,47 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.adaptor = void 0;
+function adaptor(ctx) {
+ // @ts-ignore
+ return Object.assign(ctx, {
+ setStrokeStyle: function (val) {
+ ctx.strokeStyle = val;
+ },
+ setLineWidth: function (val) {
+ ctx.lineWidth = val;
+ },
+ setLineCap: function (val) {
+ ctx.lineCap = val;
+ },
+ setFillStyle: function (val) {
+ ctx.fillStyle = val;
+ },
+ setFontSize: function (val) {
+ ctx.font = String(val);
+ },
+ setGlobalAlpha: function (val) {
+ ctx.globalAlpha = val;
+ },
+ setLineJoin: function (val) {
+ ctx.lineJoin = val;
+ },
+ setTextAlign: function (val) {
+ ctx.textAlign = val;
+ },
+ setMiterLimit: function (val) {
+ ctx.miterLimit = val;
+ },
+ setShadow: function (offsetX, offsetY, blur, color) {
+ ctx.shadowOffsetX = offsetX;
+ ctx.shadowOffsetY = offsetY;
+ ctx.shadowBlur = blur;
+ ctx.shadowColor = color;
+ },
+ setTextBaseline: function (val) {
+ ctx.textBaseline = val;
+ },
+ createCircularGradient: function () { },
+ draw: function () { },
+ });
+}
+exports.adaptor = adaptor;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.js
new file mode 100644
index 0000000..9037e1c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.js
@@ -0,0 +1,203 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var color_1 = require("../common/color");
+var component_1 = require("../common/component");
+var utils_1 = require("../common/utils");
+var validator_1 = require("../common/validator");
+var version_1 = require("../common/version");
+var canvas_1 = require("./canvas");
+function format(rate) {
+ return Math.min(Math.max(rate, 0), 100);
+}
+var PERIMETER = 2 * Math.PI;
+var BEGIN_ANGLE = -Math.PI / 2;
+var STEP = 1;
+(0, component_1.VantComponent)({
+ props: {
+ text: String,
+ lineCap: {
+ type: String,
+ value: 'round',
+ },
+ value: {
+ type: Number,
+ value: 0,
+ observer: 'reRender',
+ },
+ speed: {
+ type: Number,
+ value: 50,
+ },
+ size: {
+ type: Number,
+ value: 100,
+ observer: function () {
+ this.drawCircle(this.currentValue);
+ },
+ },
+ fill: String,
+ layerColor: {
+ type: String,
+ value: color_1.WHITE,
+ },
+ color: {
+ type: null,
+ value: color_1.BLUE,
+ observer: function () {
+ var _this = this;
+ this.setHoverColor().then(function () {
+ _this.drawCircle(_this.currentValue);
+ });
+ },
+ },
+ type: {
+ type: String,
+ value: '',
+ },
+ strokeWidth: {
+ type: Number,
+ value: 4,
+ },
+ clockwise: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ data: {
+ hoverColor: color_1.BLUE,
+ },
+ methods: {
+ getContext: function () {
+ var _this = this;
+ var _a = this.data, type = _a.type, size = _a.size;
+ if (type === '' || !(0, version_1.canIUseCanvas2d)()) {
+ var ctx = wx.createCanvasContext('van-circle', this);
+ return Promise.resolve(ctx);
+ }
+ var dpr = (0, utils_1.getSystemInfoSync)().pixelRatio;
+ return new Promise(function (resolve) {
+ wx.createSelectorQuery()
+ .in(_this)
+ .select('#van-circle')
+ .node()
+ .exec(function (res) {
+ var canvas = res[0].node;
+ var ctx = canvas.getContext(type);
+ if (!_this.inited) {
+ _this.inited = true;
+ canvas.width = size * dpr;
+ canvas.height = size * dpr;
+ ctx.scale(dpr, dpr);
+ }
+ resolve((0, canvas_1.adaptor)(ctx));
+ });
+ });
+ },
+ setHoverColor: function () {
+ var _this = this;
+ var _a = this.data, color = _a.color, size = _a.size;
+ if ((0, validator_1.isObj)(color)) {
+ return this.getContext().then(function (context) {
+ var LinearColor = context.createLinearGradient(size, 0, 0, 0);
+ Object.keys(color)
+ .sort(function (a, b) { return parseFloat(a) - parseFloat(b); })
+ .map(function (key) {
+ return LinearColor.addColorStop(parseFloat(key) / 100, color[key]);
+ });
+ _this.hoverColor = LinearColor;
+ });
+ }
+ this.hoverColor = color;
+ return Promise.resolve();
+ },
+ presetCanvas: function (context, strokeStyle, beginAngle, endAngle, fill) {
+ var _a = this.data, strokeWidth = _a.strokeWidth, lineCap = _a.lineCap, clockwise = _a.clockwise, size = _a.size;
+ var position = size / 2;
+ var radius = position - strokeWidth / 2;
+ context.setStrokeStyle(strokeStyle);
+ context.setLineWidth(strokeWidth);
+ context.setLineCap(lineCap);
+ context.beginPath();
+ context.arc(position, position, radius, beginAngle, endAngle, !clockwise);
+ context.stroke();
+ if (fill) {
+ context.setFillStyle(fill);
+ context.fill();
+ }
+ },
+ renderLayerCircle: function (context) {
+ var _a = this.data, layerColor = _a.layerColor, fill = _a.fill;
+ this.presetCanvas(context, layerColor, 0, PERIMETER, fill);
+ },
+ renderHoverCircle: function (context, formatValue) {
+ var clockwise = this.data.clockwise;
+ // 结束角度
+ var progress = PERIMETER * (formatValue / 100);
+ var endAngle = clockwise
+ ? BEGIN_ANGLE + progress
+ : 3 * Math.PI - (BEGIN_ANGLE + progress);
+ this.presetCanvas(context, this.hoverColor, BEGIN_ANGLE, endAngle);
+ },
+ drawCircle: function (currentValue) {
+ var _this = this;
+ var size = this.data.size;
+ this.getContext().then(function (context) {
+ context.clearRect(0, 0, size, size);
+ _this.renderLayerCircle(context);
+ var formatValue = format(currentValue);
+ if (formatValue !== 0) {
+ _this.renderHoverCircle(context, formatValue);
+ }
+ context.draw();
+ });
+ },
+ reRender: function () {
+ var _this = this;
+ // tofector 动画暂时没有想到好的解决方案
+ var _a = this.data, value = _a.value, speed = _a.speed;
+ if (speed <= 0 || speed > 1000) {
+ this.drawCircle(value);
+ return;
+ }
+ this.clearMockInterval();
+ this.currentValue = this.currentValue || 0;
+ var run = function () {
+ _this.interval = setTimeout(function () {
+ if (_this.currentValue !== value) {
+ if (Math.abs(_this.currentValue - value) < STEP) {
+ _this.currentValue = value;
+ }
+ else if (_this.currentValue < value) {
+ _this.currentValue += STEP;
+ }
+ else {
+ _this.currentValue -= STEP;
+ }
+ _this.drawCircle(_this.currentValue);
+ run();
+ }
+ else {
+ _this.clearMockInterval();
+ }
+ }, 1000 / speed);
+ };
+ run();
+ },
+ clearMockInterval: function () {
+ if (this.interval) {
+ clearTimeout(this.interval);
+ this.interval = null;
+ }
+ },
+ },
+ mounted: function () {
+ var _this = this;
+ this.currentValue = this.data.value;
+ this.setHoverColor().then(function () {
+ _this.drawCircle(_this.currentValue);
+ });
+ },
+ destroyed: function () {
+ this.clearMockInterval();
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.wxml
new file mode 100644
index 0000000..52bc59f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.wxml
@@ -0,0 +1,9 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view class="van-circle">
+ <canvas class="van-circle__canvas" type="{{ type }}" style="width: {{ utils.addUnit(size) }};height:{{ utils.addUnit(size) }}" id="van-circle" canvas-id="van-circle"></canvas>
+ <view wx:if="{{ !text }}" class="van-circle__text">
+ <slot></slot>
+ </view>
+ <cover-view wx:else class="van-circle__text">{{ text }}</cover-view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.wxss
new file mode 100644
index 0000000..2200751
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/circle/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-circle{display:inline-block;position:relative;text-align:center}.van-circle__text{color:var(--circle-text-color,#323233);left:0;position:absolute;top:50%;transform:translateY(-50%);width:100%}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.js
new file mode 100644
index 0000000..63c56eb
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.js
@@ -0,0 +1,11 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var relation_1 = require("../common/relation");
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ relation: (0, relation_1.useParent)('row'),
+ props: {
+ span: Number,
+ offset: Number,
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.wxml
new file mode 100644
index 0000000..975348b
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.wxml
@@ -0,0 +1,9 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="custom-class {{ utils.bem('col', [span]) }} {{ offset ? 'van-col--offset-' + offset : '' }}"
+ style="{{ computed.rootStyle({ gutter }) }}"
+>
+ <slot />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.wxs
new file mode 100644
index 0000000..507c1cb
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.wxs
@@ -0,0 +1,18 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function rootStyle(data) {
+ if (!data.gutter) {
+ return '';
+ }
+
+ return style({
+ 'padding-right': addUnit(data.gutter / 2),
+ 'padding-left': addUnit(data.gutter / 2),
+ });
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.wxss
new file mode 100644
index 0000000..2fa265e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/col/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-col{box-sizing:border-box;float:left}.van-col--1{width:4.16666667%}.van-col--offset-1{margin-left:4.16666667%}.van-col--2{width:8.33333333%}.van-col--offset-2{margin-left:8.33333333%}.van-col--3{width:12.5%}.van-col--offset-3{margin-left:12.5%}.van-col--4{width:16.66666667%}.van-col--offset-4{margin-left:16.66666667%}.van-col--5{width:20.83333333%}.van-col--offset-5{margin-left:20.83333333%}.van-col--6{width:25%}.van-col--offset-6{margin-left:25%}.van-col--7{width:29.16666667%}.van-col--offset-7{margin-left:29.16666667%}.van-col--8{width:33.33333333%}.van-col--offset-8{margin-left:33.33333333%}.van-col--9{width:37.5%}.van-col--offset-9{margin-left:37.5%}.van-col--10{width:41.66666667%}.van-col--offset-10{margin-left:41.66666667%}.van-col--11{width:45.83333333%}.van-col--offset-11{margin-left:45.83333333%}.van-col--12{width:50%}.van-col--offset-12{margin-left:50%}.van-col--13{width:54.16666667%}.van-col--offset-13{margin-left:54.16666667%}.van-col--14{width:58.33333333%}.van-col--offset-14{margin-left:58.33333333%}.van-col--15{width:62.5%}.van-col--offset-15{margin-left:62.5%}.van-col--16{width:66.66666667%}.van-col--offset-16{margin-left:66.66666667%}.van-col--17{width:70.83333333%}.van-col--offset-17{margin-left:70.83333333%}.van-col--18{width:75%}.van-col--offset-18{margin-left:75%}.van-col--19{width:79.16666667%}.van-col--offset-19{margin-left:79.16666667%}.van-col--20{width:83.33333333%}.van-col--offset-20{margin-left:83.33333333%}.van-col--21{width:87.5%}.van-col--offset-21{margin-left:87.5%}.van-col--22{width:91.66666667%}.van-col--offset-22{margin-left:91.66666667%}.van-col--23{width:95.83333333%}.van-col--offset-23{margin-left:95.83333333%}.van-col--24{width:100%}.van-col--offset-24{margin-left:100%}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts
new file mode 100644
index 0000000..32157b6
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts
@@ -0,0 +1,2 @@
+/// <reference types="miniprogram-api-typings" />
+export declare function setContentAnimate(context: WechatMiniprogram.Component.TrivialInstance, expanded: boolean, mounted: boolean): void;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/animate.js b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/animate.js
new file mode 100644
index 0000000..5734087
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/animate.js
@@ -0,0 +1,43 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.setContentAnimate = void 0;
+var utils_1 = require("../common/utils");
+function useAnimation(context, expanded, mounted, height) {
+ var animation = wx.createAnimation({
+ duration: 0,
+ timingFunction: 'ease-in-out',
+ });
+ if (expanded) {
+ if (height === 0) {
+ animation.height('auto').top(1).step();
+ }
+ else {
+ animation
+ .height(height)
+ .top(1)
+ .step({
+ duration: mounted ? 300 : 1,
+ })
+ .height('auto')
+ .step();
+ }
+ context.setData({
+ animation: animation.export(),
+ });
+ return;
+ }
+ animation.height(height).top(0).step({ duration: 1 }).height(0).step({
+ duration: 300,
+ });
+ context.setData({
+ animation: animation.export(),
+ });
+}
+function setContentAnimate(context, expanded, mounted) {
+ (0, utils_1.getRect)(context, '.van-collapse-item__content')
+ .then(function (rect) { return rect.height; })
+ .then(function (height) {
+ useAnimation(context, expanded, mounted, height);
+ });
+}
+exports.setContentAnimate = setContentAnimate;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.js
new file mode 100644
index 0000000..473d8e2
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.js
@@ -0,0 +1,61 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+var animate_1 = require("./animate");
+(0, component_1.VantComponent)({
+ classes: ['title-class', 'content-class'],
+ relation: (0, relation_1.useParent)('collapse'),
+ 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: {
+ expanded: false,
+ },
+ mounted: function () {
+ this.updateExpanded();
+ this.mounted = true;
+ },
+ methods: {
+ updateExpanded: function () {
+ if (!this.parent) {
+ return;
+ }
+ var _a = this.parent.data, value = _a.value, accordion = _a.accordion;
+ var _b = this.parent.children, children = _b === void 0 ? [] : _b;
+ var name = this.data.name;
+ var index = children.indexOf(this);
+ var currentName = name == null ? index : name;
+ var expanded = accordion
+ ? value === currentName
+ : (value || []).some(function (name) { return name === currentName; });
+ if (expanded !== this.data.expanded) {
+ (0, animate_1.setContentAnimate)(this, expanded, this.mounted);
+ }
+ this.setData({ index: index, expanded: expanded });
+ },
+ onClick: function () {
+ if (this.data.disabled) {
+ return;
+ }
+ var _a = this.data, name = _a.name, expanded = _a.expanded;
+ var index = this.parent.children.indexOf(this);
+ var currentName = name == null ? index : name;
+ this.parent.switch(currentName, !expanded);
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.json
new file mode 100644
index 0000000..0e5425c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-cell": "../cell/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.wxml
new file mode 100644
index 0000000..ae4cc83
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.wxml
@@ -0,0 +1,44 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view class="van-collapse-item custom-class {{ index !== 0 ? 'van-hairline--top' : '' }}">
+ <van-cell
+ title="{{ title }}"
+ title-class="title-class"
+ icon="{{ icon }}"
+ value="{{ value }}"
+ label="{{ label }}"
+ is-link="{{ isLink }}"
+ clickable="{{ clickable }}"
+ border="{{ border && expanded }}"
+ class="{{ utils.bem('collapse-item__title', { disabled, expanded }) }}"
+ right-icon-class="van-cell__right-icon"
+ custom-class="van-cell"
+ hover-class="van-cell--hover"
+ bind:click="onClick"
+ >
+ <slot
+ name="title"
+ slot="title"
+ />
+ <slot
+ name="icon"
+ slot="icon"
+ />
+ <slot name="value" />
+ <slot
+ name="right-icon"
+ slot="right-icon"
+ />
+ </van-cell>
+ <view
+ class="{{ utils.bem('collapse-item__wrapper') }}"
+ style="height: 0;"
+ animation="{{ animation }}"
+ >
+ <view
+ class="van-collapse-item__content content-class"
+ >
+ <slot />
+ </view>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.wxss
new file mode 100644
index 0000000..4a65b5a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse-item/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-collapse-item__title .van-cell__right-icon{transform:rotate(90deg);transition:transform var(--collapse-item-transition-duration,.3s)}.van-collapse-item__title--expanded .van-cell__right-icon{transform:rotate(-90deg)}.van-collapse-item__title--disabled .van-cell,.van-collapse-item__title--disabled .van-cell__right-icon{color:var(--collapse-item-title-disabled-color,#c8c9cc)!important}.van-collapse-item__title--disabled .van-cell--hover{background-color:#fff!important}.van-collapse-item__wrapper{overflow:hidden}.van-collapse-item__content{background-color:var(--collapse-item-content-background-color,#fff);color:var(--collapse-item-content-text-color,#969799);font-size:var(--collapse-item-content-font-size,13px);line-height:var(--collapse-item-content-line-height,1.5);padding:var(--collapse-item-content-padding,15px)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.js
new file mode 100644
index 0000000..943d542
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.js
@@ -0,0 +1,48 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+(0, component_1.VantComponent)({
+ relation: (0, relation_1.useChildren)('collapse-item'),
+ props: {
+ value: {
+ type: null,
+ observer: 'updateExpanded',
+ },
+ accordion: {
+ type: Boolean,
+ observer: 'updateExpanded',
+ },
+ border: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ methods: {
+ updateExpanded: function () {
+ this.children.forEach(function (child) {
+ child.updateExpanded();
+ });
+ },
+ switch: function (name, expanded) {
+ var _a = this.data, accordion = _a.accordion, value = _a.value;
+ var changeItem = name;
+ if (!accordion) {
+ name = expanded
+ ? (value || []).concat(name)
+ : (value || []).filter(function (activeName) { return 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/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.wxml
new file mode 100644
index 0000000..fd4e171
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.wxml
@@ -0,0 +1,3 @@
+<view class="custom-class van-collapse {{ border ? 'van-hairline--top-bottom' : '' }}">
+ <slot />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.wxss
new file mode 100644
index 0000000..99694d6
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/collapse/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/color.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/common/color.d.ts
new file mode 100644
index 0000000..386f307
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/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/gz-wxparty/miniprogram_npm/@vant/weapp/common/color.js b/gz-wxparty/miniprogram_npm/@vant/weapp/common/color.js
new file mode 100644
index 0000000..008a45a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/color.js
@@ -0,0 +1,10 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.GRAY_DARK = exports.GRAY = exports.ORANGE = exports.GREEN = exports.WHITE = exports.BLUE = exports.RED = void 0;
+exports.RED = '#ee0a24';
+exports.BLUE = '#1989fa';
+exports.WHITE = '#fff';
+exports.GREEN = '#07c160';
+exports.ORANGE = '#ff976a';
+exports.GRAY = '#323233';
+exports.GRAY_DARK = '#969799';
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/component.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/common/component.d.ts
new file mode 100644
index 0000000..1d0fd27
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/component.d.ts
@@ -0,0 +1,4 @@
+/// <reference types="miniprogram-api-typings" />
+import { VantComponentOptions } from 'definitions/index';
+declare function VantComponent<Data extends WechatMiniprogram.Component.DataOption, Props extends WechatMiniprogram.Component.PropertyOption, Methods extends WechatMiniprogram.Component.MethodOption>(vantOptions: VantComponentOptions<Data, Props, Methods>): void;
+export { VantComponent };
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/component.js b/gz-wxparty/miniprogram_npm/@vant/weapp/common/component.js
new file mode 100644
index 0000000..f1ab5c9
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/component.js
@@ -0,0 +1,48 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.VantComponent = void 0;
+var basic_1 = require("../mixins/basic");
+function mapKeys(source, target, map) {
+ Object.keys(map).forEach(function (key) {
+ if (source[key]) {
+ target[map[key]] = source[key];
+ }
+ });
+}
+function VantComponent(vantOptions) {
+ var options = {};
+ mapKeys(vantOptions, options, {
+ data: 'data',
+ props: 'properties',
+ mixins: 'behaviors',
+ methods: 'methods',
+ beforeCreate: 'created',
+ created: 'attached',
+ mounted: 'ready',
+ destroyed: 'detached',
+ classes: 'externalClasses',
+ });
+ // add default externalClasses
+ options.externalClasses = options.externalClasses || [];
+ options.externalClasses.push('custom-class');
+ // add default behaviors
+ options.behaviors = options.behaviors || [];
+ options.behaviors.push(basic_1.basic);
+ // add relations
+ var relation = vantOptions.relation;
+ if (relation) {
+ options.relations = relation.relations;
+ options.behaviors.push(relation.mixin);
+ }
+ // map field to form-field behavior
+ if (vantOptions.field) {
+ options.behaviors.push('wx://form-field');
+ }
+ // add default options
+ options.options = {
+ multipleSlots: true,
+ addGlobalClass: true,
+ };
+ Component(options);
+}
+exports.VantComponent = VantComponent;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/common/index.wxss
new file mode 100644
index 0000000..a73bb7a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/index.wxss
@@ -0,0 +1 @@
+.van-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.van-multi-ellipsis--l3{-webkit-line-clamp:3}.van-clearfix:after{clear:both;content:"";display:table}.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{border:0 solid #ebedf0;bottom:-50%;box-sizing:border-box;content:" ";left:-50%;pointer-events:none;position:absolute;right:-50%;top:-50%;transform:scale(.5);transform-origin:center}.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/gz-wxparty/miniprogram_npm/@vant/weapp/common/relation.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/common/relation.d.ts
new file mode 100644
index 0000000..4b5af00
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/relation.d.ts
@@ -0,0 +1,15 @@
+/// <reference types="miniprogram-api-typings" />
+declare type TrivialInstance = WechatMiniprogram.Component.TrivialInstance;
+export declare function useParent(name: string, onEffect?: (this: TrivialInstance) => void): {
+ relations: {
+ [x: string]: WechatMiniprogram.Component.RelationOption;
+ };
+ mixin: string;
+};
+export declare function useChildren(name: string, onEffect?: (this: TrivialInstance, target: TrivialInstance) => void): {
+ relations: {
+ [x: string]: WechatMiniprogram.Component.RelationOption;
+ };
+ mixin: string;
+};
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/relation.js b/gz-wxparty/miniprogram_npm/@vant/weapp/common/relation.js
new file mode 100644
index 0000000..008256c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/relation.js
@@ -0,0 +1,65 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.useChildren = exports.useParent = void 0;
+function useParent(name, onEffect) {
+ var _a;
+ var path = "../".concat(name, "/index");
+ return {
+ relations: (_a = {},
+ _a[path] = {
+ type: 'ancestor',
+ linked: function () {
+ onEffect && onEffect.call(this);
+ },
+ linkChanged: function () {
+ onEffect && onEffect.call(this);
+ },
+ unlinked: function () {
+ onEffect && onEffect.call(this);
+ },
+ },
+ _a),
+ mixin: Behavior({
+ created: function () {
+ var _this = this;
+ Object.defineProperty(this, 'parent', {
+ get: function () { return _this.getRelationNodes(path)[0]; },
+ });
+ Object.defineProperty(this, 'index', {
+ // @ts-ignore
+ get: function () { var _a, _b; return (_b = (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.indexOf(_this); },
+ });
+ },
+ }),
+ };
+}
+exports.useParent = useParent;
+function useChildren(name, onEffect) {
+ var _a;
+ var path = "../".concat(name, "/index");
+ return {
+ relations: (_a = {},
+ _a[path] = {
+ type: 'descendant',
+ linked: function (target) {
+ onEffect && onEffect.call(this, target);
+ },
+ linkChanged: function (target) {
+ onEffect && onEffect.call(this, target);
+ },
+ unlinked: function (target) {
+ onEffect && onEffect.call(this, target);
+ },
+ },
+ _a),
+ mixin: Behavior({
+ created: function () {
+ var _this = this;
+ Object.defineProperty(this, 'children', {
+ get: function () { return _this.getRelationNodes(path) || []; },
+ });
+ },
+ }),
+ };
+}
+exports.useChildren = useChildren;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss
new file mode 100644
index 0000000..442246f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss
@@ -0,0 +1 @@
+.van-clearfix:after{clear:both;content:"";display:table}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss
new file mode 100644
index 0000000..ee701df
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss
@@ -0,0 +1 @@
+.van-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.van-multi-ellipsis--l3{-webkit-line-clamp:3}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/hairline.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/hairline.wxss
new file mode 100644
index 0000000..f7c6260
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/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{border:0 solid #ebedf0;bottom:-50%;box-sizing:border-box;content:" ";left:-50%;pointer-events:none;position:absolute;right:-50%;top:-50%;transform:scale(.5);transform-origin:center}.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/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/var.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/var.wxss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/style/var.wxss
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/utils.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/common/utils.d.ts
new file mode 100644
index 0000000..5332a68
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/utils.d.ts
@@ -0,0 +1,13 @@
+/// <reference types="miniprogram-api-typings" />
+export { isDef } from './validator';
+export declare function range(num: number, min: number, max: number): number;
+export declare function nextTick(cb: (...args: any[]) => void): void;
+export declare function getSystemInfoSync(): WechatMiniprogram.SystemInfo;
+export declare function addUnit(value?: string | number): string | undefined;
+export declare function requestAnimationFrame(cb: () => void): number | WechatMiniprogram.NodesRef;
+export declare function pickExclude(obj: unknown, keys: string[]): {};
+export declare function getRect(context: WechatMiniprogram.Component.TrivialInstance, selector: string): Promise<WechatMiniprogram.BoundingClientRectCallbackResult>;
+export declare function getAllRect(context: WechatMiniprogram.Component.TrivialInstance, selector: string): Promise<WechatMiniprogram.BoundingClientRectCallbackResult[]>;
+export declare function groupSetData(context: WechatMiniprogram.Component.TrivialInstance, cb: () => void): void;
+export declare function toPromise(promiseLike: Promise<unknown> | unknown): Promise<unknown>;
+export declare function getCurrentPage<T>(): T & WechatMiniprogram.OptionalInterface<WechatMiniprogram.Page.ILifetime> & WechatMiniprogram.Page.InstanceProperties & WechatMiniprogram.Page.InstanceMethods<WechatMiniprogram.IAnyObject> & WechatMiniprogram.Page.Data<WechatMiniprogram.IAnyObject> & WechatMiniprogram.IAnyObject;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/utils.js b/gz-wxparty/miniprogram_npm/@vant/weapp/common/utils.js
new file mode 100644
index 0000000..8966b00
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/utils.js
@@ -0,0 +1,113 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getCurrentPage = exports.toPromise = exports.groupSetData = exports.getAllRect = exports.getRect = exports.pickExclude = exports.requestAnimationFrame = exports.addUnit = exports.getSystemInfoSync = exports.nextTick = exports.range = exports.isDef = void 0;
+var validator_1 = require("./validator");
+var version_1 = require("./version");
+var validator_2 = require("./validator");
+Object.defineProperty(exports, "isDef", { enumerable: true, get: function () { return validator_2.isDef; } });
+function range(num, min, max) {
+ return Math.min(Math.max(num, min), max);
+}
+exports.range = range;
+function nextTick(cb) {
+ if ((0, version_1.canIUseNextTick)()) {
+ wx.nextTick(cb);
+ }
+ else {
+ setTimeout(function () {
+ cb();
+ }, 1000 / 30);
+ }
+}
+exports.nextTick = nextTick;
+var systemInfo;
+function getSystemInfoSync() {
+ if (systemInfo == null) {
+ systemInfo = wx.getSystemInfoSync();
+ }
+ return systemInfo;
+}
+exports.getSystemInfoSync = getSystemInfoSync;
+function addUnit(value) {
+ if (!(0, validator_1.isDef)(value)) {
+ return undefined;
+ }
+ value = String(value);
+ return (0, validator_1.isNumber)(value) ? "".concat(value, "px") : value;
+}
+exports.addUnit = addUnit;
+function requestAnimationFrame(cb) {
+ var systemInfo = getSystemInfoSync();
+ if (systemInfo.platform === 'devtools') {
+ return setTimeout(function () {
+ cb();
+ }, 1000 / 30);
+ }
+ return wx
+ .createSelectorQuery()
+ .selectViewport()
+ .boundingClientRect()
+ .exec(function () {
+ cb();
+ });
+}
+exports.requestAnimationFrame = requestAnimationFrame;
+function pickExclude(obj, keys) {
+ if (!(0, validator_1.isPlainObject)(obj)) {
+ return {};
+ }
+ return Object.keys(obj).reduce(function (prev, key) {
+ if (!keys.includes(key)) {
+ prev[key] = obj[key];
+ }
+ return prev;
+ }, {});
+}
+exports.pickExclude = pickExclude;
+function getRect(context, selector) {
+ return new Promise(function (resolve) {
+ wx.createSelectorQuery()
+ .in(context)
+ .select(selector)
+ .boundingClientRect()
+ .exec(function (rect) {
+ if (rect === void 0) { rect = []; }
+ return resolve(rect[0]);
+ });
+ });
+}
+exports.getRect = getRect;
+function getAllRect(context, selector) {
+ return new Promise(function (resolve) {
+ wx.createSelectorQuery()
+ .in(context)
+ .selectAll(selector)
+ .boundingClientRect()
+ .exec(function (rect) {
+ if (rect === void 0) { rect = []; }
+ return resolve(rect[0]);
+ });
+ });
+}
+exports.getAllRect = getAllRect;
+function groupSetData(context, cb) {
+ if ((0, version_1.canIUseGroupSetData)()) {
+ context.groupSetData(cb);
+ }
+ else {
+ cb();
+ }
+}
+exports.groupSetData = groupSetData;
+function toPromise(promiseLike) {
+ if ((0, validator_1.isPromise)(promiseLike)) {
+ return promiseLike;
+ }
+ return Promise.resolve(promiseLike);
+}
+exports.toPromise = toPromise;
+function getCurrentPage() {
+ var pages = getCurrentPages();
+ return pages[pages.length - 1];
+}
+exports.getCurrentPage = getCurrentPage;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/validator.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/common/validator.d.ts
new file mode 100644
index 0000000..152894a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/validator.d.ts
@@ -0,0 +1,9 @@
+export declare function isFunction(val: unknown): val is Function;
+export declare function isPlainObject(val: unknown): val is Record<string, unknown>;
+export declare function isPromise<T = unknown>(val: unknown): val is Promise<T>;
+export declare function isDef(value: unknown): boolean;
+export declare function isObj(x: unknown): x is Record<string, unknown>;
+export declare function isNumber(value: string): boolean;
+export declare function isBoolean(value: unknown): value is boolean;
+export declare function isImageUrl(url: string): boolean;
+export declare function isVideoUrl(url: string): boolean;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/validator.js b/gz-wxparty/miniprogram_npm/@vant/weapp/common/validator.js
new file mode 100644
index 0000000..169e796
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/validator.js
@@ -0,0 +1,43 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isVideoUrl = exports.isImageUrl = exports.isBoolean = exports.isNumber = exports.isObj = exports.isDef = exports.isPromise = exports.isPlainObject = exports.isFunction = void 0;
+// eslint-disable-next-line @typescript-eslint/ban-types
+function isFunction(val) {
+ return typeof val === 'function';
+}
+exports.isFunction = isFunction;
+function isPlainObject(val) {
+ return val !== null && typeof val === 'object' && !Array.isArray(val);
+}
+exports.isPlainObject = isPlainObject;
+function isPromise(val) {
+ return isPlainObject(val) && isFunction(val.then) && isFunction(val.catch);
+}
+exports.isPromise = isPromise;
+function isDef(value) {
+ return value !== undefined && value !== null;
+}
+exports.isDef = isDef;
+function isObj(x) {
+ var type = typeof x;
+ return x !== null && (type === 'object' || type === 'function');
+}
+exports.isObj = isObj;
+function isNumber(value) {
+ return /^\d+(\.\d+)?$/.test(value);
+}
+exports.isNumber = isNumber;
+function isBoolean(value) {
+ return typeof value === 'boolean';
+}
+exports.isBoolean = isBoolean;
+var IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i;
+var VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv)/i;
+function isImageUrl(url) {
+ return IMAGE_REGEXP.test(url);
+}
+exports.isImageUrl = isImageUrl;
+function isVideoUrl(url) {
+ return VIDEO_REGEXP.test(url);
+}
+exports.isVideoUrl = isVideoUrl;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/version.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/common/version.d.ts
new file mode 100644
index 0000000..988b226
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/version.d.ts
@@ -0,0 +1,7 @@
+export declare function canIUseModel(): boolean;
+export declare function canIUseFormFieldButton(): boolean;
+export declare function canIUseAnimate(): boolean;
+export declare function canIUseGroupSetData(): boolean;
+export declare function canIUseNextTick(): boolean;
+export declare function canIUseCanvas2d(): boolean;
+export declare function canIUseGetUserProfile(): boolean;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/common/version.js b/gz-wxparty/miniprogram_npm/@vant/weapp/common/version.js
new file mode 100644
index 0000000..1e49e30
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/common/version.js
@@ -0,0 +1,58 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.canIUseGetUserProfile = exports.canIUseCanvas2d = exports.canIUseNextTick = exports.canIUseGroupSetData = exports.canIUseAnimate = exports.canIUseFormFieldButton = exports.canIUseModel = void 0;
+var utils_1 = require("./utils");
+function compareVersion(v1, v2) {
+ v1 = v1.split('.');
+ v2 = v2.split('.');
+ var len = Math.max(v1.length, v2.length);
+ while (v1.length < len) {
+ v1.push('0');
+ }
+ while (v2.length < len) {
+ v2.push('0');
+ }
+ for (var i = 0; i < len; i++) {
+ var num1 = parseInt(v1[i], 10);
+ var num2 = parseInt(v2[i], 10);
+ if (num1 > num2) {
+ return 1;
+ }
+ if (num1 < num2) {
+ return -1;
+ }
+ }
+ return 0;
+}
+function gte(version) {
+ var system = (0, utils_1.getSystemInfoSync)();
+ return compareVersion(system.SDKVersion, version) >= 0;
+}
+function canIUseModel() {
+ return gte('2.9.3');
+}
+exports.canIUseModel = canIUseModel;
+function canIUseFormFieldButton() {
+ return gte('2.10.3');
+}
+exports.canIUseFormFieldButton = canIUseFormFieldButton;
+function canIUseAnimate() {
+ return gte('2.9.0');
+}
+exports.canIUseAnimate = canIUseAnimate;
+function canIUseGroupSetData() {
+ return gte('2.4.0');
+}
+exports.canIUseGroupSetData = canIUseGroupSetData;
+function canIUseNextTick() {
+ return wx.canIUse('nextTick');
+}
+exports.canIUseNextTick = canIUseNextTick;
+function canIUseCanvas2d() {
+ return gte('2.9.0');
+}
+exports.canIUseCanvas2d = canIUseCanvas2d;
+function canIUseGetUserProfile() {
+ return !!wx.getUserProfile;
+}
+exports.canIUseGetUserProfile = canIUseGetUserProfile;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.js
new file mode 100644
index 0000000..21fb1c4
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.js
@@ -0,0 +1,11 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ props: {
+ themeVars: {
+ type: Object,
+ value: {},
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.wxml
new file mode 100644
index 0000000..3cfb461
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.wxml
@@ -0,0 +1,5 @@
+<wxs src="./index.wxs" module="computed" />
+
+<view class="van-config-provider" style="{{ computed.mapThemeVarsToCSSVars(themeVars) }}">
+ <slot />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.wxs
new file mode 100644
index 0000000..7ca0203
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/config-provider/index.wxs
@@ -0,0 +1,29 @@
+/* eslint-disable */
+var object = require('../wxs/object.wxs');
+var style = require('../wxs/style.wxs');
+
+function kebabCase(word) {
+ var newWord = word
+ .replace(getRegExp("[A-Z]", 'g'), function (i) {
+ return '-' + i;
+ })
+ .toLowerCase()
+ .replace(getRegExp("^-"), '');
+
+ return newWord;
+}
+
+function mapThemeVarsToCSSVars(themeVars) {
+ var cssVars = {};
+ object.keys(themeVars).forEach(function (key) {
+ var cssVarsKey = '--' + kebabCase(key);
+ cssVars[cssVarsKey] = themeVars[key];
+ });
+
+ return style(cssVars);
+}
+
+module.exports = {
+ kebabCase: kebabCase,
+ mapThemeVarsToCSSVars: mapThemeVarsToCSSVars,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.js
new file mode 100644
index 0000000..afc780b
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.js
@@ -0,0 +1,104 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var utils_1 = require("./utils");
+function simpleTick(fn) {
+ return setTimeout(fn, 30);
+}
+(0, component_1.VantComponent)({
+ props: {
+ useSlot: Boolean,
+ millisecond: Boolean,
+ time: {
+ type: Number,
+ observer: 'reset',
+ },
+ format: {
+ type: String,
+ value: 'HH:mm:ss',
+ },
+ autoStart: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ data: {
+ timeData: (0, utils_1.parseTimeData)(0),
+ formattedTime: '0',
+ },
+ destroyed: function () {
+ clearTimeout(this.tid);
+ this.tid = null;
+ },
+ methods: {
+ // 开始
+ start: function () {
+ if (this.counting) {
+ return;
+ }
+ this.counting = true;
+ this.endTime = Date.now() + this.remain;
+ this.tick();
+ },
+ // 暂停
+ pause: function () {
+ this.counting = false;
+ clearTimeout(this.tid);
+ },
+ // 重置
+ reset: function () {
+ this.pause();
+ this.remain = this.data.time;
+ this.setRemain(this.remain);
+ if (this.data.autoStart) {
+ this.start();
+ }
+ },
+ tick: function () {
+ if (this.data.millisecond) {
+ this.microTick();
+ }
+ else {
+ this.macroTick();
+ }
+ },
+ microTick: function () {
+ var _this = this;
+ this.tid = simpleTick(function () {
+ _this.setRemain(_this.getRemain());
+ if (_this.remain !== 0) {
+ _this.microTick();
+ }
+ });
+ },
+ macroTick: function () {
+ var _this = this;
+ this.tid = simpleTick(function () {
+ var remain = _this.getRemain();
+ if (!(0, utils_1.isSameSecond)(remain, _this.remain) || remain === 0) {
+ _this.setRemain(remain);
+ }
+ if (_this.remain !== 0) {
+ _this.macroTick();
+ }
+ });
+ },
+ getRemain: function () {
+ return Math.max(this.endTime - Date.now(), 0);
+ },
+ setRemain: function (remain) {
+ this.remain = remain;
+ var timeData = (0, utils_1.parseTimeData)(remain);
+ if (this.data.useSlot) {
+ this.$emit('change', timeData);
+ }
+ this.setData({
+ formattedTime: (0, utils_1.parseFormat)(this.data.format, timeData),
+ });
+ if (remain === 0) {
+ this.pause();
+ this.$emit('finish');
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.wxml
new file mode 100644
index 0000000..e206e16
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.wxml
@@ -0,0 +1,4 @@
+<view class="van-count-down">
+ <slot wx:if="{{ useSlot }}"/>
+ <block wx:else>{{ formattedTime }}</block>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.wxss
new file mode 100644
index 0000000..8b957f7
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-count-down{color:var(--count-down-text-color,#323233);font-size:var(--count-down-font-size,14px);line-height:var(--count-down-line-height,20px)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/utils.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/utils.d.ts
new file mode 100644
index 0000000..e4a58dd
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/utils.d.ts
@@ -0,0 +1,10 @@
+export declare type TimeData = {
+ days: number;
+ hours: number;
+ minutes: number;
+ seconds: number;
+ milliseconds: number;
+};
+export declare function parseTimeData(time: number): TimeData;
+export declare function parseFormat(format: string, timeData: TimeData): string;
+export declare function isSameSecond(time1: number, time2: number): boolean;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/utils.js b/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/utils.js
new file mode 100644
index 0000000..a7cfa5f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/count-down/utils.js
@@ -0,0 +1,64 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isSameSecond = exports.parseFormat = exports.parseTimeData = void 0;
+function padZero(num, targetLength) {
+ if (targetLength === void 0) { targetLength = 2; }
+ var str = num + '';
+ while (str.length < targetLength) {
+ str = '0' + str;
+ }
+ return str;
+}
+var SECOND = 1000;
+var MINUTE = 60 * SECOND;
+var HOUR = 60 * MINUTE;
+var DAY = 24 * HOUR;
+function parseTimeData(time) {
+ var days = Math.floor(time / DAY);
+ var hours = Math.floor((time % DAY) / HOUR);
+ var minutes = Math.floor((time % HOUR) / MINUTE);
+ var seconds = Math.floor((time % MINUTE) / SECOND);
+ var milliseconds = Math.floor(time % SECOND);
+ return {
+ days: days,
+ hours: hours,
+ minutes: minutes,
+ seconds: seconds,
+ milliseconds: milliseconds,
+ };
+}
+exports.parseTimeData = parseTimeData;
+function parseFormat(format, timeData) {
+ var days = timeData.days;
+ var hours = timeData.hours, minutes = timeData.minutes, seconds = timeData.seconds, milliseconds = timeData.milliseconds;
+ if (format.indexOf('DD') === -1) {
+ hours += days * 24;
+ }
+ else {
+ format = format.replace('DD', padZero(days));
+ }
+ if (format.indexOf('HH') === -1) {
+ minutes += hours * 60;
+ }
+ else {
+ format = format.replace('HH', padZero(hours));
+ }
+ if (format.indexOf('mm') === -1) {
+ seconds += minutes * 60;
+ }
+ else {
+ format = format.replace('mm', padZero(minutes));
+ }
+ if (format.indexOf('ss') === -1) {
+ milliseconds += seconds * 1000;
+ }
+ else {
+ format = format.replace('ss', padZero(seconds));
+ }
+ return format.replace('SSS', padZero(milliseconds, 3));
+}
+exports.parseFormat = parseFormat;
+function isSameSecond(time1, time2) {
+ return Math.floor(time1 / 1000) === Math.floor(time2 / 1000);
+}
+exports.isSameSecond = isSameSecond;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.js
new file mode 100644
index 0000000..e30afef
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.js
@@ -0,0 +1,329 @@
+"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);
+};
+var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
+ if (ar || !(i in from)) {
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
+ ar[i] = from[i];
+ }
+ }
+ return to.concat(ar || Array.prototype.slice.call(from));
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var validator_1 = require("../common/validator");
+var shared_1 = require("../picker/shared");
+var currentYear = new Date().getFullYear();
+function isValidDate(date) {
+ return (0, validator_1.isDef)(date) && !isNaN(new Date(date).getTime());
+}
+function range(num, min, max) {
+ return Math.min(Math.max(num, min), max);
+}
+function padZero(val) {
+ return "00".concat(val).slice(-2);
+}
+function times(n, iteratee) {
+ var index = -1;
+ var result = Array(n < 0 ? 0 : n);
+ while (++index < n) {
+ result[index] = iteratee(index);
+ }
+ return result;
+}
+function getTrueValue(formattedValue) {
+ if (formattedValue === undefined) {
+ formattedValue = '1';
+ }
+ while (isNaN(parseInt(formattedValue, 10))) {
+ formattedValue = formattedValue.slice(1);
+ }
+ return parseInt(formattedValue, 10);
+}
+function getMonthEndDay(year, month) {
+ return 32 - new Date(year, month - 1, 32).getDate();
+}
+var defaultFormatter = function (type, value) { return value; };
+(0, component_1.VantComponent)({
+ classes: ['active-class', 'toolbar-class', 'column-class'],
+ props: __assign(__assign({}, shared_1.pickerProps), { value: {
+ type: null,
+ observer: 'updateValue',
+ }, filter: null, type: {
+ type: String,
+ value: 'datetime',
+ observer: 'updateValue',
+ }, showToolbar: {
+ type: Boolean,
+ value: true,
+ }, formatter: {
+ type: null,
+ value: defaultFormatter,
+ }, minDate: {
+ type: Number,
+ value: new Date(currentYear - 10, 0, 1).getTime(),
+ observer: 'updateValue',
+ }, maxDate: {
+ type: Number,
+ value: new Date(currentYear + 10, 11, 31).getTime(),
+ observer: 'updateValue',
+ }, minHour: {
+ type: Number,
+ value: 0,
+ observer: 'updateValue',
+ }, maxHour: {
+ type: Number,
+ value: 23,
+ observer: 'updateValue',
+ }, minMinute: {
+ type: Number,
+ value: 0,
+ observer: 'updateValue',
+ }, maxMinute: {
+ type: Number,
+ value: 59,
+ observer: 'updateValue',
+ } }),
+ data: {
+ innerValue: Date.now(),
+ columns: [],
+ },
+ methods: {
+ updateValue: function () {
+ var _this = this;
+ var data = this.data;
+ var val = this.correctValue(data.value);
+ var isEqual = val === data.innerValue;
+ this.updateColumnValue(val).then(function () {
+ if (!isEqual) {
+ _this.$emit('input', val);
+ }
+ });
+ },
+ getPicker: function () {
+ if (this.picker == null) {
+ this.picker = this.selectComponent('.van-datetime-picker');
+ var picker_1 = this.picker;
+ var setColumnValues_1 = picker_1.setColumnValues;
+ picker_1.setColumnValues = function () {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return setColumnValues_1.apply(picker_1, __spreadArray(__spreadArray([], args, true), [false], false));
+ };
+ }
+ return this.picker;
+ },
+ updateColumns: function () {
+ var _a = this.data.formatter, formatter = _a === void 0 ? defaultFormatter : _a;
+ var results = this.getOriginColumns().map(function (column) { return ({
+ values: column.values.map(function (value) { return formatter(column.type, value); }),
+ }); });
+ return this.set({ columns: results });
+ },
+ getOriginColumns: function () {
+ var filter = this.data.filter;
+ var results = this.getRanges().map(function (_a) {
+ var type = _a.type, range = _a.range;
+ var values = times(range[1] - range[0] + 1, function (index) {
+ var value = range[0] + index;
+ return type === 'year' ? "".concat(value) : padZero(value);
+ });
+ if (filter) {
+ values = filter(type, values);
+ }
+ return { type: type, values: values };
+ });
+ return results;
+ },
+ getRanges: function () {
+ var data = this.data;
+ if (data.type === 'time') {
+ return [
+ {
+ type: 'hour',
+ range: [data.minHour, data.maxHour],
+ },
+ {
+ type: 'minute',
+ range: [data.minMinute, data.maxMinute],
+ },
+ ];
+ }
+ var _a = this.getBoundary('max', data.innerValue), maxYear = _a.maxYear, maxDate = _a.maxDate, maxMonth = _a.maxMonth, maxHour = _a.maxHour, maxMinute = _a.maxMinute;
+ var _b = this.getBoundary('min', data.innerValue), minYear = _b.minYear, minDate = _b.minDate, minMonth = _b.minMonth, minHour = _b.minHour, minMinute = _b.minMinute;
+ var result = [
+ {
+ type: 'year',
+ range: [minYear, maxYear],
+ },
+ {
+ type: 'month',
+ range: [minMonth, maxMonth],
+ },
+ {
+ type: 'day',
+ range: [minDate, maxDate],
+ },
+ {
+ type: 'hour',
+ range: [minHour, maxHour],
+ },
+ {
+ type: 'minute',
+ range: [minMinute, maxMinute],
+ },
+ ];
+ if (data.type === 'date')
+ result.splice(3, 2);
+ if (data.type === 'year-month')
+ result.splice(2, 3);
+ return result;
+ },
+ correctValue: function (value) {
+ var data = this.data;
+ // validate value
+ var isDateType = data.type !== 'time';
+ if (isDateType && !isValidDate(value)) {
+ value = data.minDate;
+ }
+ else if (!isDateType && !value) {
+ var minHour = data.minHour;
+ value = "".concat(padZero(minHour), ":00");
+ }
+ // time type
+ if (!isDateType) {
+ var _a = value.split(':'), hour = _a[0], minute = _a[1];
+ hour = padZero(range(hour, data.minHour, data.maxHour));
+ minute = padZero(range(minute, data.minMinute, data.maxMinute));
+ return "".concat(hour, ":").concat(minute);
+ }
+ // date type
+ value = Math.max(value, data.minDate);
+ value = Math.min(value, data.maxDate);
+ return value;
+ },
+ getBoundary: function (type, innerValue) {
+ var _a;
+ var value = new Date(innerValue);
+ var boundary = new Date(this.data["".concat(type, "Date")]);
+ var year = boundary.getFullYear();
+ var month = 1;
+ var date = 1;
+ var hour = 0;
+ var minute = 0;
+ if (type === 'max') {
+ month = 12;
+ date = getMonthEndDay(value.getFullYear(), value.getMonth() + 1);
+ hour = 23;
+ minute = 59;
+ }
+ if (value.getFullYear() === year) {
+ month = boundary.getMonth() + 1;
+ if (value.getMonth() + 1 === month) {
+ date = boundary.getDate();
+ if (value.getDate() === date) {
+ hour = boundary.getHours();
+ if (value.getHours() === hour) {
+ minute = boundary.getMinutes();
+ }
+ }
+ }
+ }
+ return _a = {},
+ _a["".concat(type, "Year")] = year,
+ _a["".concat(type, "Month")] = month,
+ _a["".concat(type, "Date")] = date,
+ _a["".concat(type, "Hour")] = hour,
+ _a["".concat(type, "Minute")] = minute,
+ _a;
+ },
+ onCancel: function () {
+ this.$emit('cancel');
+ },
+ onConfirm: function () {
+ this.$emit('confirm', this.data.innerValue);
+ },
+ onChange: function () {
+ var _this = this;
+ var data = this.data;
+ var value;
+ var picker = this.getPicker();
+ var originColumns = this.getOriginColumns();
+ if (data.type === 'time') {
+ var indexes = picker.getIndexes();
+ value = "".concat(+originColumns[0].values[indexes[0]], ":").concat(+originColumns[1]
+ .values[indexes[1]]);
+ }
+ else {
+ var indexes = picker.getIndexes();
+ var values = indexes.map(function (value, index) { return originColumns[index].values[value]; });
+ var year = getTrueValue(values[0]);
+ var month = getTrueValue(values[1]);
+ var maxDate = getMonthEndDay(year, month);
+ var date = getTrueValue(values[2]);
+ if (data.type === 'year-month') {
+ date = 1;
+ }
+ date = date > maxDate ? maxDate : date;
+ var hour = 0;
+ var minute = 0;
+ if (data.type === 'datetime') {
+ hour = getTrueValue(values[3]);
+ minute = getTrueValue(values[4]);
+ }
+ value = new Date(year, month - 1, date, hour, minute);
+ }
+ value = this.correctValue(value);
+ this.updateColumnValue(value).then(function () {
+ _this.$emit('input', value);
+ _this.$emit('change', picker);
+ });
+ },
+ updateColumnValue: function (value) {
+ var _this = this;
+ var values = [];
+ var type = this.data.type;
+ var formatter = this.data.formatter || defaultFormatter;
+ var picker = this.getPicker();
+ if (type === 'time') {
+ var pair = value.split(':');
+ values = [formatter('hour', pair[0]), formatter('minute', pair[1])];
+ }
+ else {
+ var date = new Date(value);
+ values = [
+ formatter('year', "".concat(date.getFullYear())),
+ formatter('month', padZero(date.getMonth() + 1)),
+ ];
+ if (type === 'date') {
+ values.push(formatter('day', padZero(date.getDate())));
+ }
+ if (type === 'datetime') {
+ values.push(formatter('day', padZero(date.getDate())), formatter('hour', padZero(date.getHours())), formatter('minute', padZero(date.getMinutes())));
+ }
+ }
+ return this.set({ innerValue: value })
+ .then(function () { return _this.updateColumns(); })
+ .then(function () { return picker.setValues(values); });
+ },
+ },
+ created: function () {
+ var _this = this;
+ var innerValue = this.correctValue(this.data.value);
+ this.updateColumnValue(innerValue).then(function () {
+ _this.$emit('input', innerValue);
+ });
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.json
new file mode 100644
index 0000000..a778e91
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-picker": "../picker/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml
new file mode 100644
index 0000000..ade2202
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml
@@ -0,0 +1,16 @@
+<van-picker
+ class="van-datetime-picker"
+ active-class="active-class"
+ toolbar-class="toolbar-class"
+ column-class="column-class"
+ title="{{ title }}"
+ columns="{{ columns }}"
+ item-height="{{ itemHeight }}"
+ show-toolbar="{{ showToolbar }}"
+ visible-item-count="{{ visibleItemCount }}"
+ confirm-button-text="{{ confirmButtonText }}"
+ cancel-button-text="{{ cancelButtonText }}"
+ bind:change="onChange"
+ bind:confirm="onConfirm"
+ bind:cancel="onCancel"
+/>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss
new file mode 100644
index 0000000..99694d6
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/definitions/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/definitions/index.d.ts
new file mode 100644
index 0000000..a7cc750
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/definitions/index.d.ts
@@ -0,0 +1,27 @@
+/// <reference types="miniprogram-api-typings" />
+interface VantComponentInstance {
+ parent: WechatMiniprogram.Component.TrivialInstance;
+ children: WechatMiniprogram.Component.TrivialInstance[];
+ index: number;
+ $emit: (name: string, detail?: unknown, options?: WechatMiniprogram.Component.TriggerEventOption) => void;
+}
+export declare type VantComponentOptions<Data extends WechatMiniprogram.Component.DataOption, Props extends WechatMiniprogram.Component.PropertyOption, Methods extends WechatMiniprogram.Component.MethodOption> = {
+ data?: Data;
+ field?: boolean;
+ classes?: string[];
+ mixins?: string[];
+ props?: Props;
+ relation?: {
+ relations: Record<string, WechatMiniprogram.Component.RelationOption>;
+ mixin: string;
+ };
+ methods?: Methods;
+ beforeCreate?: () => void;
+ created?: () => void;
+ mounted?: () => void;
+ destroyed?: () => void;
+} & ThisType<VantComponentInstance & WechatMiniprogram.Component.Instance<Data & {
+ name: string;
+ value: any;
+} & Record<string, any>, Props, Methods> & Record<string, any>>;
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/definitions/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/definitions/index.js
new file mode 100644
index 0000000..c8ad2e5
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/definitions/index.js
@@ -0,0 +1,2 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts
new file mode 100644
index 0000000..e1f48c2
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts
@@ -0,0 +1,50 @@
+/// <reference types="miniprogram-api-typings" />
+export declare type Action = 'confirm' | 'cancel' | 'overlay';
+interface DialogOptions {
+ lang?: string;
+ show?: boolean;
+ title?: string;
+ width?: string | number | null;
+ zIndex?: number;
+ theme?: string;
+ context?: WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance;
+ message?: string;
+ overlay?: boolean;
+ selector?: string;
+ ariaLabel?: string;
+ className?: string;
+ customStyle?: string;
+ transition?: string;
+ /**
+ * @deprecated use beforeClose instead
+ */
+ asyncClose?: boolean;
+ beforeClose?: null | ((action: Action) => Promise<void | boolean> | void);
+ businessId?: number;
+ sessionFrom?: string;
+ overlayStyle?: string;
+ appParameter?: string;
+ messageAlign?: string;
+ sendMessageImg?: string;
+ showMessageCard?: boolean;
+ sendMessagePath?: string;
+ sendMessageTitle?: string;
+ confirmButtonText?: string;
+ cancelButtonText?: string;
+ showConfirmButton?: boolean;
+ showCancelButton?: boolean;
+ closeOnClickOverlay?: boolean;
+ confirmButtonOpenType?: string;
+}
+declare const Dialog: {
+ (options: DialogOptions): Promise<WechatMiniprogram.Component.TrivialInstance>;
+ alert(options: DialogOptions): Promise<WechatMiniprogram.Component.TrivialInstance>;
+ confirm(options: DialogOptions): Promise<WechatMiniprogram.Component.TrivialInstance>;
+ close(): void;
+ stopLoading(): void;
+ currentOptions: DialogOptions;
+ defaultOptions: DialogOptions;
+ setDefaultOptions(options: DialogOptions): void;
+ resetDefaultOptions(): void;
+};
+export default Dialog;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/dialog.js b/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/dialog.js
new file mode 100644
index 0000000..0cba6ab
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/dialog.js
@@ -0,0 +1,90 @@
+"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 queue = [];
+var defaultOptions = {
+ show: false,
+ title: '',
+ width: null,
+ theme: 'default',
+ message: '',
+ zIndex: 100,
+ overlay: true,
+ selector: '#van-dialog',
+ className: '',
+ asyncClose: false,
+ beforeClose: null,
+ transition: 'scale',
+ customStyle: '',
+ messageAlign: '',
+ overlayStyle: '',
+ confirmButtonText: '确认',
+ cancelButtonText: '取消',
+ showConfirmButton: true,
+ showCancelButton: false,
+ closeOnClickOverlay: false,
+ confirmButtonOpenType: '',
+};
+var currentOptions = __assign({}, defaultOptions);
+function getContext() {
+ var pages = getCurrentPages();
+ return pages[pages.length - 1];
+}
+var Dialog = function (options) {
+ options = __assign(__assign({}, currentOptions), options);
+ return new Promise(function (resolve, reject) {
+ var context = options.context || getContext();
+ var dialog = context.selectComponent(options.selector);
+ delete options.context;
+ delete options.selector;
+ if (dialog) {
+ dialog.setData(__assign({ callback: function (action, instance) {
+ action === 'confirm' ? resolve(instance) : reject(instance);
+ } }, options));
+ wx.nextTick(function () {
+ dialog.setData({ show: true });
+ });
+ queue.push(dialog);
+ }
+ else {
+ console.warn('未找到 van-dialog 节点,请确认 selector 及 context 是否正确');
+ }
+ });
+};
+Dialog.alert = function (options) { return Dialog(options); };
+Dialog.confirm = function (options) {
+ return Dialog(__assign({ showCancelButton: true }, options));
+};
+Dialog.close = function () {
+ queue.forEach(function (dialog) {
+ dialog.close();
+ });
+ queue = [];
+};
+Dialog.stopLoading = function () {
+ queue.forEach(function (dialog) {
+ dialog.stopLoading();
+ });
+};
+Dialog.currentOptions = currentOptions;
+Dialog.defaultOptions = defaultOptions;
+Dialog.setDefaultOptions = function (options) {
+ currentOptions = __assign(__assign({}, currentOptions), options);
+ Dialog.currentOptions = currentOptions;
+};
+Dialog.resetDefaultOptions = function () {
+ currentOptions = __assign({}, defaultOptions);
+ Dialog.currentOptions = currentOptions;
+};
+Dialog.resetDefaultOptions();
+exports.default = Dialog;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.js
new file mode 100644
index 0000000..3d59264
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.js
@@ -0,0 +1,127 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var button_1 = require("../mixins/button");
+var color_1 = require("../common/color");
+var utils_1 = require("../common/utils");
+(0, component_1.VantComponent)({
+ mixins: [button_1.button],
+ props: {
+ show: {
+ type: Boolean,
+ observer: function (show) {
+ !show && this.stopLoading();
+ },
+ },
+ title: String,
+ message: String,
+ theme: {
+ type: String,
+ value: 'default',
+ },
+ useSlot: Boolean,
+ className: String,
+ customStyle: String,
+ asyncClose: Boolean,
+ messageAlign: String,
+ beforeClose: null,
+ overlayStyle: String,
+ useTitleSlot: Boolean,
+ showCancelButton: Boolean,
+ closeOnClickOverlay: Boolean,
+ confirmButtonOpenType: String,
+ width: null,
+ zIndex: {
+ type: Number,
+ value: 2000,
+ },
+ confirmButtonText: {
+ type: String,
+ value: '确认',
+ },
+ cancelButtonText: {
+ type: String,
+ value: '取消',
+ },
+ confirmButtonColor: {
+ type: String,
+ value: color_1.RED,
+ },
+ cancelButtonColor: {
+ type: String,
+ value: color_1.GRAY,
+ },
+ showConfirmButton: {
+ type: Boolean,
+ value: true,
+ },
+ overlay: {
+ type: Boolean,
+ value: true,
+ },
+ transition: {
+ type: String,
+ value: 'scale',
+ },
+ },
+ data: {
+ loading: {
+ confirm: false,
+ cancel: false,
+ },
+ callback: (function () { }),
+ },
+ methods: {
+ onConfirm: function () {
+ this.handleAction('confirm');
+ },
+ onCancel: function () {
+ this.handleAction('cancel');
+ },
+ onClickOverlay: function () {
+ this.close('overlay');
+ },
+ close: function (action) {
+ var _this = this;
+ this.setData({ show: false });
+ wx.nextTick(function () {
+ _this.$emit('close', action);
+ var callback = _this.data.callback;
+ if (callback) {
+ callback(action, _this);
+ }
+ });
+ },
+ stopLoading: function () {
+ this.setData({
+ loading: {
+ confirm: false,
+ cancel: false,
+ },
+ });
+ },
+ handleAction: function (action) {
+ var _a;
+ var _this = this;
+ this.$emit(action, { dialog: this });
+ var _b = this.data, asyncClose = _b.asyncClose, beforeClose = _b.beforeClose;
+ if (!asyncClose && !beforeClose) {
+ this.close(action);
+ return;
+ }
+ this.setData((_a = {},
+ _a["loading.".concat(action)] = true,
+ _a));
+ if (beforeClose) {
+ (0, utils_1.toPromise)(beforeClose(action)).then(function (value) {
+ if (value) {
+ _this.close(action);
+ }
+ else {
+ _this.stopLoading();
+ }
+ });
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.json
new file mode 100644
index 0000000..43417fc
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.json
@@ -0,0 +1,9 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-popup": "../popup/index",
+ "van-button": "../button/index",
+ "van-goods-action": "../goods-action/index",
+ "van-goods-action-button": "../goods-action-button/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.wxml
new file mode 100644
index 0000000..f49dee4
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.wxml
@@ -0,0 +1,113 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<van-popup
+ show="{{ show }}"
+ z-index="{{ zIndex }}"
+ overlay="{{ overlay }}"
+ transition="{{ transition }}"
+ custom-class="van-dialog van-dialog--{{ theme }} {{ className }}"
+ custom-style="width: {{ utils.addUnit(width) }};{{ customStyle }}"
+ overlay-style="{{ overlayStyle }}"
+ close-on-click-overlay="{{ closeOnClickOverlay }}"
+ bind:close="onClickOverlay"
+>
+ <view
+ wx:if="{{ title || useTitleSlot }}"
+ class="{{ utils.bem('dialog__header', { isolated: !(message || useSlot) }) }}"
+ >
+ <slot wx:if="{{ useTitleSlot }}" name="title" />
+ <block wx:elif="{{ title }}">{{ title }}</block>
+ </view>
+
+ <slot wx:if="{{ useSlot }}" />
+ <view
+ wx:elif="{{ message }}"
+ class="{{ utils.bem('dialog__message', [theme, messageAlign, { hasTitle: title }]) }}"
+ >
+ <text class="van-dialog__message-text">{{ message }}</text>
+ </view>
+
+ <van-goods-action wx:if="{{ theme === 'round-button' }}" custom-class="van-dialog__footer--round-button">
+ <van-goods-action-button
+ wx:if="{{ showCancelButton }}"
+ size="large"
+ loading="{{ loading.cancel }}"
+ class="van-dialog__button van-hairline--right"
+ custom-class="van-dialog__cancel"
+ custom-style="color: {{ cancelButtonColor }}"
+ bind:click="onCancel"
+ >
+ {{ cancelButtonText }}
+ </van-goods-action-button>
+ <van-goods-action-button
+ wx:if="{{ showConfirmButton }}"
+ size="large"
+ class="van-dialog__button"
+ loading="{{ loading.confirm }}"
+ custom-class="van-dialog__confirm"
+ custom-style="color: {{ confirmButtonColor }}"
+
+ open-type="{{ confirmButtonOpenType }}"
+ lang="{{ lang }}"
+ business-id="{{ businessId }}"
+ session-from="{{ sessionFrom }}"
+ send-message-title="{{ sendMessageTitle }}"
+ send-message-path="{{ sendMessagePath }}"
+ send-message-img="{{ sendMessageImg }}"
+ show-message-card="{{ showMessageCard }}"
+ app-parameter="{{ appParameter }}"
+
+ bind:click="onConfirm"
+ bindgetuserinfo="onGetUserInfo"
+ bindcontact="onContact"
+ bindgetphonenumber="onGetPhoneNumber"
+ binderror="onError"
+ bindlaunchapp="onLaunchApp"
+ bindopensetting="onOpenSetting"
+ >
+ {{ confirmButtonText }}
+ </van-goods-action-button>
+ </van-goods-action>
+
+ <view wx:else class="van-hairline--top van-dialog__footer">
+ <van-button
+ wx:if="{{ showCancelButton }}"
+ size="large"
+ loading="{{ loading.cancel }}"
+ class="van-dialog__button van-hairline--right"
+ custom-class="van-dialog__cancel"
+ custom-style="color: {{ cancelButtonColor }}"
+ bind:click="onCancel"
+ >
+ {{ cancelButtonText }}
+ </van-button>
+ <van-button
+ wx:if="{{ showConfirmButton }}"
+ size="large"
+ class="van-dialog__button"
+ loading="{{ loading.confirm }}"
+ custom-class="van-dialog__confirm"
+ custom-style="color: {{ confirmButtonColor }}"
+
+ open-type="{{ confirmButtonOpenType }}"
+ lang="{{ lang }}"
+ business-id="{{ businessId }}"
+ session-from="{{ sessionFrom }}"
+ send-message-title="{{ sendMessageTitle }}"
+ send-message-path="{{ sendMessagePath }}"
+ send-message-img="{{ sendMessageImg }}"
+ show-message-card="{{ showMessageCard }}"
+ app-parameter="{{ appParameter }}"
+
+ bind:click="onConfirm"
+ bindgetuserinfo="onGetUserInfo"
+ bindcontact="onContact"
+ bindgetphonenumber="onGetPhoneNumber"
+ binderror="onError"
+ bindlaunchapp="onLaunchApp"
+ bindopensetting="onOpenSetting"
+ >
+ {{ confirmButtonText }}
+ </van-button>
+ </view>
+</van-popup>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.wxss
new file mode 100644
index 0000000..571861a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dialog/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-dialog{background-color:var(--dialog-background-color,#fff);border-radius:var(--dialog-border-radius,16px);font-size:var(--dialog-font-size,16px);overflow:hidden;top:45%!important;width:var(--dialog-width,320px)}@media (max-width:321px){.van-dialog{width:var(--dialog-small-screen-width,90%)}}.van-dialog__header{font-weight:var(--dialog-header-font-weight,500);line-height:var(--dialog-header-line-height,24px);padding-top:var(--dialog-header-padding-top,24px);text-align:center}.van-dialog__header--isolated{padding:var(--dialog-header-isolated-padding,24px 0)}.van-dialog__message{-webkit-overflow-scrolling:touch;font-size:var(--dialog-message-font-size,14px);line-height:var(--dialog-message-line-height,20px);max-height:var(--dialog-message-max-height,60vh);overflow-y:auto;padding:var(--dialog-message-padding,24px);text-align:center}.van-dialog__message-text{word-wrap:break-word}.van-dialog__message--hasTitle{color:var(--dialog-has-title-message-text-color,#646566);padding-top:var(--dialog-has-title-message-padding-top,8px)}.van-dialog__message--round-button{color:#323233;padding-bottom:16px}.van-dialog__message--left{text-align:left}.van-dialog__message--right{text-align:right}.van-dialog__footer{display:flex}.van-dialog__footer--round-button{padding:8px 24px 16px!important;position:relative!important}.van-dialog__button{flex:1}.van-dialog__cancel,.van-dialog__confirm{border:0!important}.van-dialog-bounce-enter{opacity:0;transform:translate3d(-50%,-50%,0) scale(.7)}.van-dialog-bounce-leave-active{opacity:0;transform:translate3d(-50%,-50%,0) scale(.9)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.js
new file mode 100644
index 0000000..5c63844
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.js
@@ -0,0 +1,14 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ props: {
+ dashed: Boolean,
+ hairline: Boolean,
+ contentPosition: String,
+ fontSize: String,
+ borderColor: String,
+ textColor: String,
+ customStyle: String,
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.json
new file mode 100644
index 0000000..a89ef4d
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.wxml
new file mode 100644
index 0000000..f6a5a45
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.wxml
@@ -0,0 +1,9 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="custom-class {{ utils.bem('divider', [{ dashed, hairline }, contentPosition]) }}"
+ style="{{ computed.rootStyle({ borderColor, textColor, fontSize, customStyle }) }}"
+>
+ <slot />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.wxs
new file mode 100644
index 0000000..215b14f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.wxs
@@ -0,0 +1,18 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function rootStyle(data) {
+ return style([
+ {
+ 'border-color': data.borderColor,
+ color: data.textColor,
+ 'font-size': addUnit(data.fontSize),
+ },
+ data.customStyle,
+ ]);
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.wxss
new file mode 100644
index 0000000..e91dc44
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/divider/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-divider{align-items:center;border:0 solid var(--divider-border-color,#ebedf0);color:var(--divider-text-color,#969799);display:flex;font-size:var(--divider-font-size,14px);line-height:var(--divider-line-height,24px);margin:var(--divider-margin,16px 0)}.van-divider:after,.van-divider:before{border-color:inherit;border-style:inherit;border-width:1px 0 0;box-sizing:border-box;display:block;flex:1;height:1px}.van-divider:before{content:""}.van-divider--hairline:after,.van-divider--hairline:before{transform:scaleY(.5)}.van-divider--dashed{border-style:dashed}.van-divider--center:before,.van-divider--left:before,.van-divider--right:before{margin-right:var(--divider-content-padding,16px)}.van-divider--center:after,.van-divider--left:after,.van-divider--right:after{content:"";margin-left:var(--divider-content-padding,16px)}.van-divider--left:before{max-width:var(--divider-content-left-width,10%)}.van-divider--right:after{max-width:var(--divider-content-right-width,10%)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.js
new file mode 100644
index 0000000..42de11f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.js
@@ -0,0 +1,107 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var relation_1 = require("../common/relation");
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ field: true,
+ relation: (0, relation_1.useParent)('dropdown-menu', function () {
+ this.updateDataFromParent();
+ }),
+ props: {
+ value: {
+ type: null,
+ observer: 'rerender',
+ },
+ title: {
+ type: String,
+ observer: 'rerender',
+ },
+ disabled: Boolean,
+ titleClass: {
+ type: String,
+ observer: 'rerender',
+ },
+ options: {
+ type: Array,
+ value: [],
+ observer: 'rerender',
+ },
+ popupStyle: String,
+ },
+ data: {
+ transition: true,
+ showPopup: false,
+ showWrapper: false,
+ displayTitle: '',
+ },
+ methods: {
+ rerender: function () {
+ var _this = this;
+ wx.nextTick(function () {
+ var _a;
+ (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.updateItemListData();
+ });
+ },
+ updateDataFromParent: function () {
+ if (this.parent) {
+ var _a = this.parent.data, overlay = _a.overlay, duration = _a.duration, activeColor = _a.activeColor, closeOnClickOverlay = _a.closeOnClickOverlay, direction = _a.direction;
+ this.setData({
+ overlay: overlay,
+ duration: duration,
+ activeColor: activeColor,
+ closeOnClickOverlay: closeOnClickOverlay,
+ direction: direction,
+ });
+ }
+ },
+ onOpen: function () {
+ this.$emit('open');
+ },
+ onOpened: function () {
+ this.$emit('opened');
+ },
+ onClose: function () {
+ this.$emit('close');
+ },
+ onClosed: function () {
+ this.$emit('closed');
+ this.setData({ showWrapper: false });
+ },
+ onOptionTap: function (event) {
+ var option = event.currentTarget.dataset.option;
+ var value = option.value;
+ var shouldEmitChange = this.data.value !== value;
+ this.setData({ showPopup: false, value: value });
+ this.$emit('close');
+ this.rerender();
+ if (shouldEmitChange) {
+ this.$emit('change', value);
+ }
+ },
+ toggle: function (show, options) {
+ var _this = this;
+ var _a;
+ if (options === void 0) { options = {}; }
+ var showPopup = this.data.showPopup;
+ if (typeof show !== 'boolean') {
+ show = !showPopup;
+ }
+ if (show === showPopup) {
+ return;
+ }
+ this.setData({
+ transition: !options.immediate,
+ showPopup: show,
+ });
+ if (show) {
+ (_a = this.parent) === null || _a === void 0 ? void 0 : _a.getChildWrapperStyle().then(function (wrapperStyle) {
+ _this.setData({ wrapperStyle: wrapperStyle, showWrapper: true });
+ _this.rerender();
+ });
+ }
+ else {
+ this.rerender();
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.json
new file mode 100644
index 0000000..88d5409
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.json
@@ -0,0 +1,8 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-popup": "../popup/index",
+ "van-cell": "../cell/index",
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml
new file mode 100644
index 0000000..dd75292
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml
@@ -0,0 +1,48 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ wx:if="{{ showWrapper }}"
+ class="{{ utils.bem('dropdown-item', direction) }}"
+ style="{{ wrapperStyle }}"
+>
+ <van-popup
+ show="{{ showPopup }}"
+ custom-style="position: absolute;{{ popupStyle }}"
+ overlay-style="position: absolute;"
+ overlay="{{ overlay }}"
+ position="{{ direction === 'down' ? 'top' : 'bottom' }}"
+ duration="{{ transition ? duration : 0 }}"
+ close-on-click-overlay="{{ closeOnClickOverlay }}"
+ bind:enter="onOpen"
+ bind:leave="onClose"
+ bind:close="toggle"
+ bind:after-enter="onOpened"
+ bind:after-leave="onClosed"
+ >
+ <van-cell
+ wx:for="{{ options }}"
+ wx:key="value"
+ data-option="{{ item }}"
+ class="{{ utils.bem('dropdown-item__option', { active: item.value === value } ) }}"
+ clickable
+ icon="{{ item.icon }}"
+ bind:tap="onOptionTap"
+ >
+ <view
+ slot="title"
+ class="van-dropdown-item__title"
+ style="{{ item.value === value ? 'color:' + activeColor : '' }}"
+ >
+ {{ item.text }}
+ </view>
+ <van-icon
+ wx:if="{{ item.value === value }}"
+ name="success"
+ class="van-dropdown-item__icon"
+ color="{{ activeColor }}"
+ />
+ </van-cell>
+
+ <slot />
+ </van-popup>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss
new file mode 100644
index 0000000..80505e9
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-dropdown-item{left:0;overflow:hidden;position:fixed;right:0}.van-dropdown-item__option{text-align:left}.van-dropdown-item__option--active .van-dropdown-item__icon,.van-dropdown-item__option--active .van-dropdown-item__title{color:var(--dropdown-menu-option-active-color,#ee0a24)}.van-dropdown-item--up{top:0}.van-dropdown-item--down{bottom:0}.van-dropdown-item__icon{display:block;line-height:inherit}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts
new file mode 100644
index 0000000..774eb4c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts
@@ -0,0 +1,5 @@
+export interface Option {
+ text: string;
+ value: string | number;
+ icon: string;
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/shared.js b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/shared.js
new file mode 100644
index 0000000..c8ad2e5
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-item/shared.js
@@ -0,0 +1,2 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.js
new file mode 100644
index 0000000..a589a17
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.js
@@ -0,0 +1,117 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+var utils_1 = require("../common/utils");
+var ARRAY = [];
+(0, component_1.VantComponent)({
+ field: true,
+ relation: (0, relation_1.useChildren)('dropdown-item', function () {
+ this.updateItemListData();
+ }),
+ props: {
+ activeColor: {
+ type: String,
+ observer: 'updateChildrenData',
+ },
+ overlay: {
+ type: Boolean,
+ value: true,
+ observer: 'updateChildrenData',
+ },
+ zIndex: {
+ type: Number,
+ value: 10,
+ },
+ duration: {
+ type: Number,
+ value: 200,
+ observer: 'updateChildrenData',
+ },
+ direction: {
+ type: String,
+ value: 'down',
+ observer: 'updateChildrenData',
+ },
+ closeOnClickOverlay: {
+ type: Boolean,
+ value: true,
+ observer: 'updateChildrenData',
+ },
+ closeOnClickOutside: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ data: {
+ itemListData: [],
+ },
+ beforeCreate: function () {
+ var windowHeight = (0, utils_1.getSystemInfoSync)().windowHeight;
+ this.windowHeight = windowHeight;
+ ARRAY.push(this);
+ },
+ destroyed: function () {
+ var _this = this;
+ ARRAY = ARRAY.filter(function (item) { return item !== _this; });
+ },
+ methods: {
+ updateItemListData: function () {
+ this.setData({
+ itemListData: this.children.map(function (child) { return child.data; }),
+ });
+ },
+ updateChildrenData: function () {
+ this.children.forEach(function (child) {
+ child.updateDataFromParent();
+ });
+ },
+ toggleItem: function (active) {
+ this.children.forEach(function (item, index) {
+ var showPopup = item.data.showPopup;
+ if (index === active) {
+ item.toggle();
+ }
+ else if (showPopup) {
+ item.toggle(false, { immediate: true });
+ }
+ });
+ },
+ close: function () {
+ this.children.forEach(function (child) {
+ child.toggle(false, { immediate: true });
+ });
+ },
+ getChildWrapperStyle: function () {
+ var _this = this;
+ var _a = this.data, zIndex = _a.zIndex, direction = _a.direction;
+ return (0, utils_1.getRect)(this, '.van-dropdown-menu').then(function (rect) {
+ var _a = rect.top, top = _a === void 0 ? 0 : _a, _b = rect.bottom, bottom = _b === void 0 ? 0 : _b;
+ var offset = direction === 'down' ? bottom : _this.windowHeight - top;
+ var wrapperStyle = "z-index: ".concat(zIndex, ";");
+ if (direction === 'down') {
+ wrapperStyle += "top: ".concat((0, utils_1.addUnit)(offset), ";");
+ }
+ else {
+ wrapperStyle += "bottom: ".concat((0, utils_1.addUnit)(offset), ";");
+ }
+ return wrapperStyle;
+ });
+ },
+ onTitleTap: function (event) {
+ var _this = this;
+ var index = event.currentTarget.dataset.index;
+ var child = this.children[index];
+ if (!child.data.disabled) {
+ ARRAY.forEach(function (menuItem) {
+ if (menuItem &&
+ menuItem.data.closeOnClickOutside &&
+ menuItem !== _this) {
+ menuItem.close();
+ }
+ });
+ this.toggleItem(index);
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml
new file mode 100644
index 0000000..cfd661d
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml
@@ -0,0 +1,23 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view class="van-dropdown-menu van-dropdown-menu--top-bottom custom-class">
+ <view
+ wx:for="{{ itemListData }}"
+ wx:key="index"
+ data-index="{{ index }}"
+ class="{{ utils.bem('dropdown-menu__item', { disabled: item.disabled }) }}"
+ bind:tap="onTitleTap"
+ >
+ <view
+ class="{{ item.titleClass }} {{ utils.bem('dropdown-menu__title', { active: item.showPopup, down: item.showPopup === (direction === 'down') }) }}"
+ style="{{ item.showPopup ? 'color:' + activeColor : '' }}"
+ >
+ <view class="van-ellipsis">
+ {{ computed.displayTitle(item) }}
+ </view>
+ </view>
+ </view>
+
+ <slot />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs
new file mode 100644
index 0000000..6538854
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs
@@ -0,0 +1,16 @@
+/* eslint-disable */
+function displayTitle(item) {
+ if (item.title) {
+ return item.title;
+ }
+
+ var match = item.options.filter(function(option) {
+ return option.value === item.value;
+ });
+ var displayTitle = match.length ? match[0].text : '';
+ return displayTitle;
+}
+
+module.exports = {
+ displayTitle: displayTitle
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss
new file mode 100644
index 0000000..daa5748
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-dropdown-menu{background-color:var(--dropdown-menu-background-color,#fff);box-shadow:var(--dropdown-menu-box-shadow,0 2px 12px hsla(210,1%,40%,.12));display:flex;height:var(--dropdown-menu-height,50px);-webkit-user-select:none;user-select:none}.van-dropdown-menu__item{align-items:center;display:flex;flex:1;justify-content:center;min-width:0}.van-dropdown-menu__item:active{opacity:.7}.van-dropdown-menu__item--disabled:active{opacity:1}.van-dropdown-menu__item--disabled .van-dropdown-menu__title{color:var(--dropdown-menu-title-disabled-text-color,#969799)}.van-dropdown-menu__title{box-sizing:border-box;color:var(--dropdown-menu-title-text-color,#323233);font-size:var(--dropdown-menu-title-font-size,15px);line-height:var(--dropdown-menu-title-line-height,18px);max-width:100%;padding:var(--dropdown-menu-title-padding,0 8px);position:relative}.van-dropdown-menu__title:after{border-color:transparent transparent currentcolor currentcolor;border-style:solid;border-width:3px;content:"";margin-top:-5px;opacity:.8;position:absolute;right:-4px;top:50%;transform:rotate(-45deg)}.van-dropdown-menu__title--active{color:var(--dropdown-menu-title-active-text-color,#ee0a24)}.van-dropdown-menu__title--down:after{margin-top:-1px;transform:rotate(135deg)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.js
new file mode 100644
index 0000000..755e638
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.js
@@ -0,0 +1,12 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ props: {
+ description: String,
+ image: {
+ type: String,
+ value: 'default',
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.json
new file mode 100644
index 0000000..a89ef4d
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.wxml
new file mode 100644
index 0000000..9c7b719
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.wxml
@@ -0,0 +1,22 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view class="custom-class van-empty">
+ <view class="van-empty__image">
+ <slot name="image"></slot>
+ </view>
+ <view class="van-empty__image">
+ <image wx:if="{{ image }}" class="van-empty__image__img" src="{{ computed.imageUrl(image) }}" />
+ </view>
+
+ <view class="van-empty__description">
+ <slot name="description"></slot>
+ </view>
+ <view class="van-empty__description">
+ {{ description }}
+ </view>
+
+ <view class="van-empty__bottom">
+ <slot></slot>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.wxs
new file mode 100644
index 0000000..cf92ece
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.wxs
@@ -0,0 +1,15 @@
+/* eslint-disable */
+var PRESETS = ['error', 'search', 'default', 'network'];
+
+function imageUrl(image) {
+ if (PRESETS.indexOf(image) !== -1) {
+ return 'https://img.yzcdn.cn/vant/empty-image-' + image + '.png';
+ }
+
+ return image;
+}
+
+module.exports = {
+ imageUrl: imageUrl,
+};
+
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.wxss
new file mode 100644
index 0000000..0fb74fe
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/empty/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-empty{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:32px 0}.van-empty__image{height:160px;width:160px}.van-empty__image:empty{display:none}.van-empty__image__img{height:100%;width:100%}.van-empty__image:not(:empty)+.van-empty__image{display:none}.van-empty__description{color:#969799;font-size:14px;line-height:20px;margin-top:16px;padding:0 60px}.van-empty__description:empty,.van-empty__description:not(:empty)+.van-empty__description{display:none}.van-empty__bottom{margin-top:24px}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.js
new file mode 100644
index 0000000..5e93c3a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.js
@@ -0,0 +1,122 @@
+"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 utils_1 = require("../common/utils");
+var component_1 = require("../common/component");
+var props_1 = require("./props");
+(0, component_1.VantComponent)({
+ field: true,
+ classes: ['input-class', 'right-icon-class', 'label-class'],
+ props: __assign(__assign(__assign(__assign({}, props_1.commonProps), props_1.inputProps), props_1.textareaProps), { size: String, icon: String, label: String, error: Boolean, center: Boolean, isLink: Boolean, leftIcon: String, rightIcon: String, autosize: null, required: Boolean, iconClass: String, clickable: Boolean, inputAlign: String, customStyle: String, errorMessage: String, arrowDirection: String, showWordLimit: Boolean, errorMessageAlign: String, readonly: {
+ type: Boolean,
+ observer: 'setShowClear',
+ }, clearable: {
+ type: Boolean,
+ observer: 'setShowClear',
+ }, clearTrigger: {
+ type: String,
+ value: 'focus',
+ }, border: {
+ type: Boolean,
+ value: true,
+ }, titleWidth: {
+ type: String,
+ value: '6.2em',
+ }, clearIcon: {
+ type: String,
+ value: 'clear',
+ } }),
+ data: {
+ focused: false,
+ innerValue: '',
+ showClear: false,
+ },
+ created: function () {
+ this.value = this.data.value;
+ this.setData({ innerValue: this.value });
+ },
+ methods: {
+ onInput: function (event) {
+ var _a = (event.detail || {}).value, value = _a === void 0 ? '' : _a;
+ this.value = value;
+ this.setShowClear();
+ this.emitChange();
+ },
+ onFocus: function (event) {
+ this.focused = true;
+ this.setShowClear();
+ this.$emit('focus', event.detail);
+ },
+ onBlur: function (event) {
+ this.focused = false;
+ this.setShowClear();
+ this.$emit('blur', event.detail);
+ },
+ onClickIcon: function () {
+ this.$emit('click-icon');
+ },
+ onClickInput: function (event) {
+ this.$emit('click-input', event.detail);
+ },
+ onClear: function () {
+ var _this = this;
+ this.setData({ innerValue: '' });
+ this.value = '';
+ this.setShowClear();
+ (0, utils_1.nextTick)(function () {
+ _this.emitChange();
+ _this.$emit('clear', '');
+ });
+ },
+ onConfirm: function (event) {
+ var _a = (event.detail || {}).value, value = _a === void 0 ? '' : _a;
+ this.value = value;
+ this.setShowClear();
+ this.$emit('confirm', value);
+ },
+ setValue: function (value) {
+ this.value = value;
+ this.setShowClear();
+ if (value === '') {
+ this.setData({ innerValue: '' });
+ }
+ this.emitChange();
+ },
+ onLineChange: function (event) {
+ this.$emit('linechange', event.detail);
+ },
+ onKeyboardHeightChange: function (event) {
+ this.$emit('keyboardheightchange', event.detail);
+ },
+ emitChange: function () {
+ var _this = this;
+ this.setData({ value: this.value });
+ (0, utils_1.nextTick)(function () {
+ _this.$emit('input', _this.value);
+ _this.$emit('change', _this.value);
+ });
+ },
+ setShowClear: function () {
+ var _a = this.data, clearable = _a.clearable, readonly = _a.readonly, clearTrigger = _a.clearTrigger;
+ var _b = this, focused = _b.focused, value = _b.value;
+ var showClear = false;
+ if (clearable && !readonly) {
+ var hasValue = !!value;
+ var trigger = clearTrigger === 'always' || (clearTrigger === 'focus' && focused);
+ showClear = hasValue && trigger;
+ }
+ this.setData({ showClear: showClear });
+ },
+ noop: function () { },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.json
new file mode 100644
index 0000000..5906c50
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-cell": "../cell/index",
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.wxml
new file mode 100644
index 0000000..ec2e0ea
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.wxml
@@ -0,0 +1,56 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<van-cell
+ size="{{ size }}"
+ icon="{{ leftIcon }}"
+ center="{{ center }}"
+ border="{{ border }}"
+ is-link="{{ isLink }}"
+ required="{{ required }}"
+ clickable="{{ clickable }}"
+ title-width="{{ titleWidth }}"
+ title-style="margin-right: 12px;"
+ custom-style="{{ customStyle }}"
+ arrow-direction="{{ arrowDirection }}"
+ custom-class="van-field"
+>
+ <slot name="left-icon" slot="icon" />
+ <view wx:if="{{ label }}" class="label-class {{ utils.bem('field__label', { disabled }) }}" slot="title">
+ {{ label }}
+ </view>
+ <slot wx:else name="label" slot="title" />
+ <view class="{{ utils.bem('field__body', [type]) }}">
+ <view class="{{ utils.bem('field__control', [inputAlign, 'custom']) }}" bindtap="onClickInput">
+ <slot name="input" />
+ </view>
+ <include wx:if="{{ type === 'textarea' }}" src="./textarea.wxml" />
+ <include wx:else src="./input.wxml" />
+
+ <van-icon
+ wx:if="{{ showClear }}"
+ name="{{ clearIcon }}"
+ class="van-field__clear-root van-field__icon-root"
+ catch:touchstart="onClear"
+ />
+ <view class="van-field__icon-container" bind:tap="onClickIcon">
+ <van-icon
+ wx:if="{{ rightIcon || icon }}"
+ name="{{ rightIcon || icon }}"
+ class="van-field__icon-root {{ iconClass }}"
+ custom-class="right-icon-class"
+ />
+ <slot name="right-icon" />
+ <slot name="icon" />
+ </view>
+ <view class="van-field__button">
+ <slot name="button" />
+ </view>
+ </view>
+ <view wx:if="{{ showWordLimit && maxlength }}" class="van-field__word-limit">
+ <view class="{{ utils.bem('field__word-num', { full: value.length >= maxlength }) }}">{{ value.length >= maxlength ? maxlength : value.length }}</view>/{{ maxlength }}
+ </view>
+ <view wx:if="{{ errorMessage }}" class="{{ utils.bem('field__error-message', [errorMessageAlign, { disabled, error }]) }}">
+ {{ errorMessage }}
+ </view>
+</van-cell>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.wxs
new file mode 100644
index 0000000..78575b9
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.wxs
@@ -0,0 +1,18 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function inputStyle(autosize) {
+ if (autosize && autosize.constructor === 'Object') {
+ return style({
+ 'min-height': addUnit(autosize.minHeight),
+ 'max-height': addUnit(autosize.maxHeight),
+ });
+ }
+
+ return '';
+}
+
+module.exports = {
+ inputStyle: inputStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.wxss
new file mode 100644
index 0000000..7571fe6
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/field/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-field{--cell-icon-size:var(--field-icon-size,16px)}.van-field__label{color:var(--field-label-color,#646566)}.van-field__label--disabled{color:var(--field-disabled-text-color,#c8c9cc)}.van-field__body{align-items:center;display:flex}.van-field__body--textarea{box-sizing:border-box;line-height:1.2em;min-height:var(--cell-line-height,24px);padding:3.6px 0}.van-field__control:empty+.van-field__control{display:block}.van-field__control{background-color:initial;border:0;box-sizing:border-box;color:var(--field-input-text-color,#323233);display:none;height:var(--cell-line-height,24px);line-height:inherit;margin:0;min-height:var(--cell-line-height,24px);padding:0;position:relative;resize:none;text-align:left;width:100%}.van-field__control:empty{display:none}.van-field__control--textarea{height:var(--field-text-area-min-height,18px);min-height:var(--field-text-area-min-height,18px)}.van-field__control--error{color:var(--field-input-error-text-color,#ee0a24)}.van-field__control--disabled{background-color:initial;color:var(--field-input-disabled-text-color,#c8c9cc);opacity:1}.van-field__control--center{text-align:center}.van-field__control--right{text-align:right}.van-field__control--custom{align-items:center;display:flex;min-height:var(--cell-line-height,24px)}.van-field__placeholder{color:var(--field-placeholder-text-color,#c8c9cc);left:0;pointer-events:none;position:absolute;right:0;top:0}.van-field__placeholder--error{color:var(--field-error-message-color,#ee0a24)}.van-field__icon-root{align-items:center;display:flex;min-height:var(--cell-line-height,24px)}.van-field__clear-root,.van-field__icon-container{line-height:inherit;margin-right:calc(var(--padding-xs, 8px)*-1);padding:0 var(--padding-xs,8px);vertical-align:middle}.van-field__button,.van-field__clear-root,.van-field__icon-container{flex-shrink:0}.van-field__clear-root{color:var(--field-clear-icon-color,#c8c9cc);font-size:var(--field-clear-icon-size,16px)}.van-field__icon-container{color:var(--field-icon-container-color,#969799);font-size:var(--field-icon-size,16px)}.van-field__icon-container:empty{display:none}.van-field__button{padding-left:var(--padding-xs,8px)}.van-field__button:empty{display:none}.van-field__error-message{color:var(--field-error-message-color,#ee0a24);font-size:var(--field-error-message-text-font-size,12px);text-align:left}.van-field__error-message--center{text-align:center}.van-field__error-message--right{text-align:right}.van-field__word-limit{color:var(--field-word-limit-color,#646566);font-size:var(--field-word-limit-font-size,12px);line-height:var(--field-word-limit-line-height,16px);margin-top:var(--padding-base,4px);text-align:right}.van-field__word-num{display:inline}.van-field__word-num--full{color:var(--field-word-num-full-color,#ee0a24)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/field/input.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/field/input.wxml
new file mode 100644
index 0000000..efe9a08
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/field/input.wxml
@@ -0,0 +1,28 @@
+<input
+ class="{{ utils.bem('field__control', [inputAlign, { disabled, error }]) }} input-class"
+ type="{{ type }}"
+ focus="{{ focus }}"
+ cursor="{{ cursor }}"
+ value="{{ innerValue }}"
+ auto-focus="{{ autoFocus }}"
+ disabled="{{ disabled || readonly }}"
+ maxlength="{{ maxlength }}"
+ placeholder="{{ placeholder }}"
+ placeholder-style="{{ placeholderStyle }}"
+ placeholder-class="{{ utils.bem('field__placeholder', { error }) }}"
+ confirm-type="{{ confirmType }}"
+ confirm-hold="{{ confirmHold }}"
+ hold-keyboard="{{ holdKeyboard }}"
+ cursor-spacing="{{ cursorSpacing }}"
+ adjust-position="{{ adjustPosition }}"
+ selection-end="{{ selectionEnd }}"
+ selection-start="{{ selectionStart }}"
+ always-embed="{{ alwaysEmbed }}"
+ password="{{ password || type === 'password' }}"
+ bindinput="onInput"
+ bindtap="onClickInput"
+ bindblur="onBlur"
+ bindfocus="onFocus"
+ bindconfirm="onConfirm"
+ bindkeyboardheightchange="onKeyboardHeightChange"
+/>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/field/props.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/field/props.d.ts
new file mode 100644
index 0000000..5cd130a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/field/props.d.ts
@@ -0,0 +1,4 @@
+/// <reference types="miniprogram-api-typings" />
+export declare const commonProps: WechatMiniprogram.Component.PropertyOption;
+export declare const inputProps: WechatMiniprogram.Component.PropertyOption;
+export declare const textareaProps: WechatMiniprogram.Component.PropertyOption;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/field/props.js b/gz-wxparty/miniprogram_npm/@vant/weapp/field/props.js
new file mode 100644
index 0000000..3cb8dca
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/field/props.js
@@ -0,0 +1,67 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.textareaProps = exports.inputProps = exports.commonProps = void 0;
+exports.commonProps = {
+ value: {
+ type: String,
+ observer: function (value) {
+ if (value !== this.value) {
+ this.setData({ innerValue: value });
+ this.value = value;
+ }
+ },
+ },
+ placeholder: String,
+ placeholderStyle: String,
+ placeholderClass: String,
+ disabled: Boolean,
+ maxlength: {
+ type: Number,
+ value: -1,
+ },
+ cursorSpacing: {
+ type: Number,
+ value: 50,
+ },
+ autoFocus: Boolean,
+ focus: Boolean,
+ cursor: {
+ type: Number,
+ value: -1,
+ },
+ selectionStart: {
+ type: Number,
+ value: -1,
+ },
+ selectionEnd: {
+ type: Number,
+ value: -1,
+ },
+ adjustPosition: {
+ type: Boolean,
+ value: true,
+ },
+ holdKeyboard: Boolean,
+};
+exports.inputProps = {
+ type: {
+ type: String,
+ value: 'text',
+ },
+ password: Boolean,
+ confirmType: String,
+ confirmHold: Boolean,
+ alwaysEmbed: Boolean,
+};
+exports.textareaProps = {
+ autoHeight: Boolean,
+ fixed: Boolean,
+ showConfirmBar: {
+ type: Boolean,
+ value: true,
+ },
+ disableDefaultPadding: {
+ type: Boolean,
+ value: true,
+ },
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/field/textarea.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/field/textarea.wxml
new file mode 100644
index 0000000..5015a51
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/field/textarea.wxml
@@ -0,0 +1,29 @@
+<textarea
+ class="{{ utils.bem('field__control', [inputAlign, type, { disabled, error }]) }} input-class"
+ fixed="{{ fixed }}"
+ focus="{{ focus }}"
+ cursor="{{ cursor }}"
+ value="{{ innerValue }}"
+ auto-focus="{{ autoFocus }}"
+ disabled="{{ disabled || readonly }}"
+ maxlength="{{ maxlength }}"
+ placeholder="{{ placeholder }}"
+ placeholder-style="{{ placeholderStyle }}"
+ placeholder-class="{{ utils.bem('field__placeholder', { error, disabled }) }}"
+ auto-height="{{ !!autosize }}"
+ style="{{ computed.inputStyle(autosize) }}"
+ cursor-spacing="{{ cursorSpacing }}"
+ adjust-position="{{ adjustPosition }}"
+ show-confirm-bar="{{ showConfirmBar }}"
+ hold-keyboard="{{ holdKeyboard }}"
+ selection-end="{{ selectionEnd }}"
+ selection-start="{{ selectionStart }}"
+ disable-default-padding="{{ disableDefaultPadding }}"
+ bindinput="onInput"
+ bindtap="onClickInput"
+ bindblur="onBlur"
+ bindfocus="onFocus"
+ bindconfirm="onConfirm"
+ bindlinechange="onLineChange"
+ bindkeyboardheightchange="onKeyboardHeightChange"
+/>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.js
new file mode 100644
index 0000000..9872224
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.js
@@ -0,0 +1,38 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+var button_1 = require("../mixins/button");
+var link_1 = require("../mixins/link");
+(0, component_1.VantComponent)({
+ mixins: [link_1.link, button_1.button],
+ relation: (0, relation_1.useParent)('goods-action'),
+ props: {
+ text: String,
+ color: String,
+ loading: Boolean,
+ disabled: Boolean,
+ plain: Boolean,
+ type: {
+ type: String,
+ value: 'danger',
+ },
+ },
+ methods: {
+ onClick: function (event) {
+ this.$emit('click', event.detail);
+ this.jumpLink();
+ },
+ updateStyle: function () {
+ if (this.parent == null) {
+ return;
+ }
+ var index = this.index;
+ var _a = this.parent.children, children = _a === void 0 ? [] : _a;
+ this.setData({
+ isFirst: index === 0,
+ isLast: index === children.length - 1,
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.json
new file mode 100644
index 0000000..b567686
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-button": "../button/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.wxml
new file mode 100644
index 0000000..4505f21
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.wxml
@@ -0,0 +1,30 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<van-button
+ id="{{ id }}"
+ lang="{{ lang }}"
+ type="{{ type }}"
+ color="{{ color }}"
+ plain="{{ plain }}"
+ loading="{{ loading }}"
+ disabled="{{ disabled }}"
+ open-type="{{ openType }}"
+ class="{{ utils.bem('goods-action-button', [type, { first: isFirst, last: isLast, plain: plain }])}}"
+ custom-class="van-goods-action-button__inner"
+ business-id="{{ businessId }}"
+ session-from="{{ sessionFrom }}"
+ app-parameter="{{ appParameter }}"
+ send-message-img="{{ sendMessageImg }}"
+ send-message-path="{{ sendMessagePath }}"
+ show-message-card="{{ showMessageCard }}"
+ send-message-title="{{ sendMessageTitle }}"
+ bind:click="onClick"
+ binderror="onError"
+ bindcontact="onContact"
+ bindopensetting="onOpenSetting"
+ bindgetuserinfo="onGetUserInfo"
+ bindgetphonenumber="onGetPhoneNumber"
+ bindlaunchapp="onLaunchApp"
+>
+ {{ text }}
+ <slot></slot>
+</van-button>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.wxss
new file mode 100644
index 0000000..759a1d9
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-button/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';:host{flex:1}.van-goods-action-button{--button-warning-background-color:var(--goods-action-button-warning-color,linear-gradient(to right,#ffd01e,#ff8917));--button-danger-background-color:var(--goods-action-button-danger-color,linear-gradient(to right,#ff6034,#ee0a24));--button-default-height:var(--goods-action-button-height,40px);--button-line-height:var(--goods-action-button-line-height,20px);--button-plain-background-color:var(--goods-action-button-plain-color,#fff);--button-border-width:0;display:block}.van-goods-action-button--first{--button-border-radius:999px 0 0 var(--goods-action-button-border-radius,999px);margin-left:5px}.van-goods-action-button--last{--button-border-radius:0 999px var(--goods-action-button-border-radius,999px) 0;margin-right:5px}.van-goods-action-button--first.van-goods-action-button--last{--button-border-radius:var(--goods-action-button-border-radius,999px)}.van-goods-action-button--plain{--button-border-width:1px}.van-goods-action-button__inner{font-weight:var(--font-weight-bold,500)!important;width:100%}@media (max-width:321px){.van-goods-action-button{font-size:13px}}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.js
new file mode 100644
index 0000000..9d9386e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var button_1 = require("../mixins/button");
+var link_1 = require("../mixins/link");
+(0, component_1.VantComponent)({
+ classes: ['icon-class', 'text-class'],
+ mixins: [link_1.link, button_1.button],
+ props: {
+ text: String,
+ dot: Boolean,
+ info: String,
+ icon: String,
+ classPrefix: {
+ type: String,
+ value: 'van-icon',
+ },
+ disabled: Boolean,
+ loading: Boolean,
+ },
+ methods: {
+ onClick: function (event) {
+ this.$emit('click', event.detail);
+ this.jumpLink();
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.json
new file mode 100644
index 0000000..93bfe8a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index",
+ "van-button": "../button/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxml
new file mode 100644
index 0000000..c769685
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxml
@@ -0,0 +1,36 @@
+<van-button
+ square
+ id="{{ id }}"
+ size="large"
+ lang="{{ lang }}"
+ loading="{{ loading }}"
+ disabled="{{ disabled }}"
+ open-type="{{ openType }}"
+ business-id="{{ businessId }}"
+ custom-class="van-goods-action-icon"
+ session-from="{{ sessionFrom }}"
+ app-parameter="{{ appParameter }}"
+ send-message-img="{{ sendMessageImg }}"
+ send-message-path="{{ sendMessagePath }}"
+ show-message-card="{{ showMessageCard }}"
+ send-message-title="{{ sendMessageTitle }}"
+ bind:click="onClick"
+ binderror="onError"
+ bindcontact="onContact"
+ bindopensetting="onOpenSetting"
+ bindgetuserinfo="onGetUserInfo"
+ bindgetphonenumber="onGetPhoneNumber"
+ bindlaunchapp="onLaunchApp"
+>
+ <van-icon
+ wx:if="{{ icon }}"
+ name="{{ icon }}"
+ dot="{{ dot }}"
+ info="{{ info }}"
+ class-prefix="{{ classPrefix }}"
+ class="van-goods-action-icon__icon"
+ custom-class="icon-class"
+ />
+ <slot wx:else name="icon" />
+ <text class="text-class">{{ text }}</text>
+</van-button>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxss
new file mode 100644
index 0000000..6e4758d
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-goods-action-icon{border:none!important;color:var(--goods-action-icon-text-color,#646566)!important;display:flex!important;flex-direction:column;font-size:var(--goods-action-icon-font-size,10px)!important;height:var(--goods-action-icon-height,50px)!important;justify-content:center!important;line-height:1!important;min-width:var(--goods-action-icon-width,48px)}.van-goods-action-icon__icon{color:var(--goods-action-icon-color,#323233);display:flex;font-size:var(--goods-action-icon-size,18px);margin:0 auto 5px}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.js
new file mode 100644
index 0000000..e49bcbc
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+(0, component_1.VantComponent)({
+ relation: (0, relation_1.useChildren)('goods-action-button', function () {
+ this.children.forEach(function (item) {
+ item.updateStyle();
+ });
+ }),
+ props: {
+ safeAreaInsetBottom: {
+ type: Boolean,
+ value: true,
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.wxml
new file mode 100644
index 0000000..569450c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.wxml
@@ -0,0 +1,5 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view class="custom-class {{ utils.bem('goods-action', { safe: safeAreaInsetBottom }) }}">
+ <slot />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.wxss
new file mode 100644
index 0000000..7793e77
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/goods-action/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-goods-action{align-items:center;background-color:var(--goods-action-background-color,#fff);bottom:0;box-sizing:initial;display:flex;height:var(--goods-action-height,50px);left:0;position:fixed;right:0}.van-goods-action--safe{padding-bottom:env(safe-area-inset-bottom)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.js
new file mode 100644
index 0000000..a7d47a2
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.js
@@ -0,0 +1,54 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+var link_1 = require("../mixins/link");
+(0, component_1.VantComponent)({
+ relation: (0, relation_1.useParent)('grid'),
+ classes: ['content-class', 'icon-class', 'text-class'],
+ mixins: [link_1.link],
+ props: {
+ icon: String,
+ iconColor: String,
+ iconPrefix: {
+ type: String,
+ value: 'van-icon',
+ },
+ dot: Boolean,
+ info: null,
+ badge: null,
+ text: String,
+ useSlot: Boolean,
+ },
+ data: {
+ viewStyle: '',
+ },
+ mounted: function () {
+ this.updateStyle();
+ },
+ methods: {
+ updateStyle: function () {
+ if (!this.parent) {
+ return;
+ }
+ var _a = this.parent, data = _a.data, children = _a.children;
+ var columnNum = data.columnNum, border = data.border, square = data.square, gutter = data.gutter, clickable = data.clickable, center = data.center, direction = data.direction, reverse = data.reverse, iconSize = data.iconSize;
+ this.setData({
+ center: center,
+ border: border,
+ square: square,
+ gutter: gutter,
+ clickable: clickable,
+ direction: direction,
+ reverse: reverse,
+ iconSize: iconSize,
+ index: children.indexOf(this),
+ columnNum: columnNum,
+ });
+ },
+ onClick: function () {
+ this.$emit('click');
+ this.jumpLink();
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.json
new file mode 100644
index 0000000..0a336c0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.wxml
new file mode 100644
index 0000000..e95087d
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.wxml
@@ -0,0 +1,27 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="custom-class {{ utils.bem('grid-item', { square }) }}"
+ style="{{ computed.wrapperStyle({ square, gutter, columnNum, index }) }}"
+ bindtap="onClick"
+>
+ <view
+ class="content-class {{ utils.bem('grid-item__content', [direction, { center, square, reverse, clickable, surround: border && gutter }]) }} {{ border ? 'van-hairline--surround' : '' }}"
+ style="{{ computed.contentStyle({ square, gutter }) }}"
+ >
+ <block wx:if="{{ useSlot }}">
+ <slot />
+ </block>
+ <block wx:else>
+ <view class="van-grid-item__icon icon-class">
+ <van-icon wx:if="{{ icon }}" name="{{ icon }}" color="{{ iconColor }}" class-prefix="{{ iconPrefix }}" dot="{{ dot }}" info="{{ badge || info }}" size="{{ iconSize }}" />
+ <slot wx:else name="icon"></slot>
+ </view>
+ <view class="van-grid-item__text text-class">
+ <text wx:if="{{ text }}">{{ text }}</text>
+ <slot wx:else name="text"></slot>
+ </view>
+ </block>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.wxs
new file mode 100644
index 0000000..2cfe37d
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.wxs
@@ -0,0 +1,32 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function wrapperStyle(data) {
+ var width = 100 / data.columnNum + '%';
+
+ return style({
+ width: width,
+ 'padding-top': data.square ? width : null,
+ 'padding-right': addUnit(data.gutter),
+ 'margin-top':
+ data.index >= data.columnNum && !data.square
+ ? addUnit(data.gutter)
+ : null,
+ });
+}
+
+function contentStyle(data) {
+ return data.square
+ ? style({
+ right: addUnit(data.gutter),
+ bottom: addUnit(data.gutter),
+ height: 'auto',
+ })
+ : '';
+}
+
+module.exports = {
+ wrapperStyle: wrapperStyle,
+ contentStyle: contentStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.wxss
new file mode 100644
index 0000000..acaea84
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/grid-item/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-grid-item{box-sizing:border-box;float:left;position:relative}.van-grid-item--square{height:0}.van-grid-item__content{background-color:var(--grid-item-content-background-color,#fff);box-sizing:border-box;display:flex;flex-direction:column;height:100%;padding:var(--grid-item-content-padding,16px 8px)}.van-grid-item__content:after{border-width:0 1px 1px 0;z-index:1}.van-grid-item__content--surround:after{border-width:1px}.van-grid-item__content--center{align-items:center;justify-content:center}.van-grid-item__content--square{left:0;position:absolute;right:0;top:0}.van-grid-item__content--horizontal{flex-direction:row}.van-grid-item__content--horizontal .van-grid-item__text{margin:0 0 0 8px}.van-grid-item__content--reverse{flex-direction:column-reverse}.van-grid-item__content--reverse .van-grid-item__text{margin:0 0 8px}.van-grid-item__content--horizontal.van-grid-item__content--reverse{flex-direction:row-reverse}.van-grid-item__content--horizontal.van-grid-item__content--reverse .van-grid-item__text{margin:0 8px 0 0}.van-grid-item__content--clickable:active{background-color:var(--grid-item-content-active-color,#f2f3f5)}.van-grid-item__icon{align-items:center;display:flex;font-size:var(--grid-item-icon-size,26px);height:var(--grid-item-icon-size,26px)}.van-grid-item__text{word-wrap:break-word;color:var(--grid-item-text-color,#646566);font-size:var(--grid-item-text-font-size,12px)}.van-grid-item__icon+.van-grid-item__text{margin-top:8px}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.js
new file mode 100644
index 0000000..28d14f4
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.js
@@ -0,0 +1,57 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+(0, component_1.VantComponent)({
+ relation: (0, relation_1.useChildren)('grid-item'),
+ props: {
+ square: {
+ type: Boolean,
+ observer: 'updateChildren',
+ },
+ gutter: {
+ type: null,
+ value: 0,
+ observer: 'updateChildren',
+ },
+ clickable: {
+ type: Boolean,
+ observer: 'updateChildren',
+ },
+ columnNum: {
+ type: Number,
+ value: 4,
+ observer: 'updateChildren',
+ },
+ center: {
+ type: Boolean,
+ value: true,
+ observer: 'updateChildren',
+ },
+ border: {
+ type: Boolean,
+ value: true,
+ observer: 'updateChildren',
+ },
+ direction: {
+ type: String,
+ observer: 'updateChildren',
+ },
+ iconSize: {
+ type: String,
+ observer: 'updateChildren',
+ },
+ reverse: {
+ type: Boolean,
+ value: false,
+ observer: 'updateChildren',
+ },
+ },
+ methods: {
+ updateChildren: function () {
+ this.children.forEach(function (child) {
+ child.updateStyle();
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.wxml
new file mode 100644
index 0000000..2e4118f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.wxml
@@ -0,0 +1,8 @@
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="van-grid custom-class {{ border && !gutter ? 'van-hairline--top' : '' }}"
+ style="{{ computed.rootStyle({ gutter }) }}"
+>
+ <slot />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.wxs
new file mode 100644
index 0000000..cd3b1bd
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.wxs
@@ -0,0 +1,13 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function rootStyle(data) {
+ return style({
+ 'padding-left': addUnit(data.gutter),
+ });
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.wxss
new file mode 100644
index 0000000..e347440
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/grid/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-grid{box-sizing:border-box;overflow:hidden;position:relative}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.js
new file mode 100644
index 0000000..103b11e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.js
@@ -0,0 +1,22 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ props: {
+ dot: Boolean,
+ info: null,
+ size: null,
+ color: String,
+ customStyle: String,
+ classPrefix: {
+ type: String,
+ value: 'van-icon',
+ },
+ name: String,
+ },
+ methods: {
+ onClick: function () {
+ this.$emit('click');
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.json
new file mode 100644
index 0000000..bf0ebe0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-info": "../info/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.wxml
new file mode 100644
index 0000000..3c70174
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.wxml
@@ -0,0 +1,20 @@
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="{{ computed.rootClass({ classPrefix, name }) }}"
+ style="{{ computed.rootStyle({ customStyle, color, size }) }}"
+ bindtap="onClick"
+>
+ <van-info
+ wx:if="{{ info !== null || dot }}"
+ dot="{{ dot }}"
+ info="{{ info }}"
+ custom-class="van-icon__info"
+ />
+ <image
+ wx:if="{{ computed.isImage(name) }}"
+ src="{{ name }}"
+ mode="aspectFit"
+ class="van-icon__image"
+ />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.wxs
new file mode 100644
index 0000000..45e3aa0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.wxs
@@ -0,0 +1,39 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function isImage(name) {
+ return name.indexOf('/') !== -1;
+}
+
+function rootClass(data) {
+ var classes = ['custom-class'];
+
+ if (data.classPrefix != null) {
+ classes.push(data.classPrefix);
+ }
+
+ if (isImage(data.name)) {
+ classes.push('van-icon--image');
+ } else if (data.classPrefix != null) {
+ classes.push(data.classPrefix + '-' + data.name);
+ }
+
+ return classes.join(' ');
+}
+
+function rootStyle(data) {
+ return style([
+ {
+ color: data.color,
+ 'font-size': addUnit(data.size),
+ },
+ data.customStyle,
+ ]);
+}
+
+module.exports = {
+ isImage: isImage,
+ rootClass: rootClass,
+ rootStyle: rootStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.wxss
new file mode 100644
index 0000000..9be9372
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/icon/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-icon{text-rendering:auto;-webkit-font-smoothing:antialiased;font:normal normal normal 14px/1 vant-icon;font-size:inherit;position:relative}.van-icon,.van-icon:before{display:inline-block}.van-icon-exchange:before{content:"\e6af"}.van-icon-eye:before{content:"\e6b0"}.van-icon-enlarge:before{content:"\e6b1"}.van-icon-expand-o:before{content:"\e6b2"}.van-icon-eye-o:before{content:"\e6b3"}.van-icon-expand:before{content:"\e6b4"}.van-icon-filter-o:before{content:"\e6b5"}.van-icon-fire:before{content:"\e6b6"}.van-icon-fail:before{content:"\e6b7"}.van-icon-failure:before{content:"\e6b8"}.van-icon-fire-o:before{content:"\e6b9"}.van-icon-flag-o:before{content:"\e6ba"}.van-icon-font:before{content:"\e6bb"}.van-icon-font-o:before{content:"\e6bc"}.van-icon-gem-o:before{content:"\e6bd"}.van-icon-flower-o:before{content:"\e6be"}.van-icon-gem:before{content:"\e6bf"}.van-icon-gift-card:before{content:"\e6c0"}.van-icon-friends:before{content:"\e6c1"}.van-icon-friends-o:before{content:"\e6c2"}.van-icon-gold-coin:before{content:"\e6c3"}.van-icon-gold-coin-o:before{content:"\e6c4"}.van-icon-good-job-o:before{content:"\e6c5"}.van-icon-gift:before{content:"\e6c6"}.van-icon-gift-o:before{content:"\e6c7"}.van-icon-gift-card-o:before{content:"\e6c8"}.van-icon-good-job:before{content:"\e6c9"}.van-icon-home-o:before{content:"\e6ca"}.van-icon-goods-collect:before{content:"\e6cb"}.van-icon-graphic:before{content:"\e6cc"}.van-icon-goods-collect-o:before{content:"\e6cd"}.van-icon-hot-o:before{content:"\e6ce"}.van-icon-info:before{content:"\e6cf"}.van-icon-hotel-o:before{content:"\e6d0"}.van-icon-info-o:before{content:"\e6d1"}.van-icon-hot-sale-o:before{content:"\e6d2"}.van-icon-hot:before{content:"\e6d3"}.van-icon-like:before{content:"\e6d4"}.van-icon-idcard:before{content:"\e6d5"}.van-icon-invitation:before{content:"\e6d6"}.van-icon-like-o:before{content:"\e6d7"}.van-icon-hot-sale:before{content:"\e6d8"}.van-icon-location-o:before{content:"\e6d9"}.van-icon-location:before{content:"\e6da"}.van-icon-label:before{content:"\e6db"}.van-icon-lock:before{content:"\e6dc"}.van-icon-label-o:before{content:"\e6dd"}.van-icon-map-marked:before{content:"\e6de"}.van-icon-logistics:before{content:"\e6df"}.van-icon-manager:before{content:"\e6e0"}.van-icon-more:before{content:"\e6e1"}.van-icon-live:before{content:"\e6e2"}.van-icon-manager-o:before{content:"\e6e3"}.van-icon-medal:before{content:"\e6e4"}.van-icon-more-o:before{content:"\e6e5"}.van-icon-music-o:before{content:"\e6e6"}.van-icon-music:before{content:"\e6e7"}.van-icon-new-arrival-o:before{content:"\e6e8"}.van-icon-medal-o:before{content:"\e6e9"}.van-icon-new-o:before{content:"\e6ea"}.van-icon-free-postage:before{content:"\e6eb"}.van-icon-newspaper-o:before{content:"\e6ec"}.van-icon-new-arrival:before{content:"\e6ed"}.van-icon-minus:before{content:"\e6ee"}.van-icon-orders-o:before{content:"\e6ef"}.van-icon-new:before{content:"\e6f0"}.van-icon-paid:before{content:"\e6f1"}.van-icon-notes-o:before{content:"\e6f2"}.van-icon-other-pay:before{content:"\e6f3"}.van-icon-pause-circle:before{content:"\e6f4"}.van-icon-pause:before{content:"\e6f5"}.van-icon-pause-circle-o:before{content:"\e6f6"}.van-icon-peer-pay:before{content:"\e6f7"}.van-icon-pending-payment:before{content:"\e6f8"}.van-icon-passed:before{content:"\e6f9"}.van-icon-plus:before{content:"\e6fa"}.van-icon-phone-circle-o:before{content:"\e6fb"}.van-icon-phone-o:before{content:"\e6fc"}.van-icon-printer:before{content:"\e6fd"}.van-icon-photo-fail:before{content:"\e6fe"}.van-icon-phone:before{content:"\e6ff"}.van-icon-photo-o:before{content:"\e700"}.van-icon-play-circle:before{content:"\e701"}.van-icon-play:before{content:"\e702"}.van-icon-phone-circle:before{content:"\e703"}.van-icon-point-gift-o:before{content:"\e704"}.van-icon-point-gift:before{content:"\e705"}.van-icon-play-circle-o:before{content:"\e706"}.van-icon-shrink:before{content:"\e707"}.van-icon-photo:before{content:"\e708"}.van-icon-qr:before{content:"\e709"}.van-icon-qr-invalid:before{content:"\e70a"}.van-icon-question-o:before{content:"\e70b"}.van-icon-revoke:before{content:"\e70c"}.van-icon-replay:before{content:"\e70d"}.van-icon-service:before{content:"\e70e"}.van-icon-question:before{content:"\e70f"}.van-icon-search:before{content:"\e710"}.van-icon-refund-o:before{content:"\e711"}.van-icon-service-o:before{content:"\e712"}.van-icon-scan:before{content:"\e713"}.van-icon-share:before{content:"\e714"}.van-icon-send-gift-o:before{content:"\e715"}.van-icon-share-o:before{content:"\e716"}.van-icon-setting:before{content:"\e717"}.van-icon-points:before{content:"\e718"}.van-icon-photograph:before{content:"\e719"}.van-icon-shop:before{content:"\e71a"}.van-icon-shop-o:before{content:"\e71b"}.van-icon-shop-collect-o:before{content:"\e71c"}.van-icon-shop-collect:before{content:"\e71d"}.van-icon-smile:before{content:"\e71e"}.van-icon-shopping-cart-o:before{content:"\e71f"}.van-icon-sign:before{content:"\e720"}.van-icon-sort:before{content:"\e721"}.van-icon-star-o:before{content:"\e722"}.van-icon-smile-comment-o:before{content:"\e723"}.van-icon-stop:before{content:"\e724"}.van-icon-stop-circle-o:before{content:"\e725"}.van-icon-smile-o:before{content:"\e726"}.van-icon-star:before{content:"\e727"}.van-icon-success:before{content:"\e728"}.van-icon-stop-circle:before{content:"\e729"}.van-icon-records:before{content:"\e72a"}.van-icon-shopping-cart:before{content:"\e72b"}.van-icon-tosend:before{content:"\e72c"}.van-icon-todo-list:before{content:"\e72d"}.van-icon-thumb-circle-o:before{content:"\e72e"}.van-icon-thumb-circle:before{content:"\e72f"}.van-icon-umbrella-circle:before{content:"\e730"}.van-icon-underway:before{content:"\e731"}.van-icon-upgrade:before{content:"\e732"}.van-icon-todo-list-o:before{content:"\e733"}.van-icon-tv-o:before{content:"\e734"}.van-icon-underway-o:before{content:"\e735"}.van-icon-user-o:before{content:"\e736"}.van-icon-vip-card-o:before{content:"\e737"}.van-icon-vip-card:before{content:"\e738"}.van-icon-send-gift:before{content:"\e739"}.van-icon-wap-home:before{content:"\e73a"}.van-icon-wap-nav:before{content:"\e73b"}.van-icon-volume-o:before{content:"\e73c"}.van-icon-video:before{content:"\e73d"}.van-icon-wap-home-o:before{content:"\e73e"}.van-icon-volume:before{content:"\e73f"}.van-icon-warning:before{content:"\e740"}.van-icon-weapp-nav:before{content:"\e741"}.van-icon-wechat-pay:before{content:"\e742"}.van-icon-warning-o:before{content:"\e743"}.van-icon-wechat:before{content:"\e744"}.van-icon-setting-o:before{content:"\e745"}.van-icon-youzan-shield:before{content:"\e746"}.van-icon-warn-o:before{content:"\e747"}.van-icon-smile-comment:before{content:"\e748"}.van-icon-user-circle-o:before{content:"\e749"}.van-icon-video-o:before{content:"\e74a"}.van-icon-add-square:before{content:"\e65c"}.van-icon-add:before{content:"\e65d"}.van-icon-arrow-down:before{content:"\e65e"}.van-icon-arrow-up:before{content:"\e65f"}.van-icon-arrow:before{content:"\e660"}.van-icon-after-sale:before{content:"\e661"}.van-icon-add-o:before{content:"\e662"}.van-icon-alipay:before{content:"\e663"}.van-icon-ascending:before{content:"\e664"}.van-icon-apps-o:before{content:"\e665"}.van-icon-aim:before{content:"\e666"}.van-icon-award:before{content:"\e667"}.van-icon-arrow-left:before{content:"\e668"}.van-icon-award-o:before{content:"\e669"}.van-icon-audio:before{content:"\e66a"}.van-icon-bag-o:before{content:"\e66b"}.van-icon-balance-list:before{content:"\e66c"}.van-icon-back-top:before{content:"\e66d"}.van-icon-bag:before{content:"\e66e"}.van-icon-balance-pay:before{content:"\e66f"}.van-icon-balance-o:before{content:"\e670"}.van-icon-bar-chart-o:before{content:"\e671"}.van-icon-bars:before{content:"\e672"}.van-icon-balance-list-o:before{content:"\e673"}.van-icon-birthday-cake-o:before{content:"\e674"}.van-icon-bookmark:before{content:"\e675"}.van-icon-bill:before{content:"\e676"}.van-icon-bell:before{content:"\e677"}.van-icon-browsing-history-o:before{content:"\e678"}.van-icon-browsing-history:before{content:"\e679"}.van-icon-bookmark-o:before{content:"\e67a"}.van-icon-bulb-o:before{content:"\e67b"}.van-icon-bullhorn-o:before{content:"\e67c"}.van-icon-bill-o:before{content:"\e67d"}.van-icon-calendar-o:before{content:"\e67e"}.van-icon-brush-o:before{content:"\e67f"}.van-icon-card:before{content:"\e680"}.van-icon-cart-o:before{content:"\e681"}.van-icon-cart-circle:before{content:"\e682"}.van-icon-cart-circle-o:before{content:"\e683"}.van-icon-cart:before{content:"\e684"}.van-icon-cash-on-deliver:before{content:"\e685"}.van-icon-cash-back-record:before{content:"\e686"}.van-icon-cashier-o:before{content:"\e687"}.van-icon-chart-trending-o:before{content:"\e688"}.van-icon-certificate:before{content:"\e689"}.van-icon-chat:before{content:"\e68a"}.van-icon-clear:before{content:"\e68b"}.van-icon-chat-o:before{content:"\e68c"}.van-icon-checked:before{content:"\e68d"}.van-icon-clock:before{content:"\e68e"}.van-icon-clock-o:before{content:"\e68f"}.van-icon-close:before{content:"\e690"}.van-icon-closed-eye:before{content:"\e691"}.van-icon-circle:before{content:"\e692"}.van-icon-cluster-o:before{content:"\e693"}.van-icon-column:before{content:"\e694"}.van-icon-comment-circle-o:before{content:"\e695"}.van-icon-cluster:before{content:"\e696"}.van-icon-comment:before{content:"\e697"}.van-icon-comment-o:before{content:"\e698"}.van-icon-comment-circle:before{content:"\e699"}.van-icon-completed:before{content:"\e69a"}.van-icon-credit-pay:before{content:"\e69b"}.van-icon-coupon:before{content:"\e69c"}.van-icon-debit-pay:before{content:"\e69d"}.van-icon-coupon-o:before{content:"\e69e"}.van-icon-contact:before{content:"\e69f"}.van-icon-descending:before{content:"\e6a0"}.van-icon-desktop-o:before{content:"\e6a1"}.van-icon-diamond-o:before{content:"\e6a2"}.van-icon-description:before{content:"\e6a3"}.van-icon-delete:before{content:"\e6a4"}.van-icon-diamond:before{content:"\e6a5"}.van-icon-delete-o:before{content:"\e6a6"}.van-icon-cross:before{content:"\e6a7"}.van-icon-edit:before{content:"\e6a8"}.van-icon-ellipsis:before{content:"\e6a9"}.van-icon-down:before{content:"\e6aa"}.van-icon-discount:before{content:"\e6ab"}.van-icon-ecard-pay:before{content:"\e6ac"}.van-icon-envelop-o:before{content:"\e6ae"}.van-icon-shield-o:before{content:"\e74b"}.van-icon-guide-o:before{content:"\e74c"}.van-icon-cash-o:before{content:"\e74d"}@font-face{font-display:auto;font-family:vant-icon;font-style:normal;font-weight:400;src:url(https://at.alicdn.com/t/font_2553510_5imfhdc20ag.woff2?t=1640074908811) format("woff2"),url(https://at.alicdn.com/t/font_2553510_5imfhdc20ag.woff?t=1640074908811) format("woff"),url(https://at.alicdn.com/t/font_2553510_5imfhdc20ag.ttf?t=1640074908811) format("truetype")}:host{align-items:center;display:inline-flex;justify-content:center}.van-icon--image{height:1em;width:1em}.van-icon__image{height:100%;width:100%}.van-icon__info{z-index:1}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.js
new file mode 100644
index 0000000..d4c62fc
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.js
@@ -0,0 +1,62 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var button_1 = require("../mixins/button");
+(0, component_1.VantComponent)({
+ mixins: [button_1.button],
+ classes: ['custom-class', 'loading-class', 'error-class', 'image-class'],
+ props: {
+ src: {
+ type: String,
+ observer: function () {
+ this.setData({
+ error: false,
+ loading: true,
+ });
+ },
+ },
+ round: Boolean,
+ width: null,
+ height: null,
+ radius: null,
+ lazyLoad: Boolean,
+ useErrorSlot: Boolean,
+ useLoadingSlot: Boolean,
+ showMenuByLongpress: Boolean,
+ fit: {
+ type: String,
+ value: 'fill',
+ },
+ showError: {
+ type: Boolean,
+ value: true,
+ },
+ showLoading: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ data: {
+ error: false,
+ loading: true,
+ viewStyle: '',
+ },
+ methods: {
+ onLoad: function (event) {
+ this.setData({
+ loading: false,
+ });
+ this.$emit('load', event.detail);
+ },
+ onError: function (event) {
+ this.setData({
+ loading: false,
+ error: true,
+ });
+ this.$emit('error', event.detail);
+ },
+ onClick: function (event) {
+ this.$emit('click', event.detail);
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.json
new file mode 100644
index 0000000..e00a588
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index",
+ "van-loading": "../loading/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.wxml
new file mode 100644
index 0000000..d3092bd
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.wxml
@@ -0,0 +1,34 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ style="{{ computed.rootStyle({ width, height, radius }) }}"
+ class="custom-class {{ utils.bem('image', { round })}}"
+ bind:tap="onClick"
+>
+ <image
+ wx:if="{{ !error }}"
+ src="{{ src }}"
+ mode="{{ computed.mode(fit) }}"
+ lazy-load="{{ lazyLoad }}"
+ class="image-class van-image__img"
+ show-menu-by-longpress="{{ showMenuByLongpress }}"
+ bind:load="onLoad"
+ bind:error="onError"
+ />
+
+ <view
+ wx:if="{{ loading && showLoading }}"
+ class="loading-class van-image__loading"
+ >
+ <slot wx:if="{{ useLoadingSlot }}" name="loading" />
+ <van-icon wx:else name="photo" custom-class="van-image__loading-icon" />
+ </view>
+ <view
+ wx:if="{{ error && showError }}"
+ class="error-class van-image__error"
+ >
+ <slot wx:if="{{ useErrorSlot }}" name="error" />
+ <van-icon wx:else name="photo-fail" custom-class="van-image__error-icon" />
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.wxs
new file mode 100644
index 0000000..cec14b8
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.wxs
@@ -0,0 +1,32 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function rootStyle(data) {
+ return style([
+ {
+ width: addUnit(data.width),
+ height: addUnit(data.height),
+ 'border-radius': addUnit(data.radius),
+ },
+ data.radius ? 'overflow: hidden' : null,
+ ]);
+}
+
+var FIT_MODE_MAP = {
+ none: 'center',
+ fill: 'scaleToFill',
+ cover: 'aspectFill',
+ contain: 'aspectFit',
+ widthFix: 'widthFix',
+ heightFix: 'heightFix',
+};
+
+function mode(fit) {
+ return FIT_MODE_MAP[fit];
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+ mode: mode,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.wxss
new file mode 100644
index 0000000..a9c6ebb
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/image/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-image{display:inline-block;position:relative}.van-image--round{border-radius:50%;overflow:hidden}.van-image--round .van-image__img{border-radius:inherit}.van-image__error,.van-image__img,.van-image__loading{display:block;height:100%;width:100%}.van-image__error,.van-image__loading{align-items:center;background-color:var(--image-placeholder-background-color,#f7f8fa);color:var(--image-placeholder-text-color,#969799);display:flex;flex-direction:column;font-size:var(--image-placeholder-font-size,14px);justify-content:center;left:0;position:absolute;top:0}.van-image__loading-icon{color:var(--image-loading-icon-color,#dcdee0);font-size:var(--image-loading-icon-size,32px)!important}.van-image__error-icon{color:var(--image-error-icon-color,#dcdee0);font-size:var(--image-error-icon-size,32px)!important}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.js
new file mode 100644
index 0000000..9a361a9
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.js
@@ -0,0 +1,28 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var utils_1 = require("../common/utils");
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+(0, component_1.VantComponent)({
+ relation: (0, relation_1.useParent)('index-bar'),
+ props: {
+ useSlot: Boolean,
+ index: null,
+ },
+ data: {
+ active: false,
+ wrapperStyle: '',
+ anchorStyle: '',
+ },
+ methods: {
+ scrollIntoView: function (scrollTop) {
+ var _this = this;
+ (0, utils_1.getRect)(this, '.van-index-anchor-wrapper').then(function (rect) {
+ wx.pageScrollTo({
+ duration: 0,
+ scrollTop: scrollTop + rect.top - _this.parent.data.stickyOffsetTop,
+ });
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.wxml
new file mode 100644
index 0000000..49affa7
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.wxml
@@ -0,0 +1,14 @@
+<view
+ class="van-index-anchor-wrapper"
+ style="{{ wrapperStyle }}"
+>
+ <view
+ class="van-index-anchor {{ active ? 'van-index-anchor--active van-hairline--bottom' : '' }}"
+ style="{{ anchorStyle }}"
+ >
+ <slot wx:if="{{ useSlot }}"/>
+ <block wx:else>
+ <text>{{ index }}</text>
+ </block>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.wxss
new file mode 100644
index 0000000..4b91560
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/index-anchor/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-index-anchor{background-color:var(--index-anchor-background-color,transparent);color:var(--index-anchor-text-color,#323233);font-size:var(--index-anchor-font-size,14px);font-weight:var(--index-anchor-font-weight,500);line-height:var(--index-anchor-line-height,32px);padding:var(--index-anchor-padding,0 16px)}.van-index-anchor--active{background-color:var(--index-anchor-active-background-color,#fff);color:var(--index-anchor-active-text-color,#07c160);left:0;right:0}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.js
new file mode 100644
index 0000000..afc5412
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.js
@@ -0,0 +1,243 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var color_1 = require("../common/color");
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+var utils_1 = require("../common/utils");
+var page_scroll_1 = require("../mixins/page-scroll");
+var indexList = function () {
+ var indexList = [];
+ var charCodeOfA = 'A'.charCodeAt(0);
+ for (var i = 0; i < 26; i++) {
+ indexList.push(String.fromCharCode(charCodeOfA + i));
+ }
+ return indexList;
+};
+(0, component_1.VantComponent)({
+ relation: (0, relation_1.useChildren)('index-anchor', function () {
+ this.updateData();
+ }),
+ props: {
+ sticky: {
+ type: Boolean,
+ value: true,
+ },
+ zIndex: {
+ type: Number,
+ value: 1,
+ },
+ highlightColor: {
+ type: String,
+ value: color_1.GREEN,
+ },
+ stickyOffsetTop: {
+ type: Number,
+ value: 0,
+ },
+ indexList: {
+ type: Array,
+ value: indexList(),
+ },
+ },
+ mixins: [
+ (0, page_scroll_1.pageScrollMixin)(function (event) {
+ this.scrollTop = (event === null || event === void 0 ? void 0 : event.scrollTop) || 0;
+ this.onScroll();
+ }),
+ ],
+ data: {
+ activeAnchorIndex: null,
+ showSidebar: false,
+ },
+ created: function () {
+ this.scrollTop = 0;
+ },
+ methods: {
+ updateData: function () {
+ var _this = this;
+ wx.nextTick(function () {
+ if (_this.timer != null) {
+ clearTimeout(_this.timer);
+ }
+ _this.timer = setTimeout(function () {
+ _this.setData({
+ showSidebar: !!_this.children.length,
+ });
+ _this.setRect().then(function () {
+ _this.onScroll();
+ });
+ }, 0);
+ });
+ },
+ setRect: function () {
+ return Promise.all([
+ this.setAnchorsRect(),
+ this.setListRect(),
+ this.setSiderbarRect(),
+ ]);
+ },
+ setAnchorsRect: function () {
+ var _this = this;
+ return Promise.all(this.children.map(function (anchor) {
+ return (0, utils_1.getRect)(anchor, '.van-index-anchor-wrapper').then(function (rect) {
+ Object.assign(anchor, {
+ height: rect.height,
+ top: rect.top + _this.scrollTop,
+ });
+ });
+ }));
+ },
+ setListRect: function () {
+ var _this = this;
+ return (0, utils_1.getRect)(this, '.van-index-bar').then(function (rect) {
+ if (!(0, utils_1.isDef)(rect)) {
+ return;
+ }
+ Object.assign(_this, {
+ height: rect.height,
+ top: rect.top + _this.scrollTop,
+ });
+ });
+ },
+ setSiderbarRect: function () {
+ var _this = this;
+ return (0, utils_1.getRect)(this, '.van-index-bar__sidebar').then(function (res) {
+ if (!(0, utils_1.isDef)(res)) {
+ return;
+ }
+ _this.sidebar = {
+ height: res.height,
+ top: res.top,
+ };
+ });
+ },
+ setDiffData: function (_a) {
+ var target = _a.target, data = _a.data;
+ var diffData = {};
+ Object.keys(data).forEach(function (key) {
+ if (target.data[key] !== data[key]) {
+ diffData[key] = data[key];
+ }
+ });
+ if (Object.keys(diffData).length) {
+ target.setData(diffData);
+ }
+ },
+ getAnchorRect: function (anchor) {
+ return (0, utils_1.getRect)(anchor, '.van-index-anchor-wrapper').then(function (rect) { return ({
+ height: rect.height,
+ top: rect.top,
+ }); });
+ },
+ getActiveAnchorIndex: function () {
+ var _a = this, children = _a.children, scrollTop = _a.scrollTop;
+ var _b = this.data, sticky = _b.sticky, stickyOffsetTop = _b.stickyOffsetTop;
+ for (var i = this.children.length - 1; i >= 0; i--) {
+ var preAnchorHeight = i > 0 ? children[i - 1].height : 0;
+ var reachTop = sticky ? preAnchorHeight + stickyOffsetTop : 0;
+ if (reachTop + scrollTop >= children[i].top) {
+ return i;
+ }
+ }
+ return -1;
+ },
+ onScroll: function () {
+ var _this = this;
+ var _a = this, _b = _a.children, children = _b === void 0 ? [] : _b, scrollTop = _a.scrollTop;
+ if (!children.length) {
+ return;
+ }
+ var _c = this.data, sticky = _c.sticky, stickyOffsetTop = _c.stickyOffsetTop, zIndex = _c.zIndex, highlightColor = _c.highlightColor;
+ var active = this.getActiveAnchorIndex();
+ this.setDiffData({
+ target: this,
+ data: {
+ activeAnchorIndex: active,
+ },
+ });
+ if (sticky) {
+ var isActiveAnchorSticky_1 = false;
+ if (active !== -1) {
+ isActiveAnchorSticky_1 =
+ children[active].top <= stickyOffsetTop + scrollTop;
+ }
+ children.forEach(function (item, index) {
+ if (index === active) {
+ var wrapperStyle = '';
+ var anchorStyle = "\n color: ".concat(highlightColor, ";\n ");
+ if (isActiveAnchorSticky_1) {
+ wrapperStyle = "\n height: ".concat(children[index].height, "px;\n ");
+ anchorStyle = "\n position: fixed;\n top: ".concat(stickyOffsetTop, "px;\n z-index: ").concat(zIndex, ";\n color: ").concat(highlightColor, ";\n ");
+ }
+ _this.setDiffData({
+ target: item,
+ data: {
+ active: true,
+ anchorStyle: anchorStyle,
+ wrapperStyle: wrapperStyle,
+ },
+ });
+ }
+ else if (index === active - 1) {
+ var currentAnchor = children[index];
+ var currentOffsetTop = currentAnchor.top;
+ var targetOffsetTop = index === children.length - 1
+ ? _this.top
+ : children[index + 1].top;
+ var parentOffsetHeight = targetOffsetTop - currentOffsetTop;
+ var translateY = parentOffsetHeight - currentAnchor.height;
+ var anchorStyle = "\n position: relative;\n transform: translate3d(0, ".concat(translateY, "px, 0);\n z-index: ").concat(zIndex, ";\n color: ").concat(highlightColor, ";\n ");
+ _this.setDiffData({
+ target: item,
+ data: {
+ active: true,
+ anchorStyle: anchorStyle,
+ },
+ });
+ }
+ else {
+ _this.setDiffData({
+ target: item,
+ data: {
+ active: false,
+ anchorStyle: '',
+ wrapperStyle: '',
+ },
+ });
+ }
+ });
+ }
+ },
+ onClick: function (event) {
+ this.scrollToAnchor(event.target.dataset.index);
+ },
+ onTouchMove: function (event) {
+ var sidebarLength = this.children.length;
+ var touch = event.touches[0];
+ var itemHeight = this.sidebar.height / sidebarLength;
+ var index = Math.floor((touch.clientY - this.sidebar.top) / itemHeight);
+ if (index < 0) {
+ index = 0;
+ }
+ else if (index > sidebarLength - 1) {
+ index = sidebarLength - 1;
+ }
+ this.scrollToAnchor(index);
+ },
+ onTouchStop: function () {
+ this.scrollToAnchorIndex = null;
+ },
+ scrollToAnchor: function (index) {
+ var _this = this;
+ if (typeof index !== 'number' || this.scrollToAnchorIndex === index) {
+ return;
+ }
+ this.scrollToAnchorIndex = index;
+ var anchor = this.children.find(function (item) { return item.data.index === _this.data.indexList[index]; });
+ if (anchor) {
+ anchor.scrollIntoView(this.scrollTop);
+ this.$emit('select', anchor.data.index);
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.wxml
new file mode 100644
index 0000000..19a59cf
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.wxml
@@ -0,0 +1,22 @@
+<view class="van-index-bar">
+ <slot />
+
+ <view
+ wx:if="{{ showSidebar }}"
+ class="van-index-bar__sidebar"
+ catch:tap="onClick"
+ catch:touchmove="onTouchMove"
+ catch:touchend="onTouchStop"
+ catch:touchcancel="onTouchStop"
+ >
+ <view
+ wx:for="{{ indexList }}"
+ wx:key="index"
+ class="van-index-bar__index"
+ style="z-index: {{ zIndex + 1 }}; color: {{ activeAnchorIndex === index ? highlightColor : '' }}"
+ data-index="{{ index }}"
+ >
+ {{ item }}
+ </view>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.wxss
new file mode 100644
index 0000000..8568801
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/index-bar/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-index-bar{position:relative}.van-index-bar__sidebar{display:flex;flex-direction:column;position:fixed;right:0;text-align:center;top:50%;transform:translateY(-50%);-webkit-user-select:none;user-select:none}.van-index-bar__index{font-size:var(--index-bar-index-font-size,10px);font-weight:500;line-height:var(--index-bar-index-line-height,14px);padding:0 var(--padding-base,4px) 0 var(--padding-md,16px)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.js
new file mode 100644
index 0000000..e61af73
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.js
@@ -0,0 +1,10 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ props: {
+ dot: Boolean,
+ info: null,
+ customStyle: String,
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.wxml
new file mode 100644
index 0000000..b39b524
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.wxml
@@ -0,0 +1,7 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ wx:if="{{ info !== null && info !== '' || dot }}"
+ class="van-info {{ utils.bem('info', { dot }) }} custom-class"
+ style="{{ customStyle }}"
+>{{ dot ? '' : info }}</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.wxss
new file mode 100644
index 0000000..375ed5a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/info/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-info{align-items:center;background-color:var(--info-background-color,#ee0a24);border:var(--info-border-width,1px) solid #fff;border-radius:var(--info-size,16px);box-sizing:border-box;color:var(--info-color,#fff);display:inline-flex;font-family:var(--info-font-family,-apple-system-font,Helvetica Neue,Arial,sans-serif);font-size:var(--info-font-size,12px);font-weight:var(--info-font-weight,500);height:var(--info-size,16px);justify-content:center;min-width:var(--info-size,16px);padding:var(--info-padding,0 3px);position:absolute;right:0;top:0;transform:translate(50%,-50%);transform-origin:100%;white-space:nowrap}.van-info--dot{background-color:var(--info-dot-color,#ee0a24);border-radius:100%;height:var(--info-dot-size,8px);min-width:0;width:var(--info-dot-size,8px)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.js
new file mode 100644
index 0000000..be9c0ef
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.js
@@ -0,0 +1,18 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ props: {
+ color: String,
+ vertical: Boolean,
+ type: {
+ type: String,
+ value: 'circular',
+ },
+ size: String,
+ textSize: String,
+ },
+ data: {
+ array12: Array.from({ length: 12 }),
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.wxml
new file mode 100644
index 0000000..7d4a539
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.wxml
@@ -0,0 +1,19 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view class="custom-class {{ utils.bem('loading', { vertical }) }}">
+ <view
+ class="van-loading__spinner van-loading__spinner--{{ type }}"
+ style="{{ computed.spinnerStyle({ color, size }) }}"
+ >
+ <view
+ wx:if="{{ type === 'spinner' }}"
+ wx:for="{{ array12 }}"
+ wx:key="index"
+ class="van-loading__dot"
+ />
+ </view>
+ <view class="van-loading__text" style="{{ computed.textStyle({ textSize }) }}">
+ <slot />
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.wxs
new file mode 100644
index 0000000..02a0b80
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.wxs
@@ -0,0 +1,22 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function spinnerStyle(data) {
+ return style({
+ color: data.color,
+ width: addUnit(data.size),
+ height: addUnit(data.size),
+ });
+}
+
+function textStyle(data) {
+ return style({
+ 'font-size': addUnit(data.textSize),
+ });
+}
+
+module.exports = {
+ spinnerStyle: spinnerStyle,
+ textStyle: textStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.wxss
new file mode 100644
index 0000000..fc84e84
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/loading/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';:host{font-size:0;line-height:1}.van-loading{align-items:center;color:var(--loading-spinner-color,#c8c9cc);display:inline-flex;justify-content:center}.van-loading__spinner{animation:van-rotate var(--loading-spinner-animation-duration,.8s) linear infinite;box-sizing:border-box;height:var(--loading-spinner-size,30px);max-height:100%;max-width:100%;position:relative;width:var(--loading-spinner-size,30px)}.van-loading__spinner--spinner{animation-timing-function:steps(12)}.van-loading__spinner--circular{border:1px solid transparent;border-radius:100%;border-top-color:initial}.van-loading__text{color:var(--loading-text-color,#969799);font-size:var(--loading-text-font-size,14px);line-height:var(--loading-text-line-height,20px);margin-left:var(--padding-xs,8px)}.van-loading__text:empty{display:none}.van-loading--vertical{flex-direction:column}.van-loading--vertical .van-loading__text{margin:var(--padding-xs,8px) 0 0}.van-loading__dot{height:100%;left:0;position:absolute;top:0;width:100%}.van-loading__dot:before{background-color:currentColor;border-radius:40%;content:" ";display:block;height:25%;margin:0 auto;width:2px}.van-loading__dot:first-of-type{opacity:1;transform:rotate(30deg)}.van-loading__dot:nth-of-type(2){opacity:.9375;transform:rotate(60deg)}.van-loading__dot:nth-of-type(3){opacity:.875;transform:rotate(90deg)}.van-loading__dot:nth-of-type(4){opacity:.8125;transform:rotate(120deg)}.van-loading__dot:nth-of-type(5){opacity:.75;transform:rotate(150deg)}.van-loading__dot:nth-of-type(6){opacity:.6875;transform:rotate(180deg)}.van-loading__dot:nth-of-type(7){opacity:.625;transform:rotate(210deg)}.van-loading__dot:nth-of-type(8){opacity:.5625;transform:rotate(240deg)}.van-loading__dot:nth-of-type(9){opacity:.5;transform:rotate(270deg)}.van-loading__dot:nth-of-type(10){opacity:.4375;transform:rotate(300deg)}.van-loading__dot:nth-of-type(11){opacity:.375;transform:rotate(330deg)}.van-loading__dot:nth-of-type(12){opacity:.3125;transform:rotate(1turn)}@keyframes van-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/basic.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/basic.d.ts
new file mode 100644
index 0000000..b273369
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/basic.d.ts
@@ -0,0 +1 @@
+export declare const basic: string;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/basic.js b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/basic.js
new file mode 100644
index 0000000..4373ad4
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/basic.js
@@ -0,0 +1,14 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.basic = void 0;
+exports.basic = Behavior({
+ methods: {
+ $emit: function (name, detail, options) {
+ this.triggerEvent(name, detail, options);
+ },
+ set: function (data) {
+ this.setData(data);
+ return new Promise(function (resolve) { return wx.nextTick(resolve); });
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/button.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/button.d.ts
new file mode 100644
index 0000000..b51db87
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/button.d.ts
@@ -0,0 +1 @@
+export declare const button: string;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/button.js b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/button.js
new file mode 100644
index 0000000..83640ce
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/button.js
@@ -0,0 +1,44 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.button = void 0;
+var version_1 = require("../common/version");
+exports.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,
+ openType: String,
+ getUserProfileDesc: String,
+ },
+ data: {
+ canIUseGetUserProfile: (0, version_1.canIUseGetUserProfile)(),
+ },
+ methods: {
+ onGetUserInfo: function (event) {
+ this.triggerEvent('getuserinfo', event.detail);
+ },
+ onContact: function (event) {
+ this.triggerEvent('contact', event.detail);
+ },
+ onGetPhoneNumber: function (event) {
+ this.triggerEvent('getphonenumber', event.detail);
+ },
+ onError: function (event) {
+ this.triggerEvent('error', event.detail);
+ },
+ onLaunchApp: function (event) {
+ this.triggerEvent('launchapp', event.detail);
+ },
+ onOpenSetting: function (event) {
+ this.triggerEvent('opensetting', event.detail);
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/link.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/link.d.ts
new file mode 100644
index 0000000..d58043b
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/link.d.ts
@@ -0,0 +1 @@
+export declare const link: string;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/link.js b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/link.js
new file mode 100644
index 0000000..14cb7e8
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/link.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.link = void 0;
+exports.link = Behavior({
+ properties: {
+ url: String,
+ linkType: {
+ type: String,
+ value: 'navigateTo',
+ },
+ },
+ methods: {
+ jumpLink: function (urlKey) {
+ if (urlKey === void 0) { urlKey = 'url'; }
+ var url = this.data[urlKey];
+ if (url) {
+ if (this.data.linkType === 'navigateTo' &&
+ getCurrentPages().length > 9) {
+ wx.redirectTo({ url: url });
+ }
+ else {
+ wx[this.data.linkType]({ url: url });
+ }
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/page-scroll.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/page-scroll.d.ts
new file mode 100644
index 0000000..a316bb8
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/page-scroll.d.ts
@@ -0,0 +1,5 @@
+/// <reference types="miniprogram-api-typings" />
+declare type IPageScrollOption = WechatMiniprogram.Page.IPageScrollOption;
+declare type Scroller = (this: WechatMiniprogram.Component.TrivialInstance, event?: IPageScrollOption) => void;
+export declare const pageScrollMixin: (scroller: Scroller) => string;
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/page-scroll.js b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/page-scroll.js
new file mode 100644
index 0000000..6857a97
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/page-scroll.js
@@ -0,0 +1,42 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.pageScrollMixin = void 0;
+var utils_1 = require("../common/utils");
+function onPageScroll(event) {
+ var _a = (0, utils_1.getCurrentPage)().vanPageScroller, vanPageScroller = _a === void 0 ? [] : _a;
+ vanPageScroller.forEach(function (scroller) {
+ if (typeof scroller === 'function') {
+ // @ts-ignore
+ scroller(event);
+ }
+ });
+}
+var pageScrollMixin = function (scroller) {
+ return Behavior({
+ attached: function () {
+ var page = (0, utils_1.getCurrentPage)();
+ if (!(0, utils_1.isDef)(page)) {
+ return;
+ }
+ 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: function () {
+ var _a;
+ var page = (0, utils_1.getCurrentPage)();
+ if ((0, utils_1.isDef)(page)) {
+ page.vanPageScroller =
+ ((_a = page.vanPageScroller) === null || _a === void 0 ? void 0 : _a.filter(function (item) { return item !== scroller; })) || [];
+ }
+ },
+ });
+};
+exports.pageScrollMixin = pageScrollMixin;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/touch.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/touch.d.ts
new file mode 100644
index 0000000..35ee831
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/touch.d.ts
@@ -0,0 +1 @@
+export declare const touch: string;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/touch.js b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/touch.js
new file mode 100644
index 0000000..d762c2c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/touch.js
@@ -0,0 +1,40 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.touch = void 0;
+// @ts-nocheck
+var MIN_DISTANCE = 10;
+function getDirection(x, y) {
+ if (x > y && x > MIN_DISTANCE) {
+ return 'horizontal';
+ }
+ if (y > x && y > MIN_DISTANCE) {
+ return 'vertical';
+ }
+ return '';
+}
+exports.touch = Behavior({
+ methods: {
+ resetTouchStatus: function () {
+ this.direction = '';
+ this.deltaX = 0;
+ this.deltaY = 0;
+ this.offsetX = 0;
+ this.offsetY = 0;
+ },
+ touchStart: function (event) {
+ this.resetTouchStatus();
+ var touch = event.touches[0];
+ this.startX = touch.clientX;
+ this.startY = touch.clientY;
+ },
+ touchMove: function (event) {
+ var 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/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/transition.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/transition.d.ts
new file mode 100644
index 0000000..dd829e5
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/transition.d.ts
@@ -0,0 +1 @@
+export declare function transition(showDefaultValue: boolean): string;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/transition.js b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/transition.js
new file mode 100644
index 0000000..2b29431
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/mixins/transition.js
@@ -0,0 +1,121 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.transition = void 0;
+// @ts-nocheck
+var utils_1 = require("../common/utils");
+var validator_1 = require("../common/validator");
+var getClassNames = function (name) { return ({
+ enter: "van-".concat(name, "-enter van-").concat(name, "-enter-active enter-class enter-active-class"),
+ 'enter-to': "van-".concat(name, "-enter-to van-").concat(name, "-enter-active enter-to-class enter-active-class"),
+ leave: "van-".concat(name, "-leave van-").concat(name, "-leave-active leave-class leave-active-class"),
+ 'leave-to': "van-".concat(name, "-leave-to van-").concat(name, "-leave-active leave-to-class leave-active-class"),
+}); };
+function transition(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,
+ },
+ ready: function () {
+ if (this.data.show === true) {
+ this.observeShow(true, false);
+ }
+ },
+ methods: {
+ observeShow: function (value, old) {
+ if (value === old) {
+ return;
+ }
+ value ? this.enter() : this.leave();
+ },
+ enter: function () {
+ var _this = this;
+ var _a = this.data, duration = _a.duration, name = _a.name;
+ var classNames = getClassNames(name);
+ var currentDuration = (0, validator_1.isObj)(duration) ? duration.enter : duration;
+ this.status = 'enter';
+ this.$emit('before-enter');
+ (0, utils_1.requestAnimationFrame)(function () {
+ if (_this.status !== 'enter') {
+ return;
+ }
+ _this.$emit('enter');
+ _this.setData({
+ inited: true,
+ display: true,
+ classes: classNames.enter,
+ currentDuration: currentDuration,
+ });
+ (0, utils_1.requestAnimationFrame)(function () {
+ if (_this.status !== 'enter') {
+ return;
+ }
+ _this.transitionEnded = false;
+ _this.setData({ classes: classNames['enter-to'] });
+ });
+ });
+ },
+ leave: function () {
+ var _this = this;
+ if (!this.data.display) {
+ return;
+ }
+ var _a = this.data, duration = _a.duration, name = _a.name;
+ var classNames = getClassNames(name);
+ var currentDuration = (0, validator_1.isObj)(duration) ? duration.leave : duration;
+ this.status = 'leave';
+ this.$emit('before-leave');
+ (0, utils_1.requestAnimationFrame)(function () {
+ if (_this.status !== 'leave') {
+ return;
+ }
+ _this.$emit('leave');
+ _this.setData({
+ classes: classNames.leave,
+ currentDuration: currentDuration,
+ });
+ (0, utils_1.requestAnimationFrame)(function () {
+ if (_this.status !== 'leave') {
+ return;
+ }
+ _this.transitionEnded = false;
+ setTimeout(function () { return _this.onTransitionEnd(); }, currentDuration);
+ _this.setData({ classes: classNames['leave-to'] });
+ });
+ });
+ },
+ onTransitionEnd: function () {
+ if (this.transitionEnded) {
+ return;
+ }
+ this.transitionEnded = true;
+ this.$emit("after-".concat(this.status));
+ var _a = this.data, show = _a.show, display = _a.display;
+ if (!show && display) {
+ this.setData({ display: false });
+ }
+ },
+ },
+ });
+}
+exports.transition = transition;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.js
new file mode 100644
index 0000000..376b561
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.js
@@ -0,0 +1,68 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var utils_1 = require("../common/utils");
+(0, component_1.VantComponent)({
+ classes: ['title-class'],
+ props: {
+ title: String,
+ fixed: {
+ type: Boolean,
+ observer: 'setHeight',
+ },
+ placeholder: {
+ type: Boolean,
+ observer: 'setHeight',
+ },
+ leftText: String,
+ rightText: String,
+ customStyle: String,
+ leftArrow: Boolean,
+ border: {
+ type: Boolean,
+ value: true,
+ },
+ zIndex: {
+ type: Number,
+ value: 1,
+ },
+ safeAreaInsetTop: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ data: {
+ height: 46,
+ },
+ created: function () {
+ var statusBarHeight = (0, utils_1.getSystemInfoSync)().statusBarHeight;
+ this.setData({
+ statusBarHeight: statusBarHeight,
+ height: 46 + statusBarHeight,
+ });
+ },
+ mounted: function () {
+ this.setHeight();
+ },
+ methods: {
+ onClickLeft: function () {
+ this.$emit('click-left');
+ },
+ onClickRight: function () {
+ this.$emit('click-right');
+ },
+ setHeight: function () {
+ var _this = this;
+ if (!this.data.fixed || !this.data.placeholder) {
+ return;
+ }
+ wx.nextTick(function () {
+ (0, utils_1.getRect)(_this, '.van-nav-bar').then(function (res) {
+ if (res && 'height' in res) {
+ _this.setData({ height: res.height });
+ }
+ });
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.json
new file mode 100644
index 0000000..0a336c0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.wxml
new file mode 100644
index 0000000..b6405fd
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.wxml
@@ -0,0 +1,42 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view wx:if="{{ fixed && placeholder }}" style="height: {{ height }}px;" />
+
+<view
+ class="{{ utils.bem('nav-bar', { fixed }) }} custom-class {{ border ? 'van-hairline--bottom' : '' }}"
+ style="{{ computed.barStyle({ zIndex, statusBarHeight, safeAreaInsetTop }) }}; {{ customStyle }}"
+>
+ <view class="van-nav-bar__content">
+ <view class="van-nav-bar__left" bind:tap="onClickLeft">
+ <block wx:if="{{ leftArrow || leftText }}">
+ <van-icon
+ wx:if="{{ leftArrow }}"
+ size="16px"
+ name="arrow-left"
+ custom-class="van-nav-bar__arrow"
+ />
+ <view
+ wx:if="{{ leftText }}"
+ class="van-nav-bar__text"
+ hover-class="van-nav-bar__text--hover"
+ hover-stay-time="70"
+ >{{ leftText }}</view>
+ </block>
+ <slot wx:else name="left" />
+ </view>
+ <view class="van-nav-bar__title title-class van-ellipsis">
+ <block wx:if="{{ title }}">{{ title }}</block>
+ <slot wx:else name="title" />
+ </view>
+ <view class="van-nav-bar__right" bind:tap="onClickRight">
+ <view
+ wx:if="{{ rightText }}"
+ class="van-nav-bar__text"
+ hover-class="van-nav-bar__text--hover"
+ hover-stay-time="70"
+ >{{ rightText }}</view>
+ <slot wx:else name="right" />
+ </view>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.wxs
new file mode 100644
index 0000000..55b4158
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.wxs
@@ -0,0 +1,13 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+
+function barStyle(data) {
+ return style({
+ 'z-index': data.zIndex,
+ 'padding-top': data.safeAreaInsetTop ? data.statusBarHeight + 'px' : 0,
+ });
+}
+
+module.exports = {
+ barStyle: barStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.wxss
new file mode 100644
index 0000000..94c5b44
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/nav-bar/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-nav-bar{background-color:var(--nav-bar-background-color,#fff);height:var(--nav-bar-height,46px);line-height:var(--nav-bar-height,46px);position:relative;text-align:center;-webkit-user-select:none;user-select:none}.van-nav-bar__content{height:100%;position:relative}.van-nav-bar__text{color:var(--nav-bar-text-color,#1989fa);display:inline-block;margin:0 calc(var(--padding-md, 16px)*-1);padding:0 var(--padding-md,16px);vertical-align:middle}.van-nav-bar__text--hover{background-color:#f2f3f5}.van-nav-bar__arrow{color:var(--nav-bar-icon-color,#1989fa)!important;font-size:var(--nav-bar-arrow-size,16px)!important;vertical-align:middle}.van-nav-bar__arrow+.van-nav-bar__text{margin-left:-20px;padding-left:25px}.van-nav-bar--fixed{left:0;position:fixed;top:0;width:100%}.van-nav-bar__title{color:var(--nav-bar-title-text-color,#323233);font-size:var(--nav-bar-title-font-size,16px);font-weight:var(--font-weight-bold,500);margin:0 auto;max-width:60%}.van-nav-bar__left,.van-nav-bar__right{align-items:center;bottom:0;display:flex;font-size:var(--font-size-md,14px);position:absolute;top:0}.van-nav-bar__left{left:var(--padding-md,16px)}.van-nav-bar__right{right:var(--padding-md,16px)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.js
new file mode 100644
index 0000000..9f2d84e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.js
@@ -0,0 +1,124 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var utils_1 = require("../common/utils");
+(0, component_1.VantComponent)({
+ props: {
+ text: {
+ type: String,
+ value: '',
+ observer: 'init',
+ },
+ mode: {
+ type: String,
+ value: '',
+ },
+ url: {
+ type: String,
+ value: '',
+ },
+ openType: {
+ type: String,
+ value: 'navigate',
+ },
+ delay: {
+ type: Number,
+ value: 1,
+ },
+ speed: {
+ type: Number,
+ value: 60,
+ observer: 'init',
+ },
+ scrollable: null,
+ leftIcon: {
+ type: String,
+ value: '',
+ },
+ color: String,
+ backgroundColor: String,
+ background: String,
+ wrapable: Boolean,
+ },
+ data: {
+ show: true,
+ },
+ created: function () {
+ this.resetAnimation = wx.createAnimation({
+ duration: 0,
+ timingFunction: 'linear',
+ });
+ },
+ destroyed: function () {
+ this.timer && clearTimeout(this.timer);
+ },
+ mounted: function () {
+ this.init();
+ },
+ methods: {
+ init: function () {
+ var _this = this;
+ (0, utils_1.requestAnimationFrame)(function () {
+ Promise.all([
+ (0, utils_1.getRect)(_this, '.van-notice-bar__content'),
+ (0, utils_1.getRect)(_this, '.van-notice-bar__wrap'),
+ ]).then(function (rects) {
+ var contentRect = rects[0], wrapRect = rects[1];
+ var _a = _this.data, speed = _a.speed, scrollable = _a.scrollable, delay = _a.delay;
+ if (contentRect == null ||
+ wrapRect == null ||
+ !contentRect.width ||
+ !wrapRect.width ||
+ scrollable === false) {
+ return;
+ }
+ if (scrollable || wrapRect.width < contentRect.width) {
+ var duration = ((wrapRect.width + contentRect.width) / speed) * 1000;
+ _this.wrapWidth = wrapRect.width;
+ _this.contentWidth = contentRect.width;
+ _this.duration = duration;
+ _this.animation = wx.createAnimation({
+ duration: duration,
+ timingFunction: 'linear',
+ delay: delay,
+ });
+ _this.scroll();
+ }
+ });
+ });
+ },
+ scroll: function () {
+ var _this = this;
+ this.timer && clearTimeout(this.timer);
+ this.timer = null;
+ this.setData({
+ animationData: this.resetAnimation
+ .translateX(this.wrapWidth)
+ .step()
+ .export(),
+ });
+ (0, utils_1.requestAnimationFrame)(function () {
+ _this.setData({
+ animationData: _this.animation
+ .translateX(-_this.contentWidth)
+ .step()
+ .export(),
+ });
+ });
+ this.timer = setTimeout(function () {
+ _this.scroll();
+ }, this.duration);
+ },
+ onClickIcon: function (event) {
+ if (this.data.mode === 'closeable') {
+ this.timer && clearTimeout(this.timer);
+ this.timer = null;
+ this.setData({ show: false });
+ this.$emit('close', event.detail);
+ }
+ },
+ onClick: function (event) {
+ this.$emit('click', event);
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.json
new file mode 100644
index 0000000..0a336c0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.wxml
new file mode 100644
index 0000000..21b0973
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.wxml
@@ -0,0 +1,38 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ wx:if="{{ show }}"
+ class="custom-class {{ utils.bem('notice-bar', { withicon: mode, wrapable }) }}"
+ style="{{ computed.rootStyle({ color, backgroundColor, background }) }}"
+ bind:tap="onClick"
+>
+ <van-icon
+ wx:if="{{ leftIcon }}"
+ name="{{ leftIcon }}"
+ class="van-notice-bar__left-icon"
+ />
+ <slot wx:else name="left-icon" />
+
+ <view class="van-notice-bar__wrap">
+ <view class="van-notice-bar__content {{ scrollable === false && !wrapable ? 'van-ellipsis' : '' }}" animation="{{ animationData }}">
+ {{ text }}
+ <slot wx:if="{{ !text }}"></slot>
+ </view>
+ </view>
+
+ <van-icon
+ wx:if="{{ mode === 'closeable' }}"
+ class="van-notice-bar__right-icon"
+ name="cross"
+ catch:tap="onClickIcon"
+ />
+ <navigator
+ wx:elif="{{ mode === 'link' }}"
+ url="{{ url }}"
+ open-type="{{ openType }}"
+ >
+ <van-icon class="van-notice-bar__right-icon" name="arrow" />
+ </navigator>
+ <slot wx:else name="right-icon" />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.wxs
new file mode 100644
index 0000000..11e6456
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.wxs
@@ -0,0 +1,15 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function rootStyle(data) {
+ return style({
+ color: data.color,
+ 'background-color': data.backgroundColor,
+ background: data.background,
+ });
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.wxss
new file mode 100644
index 0000000..497636c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/notice-bar/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-notice-bar{align-items:center;background-color:var(--notice-bar-background-color,#fffbe8);color:var(--notice-bar-text-color,#ed6a0c);display:flex;font-size:var(--notice-bar-font-size,14px);height:var(--notice-bar-height,40px);line-height:var(--notice-bar-line-height,24px);padding:var(--notice-bar-padding,0 16px)}.van-notice-bar--withicon{padding-right:40px;position:relative}.van-notice-bar--wrapable{height:auto;padding:var(--notice-bar-wrapable-padding,8px 16px)}.van-notice-bar--wrapable .van-notice-bar__wrap{height:auto}.van-notice-bar--wrapable .van-notice-bar__content{position:relative;white-space:normal}.van-notice-bar__left-icon{align-items:center;display:flex;margin-right:4px;vertical-align:middle}.van-notice-bar__left-icon,.van-notice-bar__right-icon{font-size:var(--notice-bar-icon-size,16px);min-width:var(--notice-bar-icon-min-width,22px)}.van-notice-bar__right-icon{position:absolute;right:15px;top:10px}.van-notice-bar__wrap{flex:1;height:var(--notice-bar-line-height,24px);overflow:hidden;position:relative}.van-notice-bar__content{position:absolute;white-space:nowrap}.van-notice-bar__content.van-ellipsis{max-width:100%}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.js
new file mode 100644
index 0000000..a9526aa
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.js
@@ -0,0 +1,68 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var color_1 = require("../common/color");
+var utils_1 = require("../common/utils");
+(0, component_1.VantComponent)({
+ props: {
+ message: String,
+ background: String,
+ type: {
+ type: String,
+ value: 'danger',
+ },
+ color: {
+ type: String,
+ value: color_1.WHITE,
+ },
+ duration: {
+ type: Number,
+ value: 3000,
+ },
+ zIndex: {
+ type: Number,
+ value: 110,
+ },
+ safeAreaInsetTop: {
+ type: Boolean,
+ value: false,
+ },
+ top: null,
+ },
+ data: {
+ show: false,
+ onOpened: null,
+ onClose: null,
+ onClick: null,
+ },
+ created: function () {
+ var statusBarHeight = (0, utils_1.getSystemInfoSync)().statusBarHeight;
+ this.setData({ statusBarHeight: statusBarHeight });
+ },
+ methods: {
+ show: function () {
+ var _this = this;
+ var _a = this.data, duration = _a.duration, onOpened = _a.onOpened;
+ clearTimeout(this.timer);
+ this.setData({ show: true });
+ wx.nextTick(onOpened);
+ if (duration > 0 && duration !== Infinity) {
+ this.timer = setTimeout(function () {
+ _this.hide();
+ }, duration);
+ }
+ },
+ hide: function () {
+ var onClose = this.data.onClose;
+ clearTimeout(this.timer);
+ this.setData({ show: false });
+ wx.nextTick(onClose);
+ },
+ onTap: function (event) {
+ var onClick = this.data.onClick;
+ if (onClick) {
+ onClick(event.detail);
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.json
new file mode 100644
index 0000000..c14a65f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-transition": "../transition/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.wxml
new file mode 100644
index 0000000..42d913e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.wxml
@@ -0,0 +1,21 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<van-transition
+ name="slide-down"
+ show="{{ show }}"
+ custom-class="van-notify__container"
+ custom-style="{{ computed.rootStyle({ zIndex, top }) }}"
+ bind:tap="onTap"
+>
+ <view
+ class="van-notify van-notify--{{ type }}"
+ style="{{ computed.notifyStyle({ background, color }) }}"
+ >
+ <view
+ wx:if="{{ safeAreaInsetTop }}"
+ style="height: {{ statusBarHeight }}px"
+ />
+ <text>{{ message }}</text>
+ </view>
+</van-transition>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.wxs
new file mode 100644
index 0000000..bbb94c2
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.wxs
@@ -0,0 +1,22 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function rootStyle(data) {
+ return style({
+ 'z-index': data.zIndex,
+ top: addUnit(data.top),
+ });
+}
+
+function notifyStyle(data) {
+ return style({
+ background: data.background,
+ color: data.color,
+ });
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+ notifyStyle: notifyStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.wxss
new file mode 100644
index 0000000..c030e9b
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-notify{word-wrap:break-word;font-size:var(--notify-font-size,14px);line-height:var(--notify-line-height,20px);padding:var(--notify-padding,6px 15px);text-align:center}.van-notify__container{box-sizing:border-box;left:0;position:fixed;top:0;width:100%}.van-notify--primary{background-color:var(--notify-primary-background-color,#1989fa)}.van-notify--success{background-color:var(--notify-success-background-color,#07c160)}.van-notify--danger{background-color:var(--notify-danger-background-color,#ee0a24)}.van-notify--warning{background-color:var(--notify-warning-background-color,#ff976a)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/notify/notify.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/notify.d.ts
new file mode 100644
index 0000000..f6ee08f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/notify.d.ts
@@ -0,0 +1,20 @@
+interface NotifyOptions {
+ type?: 'primary' | 'success' | 'danger' | 'warning';
+ color?: string;
+ zIndex?: number;
+ top?: number;
+ message: string;
+ context?: any;
+ duration?: number;
+ selector?: string;
+ background?: string;
+ safeAreaInsetTop?: boolean;
+ onClick?: () => void;
+ onOpened?: () => void;
+ onClose?: () => void;
+}
+declare function Notify(options: NotifyOptions | string): any;
+declare namespace Notify {
+ var clear: (options?: NotifyOptions | undefined) => void;
+}
+export default Notify;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/notify/notify.js b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/notify.js
new file mode 100644
index 0000000..1b57b1c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/notify/notify.js
@@ -0,0 +1,60 @@
+"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 color_1 = require("../common/color");
+var defaultOptions = {
+ selector: '#van-notify',
+ type: 'danger',
+ message: '',
+ background: '',
+ duration: 3000,
+ zIndex: 110,
+ top: 0,
+ color: color_1.WHITE,
+ safeAreaInsetTop: false,
+ onClick: function () { },
+ onOpened: function () { },
+ onClose: function () { },
+};
+function parseOptions(message) {
+ if (message == null) {
+ return {};
+ }
+ return typeof message === 'string' ? { message: message } : message;
+}
+function getContext() {
+ var pages = getCurrentPages();
+ return pages[pages.length - 1];
+}
+function Notify(options) {
+ options = __assign(__assign({}, defaultOptions), parseOptions(options));
+ var context = options.context || getContext();
+ var notify = context.selectComponent(options.selector);
+ delete options.context;
+ delete options.selector;
+ if (notify) {
+ notify.setData(options);
+ notify.show();
+ return notify;
+ }
+ console.warn('未找到 van-notify 节点,请确认 selector 及 context 是否正确');
+}
+exports.default = Notify;
+Notify.clear = function (options) {
+ options = __assign(__assign({}, defaultOptions), parseOptions(options));
+ var context = options.context || getContext();
+ var notify = context.selectComponent(options.selector);
+ if (notify) {
+ notify.hide();
+ }
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.js
new file mode 100644
index 0000000..1828343
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.js
@@ -0,0 +1,28 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ props: {
+ show: Boolean,
+ customStyle: String,
+ duration: {
+ type: null,
+ value: 300,
+ },
+ zIndex: {
+ type: Number,
+ value: 1,
+ },
+ lockScroll: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ methods: {
+ onClick: function () {
+ this.$emit('click');
+ },
+ // for prevent touchmove
+ noop: function () { },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.json
new file mode 100644
index 0000000..c14a65f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-transition": "../transition/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.wxml
new file mode 100644
index 0000000..92734a0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.wxml
@@ -0,0 +1,21 @@
+<van-transition
+ wx:if="{{ lockScroll }}"
+ show="{{ show }}"
+ custom-class="van-overlay"
+ custom-style="z-index: {{ zIndex }}; {{ customStyle }}"
+ duration="{{ duration }}"
+ bind:tap="onClick"
+ catch:touchmove="noop"
+>
+ <slot></slot>
+</van-transition>
+<van-transition
+ wx:else
+ show="{{ show }}"
+ custom-class="van-overlay"
+ custom-style="z-index: {{ zIndex }}; {{ customStyle }}"
+ duration="{{ duration }}"
+ bind:tap="onClick"
+>
+ <slot></slot>
+</van-transition>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.wxss
new file mode 100644
index 0000000..d1ad81a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/overlay/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-overlay{background-color:var(--overlay-background-color,rgba(0,0,0,.7));height:100%;left:0;position:fixed;top:0;width:100%}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.js
new file mode 100644
index 0000000..818b8c5
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.js
@@ -0,0 +1,11 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ classes: ['header-class', 'footer-class'],
+ props: {
+ desc: String,
+ title: String,
+ status: String,
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.json
new file mode 100644
index 0000000..0e5425c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-cell": "../cell/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.wxml
new file mode 100644
index 0000000..1843703
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.wxml
@@ -0,0 +1,19 @@
+<view class="van-panel van-hairline--top-bottom custom-class">
+ <van-cell
+ wx:if="{{ title || desc || status }}"
+ title="{{ title }}"
+ label="{{ desc }}"
+ value="{{ status }}"
+ custom-class="header-class"
+ value-class="van-panel__header-value"
+ />
+ <slot wx:else name="header" />
+
+ <view class="van-panel__content">
+ <slot />
+ </view>
+
+ <view class="van-panel__footer van-hairline--top footer-class">
+ <slot name="footer" />
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.wxss
new file mode 100644
index 0000000..485edcd
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/panel/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-panel{background:var(--panel-background-color,#fff)}.van-panel__header-value{color:var(--panel-header-value-color,#ee0a24)}.van-panel__footer{padding:var(--panel-footer-padding,8px 16px)}.van-panel__footer:empty{display:none}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.js
new file mode 100644
index 0000000..9dbf17c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.js
@@ -0,0 +1,122 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var utils_1 = require("../common/utils");
+var validator_1 = require("../common/validator");
+var DEFAULT_DURATION = 200;
+(0, component_1.VantComponent)({
+ classes: ['active-class'],
+ props: {
+ valueKey: String,
+ className: String,
+ itemHeight: Number,
+ visibleItemCount: Number,
+ initialOptions: {
+ type: Array,
+ value: [],
+ },
+ defaultIndex: {
+ type: Number,
+ value: 0,
+ observer: function (value) {
+ this.setIndex(value);
+ },
+ },
+ },
+ data: {
+ startY: 0,
+ offset: 0,
+ duration: 0,
+ startOffset: 0,
+ options: [],
+ currentIndex: 0,
+ },
+ created: function () {
+ var _this = this;
+ var _a = this.data, defaultIndex = _a.defaultIndex, initialOptions = _a.initialOptions;
+ this.set({
+ currentIndex: defaultIndex,
+ options: initialOptions,
+ }).then(function () {
+ _this.setIndex(defaultIndex);
+ });
+ },
+ methods: {
+ getCount: function () {
+ return this.data.options.length;
+ },
+ onTouchStart: function (event) {
+ this.setData({
+ startY: event.touches[0].clientY,
+ startOffset: this.data.offset,
+ duration: 0,
+ });
+ },
+ onTouchMove: function (event) {
+ var data = this.data;
+ var deltaY = event.touches[0].clientY - data.startY;
+ this.setData({
+ offset: (0, utils_1.range)(data.startOffset + deltaY, -(this.getCount() * data.itemHeight), data.itemHeight),
+ });
+ },
+ onTouchEnd: function () {
+ var data = this.data;
+ if (data.offset !== data.startOffset) {
+ this.setData({ duration: DEFAULT_DURATION });
+ var index = (0, utils_1.range)(Math.round(-data.offset / data.itemHeight), 0, this.getCount() - 1);
+ this.setIndex(index, true);
+ }
+ },
+ onClickItem: function (event) {
+ var index = event.currentTarget.dataset.index;
+ this.setIndex(index, true);
+ },
+ adjustIndex: function (index) {
+ var data = this.data;
+ var count = this.getCount();
+ index = (0, utils_1.range)(index, 0, count);
+ for (var i = index; i < count; i++) {
+ if (!this.isDisabled(data.options[i]))
+ return i;
+ }
+ for (var i = index - 1; i >= 0; i--) {
+ if (!this.isDisabled(data.options[i]))
+ return i;
+ }
+ },
+ isDisabled: function (option) {
+ return (0, validator_1.isObj)(option) && option.disabled;
+ },
+ getOptionText: function (option) {
+ var data = this.data;
+ return (0, validator_1.isObj)(option) && data.valueKey in option
+ ? option[data.valueKey]
+ : option;
+ },
+ setIndex: function (index, userAction) {
+ var _this = this;
+ var data = this.data;
+ index = this.adjustIndex(index) || 0;
+ var offset = -index * data.itemHeight;
+ if (index !== data.currentIndex) {
+ return this.set({ offset: offset, currentIndex: index }).then(function () {
+ userAction && _this.$emit('change', index);
+ });
+ }
+ return this.set({ offset: offset });
+ },
+ setValue: function (value) {
+ var options = this.data.options;
+ for (var i = 0; i < options.length; i++) {
+ if (this.getOptionText(options[i]) === value) {
+ return this.setIndex(i);
+ }
+ }
+ return Promise.resolve();
+ },
+ getValue: function () {
+ var data = this.data;
+ return data.options[data.currentIndex];
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.wxml
new file mode 100644
index 0000000..f2c8da2
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.wxml
@@ -0,0 +1,23 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="van-picker-column custom-class"
+ style="{{ computed.rootStyle({ itemHeight, visibleItemCount }) }}"
+ bind:touchstart="onTouchStart"
+ catch:touchmove="onTouchMove"
+ bind:touchend="onTouchEnd"
+ bind:touchcancel="onTouchEnd"
+>
+ <view style="{{ computed.wrapperStyle({ offset, itemHeight, visibleItemCount, duration }) }}">
+ <view
+ wx:for="{{ options }}"
+ wx:for-item="option"
+ wx:key="index"
+ data-index="{{ index }}"
+ style="height: {{ itemHeight }}px"
+ class="van-ellipsis {{ utils.bem('picker-column__item', { disabled: option && option.disabled, selected: index === currentIndex }) }} {{ index === currentIndex ? 'active-class' : '' }}"
+ bindtap="onClickItem"
+ >{{ computed.optionText(option, valueKey) }}</view>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.wxs
new file mode 100644
index 0000000..2d5a611
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.wxs
@@ -0,0 +1,36 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function isObj(x) {
+ var type = typeof x;
+ return x !== null && (type === 'object' || type === 'function');
+}
+
+function optionText(option, valueKey) {
+ return isObj(option) && option[valueKey] != null ? option[valueKey] : option;
+}
+
+function rootStyle(data) {
+ return style({
+ height: addUnit(data.itemHeight * data.visibleItemCount),
+ });
+}
+
+function wrapperStyle(data) {
+ var offset = addUnit(
+ data.offset + (data.itemHeight * (data.visibleItemCount - 1)) / 2
+ );
+
+ return style({
+ transition: 'transform ' + data.duration + 'ms',
+ 'line-height': addUnit(data.itemHeight),
+ transform: 'translate3d(0, ' + offset + ', 0)',
+ });
+}
+
+module.exports = {
+ optionText: optionText,
+ rootStyle: rootStyle,
+ wrapperStyle: wrapperStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.wxss
new file mode 100644
index 0000000..519a438
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/picker-column/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-picker-column{color:var(--picker-option-text-color,#000);font-size:var(--picker-option-font-size,16px);overflow:hidden;text-align:center}.van-picker-column__item{padding:0 5px}.van-picker-column__item--selected{color:var(--picker-option-selected-text-color,#323233);font-weight:var(--font-weight-bold,500)}.van-picker-column__item--disabled{opacity:var(--picker-option-disabled-opacity,.3)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.js
new file mode 100644
index 0000000..06d1826
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.js
@@ -0,0 +1,161 @@
+"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("./shared");
+(0, component_1.VantComponent)({
+ classes: ['active-class', 'toolbar-class', 'column-class'],
+ props: __assign(__assign({}, shared_1.pickerProps), { valueKey: {
+ type: String,
+ value: 'text',
+ }, toolbarPosition: {
+ type: String,
+ value: 'top',
+ }, defaultIndex: {
+ type: Number,
+ value: 0,
+ }, columns: {
+ type: Array,
+ value: [],
+ observer: function (columns) {
+ if (columns === void 0) { columns = []; }
+ this.simple = columns.length && !columns[0].values;
+ if (Array.isArray(this.children) && this.children.length) {
+ this.setColumns().catch(function () { });
+ }
+ },
+ } }),
+ beforeCreate: function () {
+ var _this = this;
+ Object.defineProperty(this, 'children', {
+ get: function () { return _this.selectAllComponents('.van-picker__column') || []; },
+ });
+ },
+ methods: {
+ noop: function () { },
+ setColumns: function () {
+ var _this = this;
+ var data = this.data;
+ var columns = this.simple ? [{ values: data.columns }] : data.columns;
+ var stack = columns.map(function (column, index) {
+ return _this.setColumnValues(index, column.values);
+ });
+ return Promise.all(stack);
+ },
+ emit: function (event) {
+ var type = event.currentTarget.dataset.type;
+ 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: function (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: function (index) {
+ return this.children[index];
+ },
+ // get column value by index
+ getColumnValue: function (index) {
+ var column = this.getColumn(index);
+ return column && column.getValue();
+ },
+ // set column value by index
+ setColumnValue: function (index, value) {
+ var 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: function (columnIndex) {
+ return (this.getColumn(columnIndex) || {}).data.currentIndex;
+ },
+ // set column option index by column index
+ setColumnIndex: function (columnIndex, optionIndex) {
+ var column = this.getColumn(columnIndex);
+ if (column == null) {
+ return Promise.reject(new Error('setColumnIndex: 对应列不存在'));
+ }
+ return column.setIndex(optionIndex);
+ },
+ // get options of column by index
+ getColumnValues: function (index) {
+ return (this.children[index] || {}).data.options;
+ },
+ // set options of column by index
+ setColumnValues: function (index, options, needReset) {
+ if (needReset === void 0) { needReset = true; }
+ var column = this.children[index];
+ if (column == null) {
+ return Promise.reject(new Error('setColumnValues: 对应列不存在'));
+ }
+ var isSame = JSON.stringify(column.data.options) === JSON.stringify(options);
+ if (isSame) {
+ return Promise.resolve();
+ }
+ return column.set({ options: options }).then(function () {
+ if (needReset) {
+ column.setIndex(0);
+ }
+ });
+ },
+ // get values of all columns
+ getValues: function () {
+ return this.children.map(function (child) { return child.getValue(); });
+ },
+ // set values of all columns
+ setValues: function (values) {
+ var _this = this;
+ var stack = values.map(function (value, index) {
+ return _this.setColumnValue(index, value);
+ });
+ return Promise.all(stack);
+ },
+ // get indexes of all columns
+ getIndexes: function () {
+ return this.children.map(function (child) { return child.data.currentIndex; });
+ },
+ // set indexes of all columns
+ setIndexes: function (indexes) {
+ var _this = this;
+ var stack = indexes.map(function (optionIndex, columnIndex) {
+ return _this.setColumnIndex(columnIndex, optionIndex);
+ });
+ return Promise.all(stack);
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.json
new file mode 100644
index 0000000..2fcec89
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "picker-column": "../picker-column/index",
+ "loading": "../loading/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.wxml
new file mode 100644
index 0000000..8564ccc
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.wxml
@@ -0,0 +1,37 @@
+<wxs src="./index.wxs" module="computed" />
+
+<view class="van-picker custom-class">
+ <include wx:if="{{ toolbarPosition === 'top' }}" src="./toolbar.wxml" />
+
+ <view wx:if="{{ loading }}" class="van-picker__loading">
+ <loading color="#1989fa"/>
+ </view>
+
+ <view
+ class="van-picker__columns"
+ style="{{ computed.columnsStyle({ itemHeight, visibleItemCount }) }}"
+ catch:touchmove="noop"
+ >
+ <picker-column
+ class="van-picker__column"
+ wx:for="{{ computed.columns(columns) }}"
+ wx:key="index"
+ data-index="{{ index }}"
+ custom-class="column-class"
+ value-key="{{ valueKey }}"
+ initial-options="{{ item.values }}"
+ default-index="{{ item.defaultIndex || defaultIndex }}"
+ item-height="{{ itemHeight }}"
+ visible-item-count="{{ visibleItemCount }}"
+ active-class="active-class"
+ bind:change="onChange"
+ />
+ <view class="van-picker__mask" style="{{ computed.maskStyle({ itemHeight, visibleItemCount }) }}" />
+ <view
+ class="van-picker__frame van-hairline--top-bottom"
+ style="{{ computed.frameStyle({ itemHeight }) }}"
+ />
+ </view>
+
+ <include wx:if="{{ toolbarPosition === 'bottom' }}" src="./toolbar.wxml" />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.wxs
new file mode 100644
index 0000000..0abbd10
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.wxs
@@ -0,0 +1,42 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+var array = require('../wxs/array.wxs');
+
+function columnsStyle(data) {
+ return style({
+ height: addUnit(data.itemHeight * data.visibleItemCount),
+ });
+}
+
+function maskStyle(data) {
+ return style({
+ 'background-size':
+ '100% ' + addUnit((data.itemHeight * (data.visibleItemCount - 1)) / 2),
+ });
+}
+
+function frameStyle(data) {
+ return style({
+ height: addUnit(data.itemHeight),
+ });
+}
+
+function columns(columns) {
+ if (!array.isArray(columns)) {
+ return [];
+ }
+
+ if (columns.length && !columns[0].values) {
+ return [{ values: columns }];
+ }
+
+ return columns;
+}
+
+module.exports = {
+ columnsStyle: columnsStyle,
+ frameStyle: frameStyle,
+ maskStyle: maskStyle,
+ columns: columns,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.wxss
new file mode 100644
index 0000000..d924abb
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-picker{-webkit-text-size-adjust:100%;background-color:var(--picker-background-color,#fff);overflow:hidden;position:relative;-webkit-user-select:none;user-select:none}.van-picker__toolbar{display:flex;height:var(--picker-toolbar-height,44px);justify-content:space-between;line-height:var(--picker-toolbar-height,44px)}.van-picker__cancel,.van-picker__confirm{font-size:var(--picker-action-font-size,14px);padding:var(--picker-action-padding,0 16px)}.van-picker__cancel--hover,.van-picker__confirm--hover{opacity:.7}.van-picker__confirm{color:var(--picker-confirm-action-color,#576b95)}.van-picker__cancel{color:var(--picker-cancel-action-color,#969799)}.van-picker__title{font-size:var(--picker-option-font-size,16px);font-weight:var(--font-weight-bold,500);max-width:50%;text-align:center}.van-picker__columns{display:flex;position:relative}.van-picker__column{flex:1 1;width:0}.van-picker__loading{align-items:center;background-color:var(--picker-loading-mask-color,hsla(0,0%,100%,.9));bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:4}.van-picker__mask{-webkit-backface-visibility:hidden;backface-visibility:hidden;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-position:top,bottom;background-repeat:no-repeat;height:100%;left:0;top:0;width:100%;z-index:2}.van-picker__frame,.van-picker__mask{pointer-events:none;position:absolute}.van-picker__frame{left:16px;right:16px;top:50%;transform:translateY(-50%);z-index:1}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/picker/shared.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/shared.d.ts
new file mode 100644
index 0000000..c548045
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/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/gz-wxparty/miniprogram_npm/@vant/weapp/picker/shared.js b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/shared.js
new file mode 100644
index 0000000..3d40a8c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/shared.js
@@ -0,0 +1,24 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.pickerProps = void 0;
+exports.pickerProps = {
+ title: String,
+ loading: Boolean,
+ showToolbar: Boolean,
+ cancelButtonText: {
+ type: String,
+ value: '取消',
+ },
+ confirmButtonText: {
+ type: String,
+ value: '确认',
+ },
+ visibleItemCount: {
+ type: Number,
+ value: 6,
+ },
+ itemHeight: {
+ type: Number,
+ value: 44,
+ },
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/picker/toolbar.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/toolbar.wxml
new file mode 100644
index 0000000..414f612
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/picker/toolbar.wxml
@@ -0,0 +1,23 @@
+<view wx:if="{{ showToolbar }}" class="van-picker__toolbar toolbar-class">
+ <view
+ class="van-picker__cancel"
+ hover-class="van-picker__cancel--hover"
+ hover-stay-time="70"
+ data-type="cancel"
+ bindtap="emit"
+ >
+ {{ cancelButtonText }}
+ </view>
+ <view wx:if="{{ title }}" class="van-picker__title van-ellipsis">{{
+ title
+ }}</view>
+ <view
+ class="van-picker__confirm"
+ hover-class="van-picker__confirm--hover"
+ hover-stay-time="70"
+ data-type="confirm"
+ bindtap="emit"
+ >
+ {{ confirmButtonText }}
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.js
new file mode 100644
index 0000000..56367a4
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.js
@@ -0,0 +1,91 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var transition_1 = require("../mixins/transition");
+(0, component_1.VantComponent)({
+ classes: [
+ 'enter-class',
+ 'enter-active-class',
+ 'enter-to-class',
+ 'leave-class',
+ 'leave-active-class',
+ 'leave-to-class',
+ 'close-icon-class',
+ ],
+ mixins: [(0, transition_1.transition)(false)],
+ props: {
+ round: Boolean,
+ closeable: Boolean,
+ customStyle: String,
+ overlayStyle: String,
+ transition: {
+ type: String,
+ observer: 'observeClass',
+ },
+ zIndex: {
+ type: Number,
+ value: 100,
+ },
+ overlay: {
+ type: Boolean,
+ value: true,
+ },
+ closeIcon: {
+ type: String,
+ value: 'cross',
+ },
+ closeIconPosition: {
+ type: String,
+ value: 'top-right',
+ },
+ closeOnClickOverlay: {
+ type: Boolean,
+ value: true,
+ },
+ position: {
+ type: String,
+ value: 'center',
+ observer: 'observeClass',
+ },
+ safeAreaInsetBottom: {
+ type: Boolean,
+ value: true,
+ },
+ safeAreaInsetTop: {
+ type: Boolean,
+ value: false,
+ },
+ lockScroll: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ created: function () {
+ this.observeClass();
+ },
+ methods: {
+ onClickCloseIcon: function () {
+ this.$emit('close');
+ },
+ onClickOverlay: function () {
+ this.$emit('click-overlay');
+ if (this.data.closeOnClickOverlay) {
+ this.$emit('close');
+ }
+ },
+ observeClass: function () {
+ var _a = this.data, transition = _a.transition, position = _a.position, duration = _a.duration;
+ var updateData = {
+ name: transition || position,
+ };
+ if (transition === 'none') {
+ updateData.duration = 0;
+ this.originDuration = duration;
+ }
+ else if (this.originDuration != null) {
+ updateData.duration = this.originDuration;
+ }
+ this.setData(updateData);
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.json
new file mode 100644
index 0000000..88a6eab
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index",
+ "van-overlay": "../overlay/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.wxml
new file mode 100644
index 0000000..ea7d696
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.wxml
@@ -0,0 +1,26 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<van-overlay
+ wx:if="{{ overlay }}"
+ show="{{ show }}"
+ z-index="{{ zIndex }}"
+ custom-style="{{ overlayStyle }}"
+ duration="{{ duration }}"
+ bind:click="onClickOverlay"
+ lock-scroll="{{ lockScroll }}"
+/>
+<view
+ wx:if="{{ inited }}"
+ class="custom-class {{ classes }} {{ utils.bem('popup', [position, { round, safe: safeAreaInsetBottom, safeTop: safeAreaInsetTop }]) }}"
+ style="{{ computed.popupStyle({ zIndex, currentDuration, display, customStyle }) }}"
+ bind:transitionend="onTransitionEnd"
+>
+ <slot />
+ <van-icon
+ wx:if="{{ closeable }}"
+ name="{{ closeIcon }}"
+ class="close-icon-class van-popup__close-icon van-popup__close-icon--{{ closeIconPosition }}"
+ bind:tap="onClickCloseIcon"
+ />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.wxs
new file mode 100644
index 0000000..8d59f24
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.wxs
@@ -0,0 +1,18 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+
+function popupStyle(data) {
+ return style([
+ {
+ 'z-index': data.zIndex,
+ '-webkit-transition-duration': data.currentDuration + 'ms',
+ 'transition-duration': data.currentDuration + 'ms',
+ },
+ data.display ? null : 'display: none',
+ data.customStyle,
+ ]);
+}
+
+module.exports = {
+ popupStyle: popupStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.wxss
new file mode 100644
index 0000000..a840541
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/popup/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-popup{-webkit-overflow-scrolling:touch;animation:ease both;background-color:var(--popup-background-color,#fff);box-sizing:border-box;max-height:100%;overflow-y:auto;position:fixed;transition-timing-function:ease}.van-popup--center{left:50%;top:50%;transform:translate3d(-50%,-50%,0)}.van-popup--center.van-popup--round{border-radius:var(--popup-round-border-radius,16px)}.van-popup--top{left:0;top:0;width:100%}.van-popup--top.van-popup--round{border-radius:0 0 var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) var(--popup-round-border-radius,var(--popup-round-border-radius,16px))}.van-popup--right{right:0;top:50%;transform:translate3d(0,-50%,0)}.van-popup--right.van-popup--round{border-radius:var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) 0 0 var(--popup-round-border-radius,var(--popup-round-border-radius,16px))}.van-popup--bottom{bottom:0;left:0;width:100%}.van-popup--bottom.van-popup--round{border-radius:var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) 0 0}.van-popup--left{left:0;top:50%;transform:translate3d(0,-50%,0)}.van-popup--left.van-popup--round{border-radius:0 var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) 0}.van-popup--bottom.van-popup--safe{padding-bottom:env(safe-area-inset-bottom)}.van-popup--safeTop{padding-top:env(safe-area-inset-top)}.van-popup__close-icon{color:var(--popup-close-icon-color,#969799);font-size:var(--popup-close-icon-size,18px);position:absolute;z-index:var(--popup-close-icon-z-index,1)}.van-popup__close-icon--top-left{left:var(--popup-close-icon-margin,16px);top:var(--popup-close-icon-margin,16px)}.van-popup__close-icon--top-right{right:var(--popup-close-icon-margin,16px);top:var(--popup-close-icon-margin,16px)}.van-popup__close-icon--bottom-left{bottom:var(--popup-close-icon-margin,16px);left:var(--popup-close-icon-margin,16px)}.van-popup__close-icon--bottom-right{bottom:var(--popup-close-icon-margin,16px);right:var(--popup-close-icon-margin,16px)}.van-popup__close-icon:active{opacity:.6}.van-scale-enter-active,.van-scale-leave-active{transition-property:opacity,transform}.van-scale-enter,.van-scale-leave-to{opacity:0;transform:translate3d(-50%,-50%,0) scale(.7)}.van-fade-enter-active,.van-fade-leave-active{transition-property:opacity}.van-fade-enter,.van-fade-leave-to{opacity:0}.van-center-enter-active,.van-center-leave-active{transition-property:opacity}.van-center-enter,.van-center-leave-to{opacity:0}.van-bottom-enter-active,.van-bottom-leave-active,.van-left-enter-active,.van-left-leave-active,.van-right-enter-active,.van-right-leave-active,.van-top-enter-active,.van-top-leave-active{transition-property:transform}.van-bottom-enter,.van-bottom-leave-to{transform:translate3d(0,100%,0)}.van-top-enter,.van-top-leave-to{transform:translate3d(0,-100%,0)}.van-left-enter,.van-left-leave-to{transform:translate3d(-100%,-50%,0)}.van-right-enter,.van-right-leave-to{transform:translate3d(100%,-50%,0)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.js
new file mode 100644
index 0000000..3bca928
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.js
@@ -0,0 +1,55 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var color_1 = require("../common/color");
+var utils_1 = require("../common/utils");
+(0, component_1.VantComponent)({
+ props: {
+ inactive: Boolean,
+ percentage: {
+ type: Number,
+ observer: 'setLeft',
+ },
+ pivotText: String,
+ pivotColor: String,
+ trackColor: String,
+ showPivot: {
+ type: Boolean,
+ value: true,
+ },
+ color: {
+ type: String,
+ value: color_1.BLUE,
+ },
+ textColor: {
+ type: String,
+ value: '#fff',
+ },
+ strokeWidth: {
+ type: null,
+ value: 4,
+ },
+ },
+ data: {
+ right: 0,
+ },
+ mounted: function () {
+ this.setLeft();
+ },
+ methods: {
+ setLeft: function () {
+ var _this = this;
+ Promise.all([
+ (0, utils_1.getRect)(this, '.van-progress'),
+ (0, utils_1.getRect)(this, '.van-progress__pivot'),
+ ]).then(function (_a) {
+ var portion = _a[0], pivot = _a[1];
+ if (portion && pivot) {
+ _this.setData({
+ right: (pivot.width * (_this.data.percentage - 100)) / 100,
+ });
+ }
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.wxml
new file mode 100644
index 0000000..e81514d
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.wxml
@@ -0,0 +1,20 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="van-progress custom-class"
+ style="{{ computed.rootStyle({ strokeWidth, trackColor }) }}"
+>
+ <view
+ class="van-progress__portion"
+ style="{{ computed.portionStyle({ percentage, inactive, color }) }}"
+ >
+ <view
+ wx:if="{{ showPivot && computed.pivotText(pivotText, percentage) }}"
+ style="{{ computed.pivotStyle({ textColor, pivotColor, inactive, color, right }) }}"
+ class="van-progress__pivot"
+ >
+ {{ computed.pivotText(pivotText, percentage) }}
+ </view>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.wxs
new file mode 100644
index 0000000..5b1e8e6
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.wxs
@@ -0,0 +1,36 @@
+/* eslint-disable */
+var utils = require('../wxs/utils.wxs');
+var style = require('../wxs/style.wxs');
+
+function pivotText(pivotText, percentage) {
+ return pivotText || percentage + '%';
+}
+
+function rootStyle(data) {
+ return style({
+ 'height': data.strokeWidth ? utils.addUnit(data.strokeWidth) : '',
+ 'background': data.trackColor,
+ });
+}
+
+function portionStyle(data) {
+ return style({
+ background: data.inactive ? '#cacaca' : data.color,
+ width: data.percentage ? data.percentage + '%' : '',
+ });
+}
+
+function pivotStyle(data) {
+ return style({
+ color: data.textColor,
+ right: data.right + 'px',
+ background: data.pivotColor ? data.pivotColor : data.inactive ? '#cacaca' : data.color,
+ });
+}
+
+module.exports = {
+ pivotText: pivotText,
+ rootStyle: rootStyle,
+ portionStyle: portionStyle,
+ pivotStyle: pivotStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.wxss
new file mode 100644
index 0000000..a08972a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/progress/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-progress{background:var(--progress-background-color,#ebedf0);border-radius:var(--progress-height,4px);height:var(--progress-height,4px);position:relative}.van-progress__portion{background:var(--progress-color,#1989fa);border-radius:inherit;height:100%;left:0;position:absolute}.van-progress__pivot{background-color:var(--progress-pivot-background-color,#1989fa);border-radius:1em;box-sizing:border-box;color:var(--progress-pivot-text-color,#fff);font-size:var(--progress-pivot-font-size,10px);line-height:var(--progress-pivot-line-height,1.6);min-width:3.6em;padding:var(--progress-pivot-padding,0 5px);position:absolute;text-align:center;top:50%;transform:translateY(-50%);word-break:keep-all}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.js
new file mode 100644
index 0000000..ddb2a60
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.js
@@ -0,0 +1,24 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+(0, component_1.VantComponent)({
+ field: true,
+ relation: (0, relation_1.useChildren)('radio'),
+ props: {
+ value: {
+ type: null,
+ observer: 'updateChildren',
+ },
+ direction: String,
+ disabled: {
+ type: Boolean,
+ observer: 'updateChildren',
+ },
+ },
+ methods: {
+ updateChildren: function () {
+ this.children.forEach(function (child) { return child.updateFromParent(); });
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.wxml
new file mode 100644
index 0000000..0ab17af
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.wxml
@@ -0,0 +1,5 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view class="{{ utils.bem('radio-group', [direction]) }}">
+ <slot></slot>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.wxss
new file mode 100644
index 0000000..4e3b5d4
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/radio-group/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-radio-group--horizontal{display:flex;flex-wrap:wrap}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.js
new file mode 100644
index 0000000..61a86d5
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.js
@@ -0,0 +1,68 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var version_1 = require("../common/version");
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+(0, component_1.VantComponent)({
+ field: true,
+ relation: (0, relation_1.useParent)('radio-group', function () {
+ this.updateFromParent();
+ }),
+ classes: ['icon-class', 'label-class'],
+ props: {
+ name: null,
+ value: null,
+ disabled: Boolean,
+ useIconSlot: Boolean,
+ checkedColor: String,
+ labelPosition: {
+ type: String,
+ value: 'right',
+ },
+ labelDisabled: Boolean,
+ shape: {
+ type: String,
+ value: 'round',
+ },
+ iconSize: {
+ type: null,
+ value: 20,
+ },
+ },
+ data: {
+ direction: '',
+ parentDisabled: false,
+ },
+ methods: {
+ updateFromParent: function () {
+ if (!this.parent) {
+ return;
+ }
+ var _a = this.parent.data, value = _a.value, parentDisabled = _a.disabled, direction = _a.direction;
+ this.setData({
+ value: value,
+ direction: direction,
+ parentDisabled: parentDisabled,
+ });
+ },
+ emitChange: function (value) {
+ var instance = this.parent || this;
+ instance.$emit('input', value);
+ instance.$emit('change', value);
+ if ((0, version_1.canIUseModel)()) {
+ instance.setData({ value: value });
+ }
+ },
+ onChange: function () {
+ if (!this.data.disabled && !this.data.parentDisabled) {
+ this.emitChange(this.data.name);
+ }
+ },
+ onClickLabel: function () {
+ var _a = this.data, disabled = _a.disabled, parentDisabled = _a.parentDisabled, labelDisabled = _a.labelDisabled, name = _a.name;
+ if (!(disabled || parentDisabled) && !labelDisabled) {
+ this.emitChange(name);
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.json
new file mode 100644
index 0000000..0a336c0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.wxml
new file mode 100644
index 0000000..5f898c0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.wxml
@@ -0,0 +1,30 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view class="{{ utils.bem('radio', [direction]) }} custom-class">
+ <view
+ wx:if="{{ labelPosition === 'left' }}"
+ class="{{ utils.bem('radio__label', [labelPosition, { disabled: disabled || parentDisabled }]) }} label-class"
+ bindtap="onClickLabel"
+ >
+ <slot />
+ </view>
+ <view class="van-radio__icon-wrap" style="font-size: {{ utils.addUnit(iconSize) }}" bindtap="onChange">
+ <slot wx:if="{{ useIconSlot }}" name="icon" />
+ <van-icon
+ wx:else
+ name="success"
+ class="{{ utils.bem('radio__icon', [shape, { disabled: disabled || parentDisabled, checked: value === name }]) }}"
+ style="{{ computed.iconStyle({ iconSize, checkedColor, disabled, parentDisabled, value, name }) }}"
+ custom-class="icon-class"
+ custom-style="{{ computed.iconCustomStyle({ iconSize }) }}"
+ />
+ </view>
+ <view
+ wx:if="{{ labelPosition === 'right' }}"
+ class="label-class {{ utils.bem('radio__label', [labelPosition, { disabled: disabled || parentDisabled }]) }}"
+ bindtap="onClickLabel"
+ >
+ <slot />
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.wxs
new file mode 100644
index 0000000..a428aad
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.wxs
@@ -0,0 +1,33 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function iconStyle(data) {
+ var styles = {
+ 'font-size': addUnit(data.iconSize),
+ };
+
+ if (
+ data.checkedColor &&
+ !(data.disabled || data.parentDisabled) &&
+ data.value === data.name
+ ) {
+ styles['border-color'] = data.checkedColor;
+ styles['background-color'] = data.checkedColor;
+ }
+
+ return style(styles);
+}
+
+function iconCustomStyle(data) {
+ return style({
+ 'line-height': addUnit(data.iconSize),
+ 'font-size': '.8em',
+ display: 'block',
+ });
+}
+
+module.exports = {
+ iconStyle: iconStyle,
+ iconCustomStyle: iconCustomStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.wxss
new file mode 100644
index 0000000..257b0c7
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/radio/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-radio{align-items:center;display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-radio__icon-wrap{flex:none}.van-radio--horizontal{margin-right:var(--padding-sm,12px)}.van-radio__icon{align-items:center;border:1px solid var(--radio-border-color,#c8c9cc);box-sizing:border-box;color:transparent;display:flex;font-size:var(--radio-size,20px);height:1em;justify-content:center;text-align:center;transition-duration:var(--radio-transition-duration,.2s);transition-property:color,border-color,background-color;width:1em}.van-radio__icon--round{border-radius:100%}.van-radio__icon--checked{background-color:var(--radio-checked-icon-color,#1989fa);border-color:var(--radio-checked-icon-color,#1989fa);color:#fff}.van-radio__icon--disabled{background-color:var(--radio-disabled-background-color,#ebedf0);border-color:var(--radio-disabled-icon-color,#c8c9cc)}.van-radio__icon--disabled.van-radio__icon--checked{color:var(--radio-disabled-icon-color,#c8c9cc)}.van-radio__label{word-wrap:break-word;color:var(--radio-label-color,#323233);line-height:var(--radio-size,20px);padding-left:var(--radio-label-margin,10px)}.van-radio__label--left{float:left;margin:0 var(--radio-label-margin,10px) 0 0}.van-radio__label--disabled{color:var(--radio-disabled-label-color,#c8c9cc)}.van-radio__label:empty{margin:0}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.js
new file mode 100644
index 0000000..30a96de
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.js
@@ -0,0 +1,93 @@
+"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 utils_1 = require("../common/utils");
+var component_1 = require("../common/component");
+var version_1 = require("../common/version");
+(0, component_1.VantComponent)({
+ field: true,
+ classes: ['icon-class'],
+ props: {
+ value: {
+ type: Number,
+ observer: function (value) {
+ if (value !== this.data.innerValue) {
+ this.setData({ innerValue: value });
+ }
+ },
+ },
+ readonly: Boolean,
+ disabled: Boolean,
+ allowHalf: Boolean,
+ size: null,
+ icon: {
+ type: String,
+ value: 'star',
+ },
+ voidIcon: {
+ type: String,
+ value: 'star-o',
+ },
+ color: String,
+ voidColor: String,
+ disabledColor: String,
+ count: {
+ type: Number,
+ value: 5,
+ observer: function (value) {
+ this.setData({ innerCountArray: Array.from({ length: value }) });
+ },
+ },
+ gutter: null,
+ touchable: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ data: {
+ innerValue: 0,
+ innerCountArray: Array.from({ length: 5 }),
+ },
+ methods: {
+ onSelect: function (event) {
+ var _this = this;
+ var data = this.data;
+ var score = event.currentTarget.dataset.score;
+ if (!data.disabled && !data.readonly) {
+ this.setData({ innerValue: score + 1 });
+ if ((0, version_1.canIUseModel)()) {
+ this.setData({ value: score + 1 });
+ }
+ wx.nextTick(function () {
+ _this.$emit('input', score + 1);
+ _this.$emit('change', score + 1);
+ });
+ }
+ },
+ onTouchMove: function (event) {
+ var _this = this;
+ var touchable = this.data.touchable;
+ if (!touchable)
+ return;
+ var clientX = event.touches[0].clientX;
+ (0, utils_1.getAllRect)(this, '.van-rate__icon').then(function (list) {
+ var target = list
+ .sort(function (cur, next) { return cur.dataset.score - next.dataset.score; })
+ .find(function (item) { return clientX >= item.left && clientX <= item.right; });
+ if (target != null) {
+ _this.onSelect(__assign(__assign({}, event), { currentTarget: target }));
+ }
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.json
new file mode 100644
index 0000000..0a336c0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.wxml
new file mode 100644
index 0000000..049714c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.wxml
@@ -0,0 +1,35 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="../wxs/style.wxs" module="style" />
+
+<view
+ class="{{ utils.bem('rate') }} custom-class"
+ bind:touchmove="onTouchMove"
+>
+ <view
+ class="{{ utils.bem('rate__item') }}"
+ wx:for="{{ innerCountArray }}"
+ wx:key="index"
+ style="{{ style({ paddingRight: index !== count - 1 ? utils.addUnit(gutter) : null }) }}"
+ >
+ <van-icon
+ name="{{ index + 1 <= innerValue ? icon : voidIcon }}"
+ class="{{ utils.bem('rate__icon', [{ disabled, full: index + 1 <= innerValue }])}}"
+ style="{{ style({ fontSize: utils.addUnit(size) }) }}"
+ custom-class="icon-class"
+ data-score="{{ index }}"
+ color="{{ disabled ? disabledColor : index + 1 <= innerValue ? color : voidColor }}"
+ bind:click="onSelect"
+ />
+
+ <van-icon
+ wx:if="{{ allowHalf }}"
+ name="{{ index + 0.5 <= innerValue ? icon : voidIcon }}"
+ class="{{ utils.bem('rate__icon', ['half', { disabled, full: index + 0.5 <= innerValue }]) }}"
+ style="{{ style({ fontSize: utils.addUnit(size) }) }}"
+ custom-class="icon-class"
+ data-score="{{ index - 0.5 }}"
+ color="{{ disabled ? disabledColor : index + 0.5 <= innerValue ? color : voidColor }}"
+ bind:click="onSelect"
+ />
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.wxss
new file mode 100644
index 0000000..e2a517e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/rate/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-rate{display:inline-flex;-webkit-user-select:none;user-select:none}.van-rate__item{padding:0 var(--rate-horizontal-padding,2px);position:relative}.van-rate__item:not(:last-child){padding-right:var(--rate-icon-gutter,4px)}.van-rate__icon{color:var(--rate-icon-void-color,#c8c9cc);display:block;font-size:var(--rate-icon-size,20px);height:1em}.van-rate__icon--half{left:var(--rate-horizontal-padding,2px);overflow:hidden;position:absolute;top:0;width:.5em}.van-rate__icon--full,.van-rate__icon--half{color:var(--rate-icon-full-color,#ee0a24)}.van-rate__icon--disabled{color:var(--rate-icon-disabled-color,#c8c9cc)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.js
new file mode 100644
index 0000000..c27acd6
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.js
@@ -0,0 +1,26 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+(0, component_1.VantComponent)({
+ relation: (0, relation_1.useChildren)('col', function (target) {
+ var gutter = this.data.gutter;
+ if (gutter) {
+ target.setData({ gutter: gutter });
+ }
+ }),
+ props: {
+ gutter: {
+ type: Number,
+ observer: 'setGutter',
+ },
+ },
+ methods: {
+ setGutter: function () {
+ var _this = this;
+ this.children.forEach(function (col) {
+ col.setData(_this.data);
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.wxml
new file mode 100644
index 0000000..69a4359
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.wxml
@@ -0,0 +1,5 @@
+<wxs src="./index.wxs" module="computed" />
+
+<view class="van-row custom-class" style="{{ computed.rootStyle({ gutter }) }}">
+ <slot />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.wxs
new file mode 100644
index 0000000..f5c5958
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.wxs
@@ -0,0 +1,18 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function rootStyle(data) {
+ if (!data.gutter) {
+ return '';
+ }
+
+ return style({
+ 'margin-right': addUnit(-data.gutter / 2),
+ 'margin-left': addUnit(-data.gutter / 2),
+ });
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.wxss
new file mode 100644
index 0000000..bb8946b
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/row/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-row:after{clear:both;content:"";display:table}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.js
new file mode 100644
index 0000000..d954ca3
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.js
@@ -0,0 +1,92 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var version_1 = require("../common/version");
+(0, component_1.VantComponent)({
+ field: true,
+ classes: ['field-class', 'input-class', 'cancel-class'],
+ props: {
+ label: String,
+ focus: Boolean,
+ error: Boolean,
+ disabled: Boolean,
+ readonly: Boolean,
+ inputAlign: String,
+ showAction: Boolean,
+ useActionSlot: Boolean,
+ useLeftIconSlot: Boolean,
+ useRightIconSlot: Boolean,
+ leftIcon: {
+ type: String,
+ value: 'search',
+ },
+ rightIcon: String,
+ placeholder: String,
+ placeholderStyle: String,
+ actionText: {
+ type: String,
+ value: '取消',
+ },
+ background: {
+ type: String,
+ value: '#ffffff',
+ },
+ maxlength: {
+ type: Number,
+ value: -1,
+ },
+ shape: {
+ type: String,
+ value: 'square',
+ },
+ clearable: {
+ type: Boolean,
+ value: true,
+ },
+ clearTrigger: {
+ type: String,
+ value: 'focus',
+ },
+ clearIcon: {
+ type: String,
+ value: 'clear',
+ },
+ },
+ methods: {
+ onChange: function (event) {
+ if ((0, version_1.canIUseModel)()) {
+ this.setData({ value: event.detail });
+ }
+ this.$emit('change', event.detail);
+ },
+ onCancel: function () {
+ var _this = this;
+ /**
+ * 修复修改输入框值时,输入框失焦和赋值同时触发,赋值失效
+ * https://github.com/youzan/@vant/weapp/issues/1768
+ */
+ setTimeout(function () {
+ if ((0, version_1.canIUseModel)()) {
+ _this.setData({ value: '' });
+ }
+ _this.$emit('cancel');
+ _this.$emit('change', '');
+ }, 200);
+ },
+ onSearch: function (event) {
+ this.$emit('search', event.detail);
+ },
+ onFocus: function (event) {
+ this.$emit('focus', event.detail);
+ },
+ onBlur: function (event) {
+ this.$emit('blur', event.detail);
+ },
+ onClear: function (event) {
+ this.$emit('clear', event.detail);
+ },
+ onClickInput: function (event) {
+ this.$emit('click-input', event.detail);
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.json
new file mode 100644
index 0000000..b4cfe91
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-field": "../field/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.wxml
new file mode 100644
index 0000000..0068cfe
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.wxml
@@ -0,0 +1,53 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ class="{{ utils.bem('search', { withaction: showAction || useActionSlot }) }} custom-class"
+ style="background: {{ background }}"
+>
+ <view class="{{ utils.bem('search__content', [shape]) }}">
+ <view class="van-search__label" wx:if="{{ label }}">{{ label }}</view>
+ <slot wx:else name="label" />
+
+ <van-field
+ type="search"
+ left-icon="{{ !useLeftIconSlot ? leftIcon : '' }}"
+ right-icon="{{ !useRightIconSlot ? rightIcon : '' }}"
+ focus="{{ focus }}"
+ error="{{ error }}"
+ border="{{ false }}"
+ confirm-type="search"
+ class="van-search__field field-class"
+ value="{{ value }}"
+ disabled="{{ disabled }}"
+ readonly="{{ readonly }}"
+ clearable="{{ clearable }}"
+ clear-trigger="{{ clearTrigger }}"
+ clear-icon="{{ clearIcon }}"
+ maxlength="{{ maxlength }}"
+ input-align="{{ inputAlign }}"
+ input-class="input-class"
+ placeholder="{{ placeholder }}"
+ placeholder-style="{{ placeholderStyle }}"
+ custom-style="padding: 5px 10px 5px 0; background-color: transparent;"
+ bind:blur="onBlur"
+ bind:focus="onFocus"
+ bind:change="onChange"
+ bind:confirm="onSearch"
+ bind:clear="onClear"
+ bind:click-input="onClickInput"
+ >
+ <slot wx:if="{{ useLeftIconSlot }}" name="left-icon" slot="left-icon" />
+ <slot wx:if="{{ useRightIconSlot }}" name="right-icon" slot="right-icon" />
+ </van-field>
+ </view>
+
+ <view
+ wx:if="{{ showAction || useActionSlot }}"
+ class="van-search__action"
+ hover-class="van-search__action--hover"
+ hover-stay-time="70"
+ >
+ <slot wx:if="{{ useActionSlot }}" name="action" />
+ <view wx:else bind:tap="onCancel" class="cancel-class">{{ actionText }}</view>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.wxss
new file mode 100644
index 0000000..212f7aa
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/search/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-search{align-items:center;box-sizing:border-box;display:flex;padding:var(--search-padding,10px 12px)}.van-search__content{background-color:var(--search-background-color,#f7f8fa);border-radius:2px;display:flex;flex:1;padding-left:var(--padding-sm,12px)}.van-search__content--round{border-radius:999px}.van-search__label{color:var(--search-label-color,#323233);font-size:var(--search-label-font-size,14px);line-height:var(--search-input-height,34px);padding:var(--search-label-padding,0 5px)}.van-search__field{flex:1}.van-search__field__left-icon{color:var(--search-left-icon-color,#969799)}.van-search--withaction{padding-right:0}.van-search__action{color:var(--search-action-text-color,#323233);font-size:var(--search-action-font-size,14px);line-height:var(--search-input-height,34px);padding:var(--search-action-padding,0 8px)}.van-search__action--hover{background-color:#f2f3f5}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.js
new file mode 100644
index 0000000..669ca0d
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.js
@@ -0,0 +1,57 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ props: {
+ // whether to show popup
+ show: Boolean,
+ // overlay custom style
+ overlayStyle: String,
+ // z-index
+ zIndex: {
+ type: Number,
+ value: 100,
+ },
+ title: String,
+ cancelText: {
+ type: String,
+ value: '取消',
+ },
+ description: String,
+ options: {
+ type: Array,
+ value: [],
+ },
+ overlay: {
+ type: Boolean,
+ value: true,
+ },
+ safeAreaInsetBottom: {
+ type: Boolean,
+ value: true,
+ },
+ closeOnClickOverlay: {
+ type: Boolean,
+ value: true,
+ },
+ duration: {
+ type: null,
+ value: 300,
+ },
+ },
+ methods: {
+ onClickOverlay: function () {
+ this.$emit('click-overlay');
+ },
+ onCancel: function () {
+ this.onClose();
+ this.$emit('cancel');
+ },
+ onSelect: function (event) {
+ this.$emit('select', event.detail);
+ },
+ onClose: function () {
+ this.$emit('close');
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.json
new file mode 100644
index 0000000..15a7c22
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-popup": "../popup/index",
+ "options": "./options"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.wxml
new file mode 100644
index 0000000..cefc3af
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.wxml
@@ -0,0 +1,46 @@
+<wxs src="./index.wxs" module="computed" />
+
+<van-popup
+ round
+ class="van-share-sheet"
+ show="{{ show }}"
+ position="bottom"
+ overlay="{{ overlay }}"
+ duration="{{ duration }}"
+ z-index="{{ zIndex }}"
+ overlay-style="{{ overlayStyle }}"
+ close-on-click-overlay="{{ closeOnClickOverlay }}"
+ safe-area-inset-bottom="{{ safeAreaInsetBottom }}"
+ bind:close="onClose"
+ bind:click-overlay="onClickOverlay"
+>
+ <view class="van-share-sheet__header">
+ <view class="van-share-sheet__title">
+ <slot name="title" />
+ </view>
+ <view wx:if="{{ title }}" class="van-share-sheet__title">{{ title }}</view>
+
+ <view class="van-share-sheet__description">
+ <slot name="description" />
+ </view>
+ <view wx:if="{{ description }}" class="van-share-sheet__description">
+ {{ description }}
+ </view>
+ </view>
+
+ <block wx:if="{{ computed.isMulti(options) }}">
+ <options
+ wx:for="{{ options }}"
+ show-border="{{ index !== 0 }}"
+ wx:key="index"
+ options="{{ item }}"
+ bind:select="onSelect"
+ />
+ </block>
+
+ <options wx:else options="{{ options }}" bind:select="onSelect" />
+
+ <button type="button" class="van-share-sheet__cancel" bindtap="onCancel">
+ {{ cancelText }}
+ </button>
+</van-popup>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.wxs
new file mode 100644
index 0000000..2149ee9
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.wxs
@@ -0,0 +1,12 @@
+/* eslint-disable */
+function isMulti(options) {
+ if (options == null || options[0] == null) {
+ return false;
+ }
+
+ return "Array" === options.constructor && "Array" === options[0].constructor;
+}
+
+module.exports = {
+ isMulti: isMulti
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.wxss
new file mode 100644
index 0000000..e8d8dae
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-share-sheet__header{padding:12px 16px 4px;text-align:center}.van-share-sheet__title{color:#323233;font-size:14px;font-weight:400;line-height:20px;margin-top:8px}.van-share-sheet__title:empty,.van-share-sheet__title:not(:empty)+.van-share-sheet__title{display:none}.van-share-sheet__description{color:#969799;display:block;font-size:12px;line-height:16px;margin-top:8px}.van-share-sheet__description:empty,.van-share-sheet__description:not(:empty)+.van-share-sheet__description{display:none}.van-share-sheet__cancel{background:#fff;border:none;box-sizing:initial;display:block;font-size:16px;height:auto;line-height:48px;padding:0;text-align:center;width:100%}.van-share-sheet__cancel:before{background-color:#f7f8fa;content:" ";display:block;height:8px}.van-share-sheet__cancel:after{display:none}.van-share-sheet__cancel:active{background-color:#f2f3f5}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.js b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.js
new file mode 100644
index 0000000..0432d4f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.js
@@ -0,0 +1,27 @@
+"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");
+(0, component_1.VantComponent)({
+ props: {
+ options: Array,
+ showBorder: Boolean,
+ },
+ methods: {
+ onSelect: function (event) {
+ var index = event.currentTarget.dataset.index;
+ var option = this.data.options[index];
+ this.$emit('select', __assign(__assign({}, option), { index: index }));
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.json b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.wxml
new file mode 100644
index 0000000..2983ebb
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.wxml
@@ -0,0 +1,20 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./options.wxs" module="computed" />
+
+<view class="{{ utils.bem('share-sheet__options', { border: showBorder }) }}">
+ <view
+ wx:for="{{ options }}"
+ wx:key="index"
+ class="van-share-sheet__option"
+ data-index="{{ index }}"
+ bindtap="onSelect"
+ >
+ <button class="van-share-sheet__button" open-type="{{ item.openType }}">
+ <image src="{{ computed.getIconURL(item.icon) }}" class="van-share-sheet__icon" />
+ <view wx:if="{{ item.name }}" class="van-share-sheet__name">{{ item.name }}</view>
+ <view wx:if="{{ item.description }}" class="van-share-sheet__option-description">
+ {{ item.description }}
+ </view>
+ </button>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.wxs
new file mode 100644
index 0000000..a116d32
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.wxs
@@ -0,0 +1,14 @@
+/* eslint-disable */
+var PRESET_ICONS = ['qq', 'link', 'weibo', 'wechat', 'poster', 'qrcode', 'weapp-qrcode', 'wechat-moments'];
+
+function getIconURL(icon) {
+ if (PRESET_ICONS.indexOf(icon) !== -1) {
+ return 'https://img.yzcdn.cn/vant/share-sheet-' + icon + '.png';
+ }
+
+ return icon;
+}
+
+module.exports = {
+ getIconURL: getIconURL,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.wxss
new file mode 100644
index 0000000..b7f5455
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/share-sheet/options.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-share-sheet__options{-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto;overflow-y:visible;padding:16px 0 16px 8px;position:relative}.van-share-sheet__options--border:before{border-top:1px solid #ebedf0;box-sizing:border-box;content:" ";left:16px;pointer-events:none;position:absolute;right:0;top:0;transform:scaleY(.5);transform-origin:center}.van-share-sheet__options::-webkit-scrollbar{height:0}.van-share-sheet__option{align-items:center;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none}.van-share-sheet__option:active{opacity:.7}.van-share-sheet__button{background-color:initial;border:0;height:auto;line-height:inherit;padding:0}.van-share-sheet__button:after{border:0}.van-share-sheet__icon{height:48px;margin:0 16px;width:48px}.van-share-sheet__name{color:#646566;font-size:12px;margin-top:8px;padding:0 4px}.van-share-sheet__option-description{color:#c8c9cc;font-size:12px;padding:0 4px}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.js
new file mode 100644
index 0000000..eac568f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.js
@@ -0,0 +1,32 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+(0, component_1.VantComponent)({
+ classes: ['active-class', 'disabled-class'],
+ relation: (0, relation_1.useParent)('sidebar'),
+ props: {
+ dot: Boolean,
+ badge: null,
+ info: null,
+ title: String,
+ disabled: Boolean,
+ },
+ methods: {
+ onClick: function () {
+ var _this = this;
+ var parent = this.parent;
+ if (!parent || this.data.disabled) {
+ return;
+ }
+ var index = parent.children.indexOf(this);
+ parent.setActive(index).then(function () {
+ _this.$emit('click', index);
+ parent.$emit('change', index);
+ });
+ },
+ setActive: function (selected) {
+ return this.setData({ selected: selected });
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.json
new file mode 100644
index 0000000..bf0ebe0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-info": "../info/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.wxml
new file mode 100644
index 0000000..c5c08a6
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.wxml
@@ -0,0 +1,18 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ class="{{ utils.bem('sidebar-item', { selected, disabled }) }} {{ selected ? 'active-class' : '' }} {{ disabled ? 'disabled-class' : '' }} custom-class"
+ hover-class="van-sidebar-item--hover"
+ hover-stay-time="70"
+ bind:tap="onClick"
+>
+ <view class="van-sidebar-item__text">
+ <van-info
+ wx:if="{{ badge != null || info !== null || dot }}"
+ dot="{{ dot }}"
+ info="{{ badge != null ? badge : info }}"
+ />
+ <view wx:if="{{ title }}">{{ title }}</view>
+ <slot wx:else name="title" />
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.wxss
new file mode 100644
index 0000000..f1ce421
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar-item/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-sidebar-item{background-color:var(--sidebar-background-color,#f7f8fa);border-left:3px solid transparent;box-sizing:border-box;color:var(--sidebar-text-color,#323233);display:block;font-size:var(--sidebar-font-size,14px);line-height:var(--sidebar-line-height,20px);overflow:hidden;padding:var(--sidebar-padding,20px 12px 20px 8px);-webkit-user-select:none;user-select:none}.van-sidebar-item__text{display:inline-block;position:relative;word-break:break-all}.van-sidebar-item--hover:not(.van-sidebar-item--disabled){background-color:var(--sidebar-active-color,#f2f3f5)}.van-sidebar-item:after{border-bottom-width:1px}.van-sidebar-item--selected{border-color:var(--sidebar-selected-border-color,#ee0a24);color:var(--sidebar-selected-text-color,#323233);font-weight:var(--sidebar-selected-font-weight,500)}.van-sidebar-item--selected:after{border-right-width:1px}.van-sidebar-item--selected,.van-sidebar-item--selected.van-sidebar-item--hover{background-color:var(--sidebar-selected-background-color,#fff)}.van-sidebar-item--disabled{color:var(--sidebar-disabled-text-color,#c8c9cc)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.js
new file mode 100644
index 0000000..f3e0a58
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.js
@@ -0,0 +1,36 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+(0, component_1.VantComponent)({
+ relation: (0, relation_1.useChildren)('sidebar-item', function () {
+ this.setActive(this.data.activeKey);
+ }),
+ props: {
+ activeKey: {
+ type: Number,
+ value: 0,
+ observer: 'setActive',
+ },
+ },
+ beforeCreate: function () {
+ this.currentActive = -1;
+ },
+ methods: {
+ setActive: function (activeKey) {
+ var _a = this, children = _a.children, currentActive = _a.currentActive;
+ if (!children.length) {
+ return Promise.resolve();
+ }
+ this.currentActive = activeKey;
+ var stack = [];
+ if (currentActive !== activeKey && children[currentActive]) {
+ stack.push(children[currentActive].setActive(false));
+ }
+ if (children[activeKey]) {
+ stack.push(children[activeKey].setActive(true));
+ }
+ return Promise.all(stack);
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.wxml
new file mode 100644
index 0000000..96b11c7
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.wxml
@@ -0,0 +1,3 @@
+<view class="van-sidebar custom-class">
+ <slot />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.wxss
new file mode 100644
index 0000000..5a2d44f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sidebar/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-sidebar{width:var(--sidebar-width,80px)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.js
new file mode 100644
index 0000000..2ab3175
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.js
@@ -0,0 +1,48 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ classes: ['avatar-class', 'title-class', 'row-class'],
+ props: {
+ row: {
+ type: Number,
+ value: 0,
+ observer: function (value) {
+ this.setData({ rowArray: Array.from({ length: value }) });
+ },
+ },
+ title: Boolean,
+ avatar: Boolean,
+ loading: {
+ type: Boolean,
+ value: true,
+ },
+ animate: {
+ type: Boolean,
+ value: true,
+ },
+ avatarSize: {
+ type: String,
+ value: '32px',
+ },
+ avatarShape: {
+ type: String,
+ value: 'round',
+ },
+ titleWidth: {
+ type: String,
+ value: '40%',
+ },
+ rowWidth: {
+ type: null,
+ value: '100%',
+ observer: function (val) {
+ this.setData({ isArray: val instanceof Array });
+ },
+ },
+ },
+ data: {
+ isArray: false,
+ rowArray: [],
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.json
new file mode 100644
index 0000000..a89ef4d
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.wxml
new file mode 100644
index 0000000..058e2ef
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.wxml
@@ -0,0 +1,29 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ wx:if="{{ loading }}"
+ class="custom-class {{ utils.bem('skeleton', [{animate}]) }}"
+>
+ <view
+ wx:if="{{ avatar }}"
+ class="avatar-class {{ utils.bem('skeleton__avatar', [avatarShape])}}"
+ style="{{ 'width:' + avatarSize + ';height:' + avatarSize }}"
+ />
+ <view class="{{ utils.bem('skeleton__content')}}">
+ <view
+ wx:if="{{ title }}"
+ class="title-class {{ utils.bem('skeleton__title') }}"
+ style="{{ 'width:' + titleWidth }}"
+ />
+ <view
+ wx:for="{{ rowArray }}"
+ wx:key="index"
+ wx:for-index="index"
+ class="row-class {{ utils.bem('skeleton__row') }}"
+ style="{{ 'width:' + (isArray ? rowWidth[index] : rowWidth) }}"
+ />
+ </view>
+</view>
+<view wx:else class="{{ utils.bem('skeleton__content')}}">
+ <slot />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.wxss
new file mode 100644
index 0000000..d59a5ed
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/skeleton/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-skeleton{box-sizing:border-box;display:flex;padding:var(--skeleton-padding,0 16px);width:100%}.van-skeleton__avatar{background-color:var(--skeleton-avatar-background-color,#f2f3f5);flex-shrink:0;margin-right:var(--padding-md,16px)}.van-skeleton__avatar--round{border-radius:100%}.van-skeleton__content{flex:1}.van-skeleton__avatar+.van-skeleton__content{padding-top:var(--padding-xs,8px)}.van-skeleton__row,.van-skeleton__title{background-color:var(--skeleton-row-background-color,#f2f3f5);height:var(--skeleton-row-height,16px)}.van-skeleton__title{margin:0}.van-skeleton__row:not(:first-child){margin-top:var(--skeleton-row-margin-top,12px)}.van-skeleton__title+.van-skeleton__row{margin-top:20px}.van-skeleton--animate{animation:van-skeleton-blink 1.2s ease-in-out infinite}@keyframes van-skeleton-blink{50%{opacity:.6}}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.js
new file mode 100644
index 0000000..9fa3790
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.js
@@ -0,0 +1,189 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var touch_1 = require("../mixins/touch");
+var version_1 = require("../common/version");
+var utils_1 = require("../common/utils");
+(0, component_1.VantComponent)({
+ mixins: [touch_1.touch],
+ props: {
+ range: Boolean,
+ disabled: Boolean,
+ useButtonSlot: Boolean,
+ activeColor: String,
+ inactiveColor: String,
+ max: {
+ type: Number,
+ value: 100,
+ },
+ min: {
+ type: Number,
+ value: 0,
+ },
+ step: {
+ type: Number,
+ value: 1,
+ },
+ value: {
+ type: null,
+ value: 0,
+ observer: function (val) {
+ if (val !== this.value) {
+ this.updateValue(val);
+ }
+ },
+ },
+ vertical: Boolean,
+ barHeight: null,
+ },
+ created: function () {
+ this.updateValue(this.data.value);
+ },
+ methods: {
+ onTouchStart: function (event) {
+ var _this = this;
+ if (this.data.disabled)
+ return;
+ var index = event.currentTarget.dataset.index;
+ if (typeof index === 'number') {
+ this.buttonIndex = index;
+ }
+ this.touchStart(event);
+ this.startValue = this.format(this.value);
+ this.newValue = this.value;
+ if (this.isRange(this.newValue)) {
+ this.startValue = this.newValue.map(function (val) { return _this.format(val); });
+ }
+ else {
+ this.startValue = this.format(this.newValue);
+ }
+ this.dragStatus = 'start';
+ },
+ onTouchMove: function (event) {
+ var _this = this;
+ if (this.data.disabled)
+ return;
+ if (this.dragStatus === 'start') {
+ this.$emit('drag-start');
+ }
+ this.touchMove(event);
+ this.dragStatus = 'draging';
+ (0, utils_1.getRect)(this, '.van-slider').then(function (rect) {
+ var vertical = _this.data.vertical;
+ var delta = vertical ? _this.deltaY : _this.deltaX;
+ var total = vertical ? rect.height : rect.width;
+ var diff = (delta / total) * _this.getRange();
+ if (_this.isRange(_this.startValue)) {
+ _this.newValue[_this.buttonIndex] =
+ _this.startValue[_this.buttonIndex] + diff;
+ }
+ else {
+ _this.newValue = _this.startValue + diff;
+ }
+ _this.updateValue(_this.newValue, false, true);
+ });
+ },
+ onTouchEnd: function () {
+ if (this.data.disabled)
+ return;
+ if (this.dragStatus === 'draging') {
+ this.updateValue(this.newValue, true);
+ this.$emit('drag-end');
+ }
+ },
+ onClick: function (event) {
+ var _this = this;
+ if (this.data.disabled)
+ return;
+ var min = this.data.min;
+ (0, utils_1.getRect)(this, '.van-slider').then(function (rect) {
+ var vertical = _this.data.vertical;
+ var touch = event.touches[0];
+ var delta = vertical
+ ? touch.clientY - rect.top
+ : touch.clientX - rect.left;
+ var total = vertical ? rect.height : rect.width;
+ var value = Number(min) + (delta / total) * _this.getRange();
+ if (_this.isRange(_this.value)) {
+ var _a = _this.value, left = _a[0], right = _a[1];
+ var middle = (left + right) / 2;
+ if (value <= middle) {
+ _this.updateValue([value, right], true);
+ }
+ else {
+ _this.updateValue([left, value], true);
+ }
+ }
+ else {
+ _this.updateValue(value, true);
+ }
+ });
+ },
+ isRange: function (val) {
+ var range = this.data.range;
+ return range && Array.isArray(val);
+ },
+ handleOverlap: function (value) {
+ if (value[0] > value[1]) {
+ return value.slice(0).reverse();
+ }
+ return value;
+ },
+ updateValue: function (value, end, drag) {
+ var _this = this;
+ if (this.isRange(value)) {
+ value = this.handleOverlap(value).map(function (val) { return _this.format(val); });
+ }
+ else {
+ value = this.format(value);
+ }
+ this.value = value;
+ var vertical = this.data.vertical;
+ var mainAxis = vertical ? 'height' : 'width';
+ this.setData({
+ wrapperStyle: "\n background: ".concat(this.data.inactiveColor || '', ";\n ").concat(vertical ? 'width' : 'height', ": ").concat((0, utils_1.addUnit)(this.data.barHeight) || '', ";\n "),
+ barStyle: "\n ".concat(mainAxis, ": ").concat(this.calcMainAxis(), ";\n left: ").concat(vertical ? 0 : this.calcOffset(), ";\n top: ").concat(vertical ? this.calcOffset() : 0, ";\n ").concat(drag ? 'transition: none;' : '', "\n "),
+ });
+ if (drag) {
+ this.$emit('drag', { value: value });
+ }
+ if (end) {
+ this.$emit('change', value);
+ }
+ if ((drag || end) && (0, version_1.canIUseModel)()) {
+ this.setData({ value: value });
+ }
+ },
+ getScope: function () {
+ return Number(this.data.max) - Number(this.data.min);
+ },
+ getRange: function () {
+ var _a = this.data, max = _a.max, min = _a.min;
+ return max - min;
+ },
+ // 计算选中条的长度百分比
+ calcMainAxis: function () {
+ var value = this.value;
+ var min = this.data.min;
+ var scope = this.getScope();
+ if (this.isRange(value)) {
+ return "".concat(((value[1] - value[0]) * 100) / scope, "%");
+ }
+ return "".concat(((value - Number(min)) * 100) / scope, "%");
+ },
+ // 计算选中条的开始位置的偏移量
+ calcOffset: function () {
+ var value = this.value;
+ var min = this.data.min;
+ var scope = this.getScope();
+ if (this.isRange(value)) {
+ return "".concat(((value[0] - Number(min)) * 100) / scope, "%");
+ }
+ return '0%';
+ },
+ format: function (value) {
+ var _a = this.data, max = _a.max, min = _a.min, step = _a.step;
+ return Math.round(Math.max(min, Math.min(value, max)) / step) * step;
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.wxml
new file mode 100644
index 0000000..7c0184f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.wxml
@@ -0,0 +1,68 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="../wxs/style.wxs" module="style" />
+
+<view
+ class="custom-class {{ utils.bem('slider', { disabled, vertical }) }}"
+ style="{{ wrapperStyle }}"
+ bind:tap="onClick"
+>
+ <view
+ class="{{ utils.bem('slider__bar') }}"
+ style="{{ barStyle }}; {{ style({ backgroundColor: activeColor }) }}"
+ >
+ <view
+ wx:if="{{ range }}"
+ class="{{ utils.bem('slider__button-wrapper-left') }}"
+ data-index="{{ 0 }}"
+ bind:touchstart="onTouchStart"
+ catch:touchmove="onTouchMove"
+ bind:touchend="onTouchEnd"
+ bind:touchcancel="onTouchEnd"
+ >
+ <slot
+ wx:if="{{ useButtonSlot }}"
+ name="left-button"
+ />
+ <view
+ wx:else
+ class="{{ utils.bem('slider__button') }}"
+ />
+ </view>
+ <view
+ wx:if="{{ range }}"
+ class="{{ utils.bem('slider__button-wrapper-right') }}"
+ data-index="{{ 1 }}"
+ bind:touchstart="onTouchStart"
+ catch:touchmove="onTouchMove"
+ bind:touchend="onTouchEnd"
+ bind:touchcancel="onTouchEnd"
+ >
+ <slot
+ wx:if="{{ useButtonSlot }}"
+ name="right-button"
+ />
+ <view
+ wx:else
+ class="{{ utils.bem('slider__button') }}"
+ />
+ </view>
+
+ <view
+ wx:if="{{ !range }}"
+ class="{{ utils.bem('slider__button-wrapper') }}"
+ bind:touchstart="onTouchStart"
+ catch:touchmove="onTouchMove"
+ bind:touchend="onTouchEnd"
+ bind:touchcancel="onTouchEnd"
+ >
+ <slot
+ wx:if="{{ useButtonSlot }}"
+ name="button"
+ />
+ <view
+ wx:else
+ class="{{ utils.bem('slider__button') }}"
+ />
+ </view>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.wxs
new file mode 100644
index 0000000..7c43e6e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.wxs
@@ -0,0 +1,14 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function barStyle(barHeight, activeColor) {
+ return style({
+ height: addUnit(barHeight),
+ background: activeColor,
+ });
+}
+
+module.exports = {
+ barStyle: barStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.wxss
new file mode 100644
index 0000000..d1587de
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/slider/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-slider{background-color:var(--slider-inactive-background-color,#ebedf0);border-radius:999px;height:var(--slider-bar-height,2px);position:relative}.van-slider:before{bottom:calc(var(--padding-xs, 8px)*-1);content:"";left:0;position:absolute;right:0;top:calc(var(--padding-xs, 8px)*-1)}.van-slider__bar{background-color:var(--slider-active-background-color,#1989fa);border-radius:inherit;height:100%;position:relative;transition:all .2s;width:100%}.van-slider__button{background-color:var(--slider-button-background-color,#fff);border-radius:var(--slider-button-border-radius,50%);box-shadow:var(--slider-button-box-shadow,0 1px 2px rgba(0,0,0,.5));height:var(--slider-button-height,24px);width:var(--slider-button-width,24px)}.van-slider__button-wrapper,.van-slider__button-wrapper-right{position:absolute;right:0;top:50%;transform:translate3d(50%,-50%,0)}.van-slider__button-wrapper-left{left:0;position:absolute;top:50%;transform:translate3d(-50%,-50%,0)}.van-slider--disabled{opacity:var(--slider-disabled-opacity,.5)}.van-slider--vertical{display:inline-block;height:100%;width:var(--slider-bar-height,2px)}.van-slider--vertical .van-slider__button-wrapper,.van-slider--vertical .van-slider__button-wrapper-right{bottom:0;right:50%;top:auto;transform:translate3d(50%,50%,0)}.van-slider--vertical .van-slider__button-wrapper-left{left:auto;right:50%;top:0;transform:translate3d(50%,-50%,0)}.van-slider--vertical:before{bottom:0;left:-8px;right:-8px;top:0}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.js
new file mode 100644
index 0000000..409517b
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.js
@@ -0,0 +1,200 @@
+"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 validator_1 = require("../common/validator");
+var LONG_PRESS_START_TIME = 600;
+var LONG_PRESS_INTERVAL = 200;
+// add num and avoid float number
+function add(num1, num2) {
+ var cardinal = Math.pow(10, 10);
+ return Math.round((num1 + num2) * cardinal) / cardinal;
+}
+function equal(value1, value2) {
+ return String(value1) === String(value2);
+}
+(0, component_1.VantComponent)({
+ field: true,
+ classes: ['input-class', 'plus-class', 'minus-class'],
+ props: {
+ value: {
+ type: null,
+ observer: 'observeValue',
+ },
+ integer: {
+ type: Boolean,
+ observer: 'check',
+ },
+ disabled: Boolean,
+ inputWidth: String,
+ buttonSize: String,
+ asyncChange: Boolean,
+ disableInput: Boolean,
+ decimalLength: {
+ type: Number,
+ value: null,
+ observer: 'check',
+ },
+ min: {
+ type: null,
+ value: 1,
+ observer: 'check',
+ },
+ max: {
+ type: null,
+ value: Number.MAX_SAFE_INTEGER,
+ observer: 'check',
+ },
+ step: {
+ type: null,
+ value: 1,
+ },
+ showPlus: {
+ type: Boolean,
+ value: true,
+ },
+ showMinus: {
+ type: Boolean,
+ value: true,
+ },
+ disablePlus: Boolean,
+ disableMinus: Boolean,
+ longPress: {
+ type: Boolean,
+ value: true,
+ },
+ theme: String,
+ alwaysEmbed: Boolean,
+ },
+ data: {
+ currentValue: '',
+ },
+ created: function () {
+ this.setData({
+ currentValue: this.format(this.data.value),
+ });
+ },
+ methods: {
+ observeValue: function () {
+ var _a = this.data, value = _a.value, currentValue = _a.currentValue;
+ if (!equal(value, currentValue)) {
+ this.setData({ currentValue: this.format(value) });
+ }
+ },
+ check: function () {
+ var val = this.format(this.data.currentValue);
+ if (!equal(val, this.data.currentValue)) {
+ this.setData({ currentValue: val });
+ }
+ },
+ isDisabled: function (type) {
+ var _a = this.data, disabled = _a.disabled, disablePlus = _a.disablePlus, disableMinus = _a.disableMinus, currentValue = _a.currentValue, max = _a.max, min = _a.min;
+ if (type === 'plus') {
+ return disabled || disablePlus || currentValue >= max;
+ }
+ return disabled || disableMinus || currentValue <= min;
+ },
+ onFocus: function (event) {
+ this.$emit('focus', event.detail);
+ },
+ onBlur: function (event) {
+ var value = this.format(event.detail.value);
+ this.emitChange(value);
+ this.$emit('blur', __assign(__assign({}, event.detail), { value: value }));
+ },
+ // filter illegal characters
+ filter: function (value) {
+ value = String(value).replace(/[^0-9.-]/g, '');
+ if (this.data.integer && value.indexOf('.') !== -1) {
+ value = value.split('.')[0];
+ }
+ return value;
+ },
+ // limit value range
+ format: function (value) {
+ value = this.filter(value);
+ // format range
+ value = value === '' ? 0 : +value;
+ value = Math.max(Math.min(this.data.max, value), this.data.min);
+ // format decimal
+ if ((0, validator_1.isDef)(this.data.decimalLength)) {
+ value = value.toFixed(this.data.decimalLength);
+ }
+ return value;
+ },
+ onInput: function (event) {
+ var _a = (event.detail || {}).value, value = _a === void 0 ? '' : _a;
+ // allow input to be empty
+ if (value === '') {
+ return;
+ }
+ var formatted = this.filter(value);
+ // limit max decimal length
+ if ((0, validator_1.isDef)(this.data.decimalLength) && formatted.indexOf('.') !== -1) {
+ var pair = formatted.split('.');
+ formatted = "".concat(pair[0], ".").concat(pair[1].slice(0, this.data.decimalLength));
+ }
+ this.emitChange(formatted);
+ },
+ emitChange: function (value) {
+ if (!this.data.asyncChange) {
+ this.setData({ currentValue: value });
+ }
+ this.$emit('change', value);
+ },
+ onChange: function () {
+ var type = this.type;
+ if (this.isDisabled(type)) {
+ this.$emit('overlimit', type);
+ return;
+ }
+ var diff = type === 'minus' ? -this.data.step : +this.data.step;
+ var value = this.format(add(+this.data.currentValue, diff));
+ this.emitChange(value);
+ this.$emit(type);
+ },
+ longPressStep: function () {
+ var _this = this;
+ this.longPressTimer = setTimeout(function () {
+ _this.onChange();
+ _this.longPressStep();
+ }, LONG_PRESS_INTERVAL);
+ },
+ onTap: function (event) {
+ var type = event.currentTarget.dataset.type;
+ this.type = type;
+ this.onChange();
+ },
+ onTouchStart: function (event) {
+ var _this = this;
+ if (!this.data.longPress) {
+ return;
+ }
+ clearTimeout(this.longPressTimer);
+ var type = event.currentTarget.dataset.type;
+ this.type = type;
+ this.isLongPress = false;
+ this.longPressTimer = setTimeout(function () {
+ _this.isLongPress = true;
+ _this.onChange();
+ _this.longPressStep();
+ }, LONG_PRESS_START_TIME);
+ },
+ onTouchEnd: function () {
+ if (!this.data.longPress) {
+ return;
+ }
+ clearTimeout(this.longPressTimer);
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.wxml
new file mode 100644
index 0000000..6a58fd2
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.wxml
@@ -0,0 +1,44 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view class="{{ utils.bem('stepper', [theme]) }} custom-class">
+ <view
+ wx:if="{{ showMinus }}"
+ data-type="minus"
+ style="{{ computed.buttonStyle({ buttonSize }) }}"
+ class="minus-class {{ utils.bem('stepper__minus', { disabled: disabled || disableMinus || currentValue <= min }) }}"
+ hover-class="van-stepper__minus--hover"
+ hover-stay-time="70"
+ bind:tap="onTap"
+ bind:touchstart="onTouchStart"
+ bind:touchend="onTouchEnd"
+ >
+ <slot name="minus" />
+ </view>
+ <input
+ always-embed="{{ false }}"
+ type="{{ integer ? 'number' : 'digit' }}"
+ class="input-class {{ utils.bem('stepper__input', { disabled: disabled || disableInput }) }}"
+ style="{{ computed.inputStyle({ buttonSize, inputWidth }) }}"
+ value="{{ currentValue }}"
+ focus="{{ focus }}"
+ disabled="{{ disabled || disableInput }}"
+ always-embed="{{ alwaysEmbed }}"
+ bindinput="onInput"
+ bind:focus="onFocus"
+ bind:blur="onBlur"
+ />
+ <view
+ wx:if="{{ showPlus }}"
+ data-type="plus"
+ style="{{ computed.buttonStyle({ buttonSize }) }}"
+ class="plus-class {{ utils.bem('stepper__plus', { disabled: disabled || disablePlus || currentValue >= max }) }}"
+ hover-class="van-stepper__plus--hover"
+ hover-stay-time="70"
+ bind:tap="onTap"
+ bind:touchstart="onTouchStart"
+ bind:touchend="onTouchEnd"
+ >
+ <slot name="plus" />
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.wxs
new file mode 100644
index 0000000..a13e818
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.wxs
@@ -0,0 +1,22 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function buttonStyle(data) {
+ return style({
+ width: addUnit(data.buttonSize),
+ height: addUnit(data.buttonSize),
+ });
+}
+
+function inputStyle(data) {
+ return style({
+ width: addUnit(data.inputWidth),
+ height: addUnit(data.buttonSize),
+ });
+}
+
+module.exports = {
+ buttonStyle: buttonStyle,
+ inputStyle: inputStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.wxss
new file mode 100644
index 0000000..2561a7e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/stepper/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-stepper{font-size:0}.van-stepper__minus,.van-stepper__plus{background-color:var(--stepper-background-color,#f2f3f5);border:0;box-sizing:border-box;color:var(--stepper-button-icon-color,#323233);display:inline-block;height:var(--stepper-input-height,28px);margin:1px;padding:var(--padding-base,4px);position:relative;vertical-align:middle;width:var(--stepper-input-height,28px)}.van-stepper__minus:before,.van-stepper__plus:before{height:1px;width:9px}.van-stepper__minus:after,.van-stepper__plus:after{height:9px;width:1px}.van-stepper__minus:empty.van-stepper__minus:after,.van-stepper__minus:empty.van-stepper__minus:before,.van-stepper__minus:empty.van-stepper__plus:after,.van-stepper__minus:empty.van-stepper__plus:before,.van-stepper__plus:empty.van-stepper__minus:after,.van-stepper__plus:empty.van-stepper__minus:before,.van-stepper__plus:empty.van-stepper__plus:after,.van-stepper__plus:empty.van-stepper__plus:before{background-color:currentColor;bottom:0;content:"";left:0;margin:auto;position:absolute;right:0;top:0}.van-stepper__minus--hover,.van-stepper__plus--hover{background-color:var(--stepper-active-color,#e8e8e8)}.van-stepper__minus--disabled,.van-stepper__plus--disabled{color:var(--stepper-button-disabled-icon-color,#c8c9cc)}.van-stepper__minus--disabled,.van-stepper__minus--disabled.van-stepper__minus--hover,.van-stepper__minus--disabled.van-stepper__plus--hover,.van-stepper__plus--disabled,.van-stepper__plus--disabled.van-stepper__minus--hover,.van-stepper__plus--disabled.van-stepper__plus--hover{background-color:var(--stepper-button-disabled-color,#f7f8fa)}.van-stepper__minus{border-radius:var(--stepper-border-radius,var(--stepper-border-radius,4px)) 0 0 var(--stepper-border-radius,var(--stepper-border-radius,4px))}.van-stepper__minus:after{display:none}.van-stepper__plus{border-radius:0 var(--stepper-border-radius,var(--stepper-border-radius,4px)) var(--stepper-border-radius,var(--stepper-border-radius,4px)) 0}.van-stepper--round .van-stepper__input{background-color:initial!important}.van-stepper--round .van-stepper__minus,.van-stepper--round .van-stepper__plus{border-radius:100%}.van-stepper--round .van-stepper__minus:active,.van-stepper--round .van-stepper__plus:active{opacity:.7}.van-stepper--round .van-stepper__minus--disabled,.van-stepper--round .van-stepper__minus--disabled:active,.van-stepper--round .van-stepper__plus--disabled,.van-stepper--round .van-stepper__plus--disabled:active{opacity:.3}.van-stepper--round .van-stepper__plus{background-color:#ee0a24;color:#fff}.van-stepper--round .van-stepper__minus{background-color:#fff;border:1px solid #ee0a24;color:#ee0a24}.van-stepper__input{-webkit-appearance:none;background-color:var(--stepper-background-color,#f2f3f5);border:0;border-radius:0;border-width:1px 0;box-sizing:border-box;color:var(--stepper-input-text-color,#323233);display:inline-block;font-size:var(--stepper-input-font-size,14px);height:var(--stepper-input-height,28px);margin:1px;min-height:0;padding:1px;text-align:center;vertical-align:middle;width:var(--stepper-input-width,32px)}.van-stepper__input--disabled{background-color:var(--stepper-input-disabled-background-color,#f2f3f5);color:var(--stepper-input-disabled-text-color,#c8c9cc)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.js
new file mode 100644
index 0000000..1a9986a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.js
@@ -0,0 +1,35 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var color_1 = require("../common/color");
+(0, component_1.VantComponent)({
+ classes: ['desc-class'],
+ props: {
+ icon: String,
+ steps: Array,
+ active: Number,
+ direction: {
+ type: String,
+ value: 'horizontal',
+ },
+ activeColor: {
+ type: String,
+ value: color_1.GREEN,
+ },
+ inactiveColor: {
+ type: String,
+ value: color_1.GRAY_DARK,
+ },
+ activeIcon: {
+ type: String,
+ value: 'checked',
+ },
+ inactiveIcon: String,
+ },
+ methods: {
+ onClick: function (event) {
+ var index = event.currentTarget.dataset.index;
+ this.$emit('click-step', index);
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.json
new file mode 100644
index 0000000..0a336c0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.wxml
new file mode 100644
index 0000000..6180b41
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.wxml
@@ -0,0 +1,54 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view class="custom-class {{ utils.bem('steps', [direction]) }}">
+ <view class="van-step__wrapper">
+ <view
+ wx:for="{{ steps }}"
+ wx:key="index"
+ bindtap="onClick"
+ data-index="{{ index }}"
+ class="{{ utils.bem('step', [direction, status(index, active)]) }} van-hairline"
+ style="{{ status(index, active) === 'inactive' ? 'color: ' + inactiveColor: '' }}"
+ >
+ <view class="van-step__title" style="{{ index === active ? 'color: ' + activeColor : '' }}">
+ <view>{{ item.text }}</view>
+ <view class="desc-class">{{ item.desc }}</view>
+ </view>
+ <view class="van-step__circle-container">
+ <block wx:if="{{ index !== active }}">
+ <van-icon
+ wx:if="{{ item.inactiveIcon || inactiveIcon }}"
+ color="{{ status(index, active) === 'inactive' ? inactiveColor: activeColor }}"
+ name="{{ item.inactiveIcon || inactiveIcon }}"
+ custom-class="van-step__icon"
+ />
+ <view
+ wx:else
+ class="van-step__circle"
+ style="{{ 'background-color: ' + (index < active ? activeColor : inactiveColor) }}"
+ />
+ </block>
+
+ <van-icon wx:else name="{{ item.activeIcon || activeIcon }}" color="{{ activeColor }}" custom-class="van-step__icon" />
+ </view>
+ <view
+ wx:if="{{ index !== steps.length - 1 }}"
+ class="van-step__line" style="{{ 'background-color: ' + (index < active ? activeColor : inactiveColor) }}"
+ />
+ </view>
+ </view>
+</view>
+
+<wxs module="status">
+function get(index, active) {
+ if (index < active) {
+ return 'finish';
+ } else if (index === active) {
+ return 'process';
+ }
+
+ return 'inactive';
+}
+
+module.exports = get;
+</wxs>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.wxss
new file mode 100644
index 0000000..48b7665
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/steps/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-steps{background-color:var(--steps-background-color,#fff);overflow:hidden}.van-steps--horizontal{padding:10px}.van-steps--horizontal .van-step__wrapper{display:flex;overflow:hidden;position:relative}.van-steps--vertical{padding-left:10px}.van-steps--vertical .van-step__wrapper{padding:0 0 0 20px}.van-step{color:var(--step-text-color,#969799);flex:1;font-size:var(--step-font-size,14px);position:relative}.van-step--finish{color:var(--step-finish-text-color,#323233)}.van-step__circle{background-color:var(--step-circle-color,#969799);border-radius:50%;height:var(--step-circle-size,5px);width:var(--step-circle-size,5px)}.van-step--horizontal{padding-bottom:14px}.van-step--horizontal:first-child .van-step__title{transform:none}.van-step--horizontal:first-child .van-step__circle-container{padding:0 8px 0 0;transform:translate3d(0,50%,0)}.van-step--horizontal:last-child{position:absolute;right:0;width:auto}.van-step--horizontal:last-child .van-step__title{text-align:right;transform:none}.van-step--horizontal:last-child .van-step__circle-container{padding:0 0 0 8px;right:0;transform:translate3d(0,50%,0)}.van-step--horizontal .van-step__circle-container{background-color:#fff;bottom:6px;padding:0 var(--padding-xs,8px);position:absolute;transform:translate3d(-50%,50%,0);z-index:1}.van-step--horizontal .van-step__title{display:inline-block;font-size:var(--step-horizontal-title-font-size,12px);transform:translate3d(-50%,0,0)}.van-step--horizontal .van-step__line{background-color:var(--step-line-color,#ebedf0);bottom:6px;height:1px;left:0;position:absolute;right:0;transform:translate3d(0,50%,0)}.van-step--horizontal.van-step--process{color:var(--step-process-text-color,#323233)}.van-step--horizontal.van-step--process .van-step__icon{display:block;font-size:var(--step-icon-size,12px);line-height:1}.van-step--vertical{line-height:18px;padding:10px 10px 10px 0}.van-step--vertical:after{border-bottom-width:1px}.van-step--vertical:last-child:after{border-bottom-width:none}.van-step--vertical:first-child:before{background-color:#fff;content:"";height:20px;left:-15px;position:absolute;top:0;width:1px;z-index:1}.van-step--vertical .van-step__circle,.van-step--vertical .van-step__icon,.van-step--vertical .van-step__line{left:-14px;position:absolute;top:19px;transform:translate3d(-50%,-50%,0);z-index:2}.van-step--vertical .van-step__icon{font-size:var(--step-icon-size,12px);line-height:1}.van-step--vertical .van-step__line{background-color:var(--step-line-color,#ebedf0);height:100%;transform:translate3d(-50%,0,0);width:1px;z-index:1}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.js
new file mode 100644
index 0000000..6f50dd3
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.js
@@ -0,0 +1,124 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var utils_1 = require("../common/utils");
+var component_1 = require("../common/component");
+var validator_1 = require("../common/validator");
+var page_scroll_1 = require("../mixins/page-scroll");
+var ROOT_ELEMENT = '.van-sticky';
+(0, component_1.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: function (val) {
+ this.onScroll({ scrollTop: val });
+ },
+ },
+ },
+ mixins: [
+ (0, page_scroll_1.pageScrollMixin)(function (event) {
+ if (this.data.scrollTop != null) {
+ return;
+ }
+ this.onScroll(event);
+ }),
+ ],
+ data: {
+ height: 0,
+ fixed: false,
+ transform: 0,
+ },
+ mounted: function () {
+ this.onScroll();
+ },
+ methods: {
+ onScroll: function (_a) {
+ var _this = this;
+ var _b = _a === void 0 ? {} : _a, scrollTop = _b.scrollTop;
+ var _c = this.data, container = _c.container, offsetTop = _c.offsetTop, disabled = _c.disabled;
+ if (disabled) {
+ this.setDataAfterDiff({
+ fixed: false,
+ transform: 0,
+ });
+ return;
+ }
+ this.scrollTop = scrollTop || this.scrollTop;
+ if (typeof container === 'function') {
+ Promise.all([
+ (0, utils_1.getRect)(this, ROOT_ELEMENT),
+ this.getContainerRect(),
+ ]).then(function (_a) {
+ var root = _a[0], container = _a[1];
+ 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;
+ }
+ (0, utils_1.getRect)(this, ROOT_ELEMENT).then(function (root) {
+ if (!(0, validator_1.isDef)(root)) {
+ return;
+ }
+ if (offsetTop >= root.top) {
+ _this.setDataAfterDiff({ fixed: true, height: root.height });
+ _this.transform = 0;
+ }
+ else {
+ _this.setDataAfterDiff({ fixed: false });
+ }
+ });
+ },
+ setDataAfterDiff: function (data) {
+ var _this = this;
+ wx.nextTick(function () {
+ var diff = Object.keys(data).reduce(function (prev, key) {
+ if (data[key] !== _this.data[key]) {
+ prev[key] = data[key];
+ }
+ return prev;
+ }, {});
+ if (Object.keys(diff).length > 0) {
+ _this.setData(diff);
+ }
+ _this.$emit('scroll', {
+ scrollTop: _this.scrollTop,
+ isFixed: data.fixed || _this.data.fixed,
+ });
+ });
+ },
+ getContainerRect: function () {
+ var nodesRef = this.data.container();
+ return new Promise(function (resolve) { return nodesRef.boundingClientRect(resolve).exec(); });
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.wxml
new file mode 100644
index 0000000..15e9f4a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.wxml
@@ -0,0 +1,8 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view class="custom-class van-sticky" style="{{ computed.containerStyle({ fixed, height, zIndex }) }}">
+ <view class="{{ utils.bem('sticky-wrap', { fixed }) }}" style="{{ computed.wrapStyle({ fixed, offsetTop, transform, zIndex }) }}">
+ <slot />
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.wxs
new file mode 100644
index 0000000..be99d89
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.wxs
@@ -0,0 +1,25 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function wrapStyle(data) {
+ return style({
+ transform: data.transform
+ ? 'translate3d(0, ' + data.transform + 'px, 0)'
+ : '',
+ top: data.fixed ? addUnit(data.offsetTop) : '',
+ 'z-index': data.zIndex,
+ });
+}
+
+function containerStyle(data) {
+ return style({
+ height: data.fixed ? addUnit(data.height) : '',
+ 'z-index': data.zIndex,
+ });
+}
+
+module.exports = {
+ wrapStyle: wrapStyle,
+ containerStyle: containerStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.wxss
new file mode 100644
index 0000000..34d76aa
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/sticky/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-sticky{position:relative}.van-sticky-wrap--fixed{left:0;position:fixed;right:0}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.js
new file mode 100644
index 0000000..d3bfc25
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.js
@@ -0,0 +1,58 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ classes: ['bar-class', 'price-class', 'button-class'],
+ props: {
+ tip: {
+ type: null,
+ observer: 'updateTip',
+ },
+ tipIcon: String,
+ type: Number,
+ price: {
+ type: null,
+ observer: 'updatePrice',
+ },
+ label: String,
+ loading: Boolean,
+ disabled: Boolean,
+ buttonText: String,
+ currency: {
+ type: String,
+ value: '¥',
+ },
+ buttonType: {
+ type: String,
+ value: 'danger',
+ },
+ decimalLength: {
+ type: Number,
+ value: 2,
+ observer: 'updatePrice',
+ },
+ suffixLabel: String,
+ safeAreaInsetBottom: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ methods: {
+ updatePrice: function () {
+ var _a = this.data, price = _a.price, decimalLength = _a.decimalLength;
+ var priceStrArr = typeof price === 'number' &&
+ (price / 100).toFixed(decimalLength).split('.');
+ this.setData({
+ hasPrice: typeof price === 'number',
+ integerStr: priceStrArr && priceStrArr[0],
+ decimalStr: decimalLength && priceStrArr ? ".".concat(priceStrArr[1]) : '',
+ });
+ },
+ updateTip: function () {
+ this.setData({ hasTip: typeof this.data.tip === 'string' });
+ },
+ onSubmit: function (event) {
+ this.$emit('submit', event.detail);
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.json
new file mode 100644
index 0000000..bda9b8d
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-button": "../button/index",
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.wxml
new file mode 100644
index 0000000..a56dd46
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.wxml
@@ -0,0 +1,44 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view class="van-submit-bar custom-class">
+ <slot name="top" />
+
+ <view class="van-submit-bar__tip">
+ <van-icon
+ wx:if="{{ tipIcon }}"
+ size="12px"
+ name="{{ tipIcon }}"
+ custom-class="van-submit-bar__tip-icon"
+ />
+ <view wx:if="{{ hasTip }}" class="van-submit-bar__tip-text">
+ {{ tip }}
+ </view>
+ <slot name="tip" />
+ </view>
+
+ <view class="bar-class van-submit-bar__bar">
+ <slot />
+ <view wx:if="{{ hasPrice }}" class="van-submit-bar__text">
+ <text>{{ label || '合计:' }}</text>
+ <text class="van-submit-bar__price price-class">
+ <text class="van-submit-bar__currency">{{ currency }} </text>
+ <text class="van-submit-bar__price-integer">{{ integerStr }}</text><text>{{decimalStr}}</text>
+ </text>
+ <text class="van-submit-bar__suffix-label">{{ suffixLabel }}</text>
+ </view>
+ <van-button
+ round
+ type="{{ buttonType }}"
+ loading="{{ loading }}"
+ disabled="{{ disabled }}"
+ class="van-submit-bar__button"
+ custom-class="button-class"
+ custom-style="width: 100%;"
+ bind:click="onSubmit"
+ >
+ {{ loading ? '' : buttonText }}
+ </van-button>
+ </view>
+
+ <view wx:if="{{ safeAreaInsetBottom }}" class="van-submit-bar__safe" />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.wxss
new file mode 100644
index 0000000..8379a30
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/submit-bar/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-submit-bar{background-color:var(--submit-bar-background-color,#fff);bottom:0;left:0;position:fixed;-webkit-user-select:none;user-select:none;width:100%;z-index:var(--submit-bar-z-index,100)}.van-submit-bar__tip{background-color:var(--submit-bar-tip-background-color,#fff7cc);color:var(--submit-bar-tip-color,#f56723);font-size:var(--submit-bar-tip-font-size,12px);line-height:var(--submit-bar-tip-line-height,1.5);padding:var(--submit-bar-tip-padding,10px)}.van-submit-bar__tip:empty{display:none}.van-submit-bar__tip-icon{margin-right:4px;vertical-align:middle}.van-submit-bar__tip-text{display:inline;vertical-align:middle}.van-submit-bar__bar{align-items:center;background-color:var(--submit-bar-background-color,#fff);display:flex;font-size:var(--submit-bar-text-font-size,14px);height:var(--submit-bar-height,50px);justify-content:flex-end;padding:var(--submit-bar-padding,0 16px)}.van-submit-bar__safe{height:constant(safe-area-inset-bottom);height:env(safe-area-inset-bottom)}.van-submit-bar__text{color:var(--submit-bar-text-color,#323233);flex:1;font-weight:var(--font-weight-bold,500);padding-right:var(--padding-sm,12px);text-align:right}.van-submit-bar__price{color:var(--submit-bar-price-color,#ee0a24);font-size:var(--submit-bar-price-font-size,12px);font-weight:var(--font-weight-bold,500)}.van-submit-bar__price-integer{font-family:Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif;font-size:20px}.van-submit-bar__currency{font-size:var(--submit-bar-currency-font-size,12px)}.van-submit-bar__suffix-label{margin-left:5px}.van-submit-bar__button{--button-default-height:var(--submit-bar-button-height,40px)!important;--button-line-height:var(--submit-bar-button-height,40px)!important;font-weight:var(--font-weight-bold,500);width:var(--submit-bar-button-width,110px)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.js
new file mode 100644
index 0000000..1582b6c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.js
@@ -0,0 +1,135 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var touch_1 = require("../mixins/touch");
+var utils_1 = require("../common/utils");
+var THRESHOLD = 0.3;
+var ARRAY = [];
+(0, component_1.VantComponent)({
+ props: {
+ disabled: Boolean,
+ leftWidth: {
+ type: Number,
+ value: 0,
+ observer: function (leftWidth) {
+ if (leftWidth === void 0) { leftWidth = 0; }
+ if (this.offset > 0) {
+ this.swipeMove(leftWidth);
+ }
+ },
+ },
+ rightWidth: {
+ type: Number,
+ value: 0,
+ observer: function (rightWidth) {
+ if (rightWidth === void 0) { rightWidth = 0; }
+ if (this.offset < 0) {
+ this.swipeMove(-rightWidth);
+ }
+ },
+ },
+ asyncClose: Boolean,
+ name: {
+ type: null,
+ value: '',
+ },
+ },
+ mixins: [touch_1.touch],
+ data: {
+ catchMove: false,
+ wrapperStyle: '',
+ },
+ created: function () {
+ this.offset = 0;
+ ARRAY.push(this);
+ },
+ destroyed: function () {
+ var _this = this;
+ ARRAY = ARRAY.filter(function (item) { return item !== _this; });
+ },
+ methods: {
+ open: function (position) {
+ var _a = this.data, leftWidth = _a.leftWidth, rightWidth = _a.rightWidth;
+ var offset = position === 'left' ? leftWidth : -rightWidth;
+ this.swipeMove(offset);
+ this.$emit('open', {
+ position: position,
+ name: this.data.name,
+ });
+ },
+ close: function () {
+ this.swipeMove(0);
+ },
+ swipeMove: function (offset) {
+ if (offset === void 0) { offset = 0; }
+ this.offset = (0, utils_1.range)(offset, -this.data.rightWidth, this.data.leftWidth);
+ var transform = "translate3d(".concat(this.offset, "px, 0, 0)");
+ var transition = this.dragging
+ ? 'none'
+ : 'transform .6s cubic-bezier(0.18, 0.89, 0.32, 1)';
+ this.setData({
+ wrapperStyle: "\n -webkit-transform: ".concat(transform, ";\n -webkit-transition: ").concat(transition, ";\n transform: ").concat(transform, ";\n transition: ").concat(transition, ";\n "),
+ });
+ },
+ swipeLeaveTransition: function () {
+ var _a = this.data, leftWidth = _a.leftWidth, rightWidth = _a.rightWidth;
+ var offset = this.offset;
+ if (rightWidth > 0 && -offset > rightWidth * THRESHOLD) {
+ this.open('right');
+ }
+ else if (leftWidth > 0 && offset > leftWidth * THRESHOLD) {
+ this.open('left');
+ }
+ else {
+ this.swipeMove(0);
+ }
+ this.setData({ catchMove: false });
+ },
+ startDrag: function (event) {
+ if (this.data.disabled) {
+ return;
+ }
+ this.startOffset = this.offset;
+ this.touchStart(event);
+ },
+ noop: function () { },
+ onDrag: function (event) {
+ var _this = this;
+ if (this.data.disabled) {
+ return;
+ }
+ this.touchMove(event);
+ if (this.direction !== 'horizontal') {
+ return;
+ }
+ this.dragging = true;
+ ARRAY.filter(function (item) { return item !== _this && item.offset !== 0; }).forEach(function (item) { return item.close(); });
+ this.setData({ catchMove: true });
+ this.swipeMove(this.startOffset + this.deltaX);
+ },
+ endDrag: function () {
+ if (this.data.disabled) {
+ return;
+ }
+ this.dragging = false;
+ this.swipeLeaveTransition();
+ },
+ onClick: function (event) {
+ var _a = event.currentTarget.dataset.key, position = _a === void 0 ? 'outside' : _a;
+ this.$emit('click', position);
+ if (!this.offset) {
+ return;
+ }
+ if (this.data.asyncClose) {
+ this.$emit('close', {
+ position: position,
+ instance: this,
+ name: this.data.name,
+ });
+ }
+ else {
+ this.swipeMove(0);
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.wxml
new file mode 100644
index 0000000..3f7f726
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.wxml
@@ -0,0 +1,20 @@
+<view
+ class="van-swipe-cell custom-class"
+ data-key="cell"
+ catchtap="onClick"
+ bindtouchstart="startDrag"
+ catchtouchmove="{{ catchMove ? 'noop' : '' }}"
+ capture-bind:touchmove="onDrag"
+ bindtouchend="endDrag"
+ bindtouchcancel="endDrag"
+>
+ <view style="{{ wrapperStyle }}">
+ <view wx:if="{{ leftWidth }}" class="van-swipe-cell__left" data-key="left" catch:tap="onClick">
+ <slot name="left" />
+ </view>
+ <slot />
+ <view wx:if="{{ rightWidth }}" class="van-swipe-cell__right" data-key="right" catch:tap="onClick">
+ <slot name="right" />
+ </view>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.wxss
new file mode 100644
index 0000000..3a265bf
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/swipe-cell/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-swipe-cell{overflow:hidden;position:relative}.van-swipe-cell__left,.van-swipe-cell__right{height:100%;position:absolute;top:0}.van-swipe-cell__left{left:0;transform:translate3d(-100%,0,0)}.van-swipe-cell__right{right:0;transform:translate3d(100%,0,0)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.js
new file mode 100644
index 0000000..1d2317f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.js
@@ -0,0 +1,38 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ field: true,
+ classes: ['node-class'],
+ props: {
+ checked: null,
+ loading: Boolean,
+ disabled: Boolean,
+ activeColor: String,
+ inactiveColor: String,
+ size: {
+ type: String,
+ value: '30',
+ },
+ activeValue: {
+ type: null,
+ value: true,
+ },
+ inactiveValue: {
+ type: null,
+ value: false,
+ },
+ },
+ methods: {
+ onClick: function () {
+ var _a = this.data, activeValue = _a.activeValue, inactiveValue = _a.inactiveValue, disabled = _a.disabled, loading = _a.loading;
+ if (disabled || loading) {
+ return;
+ }
+ var checked = this.data.checked === activeValue;
+ var value = checked ? inactiveValue : activeValue;
+ this.$emit('input', value);
+ this.$emit('change', value);
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.json
new file mode 100644
index 0000000..01077f5
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-loading": "../loading/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.wxml
new file mode 100644
index 0000000..4e9789b
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.wxml
@@ -0,0 +1,16 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="{{ utils.bem('switch', { on: checked === activeValue, disabled }) }} custom-class"
+ style="{{ computed.rootStyle({ size, checked, activeColor, inactiveColor, activeValue }) }}"
+ bind:tap="onClick"
+>
+ <view class="van-switch__node node-class">
+ <van-loading
+ wx:if="{{ loading }}"
+ color="{{ computed.loadingColor({ checked, activeColor, inactiveColor, activeValue }) }}"
+ custom-class="van-switch__loading"
+ />
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.wxs
new file mode 100644
index 0000000..3ae387a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.wxs
@@ -0,0 +1,26 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function rootStyle(data) {
+ var currentColor = data.checked === data.activeValue ? data.activeColor : data.inactiveColor;
+
+ return style({
+ 'font-size': addUnit(data.size),
+ 'background-color': currentColor,
+ });
+}
+
+var BLUE = '#1989fa';
+var GRAY_DARK = '#969799';
+
+function loadingColor(data) {
+ return data.checked === data.activeValue
+ ? data.activeColor || BLUE
+ : data.inactiveColor || GRAY_DARK;
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+ loadingColor: loadingColor,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.wxss
new file mode 100644
index 0000000..35929de
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/switch/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-switch{background-color:var(--switch-background-color,#fff);border:var(--switch-border,1px solid rgba(0,0,0,.1));border-radius:var(--switch-node-size,1em);box-sizing:initial;display:inline-block;height:var(--switch-height,1em);position:relative;transition:background-color var(--switch-transition-duration,.3s);width:var(--switch-width,2em)}.van-switch__node{background-color:var(--switch-node-background-color,#fff);border-radius:100%;box-shadow:var(--switch-node-box-shadow,0 3px 1px 0 rgba(0,0,0,.05),0 2px 2px 0 rgba(0,0,0,.1),0 3px 3px 0 rgba(0,0,0,.05));height:var(--switch-node-size,1em);left:0;position:absolute;top:0;transition:var(--switch-transition-duration,.3s) cubic-bezier(.3,1.05,.4,1.05);width:var(--switch-node-size,1em);z-index:var(--switch-node-z-index,1)}.van-switch__loading{height:50%;left:25%;position:absolute!important;top:25%;width:50%}.van-switch--on{background-color:var(--switch-on-background-color,#1989fa)}.van-switch--on .van-switch__node{transform:translateX(calc(var(--switch-width, 2em) - var(--switch-node-size, 1em)))}.van-switch--disabled{opacity:var(--switch-disabled-opacity,.4)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.js
new file mode 100644
index 0000000..ae4d06b
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.js
@@ -0,0 +1,58 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var relation_1 = require("../common/relation");
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ relation: (0, relation_1.useParent)('tabs'),
+ 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: null,
+ value: '',
+ },
+ },
+ data: {
+ active: false,
+ },
+ methods: {
+ getComputedName: function () {
+ if (this.data.name !== '') {
+ return this.data.name;
+ }
+ return this.index;
+ },
+ updateRender: function (active, parent) {
+ var parentData = parent.data;
+ this.inited = this.inited || active;
+ this.setData({
+ active: active,
+ shouldRender: this.inited || !parentData.lazyRender,
+ shouldShow: active || parentData.animated,
+ });
+ },
+ update: function () {
+ if (this.parent) {
+ this.parent.updateTabs();
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.wxml
new file mode 100644
index 0000000..f5e99f2
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.wxml
@@ -0,0 +1,8 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ class="custom-class {{ utils.bem('tab__pane', { active, inactive: !active }) }}"
+ style="{{ shouldShow ? '' : 'display: none;' }}"
+>
+ <slot wx:if="{{ shouldRender }}" />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.wxss
new file mode 100644
index 0000000..1c90c88
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tab/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';:host{box-sizing:border-box;flex-shrink:0;width:100%}.van-tab__pane{-webkit-overflow-scrolling:touch;box-sizing:border-box;overflow-y:auto}.van-tab__pane--active{height:auto}.van-tab__pane--inactive{height:0;overflow:visible}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.js
new file mode 100644
index 0000000..1a88d4e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.js
@@ -0,0 +1,58 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+(0, component_1.VantComponent)({
+ props: {
+ info: null,
+ name: null,
+ icon: String,
+ dot: Boolean,
+ iconPrefix: {
+ type: String,
+ value: 'van-icon',
+ },
+ },
+ relation: (0, relation_1.useParent)('tabbar'),
+ data: {
+ active: false,
+ activeColor: '',
+ inactiveColor: '',
+ },
+ methods: {
+ onClick: function () {
+ var parent = this.parent;
+ if (parent) {
+ var index = parent.children.indexOf(this);
+ var active = this.data.name || index;
+ if (active !== this.data.active) {
+ parent.$emit('change', active);
+ }
+ }
+ this.$emit('click');
+ },
+ updateFromParent: function () {
+ var parent = this.parent;
+ if (!parent) {
+ return;
+ }
+ var index = parent.children.indexOf(this);
+ var parentData = parent.data;
+ var data = this.data;
+ var active = (data.name || index) === parentData.active;
+ var patch = {};
+ if (active !== data.active) {
+ patch.active = active;
+ }
+ if (parentData.activeColor !== data.activeColor) {
+ patch.activeColor = parentData.activeColor;
+ }
+ if (parentData.inactiveColor !== data.inactiveColor) {
+ patch.inactiveColor = parentData.inactiveColor;
+ }
+ if (Object.keys(patch).length > 0) {
+ this.setData(patch);
+ }
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.json
new file mode 100644
index 0000000..16f174c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index",
+ "van-info": "../info/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.wxml
new file mode 100644
index 0000000..524728f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.wxml
@@ -0,0 +1,28 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ class="{{ utils.bem('tabbar-item', { active }) }} custom-class"
+ style="color: {{ active ? activeColor : inactiveColor }}"
+ bindtap="onClick"
+>
+ <view class="van-tabbar-item__icon">
+ <van-icon
+ wx:if="{{ icon }}"
+ name="{{ icon }}"
+ class-prefix="{{ iconPrefix }}"
+ custom-class="van-tabbar-item__icon__inner"
+ />
+ <block wx:else>
+ <slot wx:if="{{ active }}" name="icon-active" />
+ <slot wx:else name="icon" />
+ </block>
+ <van-info
+ dot="{{ dot }}"
+ info="{{ info }}"
+ custom-class="van-tabbar-item__info"
+ />
+ </view>
+ <view class="van-tabbar-item__text">
+ <slot />
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.wxss
new file mode 100644
index 0000000..21ee224
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar-item/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';:host{flex:1}.van-tabbar-item{align-items:center;color:var(--tabbar-item-text-color,#646566);display:flex;flex-direction:column;font-size:var(--tabbar-item-font-size,12px);height:100%;justify-content:center;line-height:var(--tabbar-item-line-height,1)}.van-tabbar-item__icon{font-size:var(--tabbar-item-icon-size,22px);margin-bottom:var(--tabbar-item-margin-bottom,4px);position:relative}.van-tabbar-item__icon__inner{display:block;min-width:1em}.van-tabbar-item--active{color:var(--tabbar-item-active-color,#1989fa)}.van-tabbar-item__info{margin-top:2px}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.js
new file mode 100644
index 0000000..3db793d
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.js
@@ -0,0 +1,68 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var relation_1 = require("../common/relation");
+var utils_1 = require("../common/utils");
+(0, component_1.VantComponent)({
+ relation: (0, relation_1.useChildren)('tabbar-item', function () {
+ this.updateChildren();
+ }),
+ props: {
+ active: {
+ type: null,
+ observer: 'updateChildren',
+ },
+ activeColor: {
+ type: String,
+ observer: 'updateChildren',
+ },
+ inactiveColor: {
+ type: String,
+ observer: 'updateChildren',
+ },
+ fixed: {
+ type: Boolean,
+ value: true,
+ observer: 'setHeight',
+ },
+ placeholder: {
+ type: Boolean,
+ observer: 'setHeight',
+ },
+ border: {
+ type: Boolean,
+ value: true,
+ },
+ zIndex: {
+ type: Number,
+ value: 1,
+ },
+ safeAreaInsetBottom: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ data: {
+ height: 50,
+ },
+ methods: {
+ updateChildren: function () {
+ var children = this.children;
+ if (!Array.isArray(children) || !children.length) {
+ return;
+ }
+ children.forEach(function (child) { return child.updateFromParent(); });
+ },
+ setHeight: function () {
+ var _this = this;
+ if (!this.data.fixed || !this.data.placeholder) {
+ return;
+ }
+ wx.nextTick(function () {
+ (0, utils_1.getRect)(_this, '.van-tabbar').then(function (res) {
+ _this.setData({ height: res.height });
+ });
+ });
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.wxml
new file mode 100644
index 0000000..43bb111
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.wxml
@@ -0,0 +1,10 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<view
+ class="{{ border ? 'van-hairline--top-bottom' : '' }} {{ utils.bem('tabbar', { fixed, safe: safeAreaInsetBottom }) }} custom-class"
+ style="{{ zIndex ? 'z-index: ' + zIndex : '' }}"
+>
+ <slot />
+</view>
+
+<view wx:if="{{ fixed && placeholder }}" style="height: {{ height }}px;"></view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.wxss
new file mode 100644
index 0000000..42b6c1e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabbar/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-tabbar{background-color:var(--tabbar-background-color,#fff);box-sizing:initial;display:flex;height:var(--tabbar-height,50px);width:100%}.van-tabbar--fixed{bottom:0;left:0;position:fixed}.van-tabbar--safe{padding-bottom:env(safe-area-inset-bottom)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.js
new file mode 100644
index 0000000..625dde0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.js
@@ -0,0 +1,282 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var touch_1 = require("../mixins/touch");
+var utils_1 = require("../common/utils");
+var validator_1 = require("../common/validator");
+var relation_1 = require("../common/relation");
+(0, component_1.VantComponent)({
+ mixins: [touch_1.touch],
+ classes: ['nav-class', 'tab-class', 'tab-active-class', 'line-class'],
+ relation: (0, relation_1.useChildren)('tab', function () {
+ this.updateTabs();
+ }),
+ props: {
+ sticky: Boolean,
+ border: Boolean,
+ swipeable: Boolean,
+ titleActiveColor: String,
+ titleInactiveColor: String,
+ color: String,
+ animated: {
+ type: Boolean,
+ observer: function () {
+ var _this = this;
+ this.children.forEach(function (child, index) {
+ return child.updateRender(index === _this.data.currentIndex, _this);
+ });
+ },
+ },
+ lineWidth: {
+ type: null,
+ value: 40,
+ observer: 'resize',
+ },
+ lineHeight: {
+ type: null,
+ value: -1,
+ },
+ active: {
+ type: null,
+ value: 0,
+ observer: function (name) {
+ if (name !== this.getCurrentName()) {
+ this.setCurrentIndexByName(name);
+ }
+ },
+ },
+ type: {
+ type: String,
+ value: 'line',
+ },
+ ellipsis: {
+ type: Boolean,
+ value: true,
+ },
+ duration: {
+ type: Number,
+ value: 0.3,
+ },
+ zIndex: {
+ type: Number,
+ value: 1,
+ },
+ swipeThreshold: {
+ type: Number,
+ value: 5,
+ observer: function (value) {
+ this.setData({
+ scrollable: this.children.length > value || !this.data.ellipsis,
+ });
+ },
+ },
+ offsetTop: {
+ type: Number,
+ value: 0,
+ },
+ lazyRender: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ data: {
+ tabs: [],
+ scrollLeft: 0,
+ scrollable: false,
+ currentIndex: 0,
+ container: null,
+ skipTransition: true,
+ scrollWithAnimation: false,
+ lineOffsetLeft: 0,
+ },
+ mounted: function () {
+ var _this = this;
+ (0, utils_1.requestAnimationFrame)(function () {
+ _this.swiping = true;
+ _this.setData({
+ container: function () { return _this.createSelectorQuery().select('.van-tabs'); },
+ });
+ _this.resize();
+ _this.scrollIntoView();
+ });
+ },
+ methods: {
+ updateTabs: function () {
+ var _a = this, _b = _a.children, children = _b === void 0 ? [] : _b, data = _a.data;
+ this.setData({
+ tabs: children.map(function (child) { return child.data; }),
+ scrollable: this.children.length > data.swipeThreshold || !data.ellipsis,
+ });
+ this.setCurrentIndexByName(data.active || this.getCurrentName());
+ },
+ trigger: function (eventName, child) {
+ var currentIndex = this.data.currentIndex;
+ var currentChild = child || this.children[currentIndex];
+ if (!(0, validator_1.isDef)(currentChild)) {
+ return;
+ }
+ this.$emit(eventName, {
+ index: currentChild.index,
+ name: currentChild.getComputedName(),
+ title: currentChild.data.title,
+ });
+ },
+ onTap: function (event) {
+ var _this = this;
+ var index = event.currentTarget.dataset.index;
+ var child = this.children[index];
+ if (child.data.disabled) {
+ this.trigger('disabled', child);
+ }
+ else {
+ this.setCurrentIndex(index);
+ (0, utils_1.nextTick)(function () {
+ _this.trigger('click');
+ });
+ }
+ },
+ // correct the index of active tab
+ setCurrentIndexByName: function (name) {
+ var _a = this.children, children = _a === void 0 ? [] : _a;
+ var matched = children.filter(function (child) { return child.getComputedName() === name; });
+ if (matched.length) {
+ this.setCurrentIndex(matched[0].index);
+ }
+ },
+ setCurrentIndex: function (currentIndex) {
+ var _this = this;
+ var _a = this, data = _a.data, _b = _a.children, children = _b === void 0 ? [] : _b;
+ if (!(0, validator_1.isDef)(currentIndex) ||
+ currentIndex >= children.length ||
+ currentIndex < 0) {
+ return;
+ }
+ (0, utils_1.groupSetData)(this, function () {
+ children.forEach(function (item, index) {
+ var active = index === currentIndex;
+ if (active !== item.data.active || !item.inited) {
+ item.updateRender(active, _this);
+ }
+ });
+ });
+ if (currentIndex === data.currentIndex) {
+ return;
+ }
+ var shouldEmitChange = data.currentIndex !== null;
+ this.setData({ currentIndex: currentIndex });
+ (0, utils_1.requestAnimationFrame)(function () {
+ _this.resize();
+ _this.scrollIntoView();
+ });
+ (0, utils_1.nextTick)(function () {
+ _this.trigger('input');
+ if (shouldEmitChange) {
+ _this.trigger('change');
+ }
+ });
+ },
+ getCurrentName: function () {
+ var activeTab = this.children[this.data.currentIndex];
+ if (activeTab) {
+ return activeTab.getComputedName();
+ }
+ },
+ resize: function () {
+ var _this = this;
+ if (this.data.type !== 'line') {
+ return;
+ }
+ var _a = this.data, currentIndex = _a.currentIndex, ellipsis = _a.ellipsis, skipTransition = _a.skipTransition;
+ Promise.all([
+ (0, utils_1.getAllRect)(this, '.van-tab'),
+ (0, utils_1.getRect)(this, '.van-tabs__line'),
+ ]).then(function (_a) {
+ var _b = _a[0], rects = _b === void 0 ? [] : _b, lineRect = _a[1];
+ var rect = rects[currentIndex];
+ if (rect == null) {
+ return;
+ }
+ var lineOffsetLeft = rects
+ .slice(0, currentIndex)
+ .reduce(function (prev, curr) { return prev + curr.width; }, 0);
+ lineOffsetLeft +=
+ (rect.width - lineRect.width) / 2 + (ellipsis ? 0 : 8);
+ _this.setData({ lineOffsetLeft: lineOffsetLeft });
+ _this.swiping = true;
+ if (skipTransition) {
+ (0, utils_1.nextTick)(function () {
+ _this.setData({ skipTransition: false });
+ });
+ }
+ });
+ },
+ // scroll active tab into view
+ scrollIntoView: function () {
+ var _this = this;
+ var _a = this.data, currentIndex = _a.currentIndex, scrollable = _a.scrollable, scrollWithAnimation = _a.scrollWithAnimation;
+ if (!scrollable) {
+ return;
+ }
+ Promise.all([
+ (0, utils_1.getAllRect)(this, '.van-tab'),
+ (0, utils_1.getRect)(this, '.van-tabs__nav'),
+ ]).then(function (_a) {
+ var tabRects = _a[0], navRect = _a[1];
+ var tabRect = tabRects[currentIndex];
+ var offsetLeft = tabRects
+ .slice(0, currentIndex)
+ .reduce(function (prev, curr) { return prev + curr.width; }, 0);
+ _this.setData({
+ scrollLeft: offsetLeft - (navRect.width - tabRect.width) / 2,
+ });
+ if (!scrollWithAnimation) {
+ (0, utils_1.nextTick)(function () {
+ _this.setData({ scrollWithAnimation: true });
+ });
+ }
+ });
+ },
+ onTouchScroll: function (event) {
+ this.$emit('scroll', event.detail);
+ },
+ onTouchStart: function (event) {
+ if (!this.data.swipeable)
+ return;
+ this.swiping = true;
+ this.touchStart(event);
+ },
+ onTouchMove: function (event) {
+ if (!this.data.swipeable || !this.swiping)
+ return;
+ this.touchMove(event);
+ },
+ // watch swipe touch end
+ onTouchEnd: function () {
+ if (!this.data.swipeable || !this.swiping)
+ return;
+ var _a = this, direction = _a.direction, deltaX = _a.deltaX, offsetX = _a.offsetX;
+ var minSwipeDistance = 50;
+ if (direction === 'horizontal' && offsetX >= minSwipeDistance) {
+ var index = this.getAvaiableTab(deltaX);
+ if (index !== -1) {
+ this.setCurrentIndex(index);
+ }
+ }
+ this.swiping = false;
+ },
+ getAvaiableTab: function (direction) {
+ var _a = this.data, tabs = _a.tabs, currentIndex = _a.currentIndex;
+ var step = direction > 0 ? -1 : 1;
+ for (var i = step; currentIndex + i < tabs.length && currentIndex + i >= 0; i += step) {
+ var index = currentIndex + i;
+ if (index >= 0 &&
+ index < tabs.length &&
+ tabs[index] &&
+ !tabs[index].disabled) {
+ return index;
+ }
+ }
+ return -1;
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.json
new file mode 100644
index 0000000..19c0bc3
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-info": "../info/index",
+ "van-sticky": "../sticky/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.wxml
new file mode 100644
index 0000000..f76dd63
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.wxml
@@ -0,0 +1,63 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view class="custom-class {{ utils.bem('tabs', [type]) }}">
+ <van-sticky
+ disabled="{{ !sticky }}"
+ z-index="{{ zIndex }}"
+ offset-top="{{ offsetTop }}"
+ container="{{ container }}"
+ bind:scroll="onTouchScroll"
+ >
+ <view class="{{ utils.bem('tabs__wrap', { scrollable }) }} {{ type === 'line' && border ? 'van-hairline--top-bottom' : '' }}">
+ <slot name="nav-left" />
+
+ <scroll-view
+ scroll-x="{{ scrollable }}"
+ scroll-with-animation="{{ scrollWithAnimation }}"
+ scroll-left="{{ scrollLeft }}"
+ class="{{ utils.bem('tabs__scroll', [type]) }}"
+ style="{{ color ? 'border-color: ' + color : '' }}"
+ >
+ <view class="{{ utils.bem('tabs__nav', [type, { complete: !ellipsis }]) }} nav-class" style="{{ computed.navStyle(color, type) }}">
+ <view wx:if="{{ type === 'line' }}" class="van-tabs__line" style="{{ computed.lineStyle({ color, lineOffsetLeft, lineHeight, skipTransition, duration, lineWidth }) }}" />
+ <view
+ wx:for="{{ tabs }}"
+ wx:key="index"
+ data-index="{{ index }}"
+ class="{{ computed.tabClass(index === currentIndex, ellipsis) }} {{ utils.bem('tab', { active: index === currentIndex, disabled: item.disabled, complete: !ellipsis }) }}"
+ style="{{ computed.tabStyle({ active: index === currentIndex, ellipsis, color, type, disabled: item.disabled, titleActiveColor, titleInactiveColor, swipeThreshold, scrollable }) }}"
+ bind:tap="onTap"
+ >
+ <view class="{{ ellipsis ? 'van-ellipsis' : '' }}" style="{{ item.titleStyle }}">
+ {{ item.title }}
+ <van-info
+ wx:if="{{ item.info !== null || item.dot }}"
+ info="{{ item.info }}"
+ dot="{{ item.dot }}"
+ custom-class="van-tab__title__info"
+ />
+ </view>
+ </view>
+ </view>
+ </scroll-view>
+
+ <slot name="nav-right" />
+ </view>
+ </van-sticky>
+
+ <view
+ class="van-tabs__content"
+ bind:touchstart="onTouchStart"
+ bind:touchmove="onTouchMove"
+ bind:touchend="onTouchEnd"
+ bind:touchcancel="onTouchEnd"
+ >
+ <view
+ class="{{ utils.bem('tabs__track', [{ animated }]) }} van-tabs__track"
+ style="{{ computed.trackStyle({ duration, currentIndex, animated }) }}"
+ >
+ <slot />
+ </view>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.wxs
new file mode 100644
index 0000000..a027c7b
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.wxs
@@ -0,0 +1,82 @@
+/* eslint-disable */
+var utils = require('../wxs/utils.wxs');
+var style = require('../wxs/style.wxs');
+
+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(data) {
+ var titleColor = data.active
+ ? data.titleActiveColor
+ : data.titleInactiveColor;
+
+ var ellipsis = data.scrollable && data.ellipsis;
+
+ // card theme color
+ if (data.type === 'card') {
+ return style({
+ 'border-color': data.color,
+ 'background-color': !data.disabled && data.active ? data.color : null,
+ color: titleColor || (!data.disabled && !data.active ? data.color : null),
+ 'flex-basis': ellipsis ? 88 / data.swipeThreshold + '%' : null,
+ });
+ }
+
+ return style({
+ color: titleColor,
+ 'flex-basis': ellipsis ? 88 / data.swipeThreshold + '%' : null,
+ });
+}
+
+function navStyle(color, type) {
+ return style({
+ 'border-color': type === 'card' && color ? color : null,
+ });
+}
+
+function trackStyle(data) {
+ if (!data.animated) {
+ return '';
+ }
+
+ return style({
+ left: -100 * data.currentIndex + '%',
+ 'transition-duration': data.duration + 's',
+ '-webkit-transition-duration': data.duration + 's',
+ });
+}
+
+function lineStyle(data) {
+ return style({
+ width: utils.addUnit(data.lineWidth),
+ transform: 'translateX(' + data.lineOffsetLeft + 'px)',
+ '-webkit-transform': 'translateX(' + data.lineOffsetLeft + 'px)',
+ 'background-color': data.color,
+ height: data.lineHeight !== -1 ? utils.addUnit(data.lineHeight) : null,
+ 'border-radius':
+ data.lineHeight !== -1 ? utils.addUnit(data.lineHeight) : null,
+ 'transition-duration': !data.skipTransition ? data.duration + 's' : null,
+ '-webkit-transition-duration': !data.skipTransition
+ ? data.duration + 's'
+ : null,
+ });
+}
+
+module.exports = {
+ tabClass: tabClass,
+ tabStyle: tabStyle,
+ trackStyle: trackStyle,
+ lineStyle: lineStyle,
+ navStyle: navStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.wxss
new file mode 100644
index 0000000..bb592c3
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tabs/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-tabs{-webkit-tap-highlight-color:transparent;position:relative}.van-tabs__wrap{display:flex;overflow:hidden}.van-tabs__wrap--scrollable .van-tab{flex:0 0 22%}.van-tabs__wrap--scrollable .van-tab--complete{flex:1 0 auto!important;padding:0 12px}.van-tabs__wrap--scrollable .van-tabs__nav--complete{padding-left:8px;padding-right:8px}.van-tabs__scroll{background-color:var(--tabs-nav-background-color,#fff)}.van-tabs__scroll--line{box-sizing:initial;height:calc(100% + 15px)}.van-tabs__scroll--card{border:1px solid var(--tabs-default-color,#ee0a24);border-radius:2px;box-sizing:border-box;margin:0 var(--padding-md,16px);width:calc(100% - var(--padding-md, 16px)*2)}.van-tabs__scroll::-webkit-scrollbar{display:none}.van-tabs__nav{display:flex;position:relative;-webkit-user-select:none;user-select:none}.van-tabs__nav--card{box-sizing:border-box;height:var(--tabs-card-height,30px)}.van-tabs__nav--card .van-tab{border-right:1px solid var(--tabs-default-color,#ee0a24);color:var(--tabs-default-color,#ee0a24);line-height:calc(var(--tabs-card-height, 30px) - 2px)}.van-tabs__nav--card .van-tab:last-child{border-right:none}.van-tabs__nav--card .van-tab.van-tab--active{background-color:var(--tabs-default-color,#ee0a24);color:#fff}.van-tabs__nav--card .van-tab--disabled{color:var(--tab-disabled-text-color,#c8c9cc)}.van-tabs__line{background-color:var(--tabs-bottom-bar-color,#ee0a24);border-radius:var(--tabs-bottom-bar-height,3px);bottom:0;height:var(--tabs-bottom-bar-height,3px);left:0;position:absolute;z-index:1}.van-tabs__track{height:100%;position:relative;width:100%}.van-tabs__track--animated{display:flex;transition-property:left}.van-tabs__content{overflow:hidden}.van-tabs--line .van-tabs__wrap{height:var(--tabs-line-height,44px)}.van-tabs--card .van-tabs__wrap{height:var(--tabs-card-height,30px)}.van-tab{box-sizing:border-box;color:var(--tab-text-color,#646566);cursor:pointer;flex:1;font-size:var(--tab-font-size,14px);line-height:var(--tabs-line-height,44px);min-width:0;padding:0 5px;position:relative;text-align:center}.van-tab--active{color:var(--tab-active-text-color,#323233);font-weight:var(--font-weight-bold,500)}.van-tab--disabled{color:var(--tab-disabled-text-color,#c8c9cc)}.van-tab__title__info{display:inline-block;position:relative!important;top:-1px!important;transform:translateX(0)!important}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.js
new file mode 100644
index 0000000..ec4069a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.js
@@ -0,0 +1,23 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ props: {
+ size: String,
+ mark: Boolean,
+ color: String,
+ plain: Boolean,
+ round: Boolean,
+ textColor: String,
+ type: {
+ type: String,
+ value: 'default',
+ },
+ closeable: Boolean,
+ },
+ methods: {
+ onClose: function () {
+ this.$emit('close');
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.json
new file mode 100644
index 0000000..0a336c0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.wxml
new file mode 100644
index 0000000..59352dd
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.wxml
@@ -0,0 +1,15 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ class="custom-class {{ utils.bem('tag', [type, size, { mark, plain, round }]) }}"
+ style="{{ computed.rootStyle({ plain, color, textColor }) }}"
+>
+ <slot />
+ <van-icon
+ wx:if="{{ closeable }}"
+ name="cross"
+ custom-class="van-tag__close"
+ bind:click="onClose"
+ />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.wxs
new file mode 100644
index 0000000..12d1668
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.wxs
@@ -0,0 +1,13 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+
+function rootStyle(data) {
+ return style({
+ 'background-color': data.plain ? '' : data.color,
+ color: data.textColor || data.plain ? data.textColor || data.color : '',
+ });
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.wxss
new file mode 100644
index 0000000..0f0cbae
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tag/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-tag{align-items:center;border-radius:var(--tag-border-radius,2px);color:var(--tag-text-color,#fff);display:inline-flex;font-size:var(--tag-font-size,12px);line-height:var(--tag-line-height,16px);padding:var(--tag-padding,0 4px);position:relative}.van-tag--default{background-color:var(--tag-default-color,#969799)}.van-tag--default.van-tag--plain{color:var(--tag-default-color,#969799)}.van-tag--danger{background-color:var(--tag-danger-color,#ee0a24)}.van-tag--danger.van-tag--plain{color:var(--tag-danger-color,#ee0a24)}.van-tag--primary{background-color:var(--tag-primary-color,#1989fa)}.van-tag--primary.van-tag--plain{color:var(--tag-primary-color,#1989fa)}.van-tag--success{background-color:var(--tag-success-color,#07c160)}.van-tag--success.van-tag--plain{color:var(--tag-success-color,#07c160)}.van-tag--warning{background-color:var(--tag-warning-color,#ff976a)}.van-tag--warning.van-tag--plain{color:var(--tag-warning-color,#ff976a)}.van-tag--plain{background-color:var(--tag-plain-background-color,#fff)}.van-tag--plain:before{border:1px solid;border-radius:inherit;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.van-tag--medium{padding:var(--tag-medium-padding,2px 6px)}.van-tag--large{border-radius:var(--tag-large-border-radius,4px);font-size:var(--tag-large-font-size,14px);padding:var(--tag-large-padding,4px 8px)}.van-tag--mark{border-radius:0 var(--tag-round-border-radius,var(--tag-round-border-radius,999px)) var(--tag-round-border-radius,var(--tag-round-border-radius,999px)) 0}.van-tag--mark:after{content:"";display:block;width:2px}.van-tag--round{border-radius:var(--tag-round-border-radius,999px)}.van-tag__close{margin-left:2px;min-width:1em}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.js
new file mode 100644
index 0000000..0c01366
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.js
@@ -0,0 +1,31 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ props: {
+ show: Boolean,
+ mask: Boolean,
+ message: String,
+ forbidClick: Boolean,
+ zIndex: {
+ type: Number,
+ value: 1000,
+ },
+ type: {
+ type: String,
+ value: 'text',
+ },
+ loadingType: {
+ type: String,
+ value: 'circular',
+ },
+ position: {
+ type: String,
+ value: 'middle',
+ },
+ },
+ methods: {
+ // for prevent touchmove
+ noop: function () { },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.json
new file mode 100644
index 0000000..9b1b78c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.json
@@ -0,0 +1,9 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index",
+ "van-loading": "../loading/index",
+ "van-overlay": "../overlay/index",
+ "van-transition": "../transition/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.wxml
new file mode 100644
index 0000000..69f143e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.wxml
@@ -0,0 +1,36 @@
+<van-overlay
+ wx:if="{{ mask || forbidClick }}"
+ show="{{ show }}"
+ z-index="{{ zIndex }}"
+ custom-style="{{ mask ? '' : 'background-color: transparent;' }}"
+/>
+<van-transition
+ show="{{ show }}"
+ custom-style="z-index: {{ zIndex }}"
+ custom-class="van-toast__container"
+>
+ <view
+ class="van-toast van-toast--{{ (type === 'text' || type === 'html') ? 'text' : 'icon' }} van-toast--{{ position }}"
+ catch:touchmove="noop"
+ >
+ <!-- text only -->
+ <text wx:if="{{ type === 'text' }}">{{ message }}</text>
+
+ <!-- html only -->
+ <rich-text wx:elif="{{ type === 'html' }}" nodes="{{ message }}"></rich-text>
+
+ <!-- with icon -->
+ <block wx:else>
+ <van-loading
+ wx:if="{{ type === 'loading' }}"
+ color="white"
+ type="{{ loadingType }}"
+ custom-class="van-toast__loading"
+ />
+ <van-icon wx:else class="van-toast__icon" name="{{ type }}" />
+ <text wx:if="{{ message }}" class="van-toast__text">{{ message }}</text>
+ </block>
+
+ <slot />
+ </view>
+</van-transition>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.wxss
new file mode 100644
index 0000000..3b7a34e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/toast/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-toast{word-wrap:break-word;align-items:center;background-color:var(--toast-background-color,rgba(0,0,0,.7));border-radius:var(--toast-border-radius,8px);box-sizing:initial;color:var(--toast-text-color,#fff);display:flex;flex-direction:column;font-size:var(--toast-font-size,14px);justify-content:center;line-height:var(--toast-line-height,20px);white-space:pre-wrap}.van-toast__container{left:50%;max-width:var(--toast-max-width,70%);position:fixed;top:50%;transform:translate(-50%,-50%);width:-webkit-fit-content;width:fit-content}.van-toast--text{min-width:var(--toast-text-min-width,96px);padding:var(--toast-text-padding,8px 12px)}.van-toast--icon{min-height:var(--toast-default-min-height,88px);padding:var(--toast-default-padding,16px);width:var(--toast-default-width,88px)}.van-toast--icon .van-toast__icon{font-size:var(--toast-icon-size,36px)}.van-toast--icon .van-toast__text{padding-top:8px}.van-toast__loading{margin:10px 0}.van-toast--top{transform:translateY(-30vh)}.van-toast--bottom{transform:translateY(30vh)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/toast/toast.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/toast/toast.d.ts
new file mode 100644
index 0000000..db3f40e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/toast/toast.d.ts
@@ -0,0 +1,26 @@
+/// <reference types="miniprogram-api-typings" />
+declare type ToastMessage = string | number;
+interface ToastOptions {
+ show?: boolean;
+ type?: string;
+ mask?: boolean;
+ zIndex?: number;
+ context?: WechatMiniprogram.Component.TrivialInstance | WechatMiniprogram.Page.TrivialInstance;
+ position?: string;
+ duration?: number;
+ selector?: string;
+ forbidClick?: boolean;
+ loadingType?: string;
+ message?: ToastMessage;
+ onClose?: () => void;
+}
+declare function Toast(toastOptions: ToastOptions | ToastMessage): WechatMiniprogram.Component.TrivialInstance | undefined;
+declare namespace Toast {
+ var loading: (options: ToastMessage | ToastOptions) => WechatMiniprogram.Component.TrivialInstance | undefined;
+ var success: (options: ToastMessage | ToastOptions) => WechatMiniprogram.Component.TrivialInstance | undefined;
+ var fail: (options: ToastMessage | ToastOptions) => WechatMiniprogram.Component.TrivialInstance | undefined;
+ var clear: () => void;
+ var setDefaultOptions: (options: ToastOptions) => void;
+ var resetDefaultOptions: () => void;
+}
+export default Toast;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/toast/toast.js b/gz-wxparty/miniprogram_npm/@vant/weapp/toast/toast.js
new file mode 100644
index 0000000..4fdb2da
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/toast/toast.js
@@ -0,0 +1,81 @@
+"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 validator_1 = require("../common/validator");
+var defaultOptions = {
+ type: 'text',
+ mask: false,
+ message: '',
+ show: true,
+ zIndex: 1000,
+ duration: 2000,
+ position: 'middle',
+ forbidClick: false,
+ loadingType: 'circular',
+ selector: '#van-toast',
+};
+var queue = [];
+var currentOptions = __assign({}, defaultOptions);
+function parseOptions(message) {
+ return (0, validator_1.isObj)(message) ? message : { message: message };
+}
+function getContext() {
+ var pages = getCurrentPages();
+ return pages[pages.length - 1];
+}
+function Toast(toastOptions) {
+ var options = __assign(__assign({}, currentOptions), parseOptions(toastOptions));
+ var context = options.context || getContext();
+ var toast = context.selectComponent(options.selector);
+ if (!toast) {
+ console.warn('未找到 van-toast 节点,请确认 selector 及 context 是否正确');
+ return;
+ }
+ delete options.context;
+ delete options.selector;
+ toast.clear = function () {
+ toast.setData({ show: false });
+ if (options.onClose) {
+ options.onClose();
+ }
+ };
+ queue.push(toast);
+ toast.setData(options);
+ clearTimeout(toast.timer);
+ if (options.duration != null && options.duration > 0) {
+ toast.timer = setTimeout(function () {
+ toast.clear();
+ queue = queue.filter(function (item) { return item !== toast; });
+ }, options.duration);
+ }
+ return toast;
+}
+var createMethod = function (type) { return function (options) {
+ return Toast(__assign({ type: type }, parseOptions(options)));
+}; };
+Toast.loading = createMethod('loading');
+Toast.success = createMethod('success');
+Toast.fail = createMethod('fail');
+Toast.clear = function () {
+ queue.forEach(function (toast) {
+ toast.clear();
+ });
+ queue = [];
+};
+Toast.setDefaultOptions = function (options) {
+ Object.assign(currentOptions, options);
+};
+Toast.resetDefaultOptions = function () {
+ currentOptions = __assign({}, defaultOptions);
+};
+exports.default = Toast;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.js
new file mode 100644
index 0000000..55fc8b8
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.js
@@ -0,0 +1,15 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+var transition_1 = require("../mixins/transition");
+(0, component_1.VantComponent)({
+ classes: [
+ 'enter-class',
+ 'enter-active-class',
+ 'enter-to-class',
+ 'leave-class',
+ 'leave-active-class',
+ 'leave-to-class',
+ ],
+ mixins: [(0, transition_1.transition)(true)],
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.wxml
new file mode 100644
index 0000000..2743785
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.wxml
@@ -0,0 +1,10 @@
+<wxs src="./index.wxs" module="computed" />
+
+<view
+ wx:if="{{ inited }}"
+ class="van-transition custom-class {{ classes }}"
+ style="{{ computed.rootStyle({ currentDuration, display, customStyle }) }}"
+ bind:transitionend="onTransitionEnd"
+>
+ <slot />
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.wxs
new file mode 100644
index 0000000..e0babf6
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.wxs
@@ -0,0 +1,17 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+
+function rootStyle(data) {
+ return style([
+ {
+ '-webkit-transition-duration': data.currentDuration + 'ms',
+ 'transition-duration': data.currentDuration + 'ms',
+ },
+ data.display ? null : 'display: none',
+ data.customStyle,
+ ]);
+}
+
+module.exports = {
+ rootStyle: rootStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.wxss
new file mode 100644
index 0000000..3a3d37f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/transition/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-transition{transition-timing-function:ease}.van-fade-enter-active,.van-fade-leave-active{transition-property:opacity}.van-fade-enter,.van-fade-leave-to{opacity:0}.van-fade-down-enter-active,.van-fade-down-leave-active,.van-fade-left-enter-active,.van-fade-left-leave-active,.van-fade-right-enter-active,.van-fade-right-leave-active,.van-fade-up-enter-active,.van-fade-up-leave-active{transition-property:opacity,transform}.van-fade-up-enter,.van-fade-up-leave-to{opacity:0;transform:translate3d(0,100%,0)}.van-fade-down-enter,.van-fade-down-leave-to{opacity:0;transform:translate3d(0,-100%,0)}.van-fade-left-enter,.van-fade-left-leave-to{opacity:0;transform:translate3d(-100%,0,0)}.van-fade-right-enter,.van-fade-right-leave-to{opacity:0;transform:translate3d(100%,0,0)}.van-slide-down-enter-active,.van-slide-down-leave-active,.van-slide-left-enter-active,.van-slide-left-leave-active,.van-slide-right-enter-active,.van-slide-right-leave-active,.van-slide-up-enter-active,.van-slide-up-leave-active{transition-property:transform}.van-slide-up-enter,.van-slide-up-leave-to{transform:translate3d(0,100%,0)}.van-slide-down-enter,.van-slide-down-leave-to{transform:translate3d(0,-100%,0)}.van-slide-left-enter,.van-slide-left-leave-to{transform:translate3d(-100%,0,0)}.van-slide-right-enter,.van-slide-right-leave-to{transform:translate3d(100%,0,0)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.js
new file mode 100644
index 0000000..b6f69b2
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.js
@@ -0,0 +1,70 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var component_1 = require("../common/component");
+(0, component_1.VantComponent)({
+ classes: [
+ 'main-item-class',
+ 'content-item-class',
+ 'main-active-class',
+ 'content-active-class',
+ 'main-disabled-class',
+ 'content-disabled-class',
+ ],
+ props: {
+ items: {
+ type: Array,
+ observer: 'updateSubItems',
+ },
+ activeId: null,
+ mainActiveIndex: {
+ type: Number,
+ value: 0,
+ observer: 'updateSubItems',
+ },
+ height: {
+ type: null,
+ value: 300,
+ },
+ max: {
+ type: Number,
+ value: Infinity,
+ },
+ selectedIcon: {
+ type: String,
+ value: 'success',
+ },
+ },
+ data: {
+ subItems: [],
+ },
+ methods: {
+ // 当一个子项被选择时
+ onSelectItem: function (event) {
+ var item = event.currentTarget.dataset.item;
+ var isArray = Array.isArray(this.data.activeId);
+ // 判断有没有超出右侧选择的最大数
+ var isOverMax = isArray && this.data.activeId.length >= this.data.max;
+ // 判断该项有没有被选中, 如果有被选中,则忽视是否超出的条件
+ var isSelected = isArray
+ ? this.data.activeId.indexOf(item.id) > -1
+ : this.data.activeId === item.id;
+ if (!item.disabled && (!isOverMax || isSelected)) {
+ this.$emit('click-item', item);
+ }
+ },
+ // 当一个导航被点击时
+ onClickNav: function (event) {
+ var index = event.detail;
+ var item = this.data.items[index];
+ if (!item.disabled) {
+ this.$emit('click-nav', { index: index });
+ }
+ },
+ // 更新子项列表
+ updateSubItems: function () {
+ var _a = this.data, items = _a.items, mainActiveIndex = _a.mainActiveIndex;
+ var _b = (items[mainActiveIndex] || {}).children, children = _b === void 0 ? [] : _b;
+ this.setData({ subItems: children });
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.json
new file mode 100644
index 0000000..42991a2
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.json
@@ -0,0 +1,8 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index",
+ "van-sidebar": "../sidebar/index",
+ "van-sidebar-item": "../sidebar-item/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.wxml
new file mode 100644
index 0000000..2663e52
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.wxml
@@ -0,0 +1,41 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="wxs" />
+
+<view
+ class="van-tree-select"
+ style="height: {{ utils.addUnit(height) }}"
+>
+ <scroll-view scroll-y class="van-tree-select__nav">
+ <van-sidebar active-key="{{ mainActiveIndex }}" bind:change="onClickNav" custom-class="van-tree-select__nav__inner">
+ <van-sidebar-item
+ wx:for="{{ items }}"
+ wx:key="index"
+ custom-class="main-item-class"
+ active-class="main-active-class"
+ disabled-class="main-disabled-class"
+ badge="{{ item.badge }}"
+ dot="{{ item.dot }}"
+ title="{{ item.text }}"
+ disabled="{{ item.disabled }}"
+ />
+ </van-sidebar>
+ </scroll-view>
+ <scroll-view scroll-y class="van-tree-select__content">
+ <slot name="content" />
+ <view
+ wx:for="{{ subItems }}"
+ wx:key="id"
+ class="van-ellipsis content-item-class {{ utils.bem('tree-select__item', { active: wxs.isActive(activeId, item.id), disabled: item.disabled }) }} {{ wxs.isActive(activeId, item.id) ? 'content-active-class' : '' }} {{ item.disabled ? 'content-disabled-class' : '' }}"
+ data-item="{{ item }}"
+ bind:tap="onSelectItem"
+ >
+ {{ item.text }}
+ <van-icon
+ wx:if="{{ wxs.isActive(activeId, item.id) }}"
+ name="{{ selectedIcon }}"
+ size="16px"
+ class="van-tree-select__selected"
+ />
+ </view>
+ </scroll-view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.wxs
new file mode 100644
index 0000000..b1cbb39
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.wxs
@@ -0,0 +1,12 @@
+/* eslint-disable */
+var array = require('../wxs/array.wxs');
+
+function isActive (activeList, itemId) {
+ if (array.isArray(activeList)) {
+ return activeList.indexOf(itemId) > -1;
+ }
+
+ return activeList === itemId;
+}
+
+module.exports.isActive = isActive;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.wxss
new file mode 100644
index 0000000..5bef0ac
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/tree-select/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-tree-select{display:flex;font-size:var(--tree-select-font-size,14px);position:relative;-webkit-user-select:none;user-select:none}.van-tree-select__nav{--sidebar-padding:12px 8px 12px 12px;background-color:var(--tree-select-nav-background-color,#f7f8fa);flex:1}.van-tree-select__nav__inner{height:100%;width:100%!important}.van-tree-select__content{background-color:var(--tree-select-content-background-color,#fff);flex:2}.van-tree-select__item{font-weight:700;line-height:var(--tree-select-item-height,44px);padding:0 32px 0 var(--padding-md,16px);position:relative}.van-tree-select__item--active{color:var(--tree-select-item-active-color,#ee0a24)}.van-tree-select__item--disabled{color:var(--tree-select-item-disabled-color,#c8c9cc)}.van-tree-select__selected{position:absolute;right:var(--padding-md,16px);top:50%;transform:translateY(-50%)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.js b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.js
new file mode 100644
index 0000000..3f1895f
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.js
@@ -0,0 +1,170 @@
+"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 utils_1 = require("./utils");
+var shared_1 = require("./shared");
+var validator_1 = require("../common/validator");
+(0, component_1.VantComponent)({
+ props: __assign(__assign({ disabled: Boolean, multiple: Boolean, uploadText: String, useBeforeRead: Boolean, afterRead: null, beforeRead: null, previewSize: {
+ type: null,
+ value: 80,
+ }, name: {
+ type: null,
+ value: '',
+ }, accept: {
+ type: String,
+ value: 'image',
+ }, fileList: {
+ type: Array,
+ value: [],
+ observer: 'formatFileList',
+ }, maxSize: {
+ type: Number,
+ value: Number.MAX_VALUE,
+ }, maxCount: {
+ type: Number,
+ value: 100,
+ }, deletable: {
+ type: Boolean,
+ value: true,
+ }, showUpload: {
+ type: Boolean,
+ value: true,
+ }, previewImage: {
+ type: Boolean,
+ value: true,
+ }, previewFullImage: {
+ type: Boolean,
+ value: true,
+ }, imageFit: {
+ type: String,
+ value: 'scaleToFill',
+ }, uploadIcon: {
+ type: String,
+ value: 'photograph',
+ } }, shared_1.chooseImageProps), shared_1.chooseVideoProps),
+ data: {
+ lists: [],
+ isInCount: true,
+ },
+ methods: {
+ formatFileList: function () {
+ var _a = this.data, _b = _a.fileList, fileList = _b === void 0 ? [] : _b, maxCount = _a.maxCount;
+ var lists = fileList.map(function (item) { return (__assign(__assign({}, item), { isImage: (0, utils_1.isImageFile)(item), isVideo: (0, utils_1.isVideoFile)(item), deletable: (0, validator_1.isBoolean)(item.deletable) ? item.deletable : true })); });
+ this.setData({ lists: lists, isInCount: lists.length < maxCount });
+ },
+ getDetail: function (index) {
+ return {
+ name: this.data.name,
+ index: index == null ? this.data.fileList.length : index,
+ };
+ },
+ startUpload: function () {
+ var _this = this;
+ var _a = this.data, maxCount = _a.maxCount, multiple = _a.multiple, lists = _a.lists, disabled = _a.disabled;
+ if (disabled)
+ return;
+ (0, utils_1.chooseFile)(__assign(__assign({}, this.data), { maxCount: maxCount - lists.length }))
+ .then(function (res) {
+ _this.onBeforeRead(multiple ? res : res[0]);
+ })
+ .catch(function (error) {
+ _this.$emit('error', error);
+ });
+ },
+ onBeforeRead: function (file) {
+ var _this = this;
+ var _a = this.data, beforeRead = _a.beforeRead, useBeforeRead = _a.useBeforeRead;
+ var res = true;
+ if (typeof beforeRead === 'function') {
+ res = beforeRead(file, this.getDetail());
+ }
+ if (useBeforeRead) {
+ res = new Promise(function (resolve, reject) {
+ _this.$emit('before-read', __assign(__assign({ file: file }, _this.getDetail()), { callback: function (ok) {
+ ok ? resolve() : reject();
+ } }));
+ });
+ }
+ if (!res) {
+ return;
+ }
+ if ((0, validator_1.isPromise)(res)) {
+ res.then(function (data) { return _this.onAfterRead(data || file); });
+ }
+ else {
+ this.onAfterRead(file);
+ }
+ },
+ onAfterRead: function (file) {
+ var _a = this.data, maxSize = _a.maxSize, afterRead = _a.afterRead;
+ var oversize = Array.isArray(file)
+ ? file.some(function (item) { return item.size > maxSize; })
+ : file.size > maxSize;
+ if (oversize) {
+ this.$emit('oversize', __assign({ file: file }, this.getDetail()));
+ return;
+ }
+ if (typeof afterRead === 'function') {
+ afterRead(file, this.getDetail());
+ }
+ this.$emit('after-read', __assign({ file: file }, this.getDetail()));
+ },
+ deleteItem: function (event) {
+ var index = event.currentTarget.dataset.index;
+ this.$emit('delete', __assign(__assign({}, this.getDetail(index)), { file: this.data.fileList[index] }));
+ },
+ onPreviewImage: function (event) {
+ if (!this.data.previewFullImage)
+ return;
+ var index = event.currentTarget.dataset.index;
+ var lists = this.data.lists;
+ var item = lists[index];
+ wx.previewImage({
+ urls: lists.filter(function (item) { return (0, utils_1.isImageFile)(item); }).map(function (item) { return item.url; }),
+ current: item.url,
+ fail: function () {
+ wx.showToast({ title: '预览图片失败', icon: 'none' });
+ },
+ });
+ },
+ onPreviewVideo: function (event) {
+ if (!this.data.previewFullImage)
+ return;
+ var index = event.currentTarget.dataset.index;
+ var lists = this.data.lists;
+ wx.previewMedia({
+ sources: lists
+ .filter(function (item) { return (0, utils_1.isVideoFile)(item); })
+ .map(function (item) { return (__assign(__assign({}, item), { type: 'video' })); }),
+ current: index,
+ fail: function () {
+ wx.showToast({ title: '预览视频失败', icon: 'none' });
+ },
+ });
+ },
+ onPreviewFile: function (event) {
+ var index = event.currentTarget.dataset.index;
+ wx.openDocument({
+ filePath: this.data.lists[index].url,
+ showMenu: true,
+ });
+ },
+ onClickPreview: function (event) {
+ var index = event.currentTarget.dataset.index;
+ var item = this.data.lists[index];
+ this.$emit('click-preview', __assign(__assign({}, item), this.getDetail(index)));
+ },
+ },
+});
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.json b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.json
new file mode 100644
index 0000000..e00a588
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-icon": "../icon/index",
+ "van-loading": "../loading/index"
+ }
+}
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.wxml b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.wxml
new file mode 100644
index 0000000..50fb0c8
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.wxml
@@ -0,0 +1,83 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+<wxs src="./index.wxs" module="computed" />
+
+<view class="van-uploader">
+ <view class="van-uploader__wrapper">
+ <!-- 预览样式 -->
+ <view
+ wx:if="{{ previewImage }}"
+ wx:for="{{ lists }}"
+ wx:key="index"
+ class="van-uploader__preview"
+ data-index="{{ index }}"
+ bindtap="onClickPreview"
+ >
+ <image
+ wx:if="{{ item.isImage }}"
+ mode="{{ imageFit }}"
+ src="{{ item.thumb || item.url }}"
+ alt="{{ item.name || ('图片' + index) }}"
+ class="van-uploader__preview-image"
+ style="{{ computed.sizeStyle({ previewSize }) }}"
+ data-index="{{ index }}"
+ bindtap="onPreviewImage"
+ />
+ <video
+ wx:elif="{{ item.isVideo }}"
+ src="{{ item.url }}"
+ title="{{ item.name || ('视频' + index) }}"
+ poster="{{ item.thumb }}"
+ autoplay="{{ item.autoplay }}"
+ class="van-uploader__preview-image"
+ style="{{ computed.sizeStyle({ previewSize }) }}"
+ data-index="{{ index }}"
+ bindtap="onPreviewVideo"
+ >
+ </video>
+ <view
+ wx:else
+ class="van-uploader__file"
+ style="{{ computed.sizeStyle({ previewSize }) }}"
+ data-index="{{ index }}"
+ bindtap="onPreviewFile"
+ >
+ <van-icon name="description" class="van-uploader__file-icon" />
+ <view class="van-uploader__file-name van-ellipsis">{{ item.name || item.url }}</view>
+ </view>
+ <view
+ wx:if="{{ item.status === 'uploading' || item.status === 'failed' }}"
+ class="van-uploader__mask"
+ >
+ <van-icon wx:if="{{ item.status === 'failed' }}" name="close" class="van-uploader__mask-icon" />
+ <van-loading wx:else custom-class="van-uploader__loading" />
+ <text wx:if="{{ item.message }}" class="van-uploader__mask-message">{{ item.message }}</text>
+ </view>
+ <view
+ wx:if="{{ deletable && item.deletable }}"
+ data-index="{{ index }}"
+ class="van-uploader__preview-delete"
+ catch:tap="deleteItem"
+ >
+ <van-icon name="cross" class="van-uploader__preview-delete-icon" />
+ </view>
+ </view>
+
+ <!-- 上传样式 -->
+ <block wx:if="{{ isInCount }}">
+ <view class="van-uploader__slot" bindtap="startUpload">
+ <slot />
+ </view>
+
+ <!-- 默认上传样式 -->
+ <view
+ wx:if="{{ showUpload }}"
+ class="van-uploader__upload {{ disabled ? 'van-uploader__upload--disabled': ''}}"
+ style="{{ computed.sizeStyle({ previewSize }) }}"
+ bindtap="startUpload"
+ >
+ <van-icon name="{{ uploadIcon }}" class="van-uploader__upload-icon" />
+ <text wx:if="{{ uploadText }}" class="van-uploader__upload-text">{{ uploadText }}</text>
+ </view>
+ </block>
+ </view>
+</view>
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.wxs
new file mode 100644
index 0000000..257c780
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.wxs
@@ -0,0 +1,14 @@
+/* eslint-disable */
+var style = require('../wxs/style.wxs');
+var addUnit = require('../wxs/add-unit.wxs');
+
+function sizeStyle(data) {
+ return style({
+ width: addUnit(data.previewSize),
+ height: addUnit(data.previewSize),
+ });
+}
+
+module.exports = {
+ sizeStyle: sizeStyle,
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.wxss b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.wxss
new file mode 100644
index 0000000..11f8696
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/index.wxss
@@ -0,0 +1 @@
+@import '../common/index.wxss';.van-uploader{display:inline-block;position:relative}.van-uploader__wrapper{display:flex;flex-wrap:wrap}.van-uploader__slot:empty{display:none}.van-uploader__slot:not(:empty)+.van-uploader__upload{display:none!important}.van-uploader__upload{align-items:center;background-color:var(--uploader-upload-background-color,#f7f8fa);box-sizing:border-box;display:flex;flex-direction:column;height:var(--uploader-size,80px);justify-content:center;margin:0 8px 8px 0;position:relative;width:var(--uploader-size,80px)}.van-uploader__upload:active{background-color:var(--uploader-upload-active-color,#f2f3f5)}.van-uploader__upload-icon{color:var(--uploader-icon-color,#dcdee0);font-size:var(--uploader-icon-size,24px)}.van-uploader__upload-text{color:var(--uploader-text-color,#969799);font-size:var(--uploader-text-font-size,12px);margin-top:var(--padding-xs,8px)}.van-uploader__upload--disabled{opacity:var(--uploader-disabled-opacity,.5)}.van-uploader__preview{cursor:pointer;margin:0 8px 8px 0;position:relative}.van-uploader__preview-image{display:block;height:var(--uploader-size,80px);overflow:hidden;width:var(--uploader-size,80px)}.van-uploader__preview-delete,.van-uploader__preview-delete:after{height:var(--uploader-delete-icon-size,14px);position:absolute;right:0;top:0;width:var(--uploader-delete-icon-size,14px)}.van-uploader__preview-delete:after{background-color:var(--uploader-delete-background-color,rgba(0,0,0,.7));border-radius:0 0 0 12px;content:""}.van-uploader__preview-delete-icon{color:var(--uploader-delete-color,#fff);font-size:var(--uploader-delete-icon-size,14px);position:absolute;right:0;top:0;transform:scale(.7) translate(10%,-10%);z-index:1}.van-uploader__file{align-items:center;background-color:var(--uploader-file-background-color,#f7f8fa);display:flex;flex-direction:column;height:var(--uploader-size,80px);justify-content:center;width:var(--uploader-size,80px)}.van-uploader__file-icon{color:var(--uploader-file-icon-color,#646566);font-size:var(--uploader-file-icon-size,20px)}.van-uploader__file-name{box-sizing:border-box;color:var(--uploader-file-name-text-color,#646566);font-size:var(--uploader-file-name-font-size,12px);margin-top:var(--uploader-file-name-margin-top,8px);padding:var(--uploader-file-name-padding,0 4px);text-align:center;width:100%}.van-uploader__mask{align-items:center;background-color:var(--uploader-mask-background-color,rgba(50,50,51,.88));bottom:0;color:#fff;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0}.van-uploader__mask-icon{font-size:var(--uploader-mask-icon-size,22px)}.van-uploader__mask-message{font-size:var(--uploader-mask-message-font-size,12px);line-height:var(--uploader-mask-message-line-height,14px);margin-top:6px;padding:0 var(--padding-base,4px)}.van-uploader__loading{color:var(--uploader-loading-icon-color,#fff)!important;height:var(--uploader-loading-icon-size,22px);width:var(--uploader-loading-icon-size,22px)}
\ No newline at end of file
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/shared.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/shared.d.ts
new file mode 100644
index 0000000..85d5034
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/shared.d.ts
@@ -0,0 +1,28 @@
+export declare const chooseImageProps: {
+ sizeType: {
+ type: ArrayConstructor;
+ value: string[];
+ };
+ capture: {
+ type: ArrayConstructor;
+ value: string[];
+ };
+};
+export declare const chooseVideoProps: {
+ capture: {
+ type: ArrayConstructor;
+ value: string[];
+ };
+ compressed: {
+ type: BooleanConstructor;
+ value: boolean;
+ };
+ maxDuration: {
+ type: NumberConstructor;
+ value: number;
+ };
+ camera: {
+ type: StringConstructor;
+ value: string;
+ };
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/shared.js b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/shared.js
new file mode 100644
index 0000000..c5df55e
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/shared.js
@@ -0,0 +1,33 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.chooseVideoProps = exports.chooseImageProps = void 0;
+// props for choose image
+exports.chooseImageProps = {
+ sizeType: {
+ type: Array,
+ value: ['original', 'compressed'],
+ },
+ capture: {
+ type: Array,
+ value: ['album', 'camera'],
+ },
+};
+// props for choose video
+exports.chooseVideoProps = {
+ capture: {
+ type: Array,
+ value: ['album', 'camera'],
+ },
+ compressed: {
+ type: Boolean,
+ value: true,
+ },
+ maxDuration: {
+ type: Number,
+ value: 60,
+ },
+ camera: {
+ type: String,
+ value: 'back',
+ },
+};
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/utils.d.ts b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/utils.d.ts
new file mode 100644
index 0000000..d5c9ab7
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/utils.d.ts
@@ -0,0 +1,22 @@
+export interface File {
+ url: string;
+ size?: number;
+ name?: string;
+ type: string;
+ duration?: number;
+ time?: number;
+ isImage?: boolean;
+ isVideo?: boolean;
+}
+export declare function isImageFile(item: File): boolean;
+export declare function isVideoFile(item: File): boolean;
+export declare function chooseFile({ accept, multiple, capture, compressed, maxDuration, sizeType, camera, maxCount, }: {
+ accept: any;
+ multiple: any;
+ capture: any;
+ compressed: any;
+ maxDuration: any;
+ sizeType: any;
+ camera: any;
+ maxCount: any;
+}): Promise<File | File[]>;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/utils.js b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/utils.js
new file mode 100644
index 0000000..96291b0
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/uploader/utils.js
@@ -0,0 +1,102 @@
+"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 });
+exports.chooseFile = exports.isVideoFile = exports.isImageFile = void 0;
+var utils_1 = require("../common/utils");
+var validator_1 = require("../common/validator");
+function isImageFile(item) {
+ if (item.isImage != null) {
+ return item.isImage;
+ }
+ if (item.type) {
+ return item.type === 'image';
+ }
+ if (item.url) {
+ return (0, validator_1.isImageUrl)(item.url);
+ }
+ return false;
+}
+exports.isImageFile = isImageFile;
+function isVideoFile(item) {
+ if (item.isVideo != null) {
+ return item.isVideo;
+ }
+ if (item.type) {
+ return item.type === 'video';
+ }
+ if (item.url) {
+ return (0, validator_1.isVideoUrl)(item.url);
+ }
+ return false;
+}
+exports.isVideoFile = isVideoFile;
+function formatImage(res) {
+ return res.tempFiles.map(function (item) { return (__assign(__assign({}, (0, utils_1.pickExclude)(item, ['path'])), { type: 'image', url: item.path, thumb: item.path })); });
+}
+function formatVideo(res) {
+ return [
+ __assign(__assign({}, (0, utils_1.pickExclude)(res, ['tempFilePath', 'thumbTempFilePath', 'errMsg'])), { type: 'video', url: res.tempFilePath, thumb: res.thumbTempFilePath }),
+ ];
+}
+function formatMedia(res) {
+ return res.tempFiles.map(function (item) { return (__assign(__assign({}, (0, utils_1.pickExclude)(item, ['fileType', 'thumbTempFilePath', 'tempFilePath'])), { type: res.type, url: item.tempFilePath, thumb: res.type === 'video' ? item.thumbTempFilePath : item.tempFilePath })); });
+}
+function formatFile(res) {
+ return res.tempFiles.map(function (item) { return (__assign(__assign({}, (0, utils_1.pickExclude)(item, ['path'])), { url: item.path })); });
+}
+function chooseFile(_a) {
+ var accept = _a.accept, multiple = _a.multiple, capture = _a.capture, compressed = _a.compressed, maxDuration = _a.maxDuration, sizeType = _a.sizeType, camera = _a.camera, maxCount = _a.maxCount;
+ return new Promise(function (resolve, reject) {
+ switch (accept) {
+ case 'image':
+ wx.chooseImage({
+ count: multiple ? Math.min(maxCount, 9) : 1,
+ sourceType: capture,
+ sizeType: sizeType,
+ success: function (res) { return resolve(formatImage(res)); },
+ fail: reject,
+ });
+ break;
+ case 'media':
+ wx.chooseMedia({
+ count: multiple ? Math.min(maxCount, 9) : 1,
+ sourceType: capture,
+ maxDuration: maxDuration,
+ sizeType: sizeType,
+ camera: camera,
+ success: function (res) { return resolve(formatMedia(res)); },
+ fail: reject,
+ });
+ break;
+ case 'video':
+ wx.chooseVideo({
+ sourceType: capture,
+ compressed: compressed,
+ maxDuration: maxDuration,
+ camera: camera,
+ success: function (res) { return resolve(formatVideo(res)); },
+ fail: reject,
+ });
+ break;
+ default:
+ wx.chooseMessageFile({
+ count: multiple ? maxCount : 1,
+ type: accept,
+ success: function (res) { return resolve(formatFile(res)); },
+ fail: reject,
+ });
+ break;
+ }
+ });
+}
+exports.chooseFile = chooseFile;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/add-unit.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/add-unit.wxs
new file mode 100644
index 0000000..4f33462
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/add-unit.wxs
@@ -0,0 +1,12 @@
+/* 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;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/array.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/array.wxs
new file mode 100644
index 0000000..610089c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/array.wxs
@@ -0,0 +1,5 @@
+function isArray(array) {
+ return array && array.constructor === 'Array';
+}
+
+module.exports.isArray = isArray;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/bem.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/bem.wxs
new file mode 100644
index 0000000..1efa129
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/bem.wxs
@@ -0,0 +1,39 @@
+/* eslint-disable */
+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;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/memoize.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/memoize.wxs
new file mode 100644
index 0000000..8f7f46d
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/memoize.wxs
@@ -0,0 +1,55 @@
+/**
+ * Simple memoize
+ * wxs doesn't support fn.apply, so this memoize only support up to 2 args
+ */
+/* eslint-disable */
+
+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;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/object.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/object.wxs
new file mode 100644
index 0000000..e077107
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/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/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/style.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/style.wxs
new file mode 100644
index 0000000..d88ca7c
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/style.wxs
@@ -0,0 +1,42 @@
+/* eslint-disable */
+var object = require('./object.wxs');
+var array = require('./array.wxs');
+
+function kebabCase(word) {
+ var newWord = word
+ .replace(getRegExp("[A-Z]", 'g'), function (i) {
+ return '-' + i;
+ })
+ .toLowerCase()
+
+ return newWord;
+}
+
+function style(styles) {
+ if (array.isArray(styles)) {
+ return styles
+ .filter(function (item) {
+ return item != null && item !== '';
+ })
+ .map(function (item) {
+ return style(item);
+ })
+ .join(';');
+ }
+
+ if ('Object' === styles.constructor) {
+ return object
+ .keys(styles)
+ .filter(function (key) {
+ return styles[key] != null && styles[key] !== '';
+ })
+ .map(function (key) {
+ return [kebabCase(key), [styles[key]]].join(':');
+ })
+ .join(';');
+ }
+
+ return styles;
+}
+
+module.exports = style;
diff --git a/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/utils.wxs b/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/utils.wxs
new file mode 100644
index 0000000..f66d33a
--- /dev/null
+++ b/gz-wxparty/miniprogram_npm/@vant/weapp/wxs/utils.wxs
@@ -0,0 +1,10 @@
+/* eslint-disable */
+var bem = require('./bem.wxs');
+var memoize = require('./memoize.wxs');
+var addUnit = require('./add-unit.wxs');
+
+module.exports = {
+ bem: memoize(bem),
+ memoize: memoize,
+ addUnit: addUnit
+};
diff --git a/gz-wxparty/package-lock.json b/gz-wxparty/package-lock.json
new file mode 100644
index 0000000..48e341a
--- /dev/null
+++ b/gz-wxparty/package-lock.json
@@ -0,0 +1,3 @@
+{
+ "lockfileVersion": 1
+}
diff --git a/gz-wxparty/pages/agreement/index.js b/gz-wxparty/pages/agreement/index.js
new file mode 100644
index 0000000..dc6e889
--- /dev/null
+++ b/gz-wxparty/pages/agreement/index.js
@@ -0,0 +1,33 @@
+// pages/agreement/index.js
+const $$ = require('../../utils/util');
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ contentHtml: '',
+ },
+
+ // 返回
+ handleBack() {
+ wx.navigateBack({
+ delta: 1,
+ });
+ },
+
+ // 获取服务协议
+ async getAgreement() {
+ const res = await $$.commonRequest({ url: `${$$.url.txt}agree.txt`, type: 'get' });
+ if (res) {
+ this.setData({ contentHtml: `<pre class="pre">${res || '-'}</pre>` });
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.getAgreement();
+ },
+});
diff --git a/gz-wxparty/pages/agreement/index.json b/gz-wxparty/pages/agreement/index.json
new file mode 100644
index 0000000..e9127fa
--- /dev/null
+++ b/gz-wxparty/pages/agreement/index.json
@@ -0,0 +1,4 @@
+{
+ "navigationBarTitleText": "服务协议",
+ "usingComponents": {}
+}
diff --git a/gz-wxparty/pages/agreement/index.wxml b/gz-wxparty/pages/agreement/index.wxml
new file mode 100644
index 0000000..902f402
--- /dev/null
+++ b/gz-wxparty/pages/agreement/index.wxml
@@ -0,0 +1,11 @@
+<!--服务协议-->
+<scroll-view class="main" scroll-y>
+ <view class="content">
+ <rich-text nodes="{{ contentHtml }}"></rich-text>
+ <view class="safeHeight" />
+ </view>
+</scroll-view>
+<view class="back">
+ <van-button bind:click="handleBack" block type="primary">返回</van-button>
+ <view class="safeHeight" />
+</view>
diff --git a/gz-wxparty/pages/agreement/index.wxss b/gz-wxparty/pages/agreement/index.wxss
new file mode 100644
index 0000000..e3a7ff0
--- /dev/null
+++ b/gz-wxparty/pages/agreement/index.wxss
@@ -0,0 +1,19 @@
+/* pages/agreement/index.wxss */
+.main {
+ height: 100%;
+ padding-bottom: 120rpx;
+}
+
+.content {
+ padding: 24rpx var(--padding-my);
+ background-color: #ffffff;
+}
+
+.back {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ padding: var(--padding-my);
+ background-color: var(--bg-color);
+}
diff --git a/gz-wxparty/pages/assistMediate/index.js b/gz-wxparty/pages/assistMediate/index.js
new file mode 100644
index 0000000..6d58130
--- /dev/null
+++ b/gz-wxparty/pages/assistMediate/index.js
@@ -0,0 +1,64 @@
+// pages/assistMediate/index.js
+const $$ = require('../../utils/util');
+
+function searchCaseApi(submitData) {
+ return $$.request({ url: 'paCaseInfo/pageAssistCase', type: 'get', service: 'mediate', submitData });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ caseId: '',
+ data: {
+ img: `${$$.url.img}assist-bg.png`,
+ searchValue: '',
+ isSeach: false, // 是否搜索
+ caseData: {}, // 案件数据
+ },
+
+ // 搜索邀请码
+ handleSearch(e) {
+ this.setData({ searchValue: e.detail || '' });
+ if (!!e.detail) {
+ this.searchCase(e.detail);
+ } else {
+ this.setData({ isSeach: false });
+ }
+ },
+
+ // 扫描二维码
+ handleScan() {
+ let that = this;
+ wx.scanCode({
+ success(res) {
+ let caseId = $$.getQueryString(res.result, 'applyId');
+ that.caseId = caseId;
+ that.searchCase(caseId);
+ },
+ });
+ },
+
+ // 查询案件
+ async searchCase(submitData, type) {
+ $$.showLoading();
+ const res = await searchCaseApi({ id: submitData, page: 1, size: 10 });
+ $$.hideLoading();
+ if (res.type) {
+ this.setData({ isSeach: true, caseData: res.data.content[0] || {} });
+ }
+ if (type === 'onPullDownRefresh') {
+ $$.showToast({ title: '已是最新记录', duration: 1000 });
+ wx.stopPullDownRefresh();
+ }
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ if (this.data.isSeach) {
+ this.searchCase(this.caseId, 'onPullDownRefresh');
+ }
+ },
+});
diff --git a/gz-wxparty/pages/assistMediate/index.json b/gz-wxparty/pages/assistMediate/index.json
new file mode 100644
index 0000000..c7b438d
--- /dev/null
+++ b/gz-wxparty/pages/assistMediate/index.json
@@ -0,0 +1,7 @@
+{
+ "navigationBarTitleText": "协助调解",
+ "usingComponents": {
+ "mediate-card": "../../components/mediate-card/index"
+ },
+ "enablePullDownRefresh": true
+}
diff --git a/gz-wxparty/pages/assistMediate/index.wxml b/gz-wxparty/pages/assistMediate/index.wxml
new file mode 100644
index 0000000..813c609
--- /dev/null
+++ b/gz-wxparty/pages/assistMediate/index.wxml
@@ -0,0 +1,25 @@
+<!--协助调解-->
+<common-page>
+ <van-search
+ background
+ bind:cancel="handleSearch"
+ bind:search="handleSearch"
+ placeholder="搜索调解邀请码"
+ show-action="{{ searchValue ? true : false }}"
+ value="{{ searchValue }}"
+ />
+ <view class="assist-main" wx:if="{{ !isSeach }}">
+ <image class="assist-img" src="{{ img }}" />
+ <view class="assist-title">扫一扫协助案件调解</view>
+ <van-button bindtap="handleScan" custom-class="btn btn-blue" icon="scan">扫一扫</van-button>
+ </view>
+ <block wx:else>
+ <view style="text-align: center;" wx:if="{{ !caseData.id }}">
+ <van-empty description="抱歉!无该案件,请确认邀请码正确性" />
+ <van-button bindtap="handleScan" custom-class="btn btn-blue" icon="scan">扫一扫</van-button>
+ </view>
+ <view class="card-box" wx:else>
+ <mediate-card caseindex="0" data="{{ caseData }}" pageType="1" />
+ </view>
+ </block>
+</common-page>
diff --git a/gz-wxparty/pages/assistMediate/index.wxss b/gz-wxparty/pages/assistMediate/index.wxss
new file mode 100644
index 0000000..431ede3
--- /dev/null
+++ b/gz-wxparty/pages/assistMediate/index.wxss
@@ -0,0 +1,24 @@
+/* pages/assistMediate/index.wxss */
+.assist-main {
+ padding: 144rpx var(--padding-my) 0;
+ text-align: center;
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 104rpx;
+}
+
+.assist-img {
+ width: 600rpx;
+ height: 500rpx;
+ margin-left: -150rpx;
+}
+
+.assist-title {
+ padding: 32rpx 0;
+}
+
+.card-box {
+ padding: 32rpx var(--padding-my) 0;
+}
diff --git a/gz-wxparty/pages/autograph/index.js b/gz-wxparty/pages/autograph/index.js
new file mode 100644
index 0000000..8058cb7
--- /dev/null
+++ b/gz-wxparty/pages/autograph/index.js
@@ -0,0 +1,37 @@
+// pages/autograph/index.js
+const $$ = require('../../utils/util');
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ imgUrl: $$.url.img,
+ cardData: [
+ {
+ icon: `${$$.url.img}toBeSigned.png`,
+ iconActive: `${$$.url.img}toBeSigned-active.png`,
+ title: '待签名',
+ files: [],
+ },
+ {
+ icon: `${$$.url.img}signed.png`,
+ iconActive: `${$$.url.img}signed-active.png`,
+ title: '已签名',
+ files: [],
+ },
+ ],
+ activeIndex: 0, // 当前选中的材料下标
+ },
+
+ handleChangeTab(e) {
+ this.setData({
+ activeIndex: e.detail,
+ });
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {},
+});
diff --git a/gz-wxparty/pages/autograph/index.json b/gz-wxparty/pages/autograph/index.json
new file mode 100644
index 0000000..caf56d2
--- /dev/null
+++ b/gz-wxparty/pages/autograph/index.json
@@ -0,0 +1,6 @@
+{
+ "navigationBarTitleText": "在线签名",
+ "usingComponents": {
+ "file-card": "../../components/file-card/index"
+ }
+}
diff --git a/gz-wxparty/pages/autograph/index.wxml b/gz-wxparty/pages/autograph/index.wxml
new file mode 100644
index 0000000..6d0585b
--- /dev/null
+++ b/gz-wxparty/pages/autograph/index.wxml
@@ -0,0 +1,20 @@
+<!--在线签名-->
+<common-page safeBottom="{{ false }}">
+ <!-- 文件展示 -->
+ <view class="card" wx:for="{{ cardData[activeIndex].files }}" wx:key="index">
+ <!-- 文件 -->
+ <file-card backgroundColor="#ffffff" fileInfoList="{{ item.fileList }}" isPreview="{{false}}" />
+ </view>
+ <!-- 空 -->
+ <view class="empty">
+ <van-empty description="暂无数据" image="{{ imgUrl }}empty.png" wx:if="{{ cardData[activeIndex].files.length === 0 }}" />
+ </view>
+ <!-- tabbar -->
+ <van-tabbar active="{{ activeIndex }}" bind:change="handleChangeTab" myHeight="66" placeholder>
+ <van-tabbar-item wx:for="{{ cardData }}" wx:key="index">
+ <van-icon name="{{ item.icon }}" slot="icon" />
+ <van-icon name="{{ item.iconActive }}" slot="icon-active" />
+ {{ item.title }}
+ </van-tabbar-item>
+ </van-tabbar>
+</common-page>
diff --git a/gz-wxparty/pages/autograph/index.wxss b/gz-wxparty/pages/autograph/index.wxss
new file mode 100644
index 0000000..7c2f262
--- /dev/null
+++ b/gz-wxparty/pages/autograph/index.wxss
@@ -0,0 +1,13 @@
+/* pages/autograph/index.wxss */
+.card {
+ border-radius: var(--border-radius-card);
+ padding: 32rpx var(--padding-my) 0;
+}
+
+.empty {
+ position: absolute;
+ top: 50%;
+ margin-top: -142px;
+ left: 0;
+ right: 0;
+}
diff --git a/gz-wxparty/pages/classicCase/index.js b/gz-wxparty/pages/classicCase/index.js
new file mode 100644
index 0000000..1ed84c1
--- /dev/null
+++ b/gz-wxparty/pages/classicCase/index.js
@@ -0,0 +1,185 @@
+// pages/classicCase/index.js
+const $$ = require('../../utils/util');
+
+
+
+
+function getCaseInfoApi(submitData) {
+ return $$.request({
+ url: 'guide/getCaseCpwsDetai',
+ submitData,
+ type: 'get',
+ v1: true,
+ service: 'mediate'
+ });
+}
+
+// 评价
+function rateApi(submitData) {
+ return $$.request({
+ url: 'guideRatings/saveGuideRatings',
+ submitData,
+ type: 'post',
+ v1: true,
+ service: 'mediate'
+ });
+}
+
+
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ region:'',
+ guideCaseTitle: '',
+ guideText: '',
+ judgmentDate:'',
+ caseSimilarity: '',
+ showModal: false,
+ rate: '',
+ NewguideId: ''
+
+ },
+
+
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ console.log(options,'options')
+ const cpwsCaseInfoId = options.guideInfoId;
+ const cpwsCaseTextId = options.guideId;
+ this.setData({
+ NewguideId: cpwsCaseTextId
+ });
+
+ this._classicCase(cpwsCaseInfoId, cpwsCaseTextId);
+ },
+
+ async _classicCase(cpwsCaseInfoId, cpwsCaseTextId) {
+ $$.showLoading();
+
+ const res = await getCaseInfoApi({
+ cpwsCaseInfoId,
+ cpwsCaseTextId
+ });
+ $$.hideLoading();
+ if (res.type) {
+ let data = res.data || {};
+ console.log('Data:', data);
+ this.setData({
+ ...data,
+ guideText: data.fullText || '',
+ guideCaseTitle: data.caseName || '',
+ region:data.region||'',
+ judgmentDate:data.judgmentDate||'',
+ caseSimilarity: data.caseSimilarity || '',
+ });
+
+ }
+ },
+
+ openPopup() {
+ if (this.data.hasEvaluated) {
+ $$.showToast({
+ title: "不可重复评价"
+ });
+ } else {
+ this.setData({
+ showModal: !this.data.showModal // 显示弹出框
+ });
+ }
+ },
+
+ // _r() {
+ // this.setData({
+ // showModal: false,
+ // hasEvaluated: true
+ // });
+ // $$.showToast({
+ // title: "评价完成"
+ // });
+ // },
+
+ onRateChange(event) {
+ console.log('event', event.detail);
+ this.setData({
+ rate: event.detail
+ })
+ },
+
+ async submitCase() {
+ $$.showLoading();
+ const res = await rateApi({
+ serviceId: this.data.NewguideId,
+ rating: this.data.rate,
+ });
+ $$.hideLoading();
+ if (res.type) {
+ $$.showToast({
+ icon: 'success',
+ title: '感谢您的评价'
+ });
+ this.setData({
+ showModal: !this.data.showModal // 显示弹出框
+ });
+ }
+
+ },
+
+
+
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/gz-wxparty/pages/classicCase/index.json b/gz-wxparty/pages/classicCase/index.json
new file mode 100644
index 0000000..c5856d6
--- /dev/null
+++ b/gz-wxparty/pages/classicCase/index.json
@@ -0,0 +1,10 @@
+{
+ "component": true,
+ "navigationBarTitleText": "典型案例",
+ "usingComponents": {
+ "ellipsis-text": "/components/ellipsis-text/index",
+ "van-rate": "../../components/vant/rate",
+ "time-format": "../../components/time-format/index"
+
+ }
+}
\ No newline at end of file
diff --git a/gz-wxparty/pages/classicCase/index.wxml b/gz-wxparty/pages/classicCase/index.wxml
new file mode 100644
index 0000000..a8d6dc9
--- /dev/null
+++ b/gz-wxparty/pages/classicCase/index.wxml
@@ -0,0 +1,43 @@
+<!--pages/classicCase/index.wxml-->
+
+
+<common-page>
+ <!-- <view class="header">{{guideCaseTitle}}</view> -->
+ <view class="headerTitle">
+ <ellipsis-text content="{{guideCaseTitle}}" fontsize="32" line="1" style="max-width: 28px;" />
+ </view>
+
+ <view class="subTitleBox">
+ <view class="subTitle">{{region}} |
+ <time-format format="YYYY-MM-DD" value="{{judgmentDate}}" />
+ </view>
+ <!-- <image class="img" src="/img/Like_1.png" catch:tap="openPopup"></image> -->
+
+ <view>
+ <image class="img" src="/img/Like_1.png" catch:tap="openPopup" style="margin-right: 16px;"></image>
+ </view>
+ </view>
+ <view style="margin: 12px 16px 21px 16px;">
+ <text decode="{{true}}" style="display: block; "> {{ guideText }}
+ </text>
+ </view>
+
+ <view class="popup-box" wx:if="{{showModal}}">
+ <view class="overBox">
+ <view class="judgment">推荐内容评价</view>
+ <view class="help">推荐内容对您有什么帮助吗?</view>
+ <view class="star">
+ <van-rate v-model="value" :size="24" bind:change="onRateChange" color="rgba(255,146,0,1)" void-icon="star" void-color="#eee" gutter="16px" />
+ </view>
+ <view class="buttonBox">
+ <view class="think" catch:tap="openPopup">
+ 我再想想
+ </view>
+ <view class="judgmentFinish" catch:tap="submitCase">
+ 评价完成
+ </view>
+ </view>
+
+ </view>
+ </view>
+</common-page>
\ No newline at end of file
diff --git a/gz-wxparty/pages/classicCase/index.wxss b/gz-wxparty/pages/classicCase/index.wxss
new file mode 100644
index 0000000..9c3e024
--- /dev/null
+++ b/gz-wxparty/pages/classicCase/index.wxss
@@ -0,0 +1,101 @@
+/* pages/classicCase/index.wxss */
+
+.header {
+ font-size: 16px;
+ display: flex;
+ font-weight: bolder;
+ justify-content: center;
+ margin-top: 12px;
+ margin-bottom: 8px;
+}
+
+.subTitleBox {
+ color: rgba(0, 0, 0, 0.6);
+ margin: 0 16px;
+ display: flex;
+ border-bottom: 1px dashed rgba(0, 0, 0, 0.20);
+ justify-content: space-between;
+}
+
+.subTitle {
+ font-size: 12px;
+ margin-right: 120px;
+ margin-bottom: 12px;
+
+}
+
+.img {
+ height: 12px;
+ width: 12px;
+ margin-right: 4px;
+}
+
+.headerTitle {
+ max-width: 500px;
+ margin: 12px 60px 0px 60px;
+ font-weight: 600;
+}
+
+.popup-box {
+ position: fixed;
+ z-index: 100;
+ top: 0;
+ left: 0;
+ background-color: rgba(0, 0, 0, 0.5);
+ width: 100%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.overBox {
+ background-color: #fff;
+ width: 300px;
+ z-index: 101;
+ position: absolute;
+ box-shadow: 0px 8px 24px 0px rgba(0, 0, 0, 0.16);
+ border-radius: 8px;
+}
+
+.judgment {
+ font-size: 17px;
+ line-height: 24px;
+ display: flex;
+ justify-content: center;
+ margin-top: 20px;
+}
+
+.help {
+ color: rgba(23, 26, 29, 0.6);
+ font-size: 14px;
+ margin: 12px 20px;
+}
+
+.star {
+ z-index: 102;
+ margin: 0px 20px 16PX 20PX;
+}
+
+.buttonBox {
+ display: flex;
+ border-top: 1px solid rgba(126, 134, 142, 0.16);
+ height: 48px;
+ font-size: 17px;
+}
+
+.think {
+ flex: 1;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-right: 1px solid rgba(126, 134, 142, 0.16);
+}
+
+.judgmentFinish {
+ flex: 1;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: rgba(209, 2, 28, 1);
+}
\ No newline at end of file
diff --git a/gz-wxparty/pages/course/index.js b/gz-wxparty/pages/course/index.js
new file mode 100644
index 0000000..c4a5ddd
--- /dev/null
+++ b/gz-wxparty/pages/course/index.js
@@ -0,0 +1,74 @@
+// pages/course/index.js
+const $$ = require('../../utils/util');
+
+// 获取案件历程
+function getCourseApi(url, submitData) {
+ return $$.request({ url, submitData, type: 'get', service: 'mediate' });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ imgUrl: $$.url.img,
+ pageType: '', //1为调解历程页面、2为司法历程页面
+ contentData: {},
+ },
+
+ //
+ async _getCourseData(options, modelData) {
+ let url, params;
+ if (options.pageType === '1') {
+ url = 'paCaseInfo/getCourse';
+ params = { caseId: options.id };
+ } else if (options.pageType === '2') {
+ url = 'paJudicInfo/getCourse';
+ params = { judicId: options.id };
+ }
+ $$.showLoading();
+ const res = await getCourseApi(url, params);
+ $$.hideLoading();
+ if (res.type) {
+ res.data.applyTime = $$.timeFormat(res.data.applyTime);
+ this.setData({
+ pageType: options.pageType,
+ contentData: res.data,
+ });
+ }
+ },
+
+ // 查看附件
+ onCheck(e) {
+ let idx = e.currentTarget.dataset.fileidx;
+ let fileItem = this.data.contentData.fileInfoList[idx];
+ let type = fileItem.cat;
+ let url = $$.baseUrl + $$.url.fileShowUrl + fileItem.id;
+ $$.openFiles(type, url, [url]);
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ wx.setNavigationBarTitle({
+ title: options.pageType === '1' ? '调解历程' : '司法确认历程',
+ });
+ let adjustModel = [
+ { title: '调解案号:', value: 'caseNo' },
+ { title: '申请渠道:', value: 'sourceName' },
+ { title: '申请时间:', value: 'applyTime' },
+ { title: '申请人:', value: 'plaintiffs' },
+ { title: '被申请人:', value: 'defendants' },
+ ];
+ let judicialModel = [
+ { title: '司法确认案号:', value: 'judicNo' },
+ { title: '申请时间:', value: 'applyTime' },
+ { title: '调解组织:', value: 'applyUnitName' },
+ { title: '申请人:', value: 'plaintiffs' },
+ { title: '被申请人:', value: 'defendants' },
+ ];
+ let con = options.pageType === '1' ? adjustModel : judicialModel;
+ this._getCourseData(options, con);
+ },
+});
diff --git a/gz-wxparty/pages/course/index.json b/gz-wxparty/pages/course/index.json
new file mode 100644
index 0000000..50292bd
--- /dev/null
+++ b/gz-wxparty/pages/course/index.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents": {
+ "time-format": "../../components/time-format/index"
+ }
+}
diff --git a/gz-wxparty/pages/course/index.wxml b/gz-wxparty/pages/course/index.wxml
new file mode 100644
index 0000000..294114e
--- /dev/null
+++ b/gz-wxparty/pages/course/index.wxml
@@ -0,0 +1,270 @@
+<!--pages/course/index.wxml-->
+<wxs module="wxs" src="../../utils/wxs/util.wxs" />
+
+<!--调解历程 or 司法确认历程-->
+<common-page>
+ <view class="course" wx:if="{{contentData.courseInfoList}}">
+ <view class="course-item" wx:if="{{ contentData.fileInfoList && contentData.fileInfoList.length!=0}}">
+ <view class="course-item-divider" />
+ <view class="course-item-imgBg course-item-imgBg-color">
+ <image class="course-item-img" src="{{ imgUrl }}link2.png" />
+ </view>
+ <view class="course-item-flex-box">
+ <view class="course-item-flex" wx:for="{{ contentData.fileInfoList }}" wx:key="index">
+ <view style="font-weight:600;">{{(item.name&&item.suffix)? item.name+'.'+item.suffix : '附件信息'}}</view>
+ <van-button bind:click="onCheck" custom-class="course-button" data-fileidx="{{index}}" plain type="primary">查看</van-button>
+ </view>
+ </view>
+ </view>
+
+ <!-- 司法step -->
+ <block wx:for="{{ contentData.courseInfoList}}" wx:if="{{ pageType==2 }}" wx:key="index">
+ <!-- 提交申请 -->
+ <view class="course-item" wx:if="{{item.process == 1}}">
+ <view class="course-item-imgBg {{item.status==1 && 'course-item-imgBg-color'}}">
+ <image class="course-item-img" src="{{ imgUrl }}{{item.status==2?'writing.png':'seleted.png'}}" />
+ </view>
+ <view class="course-item-content">
+ <view class="course-item-content-title">{{item.title || '-'}}</view>
+ <view class="course-item-content-content">{{item.applyContent || '-'}}</view>
+ <view class="course-item-content-content">
+ <time-format value="{{ item.finishTime }}" />
+ </view>
+ </view>
+ </view>
+
+ <!-- 待开始 -->
+ <view class="course-item" wx:if="{{item.process == 2}}">
+ <view class="course-item-divider" />
+ <view class="course-item-imgBg {{item.status==1 && 'course-item-imgBg-color'}}">
+ <image class="course-item-img" src="{{ imgUrl }}{{item.status==2?'seal.png':'seleted.png'}}" />
+ </view>
+ <view class="course-item-content">
+ <view class="course-item-content-title">{{item.title || '-'}}</view>
+ <view class="course-item-content-content">
+ 预约司法确认时间:
+ <time-format value="{{ item.orderStartTime }}" />~
+ <time-format value="{{ item.orderEndTime }}" />
+ </view>
+ <view class="course-item-content-content">预约司法确认地点:{{item.meetAddr || '-'}}</view>
+ <view class="course-item-content-content">预约司法确认方式:{{item.meetWayName || '-'}}</view>
+ <view class="course-item-content-content">
+ <time-format value="{{ item.finishTime }}" />
+ </view>
+ </view>
+ </view>
+
+ <!-- 进行中 -->
+ <view class="course-item" wx:if="{{item.process == 3}}">
+ <view class="course-item-divider" />
+ <view class="course-item-imgBg {{item.status==1 && 'course-item-imgBg-color'}}">
+ <image class="course-item-img" src="{{ imgUrl }}{{item.status==2?'clock.png':'seleted.png'}}" />
+ </view>
+ <view class="course-item-content">
+ <view class="course-item-content-title">{{item.title || '-'}}</view>
+ <view class="course-item-content-content">司法确认地点:{{item.meetAddr || '-'}}</view>
+ <view class="course-item-content-content">司法确认方式:{{item.meetWayName || '-'}}</view>
+ <view class="course-item-content-content">房间号:{{item.roomNo || '-'}}</view>
+ <view class="course-item-content-content">
+ <time-format value="{{ item.finishTime }}" />
+ </view>
+ </view>
+ </view>
+
+ <!-- 已结束 -->
+ <view class="course-item" wx:if="{{item.process == 4}}">
+ <view class="course-item-divider" />
+ <view class="course-item-imgBg {{item.status==1 && 'course-item-imgBg-color'}}">
+ <image class="course-item-img" src="{{ imgUrl }}seleted.png" />
+ </view>
+ <view class="course-item-content">
+ <view class="course-item-content-title">{{item.title || '-'}}</view>
+ <view class="course-item-content-content">受理法院:{{item.courtName || '-'}}</view>
+ <view class="course-item-content-content">承办法官:{{item.judgeName || '-'}}</view>
+ <view class="course-item-content-content">
+ 司法确认结果:
+ <text style="color: {{ item.judicResult === '22_00028-1' ? '#07c160' : '#ee0a24' }};">{{item.judicResultName || '-'}}</text>
+ </view>
+ <view class="course-item-content-content">
+ <time-format value="{{ item.finishTime }}" />
+ </view>
+ </view>
+ </view>
+
+ <!-- 不予受理 -->
+ <view class="course-item" wx:if="{{item.process == 5}}">
+ <view class="course-item-divider" />
+ <view class="course-item-imgBg {{item.status==1 && 'course-item-imgBg-color'}}">
+ <image class="course-item-img" src="{{ imgUrl }}fail.png" />
+ </view>
+ <view class="course-item-content">
+ <view class="course-item-content-title">{{item.title || '-'}}</view>
+ <view class="course-item-content-content">受理法院:{{item.courtName || '-'}}</view>
+ <view class="course-item-content-content">承办法官:{{item.judgeName || '-'}}</view>
+ <view class="course-item-content-content">终止原因:{{item.errorContent || '-'}}</view>
+ <view class="course-item-content-content">
+ <time-format value="{{ item.finishTime }}" />
+ </view>
+ </view>
+ </view>
+
+ <!-- 异常终止 -->
+ <view class="course-item" wx:if="{{item.process == 6}}">
+ <view class="course-item-divider" />
+ <view class="course-item-imgBg {{item.status==1 && 'course-item-imgBg-color'}}">
+ <image class="course-item-img" src="{{ imgUrl }}fail.png" />
+ </view>
+ <view class="course-item-content">
+ <view class="course-item-content-title">{{item.title || '-'}}</view>
+ <view class="course-item-content-content">受理法院:{{item.courtName || '-'}}</view>
+ <view class="course-item-content-content">承办法官:{{item.judgeName || '-'}}</view>
+ <view class="course-item-content-content">终止原因:{{item.errorContent || '-'}}</view>
+ <view class="course-item-content-content">
+ <time-format value="{{ item.finishTime }}" />
+ </view>
+ </view>
+ </view>
+
+ <!-- 子节点 -->
+ <view class="course-item" wx:for="{{ item.childList }}" wx:for-item="childItem" wx:if="{{ item.childList}}" wx:key="index">
+ <view class="course-item-divider" />
+ <view class="course-item-imgBg-2 {{item.status==1 && 'course-item-imgBg-color'}}" />
+ <view class="course-item-content">
+ <view class="course-item-content-title">{{ childItem.title || '-' }}</view>
+ <block wx:if="{{ childItem.type==1}}">
+ <view class="course-item-content-content">受理法院:{{childItem.courtName || '-'}}</view>
+ <view class="course-item-content-content">承办法官:{{childItem.judgeName || '-'}}</view>
+ </block>
+ <view class="course-item-content-content">
+ <time-format value="{{ item.finishTime }}" />
+ </view>
+ </view>
+ </view>
+ </block>
+
+ <!-- 调解step -->
+ <block wx:for="{{ contentData.courseInfoList }}" wx:if="{{ pageType==1 }}" wx:key="index">
+ <!-- 提交申请 -->
+ <view class="course-item" wx:if="{{item.process == 1}}">
+ <view class="course-item-imgBg {{item.status==1 && 'course-item-imgBg-color'}}">
+ <image class="course-item-img" src="{{ imgUrl }}{{item.status==2?'writing.png':'seleted.png'}}" />
+ </view>
+ <view class="course-item-content">
+ <view class="course-item-content-title">{{item.title || '-'}}</view>
+ <view class="course-item-content-content">申请渠道:{{item.sourceName || '-'}}</view>
+ <view class="course-item-content-content">
+ <time-format value="{{ item.finishTime }}" />
+ </view>
+ </view>
+ </view>
+
+ <!-- 待调解 -->
+ <view class="course-item" wx:if="{{item.process == 2}}">
+ <view class="course-item-divider" />
+ <view class="course-item-imgBg {{item.status==1 && 'course-item-imgBg-color'}}">
+ <image class="course-item-img" src="{{ imgUrl }}{{item.status==2?'seal.png':'seleted.png'}}" />
+ </view>
+ <view class="course-item-content">
+ <view class="course-item-content-title">{{item.title || '-'}}</view>
+ <view class="course-item-content-content">
+ 预约调解时间:
+ <time-format value="{{ item.orderStartTime }}" />~
+ <time-format value="{{ item.orderEndTime }}" />
+ </view>
+ <view class="course-item-content-content">预约调解地点:{{item.meetAddr || '-'}}</view>
+ <view class="course-item-content-content">预约调解方式:{{item.meetWayName || '-'}}</view>
+ <view class="course-item-content-content">
+ <time-format value="{{ item.finishTime }}" />
+ </view>
+ </view>
+ </view>
+
+ <!-- 调解中 -->
+ <view class="course-item" wx:if="{{item.process == 3}}">
+ <view class="course-item-divider" />
+ <view class="course-item-imgBg {{item.status==1 && 'course-item-imgBg-color'}}">
+ <image class="course-item-img" src="{{ imgUrl }}{{item.status==2?'clock.png':'seleted.png'}}" />
+ </view>
+ <view class="course-item-content">
+ <view class="course-item-content-title">{{item.title || '-'}}</view>
+ <view class="course-item-content-content">调解地点:{{item.meetAddr || '-'}}</view>
+ <view class="course-item-content-content">调解方式:{{item.meetWayName || '-'}}</view>
+ <view class="course-item-content-content">房间号:{{item.roomNo || '-'}}</view>
+ <view class="course-item-content-content">
+ <time-format value="{{ item.finishTime }}" />
+ </view>
+ </view>
+ </view>
+
+ <!-- 调解结束 -->
+ <view class="course-item" wx:if="{{item.process == 4}}">
+ <view class="course-item-divider" />
+ <view class="course-item-imgBg {{item.status==1 && 'course-item-imgBg-color'}}">
+ <image class="course-item-img" src="{{ imgUrl }}seleted.png" />
+ </view>
+ <view class="course-item-content">
+ <view class="course-item-content-title">{{item.title || '-'}}</view>
+ <view class="course-item-content-content">调解组织:{{item.mediateUnitName || '-'}}</view>
+ <view class="course-item-content-content">调解员:{{item.mediator || '-'}}</view>
+ <view class="course-item-content-content">
+ 调解结果:
+ <text style="color: {{ item.mediResult === '22_00025-1' ? '#07c160' : '#ee0a24' }};">{{item.mediResultName || '-'}}</text>
+ </view>
+ <view class="course-item-content-content">
+ <time-format value="{{ item.finishTime }}" />
+ </view>
+ </view>
+ </view>
+
+ <!-- 不予受理 -->
+ <view class="course-item" wx:if="{{item.process == 5}}">
+ <view class="course-item-divider" />
+ <view class="course-item-imgBg {{item.status==1 && 'course-item-imgBg-color'}}">
+ <image class="course-item-img" src="{{ imgUrl }}fail.png" />
+ </view>
+ <view class="course-item-content">
+ <view class="course-item-content-title">{{item.title || '-'}}</view>
+ <view class="course-item-content-content">调解组织:{{item.mediateUnitName || '-'}}</view>
+ <view class="course-item-content-content">调解员:{{item.mediator || '-'}}</view>
+ <view class="course-item-content-content">终止原因:{{item.errorContent || '-'}}</view>
+ <view class="course-item-content-content">
+ <time-format value="{{ item.finishTime }}" />
+ </view>
+ </view>
+ </view>
+
+ <!-- 异常终止 -->
+ <view class="course-item" wx:if="{{item.process == 6}}">
+ <view class="course-item-divider" />
+ <view class="course-item-imgBg {{item.status==1 && 'course-item-imgBg-color'}}">
+ <image class="course-item-img" src="{{ imgUrl }}fail.png" />
+ </view>
+ <view class="course-item-content">
+ <view class="course-item-content-title">{{item.title || '-'}}</view>
+ <view class="course-item-content-content">调解组织:{{item.mediateUnitName || '-'}}</view>
+ <view class="course-item-content-content">调解员:{{item.mediator || '-'}}</view>
+ <view class="course-item-content-content">终止原因:{{item.errorContent || '-'}}</view>
+ <view class="course-item-content-content">
+ <time-format value="{{ item.finishTime }}" />
+ </view>
+ </view>
+ </view>
+
+ <!-- 子节点 -->
+ <view class="course-item" wx:for="{{ item.childList }}" wx:for-item="childItem" wx:if="{{ item.childList}}" wx:key="index">
+ <view class="course-item-divider" />
+ <view class="course-item-imgBg-2 {{item.status==1 && 'course-item-imgBg-color'}}" />
+ <view class="course-item-content">
+ <view class="course-item-content-title">{{ childItem.title }}</view>
+ <block wx:if="{{ childItem.type==1}}">
+ <view class="course-item-content-content">调解组织:{{childItem.mediateUnitName || '-'}}</view>
+ <view class="course-item-content-content">调解员:{{childItem.mediator || '-'}}</view>
+ </block>
+ <view class="course-item-content-content">
+ <time-format value="{{ item.finishTime }}" />
+ </view>
+ </view>
+ </view>
+ </block>
+ </view>
+</common-page>
diff --git a/gz-wxparty/pages/course/index.wxss b/gz-wxparty/pages/course/index.wxss
new file mode 100644
index 0000000..ee01c2e
--- /dev/null
+++ b/gz-wxparty/pages/course/index.wxss
@@ -0,0 +1,110 @@
+/* pages/course/index.wxss */
+@import '../../styles/public_components.wxss';
+
+.course {
+ padding: 24rpx 32rpx;
+ padding-bottom: 0;
+ background-color: #ffffff;
+ margin: 0 var(--padding-my);
+ border-radius: var(--border-radius-card);
+ margin-top: 24rpx;
+}
+
+.course .course-button {
+ width: auto;
+ height: 40rpx;
+ font-size: 24rpx;
+ line-height: 40rpx;
+ border-radius: 22rpx;
+ padding: 0 16rpx;
+ margin-left: 16rpx;
+}
+
+.course-item {
+ display: flex;
+ position: relative;
+ padding-bottom: 24rpx;
+}
+
+.course-item-divider {
+ position: absolute;
+ background-color: rgba(0, 0, 0, 0.2);
+ width: 2rpx;
+ height: 100%;
+ left: 17rpx;
+ top: 17rpx;
+}
+
+.course-item-imgBg {
+ position: relative;
+ height: 36rpx;
+ width: 36rpx;
+ border-radius: 50%;
+ background-color: #8c8c8c;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin: 2rpx 0;
+}
+
+.course-item-imgBg-color {
+ background-color: var(--main-color);
+}
+
+.course-item-imgBg-2 {
+ position: relative;
+ height: 36rpx;
+ width: 36rpx;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin: 2rpx 0;
+}
+
+.course-item-imgBg-2::after {
+ content: '';
+ position: absolute;
+ width: 20rpx;
+ height: 20rpx;
+ background-color: #8c8c8c;
+ left: 50%;
+ top: 50%;
+ margin-left: -10rpx;
+ margin-top: -10rpx;
+ border-radius: 50%;
+}
+
+.course-item-img {
+ width: 24rpx;
+ height: 24rpx;
+}
+
+.course-item-content {
+ flex: 1;
+ padding-left: 16rpx;
+}
+
+.course-item-content-title {
+ font-weight: 600;
+}
+
+.course-item-content-content {
+ font-weight: 24rpx;
+ line-height: 40rpx;
+ color: var(--second-text-color);
+}
+
+.course-item-flex-box {
+ flex: 1;
+}
+
+.course-item-flex {
+ flex: 1;
+ display: flex;
+ padding-left: 16rpx;
+}
+
+.card-cell-title {
+ max-width: 6.2em;
+}
diff --git a/gz-wxparty/pages/findAdjust/index.js b/gz-wxparty/pages/findAdjust/index.js
new file mode 100644
index 0000000..15e77ea
--- /dev/null
+++ b/gz-wxparty/pages/findAdjust/index.js
@@ -0,0 +1,264 @@
+/* pages/findAdjust/index.js */
+const $$ = require('../../utils/util');
+
+// 获取调解类型
+function getMediateTypeApi() {
+ return $$.request({ url: 'ctUser/getMediUnitType', type: 'get', service: 'cust' });
+}
+
+// 获取调解员 or 调解组织数据
+function getListDataApi(param) {
+ return $$.request({ url: 'ctUser/pageFindMediate', type: 'get', submitData: param, service: 'cust' });
+}
+
+function getSaveGuessDataApi(param) {
+ return $$.request({ url: 'paUser/updatePaUser', type: 'POST', submitData: param || {}, service: 'cust' });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ imgUrl: $$.url.img,
+ selectModel: [
+ {
+ name: '全部',
+ key: 'type',
+ data: [
+ { label: '全部', value: '', span: 24 },
+ { label: '调解员', value: '1' },
+ { label: '调解组织', value: '2' },
+ ],
+ },
+ {
+ name: '擅长',
+ key: 'goodField',
+ data: [
+ { label: '擅长', value: '', span: 24 },
+ {label: '劳动纠纷', value: '22_00039-0001'},
+ {label: '合同纠纷', value: '22_00039-0002'},
+ {label: '借贷纠纷', value: '22_00039-0003'},
+ {label: '邻里纠纷', value: '22_00039-0004'},
+ {label: '家庭婚姻纠纷', value: '22_00039-0005'},
+ {label: '机动车交通事故责任纠纷', value: '22_00039-0006'},
+ {label: '医疗损伤责任纠纷', value: '22_00039-0007'},
+ {label: '侵害商标权纠纷', value: '22_00039-0008'},
+ {label: '经济纠纷', value: '22_00039-0018'},
+ {label: '所有权纠纷', value: '22_00039-0009'},
+ {label: '继承纠纷', value: '22_00039-0010'},
+ {label: '人格权纠纷', value: '22_00039-0011'},
+ {label: '股权转让纠纷', value: '22_00039-0012'},
+ {label: '财产损害赔偿纠纷', value: '22_00039-0013'},
+ {label: '建设用地使用权纠纷', value: '22_00039-0014'},
+ {label: '土地承包经营权确认纠纷', value: '22_00039-0015'},
+ {label: '承包地征收补偿费用分配纠纷', value: '22_00039-0016'},
+ {label: '其他', value: '22_00039-0017'},
+ ],
+ },
+ {
+ name: '调解类型',
+ key: 'unitId',
+ data: [],
+ },
+ ],
+ showGuessDialog: false,
+ guessModel: [
+ {
+ value: '22_00039-0001',
+ label: '劳动纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0002',
+ label: '合同纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0003',
+ label: '借贷纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0004',
+ label: '邻里纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0005',
+ label: '家庭婚姻纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0006',
+ label: '机动车交通事故责任纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0007',
+ label: '医疗损伤责任纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0008',
+ label: '侵害商标权纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0018',
+ label: '经济纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0009',
+ label: '所有权纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0010',
+ label: '继承纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0011',
+ label: '人格权纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0012',
+ label: '股权转让纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0013',
+ label: '财产损害赔偿纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0014',
+ label: '建设用地使用权纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0015',
+ label: '土地承包经营权确认纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0016',
+ label: '承包地征收补偿费用分配纠纷',
+ isChoose: false,
+ },
+ {
+ value: '22_00039-0017',
+ label: '其他',
+ isChoose: false,
+ },
+ ],
+ search: {
+ page: 1,
+ size: 20,
+ lng: '', //经度
+ lat: '', //纬度
+ name: '', // 调解员或调解组织名字
+ goodField: '', // 擅长
+ type: '', // 调解员或者调解组织身份
+ unitId: '',
+ },
+ loading: false, // 滚动到底部分页的加载状态
+ data: [], // 数据
+ total: 0, // 总数
+ },
+
+ // 搜索
+ handleSearch(e) {
+ this.getListData({ ...this.data.search, name: e.detail || '' });
+ },
+
+ // 筛选
+ handleScreen(e) {
+ let value = e.detail;
+ this.getListData({ ...this.data.search, goodField: value.goodField, type: value.type, unitId: value.unitId, page: 1 });
+ },
+
+ // 找他调
+ onFindAdjust(e) {
+ const idx = e.currentTarget.dataset.index;
+ const { type, id, name } = this.data.data[idx];
+ if ($$.userTest('realName')) {
+ wx.navigateTo({ url: `../../pages/register/index?type=${type}&id=${id}&name=${name}` });
+ }
+ },
+
+ // 帮我推荐
+ onConfirm() {},
+
+ // 暂不选择
+ onClose() {
+ this.setData({ showGuessDialog: false });
+ },
+
+ // 滚动到底部获取数据
+ handlescrolltolower() {
+ if (this.data.data.length >= this.data.total) {
+ return false;
+ }
+ if (!this.data.loading) {
+ this.data.loading = true;
+ this.setData({ loading: this.data.loading });
+ let submitData = { ...this.data.search };
+ submitData.page = submitData.page + 1;
+ this.getListData(submitData);
+ }
+ },
+
+ // 获取列表数据
+ async getListData(submitData) {
+ $$.showLoading();
+ const res = await getListDataApi(submitData);
+ $$.hideLoading();
+ if (this.data.loading) {
+ // 取消滚动底部的加载状态
+ this.setData({ loading: false });
+ }
+ if (res.type) {
+ if (submitData.page === 1) {
+ this.data.data = res.data.content || [];
+ } else {
+ this.data.data = this.data.data.concat(res.data.content || []);
+ }
+ this.setData({ search: submitData, data: this.data.data, total: res.data.totalElements || 0 });
+ }
+ },
+
+ // 获取调解类型
+ async getMediateType(type) {
+ $$.showLoading();
+ const res = await getMediateTypeApi();
+ $$.hideLoading();
+ let unitId = '';
+ let selectModel = this.data.selectModel[2];
+ if (res.type) {
+ selectModel.data.push({ label: '全部', value: 'all', span: 24, children: [{ label: '不限', value: '' }] });
+ let arr = res.data?.unitType?.map((x, t) => {
+ return { label: x.label, value: x.value, span: 24, children: x.children };
+ });
+ selectModel.data = selectModel.data.concat(arr);
+ selectModel.name = res.data?.selectName || '调解类型';
+ unitId = res.data?.selectValue || '';
+ }
+ this.setData({ selectModel: this.data.selectModel });
+ this.getListData({ ...this.data.search, unitId, type });
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if (options.type) {
+ this.data.selectModel[0].name = options.type === '1' ? '调解员' : '调解组织';
+ this.setData({ selectModel: this.data.selectModel });
+ }
+ this.getMediateType(options.type || '');
+ },
+});
diff --git a/gz-wxparty/pages/findAdjust/index.json b/gz-wxparty/pages/findAdjust/index.json
new file mode 100644
index 0000000..6588b4a
--- /dev/null
+++ b/gz-wxparty/pages/findAdjust/index.json
@@ -0,0 +1,7 @@
+{
+ "navigationBarTitleText": "找调解",
+ "usingComponents": {
+ "drop-down-select": "../../components/drop-down-select/index",
+ "common-page": "../../components/common-page/index"
+ }
+}
\ No newline at end of file
diff --git a/gz-wxparty/pages/findAdjust/index.wxml b/gz-wxparty/pages/findAdjust/index.wxml
new file mode 100644
index 0000000..8f0f68e
--- /dev/null
+++ b/gz-wxparty/pages/findAdjust/index.wxml
@@ -0,0 +1,69 @@
+<!-- 调解员 and 调解组织页面 -->
+<wxs module="wxs" src="../../utils/wxs/util.wxs" />
+
+<common-page>
+ <view class="findAdjust">
+ <van-search background bind:cancel="handleSearch" bind:search="handleSearch" placeholder="搜索" show-action="{{ search.name ? true : false }}" value="{{ search.name }}" />
+
+ <view style="margin-top: 16rpx;">
+ <drop-down-select class="findAdjust-drop" bind:ongetvalue="handleScreen" data="{{ selectModel }}" active="{{ search }}" menuTextAlign />
+ </view>
+
+ <van-empty description="暂无数据" wx:if="{{ total === 0 }}" />
+ <view class="findAdjust-scroll" wx:else>
+ <scroll-view bindscrolltolower="handlescrolltolower" scroll-y="true" style="height: 100%;">
+ <view bindtap="onFindAdjust" data-index="{{listIdx}}" class="find-adjust-list-item" wx:for="{{data}}" wx:for-index="listIdx" wx:for-item="listItem" wx:key="listIdx">
+ <view class="avatar-img-box">
+ <image alt="头像" class="avatar-img" src="{{listItem.avatar || imgUrl + (listItem.type == 2 ? 'mediation-organization.png' : 'man.png')}}" />
+ </view>
+ <view class="list-item-right">
+ <view class="avatar-name">{{listItem.name}}</view>
+ <view class="avatar-subTitle">
+ <view>累计调解{{ listItem.countCase || '0' }}件</view>
+ <view class="avatar-subTitle-divider"></view>
+ <view>{{ listItem.addr }}</view>
+ </view>
+ <view class="avatar-subTitle avatar-subTitle-tagBox">
+ <view style="margin-right: 8rpx;margin-bottom: 8rpx;">擅长调解</view>
+ <view class="avatar-subTitle-tag" wx:for="{{ wxs.strArr(listItem.goodFieldName) }}" wx:key="index">{{ item }}</view>
+ </view>
+ <view class="list-item-btn">
+ <image alt class="find-icon" src="{{imgUrl}}mediate-active.png" srcset />
+ <text>找他调</text>
+ </view>
+ </view>
+ </view>
+ <block>
+ <van-divider contentPosition="center" custom-style="margin-top: 0;" wx:if="{{ data.length >= total && data.length !== 0 }}">已加载全部数据</van-divider>
+ <view style="text-align: center;" wx:if="{{ loading }}">
+ <van-loading type="spinner" />
+ </view>
+ </block>
+ </scroll-view>
+ </view>
+ <view class="safeHeight" />
+ </view>
+</common-page>
+
+<!-- TODO: 功能屏蔽,此功能暂无作用 -->
+<van-popup bind:close="onClose" closeable custom-style="max-height: 90%" position="bottom" round show="{{ showGuessDialog }}" title="猜您关注" zIndex="999">
+ <view class="guess-main">
+ <view class="guess-subTitle">选择您关注的纠纷类型,平台将为您推荐匹配的调解资源,以帮助您尽快调解成功!</view>
+ <view>
+ <van-row gutter="23">
+ <van-col span="{{ index < 12 ? 12 : 24 }}" wx:for="{{ guessModel }}" wx:key="index">
+ <view bindtap="onChooseMyTag" class="guess-item {{ item.isChoose && 'guess-item-active' }}" data-index="{{ index }}" data-label="{{ item.label }}" data-value="{{ item.value }}">
+ <text>{{ item.label }}</text>
+ <view class="guess-check" wx:if="{{ item.isChoose }}">
+ <van-icon name="checked" size="18" />
+ </view>
+ </view>
+ </van-col>
+ </van-row>
+ </view>
+ </view>
+ <view class="popup-bottom-button">
+ <van-button bind:click="onConfirm" block type="primary">帮我推荐</van-button>
+ <view class="safeHeight" />
+ </view>
+</van-popup>
\ No newline at end of file
diff --git a/gz-wxparty/pages/findAdjust/index.wxss b/gz-wxparty/pages/findAdjust/index.wxss
new file mode 100644
index 0000000..ad5a66a
--- /dev/null
+++ b/gz-wxparty/pages/findAdjust/index.wxss
@@ -0,0 +1,139 @@
+/* pages/findAdjust/index.wxss */
+.findAdjust {
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ position: absolute;
+ left: 0;
+ right: 0;
+}
+
+.findAdjust-scroll {
+ flex: 1;
+ overflow: hidden;
+ padding: 24rpx;
+}
+
+.find-adjust-list-item {
+ position: relative;
+ background-color: #ffffff;
+ padding: 32rpx;
+ border-radius: var(--border-radius-card-sm);
+ margin-bottom: 16rpx;
+ display: flex;
+}
+
+.find-adjust-list-item:last-child {
+ margin-bottom: 0;
+}
+
+.find-adjust-list-item:last-child {
+ margin-bottom: 0;
+}
+
+.avatar-img-box {
+ height: 116rpx;
+ width: 116rpx;
+ margin-right: 32rpx;
+}
+
+.avatar-img {
+ width: 100%;
+ height: 100%;
+}
+
+.list-item-right {
+ flex: 1;
+ overflow: hidden;
+}
+
+.avatar-name {
+ font-weight: 550;
+ margin-bottom: 16rpx;
+}
+
+.avatar-subTitle {
+ color: var(--second-text-color);
+ font-size: 24rpx;
+ line-height: 24rpx;
+ margin-bottom: 16rpx;
+ display: flex;
+ flex-wrap: wrap;
+}
+
+.avatar-subTitle-divider {
+ margin: 0 8rpx;
+ width: 2rpx;
+ background-color: var(--border-color);
+}
+
+.avatar-subTitle-tagBox {
+ margin-bottom: 8rpx;
+ align-items: center;
+}
+
+.avatar-subTitle-tag {
+ padding: 8rpx;
+ background: rgba(0, 0, 0, 0.1);
+ border-radius: 4rpx;
+ margin-right: 8rpx;
+ margin-bottom: 8rpx;
+}
+
+.list-item-btn {
+ padding: 6rpx;
+ border-radius: 6rpx;
+ border: 2rpx solid var(--main-color);
+ font-size: 22rpx;
+ line-height: 22rpx;
+ color: var(--main-color);
+ display: inline-block;
+}
+
+.find-icon {
+ width: 20rpx;
+ height: 20rpx;
+ margin-right: 8rpx;
+}
+
+.guess-subTitle {
+ padding: 32rpx 0;
+}
+
+.guess-main {
+ margin-bottom: 146rpx;
+ padding: 0 32rpx;
+}
+
+.guess-item {
+ position: relative;
+ border: 2rpx solid rgba(0, 0, 0, 0.2);
+ border-radius: 40rpx;
+ text-align: center;
+ padding: 24rpx 0;
+ line-height: 28rpx;
+ margin-bottom: 32rpx;
+}
+
+.guess-item-active {
+ border-color: var(--main-color);
+ color: var(--main-color);
+ background-color: var(--red-1);
+}
+
+.guess-check {
+ position: absolute;
+ top: -16rpx;
+ right: 0;
+ color: var(--main-color);
+ background: #fff;
+ border-radius: 50%;
+}
+
+.guess-bottom .btn:first-child {
+ margin-right: 32rpx;
+}
+
+.drop-down-select-submenu {
+ overflow: hidden !important;
+}
\ No newline at end of file
diff --git a/gz-wxparty/pages/homePage/index.js b/gz-wxparty/pages/homePage/index.js
new file mode 100644
index 0000000..136872b
--- /dev/null
+++ b/gz-wxparty/pages/homePage/index.js
@@ -0,0 +1,734 @@
+// pages/homePage/index.js
+const $$ = require('../../utils/util');
+const app = getApp();
+
+// 热门资讯 与 视频
+function getVideoAndMessageApi(param) {
+ return $$.request({
+ url: 'paHotNews/listShow',
+ type: 'get',
+ submitData: param || {},
+ service: 'sys',
+ noToken: true
+ });
+}
+
+// 调解资源
+function getResourseApi(param) {
+ return $$.request({
+ url: 'paCaseInfo/mediatePower',
+ type: 'get',
+ submitData: param || {},
+ service: 'mediate',
+ noToken: true
+ });
+}
+
+// 消息提醒
+function getPopupMsgApi() {
+ return $$.request({
+ url: 'paCaseInfo/newsRemind',
+ type: 'get',
+ service: 'mediate'
+ });
+}
+
+function loginApi(submitData) {
+ return $$.request({
+ url: 'paAccount/tryRegister',
+ type: 'post',
+ submitData,
+ service: 'cust',
+ noToken: true
+ });
+}
+
+function registerApi(submitData) {
+ return $$.request({ url: 'paAccount/empower', type: 'post', submitData, service: 'cust', noToken: true });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ msgCheckId: null, // 已经阅读过的提示不在弹出
+ data: {
+ visible: true,
+ imgUrl: $$.url.img,
+ agreementMsg: '', // 服务协议
+ popupVisible: false,
+ banner: [`${$$.url.img}banner-1.png`, `${$$.url.img}banner-2.jpg`, `${$$.url.img}banner-3.jpg`], // 轮播图
+ resources: [{
+ icon: `${$$.url.img}case.png`,
+ num: '0',
+ unit: '件',
+ title: '累计调解案件',
+ color: '#EB4D55',
+ type: 'case',
+ },
+ {
+ icon: `${$$.url.img}mediater.png`,
+ num: '0',
+ unit: '名',
+ title: '注册调解员',
+ color: '#D10269',
+ type: 'mediater',
+ },
+ {
+ icon: `${$$.url.img}organizations.png`,
+ num: '0',
+ unit: '家',
+ title: '入驻调解组织',
+ color: '#02D1D1',
+ type: 'organization',
+ },
+ ], // 调解资源
+ video: [], // 热门视频
+ videoMore: false,
+ newMessage: [], // 最新资讯
+ newMessageMore: false,
+ message: [{}], // 消息通知
+ // 底部弹窗消息
+ popupMsg: [{
+ show: false,
+ type: 1, // 1:实名认证提醒,2:调解中提醒,3:预约提醒,4:司法确认中提醒
+ title: '',
+ subTitle: '',
+ content: [],
+ buttonText: '',
+ }, ],
+ },
+
+ // 跳转资讯链接
+ goSeeMessage(e) {
+ let url = e.currentTarget.dataset.url;
+ wx.navigateTo({
+ url: '../webview/index?showUrl=' + url
+ });
+ },
+
+ // 校验登录 or 实名
+ userTest(type) {
+ if (!app.globalData.token && (type === 'login' || type === 'all')) {
+ $$.showModal({
+ content: '抱歉您未登录,是否前往登录?',
+ success: (res) => {
+ if (res.confirm) {
+ wx.navigateTo({
+ url: '../../pages/login/index',
+ });
+ }
+ },
+ });
+ return false;
+ }
+ $$.hideLoading();
+ },
+
+ // 调解资源去看看
+ handleNavigateTo(e) {
+ let type = e.currentTarget.dataset.type;
+ if (type === 'case') {
+ $$.showToast({
+ title: '功能暂未开启,敬请期待'
+ });
+ } else if (type === 'register') {
+ if ($$.userTest('all')) {
+ wx.navigateTo({
+ url: '../../pages/register/index',
+ });
+ }
+ } else {
+ if ($$.userTest('login')) {
+ wx.navigateTo({
+ url: '../../pages/findAdjust/index?type=' + (type === 'mediater' ? '1' : '2'),
+ });
+ }
+ }
+ },
+
+ // 查看更多
+ handleGetMore(e) {
+ let type = e.currentTarget.dataset.type;
+ wx.navigateTo({
+ url: `../../pages/homePageInfo/index?type=${type}`,
+ });
+ },
+
+ // 平台协议操作
+ handleAgree(e) {
+ let type = e.currentTarget.dataset.type;
+ if (type === 'noAgree') {
+ this.selectComponent('#tabbar-page').loginOut();
+ $$.loginOutClearData();
+ } else {
+ // 同意协议之后退出登录后不重复弹出
+ wx.setStorage({
+ key: 'agreement',
+ data: 1
+ });
+ }
+ this.setData({
+ popupVisible: false
+ });
+ },
+
+ // 跳转至我的消息
+ handleGoToMessageCenter() {
+ wx.navigateTo({
+ url: '../../pages/messageCenter/index',
+ });
+ },
+
+ // 关闭消息弹窗
+ handleClosePopupMsg(e) {
+ let index = e.currentTarget.dataset.index;
+ this.data.popupMsg[index].show = false;
+ this.data.popupMsg[index].content?.forEach((x) => {
+ this.msgCheckId = [...(this.msgCheckId || []), x.caseId];
+ });
+ this.setData({
+ popupMsg: this.data.popupMsg
+ });
+ },
+
+ // 消息弹窗操作, TODO:跳转至详情页面的代码屏蔽,暂无用到,后续不用可删除
+ handleClickPopupMsg(e) {
+ let value = e.currentTarget.dataset.item;
+ // let t = e.currentTarget.dataset.t;
+ if (e.currentTarget.dataset.type === 'more' && value.content.length === 1) {
+ return;
+ }
+ this.handleClosePopupMsg(e);
+ if (value.type === 1) {
+ wx.navigateTo({
+ url: '../../pages/realNameAuthentication/index'
+ });
+ return;
+ }
+ if (value.type === 2 || (value.type === 3 && value.content[t].meetType === '22_00020-1')) {
+ wx.navigateTo({
+ url: '../../pages/myMediate/index'
+ });
+ return;
+ }
+ if (value.type === 4 || (value.type === 3 && value.content[t].meetType === '22_00020-2')) {
+ wx.navigateTo({
+ url: '../../pages/myJudicialConfirmation/index'
+ });
+ return;
+ }
+ // let caseId = value.content[t][value.type === 2 ? 'caseId' : 'id'];
+ // let pageType = '1';
+ // if (value.type === 2 || (value.type === 3 && value.content[t].meetType === '22_00020-1')) {
+ // pageType = '1'; // 调解
+ // }
+ // if (value.type === 4 || (value.type === 3 && value.content[t].meetType === '22_00020-2')) {
+ // pageType = '2'; // 司法确认
+ // }
+ },
+
+ // 获取底部弹窗消息提醒
+ async getPopupMsg() {
+ const res = await getPopupMsgApi();
+ if (res.type) {
+ let homePageMsgOut = [];
+ try {
+ let obj = wx.getStorageSync('homePageMsgOut');
+ if (obj.time === $$.timeFormat(new Date(), 'YYYY-MM-DD')) {
+ homePageMsgOut = obj.value;
+ }
+ } catch (e) {}
+ let meetRemind = {
+ show: false,
+ type: 3,
+ title: '预约提醒',
+ content: [],
+ buttonText: '了解详情'
+ };
+ let meetRemindVisible = false;
+ if (res.data.meetRemind) {
+ res.data.meetRemind.forEach((x) => {
+ if (homePageMsgOut.includes(x.caseId)) {
+ return;
+ }
+ let nowTime = $$.moment();
+ let startTime = $$.moment(x.orderStartTime);
+ let diffTime = startTime.diff(nowTime, 'hours');
+ // 距离预约开始时间小于一个小时并且未过期的时候提醒
+ if (diffTime > 0 && diffTime <= 1) {
+ meetRemind.content.push(x);
+ meetRemindVisible = true;
+ }
+ });
+ if (meetRemindVisible) {
+ meetRemind.show = true;
+ }
+ }
+ let caseRemind = {
+ show: false,
+ type: 2,
+ title: '调解中提醒',
+ content: [],
+ buttonText: '进入调解'
+ };
+ let caseRemindVisible = false;
+ if (res.data.caseRemind) {
+ res.data.caseRemind.forEach((x) => {
+ if (homePageMsgOut.includes(x.caseId)) {
+ return;
+ }
+ caseRemind.content.push(x);
+ caseRemindVisible = true;
+ });
+ if (caseRemindVisible) {
+ caseRemind.show = true;
+ }
+ }
+ let judicRemind = {
+ show: false,
+ type: 4,
+ title: '司法确认中提醒',
+ content: [],
+ buttonText: '进入司法确认'
+ };
+ let judicRemindVisible = false;
+ if (res.data.judicRemind) {
+ res.data.judicRemind.forEach((x) => {
+ if (homePageMsgOut.includes(x.caseId)) {
+ return;
+ }
+ judicRemind.content.push(x);
+ judicRemindVisible = true;
+ });
+ if (judicRemindVisible) {
+ judicRemind.show = true;
+ }
+ }
+ this.msgCheckId = homePageMsgOut;
+ this.setData({
+ popupMsg: [meetRemind, caseRemind, judicRemind]
+ });
+ }
+ },
+
+ // 获取首页视频资讯数据
+ async getVideoAndMessage(param) {
+ const res = await getVideoAndMessageApi(param);
+ if (res.type) {
+ let hotVideoList = res.data.hotVideoList || [];
+ let hotNewsList = res.data.hotNewsList || [];
+ wx.setStorage({
+ key: 'homePageNewMsgTime',
+ data: $$.timeFormat(new Date(), 'YYYY-MM-DD HH:mm:ss'),
+ });
+ this.setData({
+ video: hotVideoList.filter((item, index) => index < 2),
+ videoMore: hotVideoList.length > 2 ? true : false,
+ newMessage: hotNewsList.filter((item, index) => index < 2),
+ newMessageMore: hotNewsList.length > 2 ? true : false,
+ });
+ }
+ },
+
+ // 获取首页调解资源数量
+ async getResourse(param) {
+ const res = await getResourseApi(param);
+ let resources = {
+ ...this.data.resources
+ };
+ if (res.type) {
+ resources[0].num = res.data.caseNum || 0; //累计案件
+ resources[1].num = res.data.mediatorNum || 0; //调解员
+ resources[2].num = res.data.unitNum || 0; //调解组织
+ this.setData({
+ resources
+ });
+ }
+ },
+
+ // 获取服务协议
+ async getAgreement() {
+ const res = await $$.commonRequest({
+ url: `${$$.url.txt}agree.txt`,
+ type: 'get'
+ });
+ if (res) {
+ this.data.popupVisible = true;
+ this.setData({
+ popupVisible: true,
+ agreementMsg: `<pre class="pre">${res || '-'}</pre>`
+ });
+ }
+ },
+
+ // getLogin(formData) {
+ // $$.showLoading();
+ // wx.login({
+ // async success(res) {
+ // const submitData = {
+ // ...formData,
+ // code: res.code
+ // }
+ // const res1 = await getjumpApi(submitData)
+ // $$.hideLoading();
+ // if (res1.resp_code === "000000000000") {
+ // wx.setStorage({
+ // key: 'userInfo',
+ // data: res1.data
+ // });
+ // app.globalData.token = res1.data.token;
+ // $$.showToast({
+ // title: '登录成功',
+ // icon: 'success'
+ // });
+ // await $$.sleep();
+ // wx.reLaunch({
+ // url: '../../pages/homePage/index',
+ // });
+ // } else {
+ // $$.showModal({
+ // title: '提示',
+ // content: '您尚未注册,是否前往注册?',
+ // cancelText: '取消',
+ // confirmText: '前往',
+ // success: (res) => {
+ // if (res.confirm) {
+ // wx.navigateTo({
+ // url: '../../pages/realNameAuthentication/index?backNum=2',
+ // });
+ // } else {
+ // wx.navigateBack({
+ // delta: 1,
+ // });
+ // }
+ // },
+ // });
+ // }
+
+ // }
+ // })
+ // },
+
+ async dd() {
+ $$.showLoading();
+ wx.login({
+ async success(res) {
+ if (res.code) {
+ const accountInfo = wx.getAccountInfoSync();
+ const submitData = {
+ appid: accountInfo.miniProgram.appId,
+ code: res.code,
+ }
+ const res1 = await loginApi(submitData);
+ if (res1.type) {
+ console.log(res1.data, 'res1111')
+ if (res1.data.state === '1') {
+ $$.hideLoading();
+ console.log(res1, 'res1');
+ wx.setStorage({
+ key: 'userInfo',
+ data: res1.data
+ });
+ app.globalData.token = res1.data.token;
+ $$.showToast({
+ title: '登录成功',
+ icon: 'success'
+ });
+ await $$.sleep();
+ wx.reLaunch({
+ url: '../../pages/homePage/index',
+ });
+
+ } else {
+ $$.hideLoading();
+ app.globalData.access_token = wx.getStorageSync('access_token');
+ $$.showModal({
+ title: '提示',
+ content: '您尚未注册,是否前往注册?',
+ cancelText: '取消',
+ confirmText: '前往',
+ success: (res) => {
+ if (res.confirm) {
+ $$.showLoading();
+ wx.getUserProfile({
+ desc: '完善用户信息',
+ complete(res) {
+ if (res.errMsg === 'getUserProfile:ok') {
+ wx.login({
+ async success(res2) {
+ if (res2.code) {
+ const accountInfo = wx.getAccountInfoSync();
+ const submitData = {
+ appid: accountInfo.miniProgram.appId,
+ code: res2.code,
+ avatar: res?.userInfo.avatarUrl,
+ encryptedData: res.encryptedData,
+ ivStr: res.iv,
+ };
+ const res3 = await registerApi(submitData);
+ $$.hideLoading();
+ if (res3.type) {
+ wx.setStorage({
+ key: 'userInfo',
+ data: res3.data
+ });
+ app.globalData.token = res3.data.token;
+ $$.showToast({
+ title: '登录成功',
+ icon: 'success'
+ });
+ await $$.sleep();
+ wx.reLaunch({
+ url: '../../pages/homePage/index',
+ });
+ }
+ } else {
+ $$.hideLoading();
+ $$.showToast('登录失败,请稍后重试');
+ }
+ },
+ });
+ } else {
+ $$.hideLoading();
+ $$.showToast({
+ title: '抱歉!授权失败'
+ });
+ }
+ },
+ });
+
+ // wx.navigateTo({
+ // url: '../../pages/login/index',
+ // });
+ } else {
+ wx.navigateBack({
+ delta: 1,
+ });
+ }
+ },
+ });
+ }
+
+ }
+
+ // app.globalData.access_token = wx.getStorageSync('access_token');
+ // console.log(res, 'res')
+ // console.log(app.globalData.access_token, 'app.globalData.access_token')
+ // $$.showModal({
+ // title: '提示',
+ // content: '您尚未注册,是否前往注册?',
+ // cancelText: '取消',
+ // confirmText: '前往',
+ // success: (res) => {
+ // if (res.confirm) {
+ // wx.navigateTo({
+ // url: '../../pages/login/index',
+ // });
+ // } else {
+ // wx.navigateBack({
+ // delta: 1,
+ // });
+ // }
+ // },
+ // });
+
+ // const accountInfo = wx.getAccountInfoSync();
+ // const submitData = {
+ // appid: accountInfo.miniProgram.appId,
+ // code: res.code,
+ // }
+ // app.globalData.access_token = wx.getStorageSync('access_token');
+ // const res1 = await loginApi(submitData);
+ // console.log(res1, 'res1')
+ // $$.hideLoading();
+ // console.log(res1, 'res1');
+ // if (res1.type) {
+ // wx.setStorage({
+ // key: 'userInfo',
+ // data: res1.data
+ // });
+ // app.globalData.token = res1.data.token;
+ // $$.showToast({
+ // title: '登录成功',
+ // icon: 'success'
+ // });
+ // await $$.sleep();
+ // wx.reLaunch({
+ // url: '../../pages/homePage/index',
+ // });
+ // }
+
+ } else {
+ $$.hideLoading();
+ $$.showToast('登录失败,请稍后重试');
+ }
+ }
+ })
+ },
+
+ aa() {
+ wx.navigateTo({
+ url: '../../pages/homePage/index?access_token=2',
+ });
+ },
+
+ cc() {
+ wx.navigateTo({
+ url: '../../pages/realNameAuthentication/index',
+ });
+ },
+
+ bb() {
+ wx.request({
+ url: 'https://xcx.pinganbaiyun.cn/p_060_cs_intf/api_001/sv_002_get_paby_login_info', //仅为示例,并非真实的接口地址
+ data: {
+ "access_token": "测试token",
+ "app_id": "测试",
+ "secret": "测试"
+ },
+ method: 'post',
+ success(res) {
+ console.log(res.data, '平安白云')
+ }
+ })
+ },
+
+
+
+ // async handleGetUserInfo() {
+ // $$.showLoading();
+ // wx.getUserProfile({
+ // desc: '完善用户信息',
+ // complete(res) {
+ // if (res.errMsg === 'getUserProfile:ok') {
+ // wx.login({
+ // async success(res2) {
+ // if (res2.code) {
+ // const accountInfo = wx.getAccountInfoSync();
+ // const submitData = {
+ // appid: accountInfo.miniProgram.appId,
+ // code: res2.code,
+ // avatar: res?.userInfo.avatarUrl,
+ // encryptedData: res.encryptedData,
+ // ivStr: res.iv,
+ // };
+ // const res3 = await loginApi(submitData);
+ // $$.hideLoading();
+ // if (res3.type) {
+ // wx.setStorage({
+ // key: 'userInfo',
+ // data: res3.data
+ // });
+ // app.globalData.token = res3.data.token;
+ // $$.showToast({
+ // title: '登录成功',
+ // icon: 'success'
+ // });
+ // await $$.sleep();
+ // wx.reLaunch({
+ // url: '../../pages/homePage/index',
+ // });
+ // }
+ // } else {
+ // $$.hideLoading();
+ // $$.showToast('登录失败,请稍后重试');
+ // }
+ // },
+ // });
+ // } else {
+ // $$.hideLoading();
+ // $$.showToast({
+ // title: '抱歉!授权失败'
+ // });
+ // }
+ // },
+ // });
+ // },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ // const formData = {
+ // access_token: options.access_token,
+ // appid: options.appid,
+ // secret: options.secret
+ // // }
+
+ // this.dd();
+ // this.handleGetUserInfo()
+ // 当登录后返回时弹出协议
+ let agreement = wx.getStorageSync('agreement');
+ if (!agreement && app.globalData.token) this.getAgreement();
+ },
+
+ onShow(options) {
+ console.log(options,'options')
+ if (options.extraData.access_token && !app.globalData.token) {
+ wx.setStorage({
+ key: 'access_token',
+ data: options.extraData.access_token
+ });
+ this.dd();
+ $$.showToast({
+ title: '已监测到平安白云传入的access_token',
+ icon: 'success'
+ });
+ }
+ let appid = wx.getAccountInfoSync().miniProgram.appId;
+ this.getResourse({
+ appid
+ });
+ let that = this;
+ wx.getStorage({
+ key: 'homePageNewMsgTime',
+ complete: (res) => {
+ if (that.data.video.length === 0 || that.data.newMessage.length == 0) {
+ this.getVideoAndMessage({
+ appid
+ });
+ return;
+ }
+ if (res.data && $$.moment().diff($$.moment(res.data), 'minute') > 60) {
+ this.getVideoAndMessage({
+ appid
+ });
+ }
+ },
+ });
+ // 获取弹窗信息提醒
+ if (app.globalData.token) {
+ if (!$$.userTest('realName', 'bottom')) {
+ this.setData({
+ popupMsg: [{
+ show: true,
+ type: 1,
+ title: '实名认证提醒',
+ subTitle: '您尚未通过实名认证,根据调解实名制规定,建议您尽快前往认证。',
+ buttonText: '前往认证',
+ }, ],
+ });
+ return;
+ }
+ this.getPopupMsg();
+ }
+ },
+
+ onHide() {
+ if (!!this.msgCheckId) {
+ wx.setStorage({
+ key: 'homePageMsgOut',
+ data: {
+ time: $$.timeFormat(new Date(), 'YYYY-MM-DD'),
+ value: this.msgCheckId,
+ },
+ });
+ }
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {},
+});
\ No newline at end of file
diff --git a/gz-wxparty/pages/homePage/index.json b/gz-wxparty/pages/homePage/index.json
new file mode 100644
index 0000000..ea40d61
--- /dev/null
+++ b/gz-wxparty/pages/homePage/index.json
@@ -0,0 +1,7 @@
+{
+ "navigationBarBackgroundColor": "#ffffff",
+ "navigationBarTextStyle": "black",
+ "usingComponents": {
+ "time-format": "../../components/time-format/index"
+ }
+}
diff --git a/gz-wxparty/pages/homePage/index.wxml b/gz-wxparty/pages/homePage/index.wxml
new file mode 100644
index 0000000..8bcb029
--- /dev/null
+++ b/gz-wxparty/pages/homePage/index.wxml
@@ -0,0 +1,151 @@
+<!-- 首页 -->
+<wxs module="wxs" src="../../utils/wxs/util.wxs" />
+
+<page-meta page-style="{{ popupMsg.show ? 'overflow: hidden;' : '' }}" />
+
+<tabbar-page id="tabbar-page">
+ <!-- 幻灯片 -->
+ <swiper autoplay="{{ true }}" class="swiper" indicator-dots="{{ true }}">
+ <swiper-item wx:for="{{ banner }}" wx:key="index">
+ <image class="swiper-item" src="{{ item }}" />
+ </swiper-item>
+ </swiper>
+ <view class="main">
+ <view bindtap="handleNavigateTo" class="mediate" data-type="register">
+ <image class="mediate-image" src="{{ imgUrl }}/apply.png" />
+ </view>
+ <!-- 消息通知 -->
+ <view bindtap="handleGoToMessageCenter" class="message-bg">
+ <swiper autoplay="true" interval="3000" style="height: 100%;" vertical="true">
+ <block wx:for="{{ message }}" wx:key="index">
+ <swiper-item>
+ <view class="message">
+ <view class="message-content">
+ <view class="message-item">
+ <view class="message-item-round" />
+ <view class="message-item-text">您的案件已经进入调解流程</view>
+ <view class="message-item-time">2分钟前</view>
+ </view>
+ </view>
+ <image src="{{ imgUrl }}/rightCircleOutlined.png" style="width: 24rpx;height: 24rpx;" />
+ </view>
+ </swiper-item>
+ </block>
+ </swiper>
+ </view>
+ <!-- 调解资源 -->
+ <!-- <view bindtap='aa'>1111</view> -->
+ <view class="resources radius">
+ <view class="itemTitle">
+ <image class="itemTitle-image" src="{{ imgUrl }}mediation-center.png" />
+ <view>调解资源</view>
+ </view>
+ <view class="item-resources">
+ <view class="item-resources-item-bg" wx:for="{{ resources }}" wx:key="index">
+ <view bindtap="handleNavigateTo" data-type="{{ item.type }}" class="item-resources-item">
+ <image class="item-resources-image" src="{{ item.icon }}" />
+ <view class="item-resources-num" style="color:{{item.color}}">{{ item.num }}{{ item.unit }}</view>
+ <view class="item-resources-title">{{ item.title }}</view>
+ <view class="item-resources-btn" style="color:{{item.color}};border-color: {{item.color}};">去看看</view>
+ </view>
+ </view>
+ </view>
+ </view>
+ <!-- 热门视频 -->
+ <view class="item-cell-group radius" wx:if="{{ video.length > 0 }}">
+ <view class="itemTitle">
+ <image class="itemTitle-image" src="{{ imgUrl }}video.png" />
+ <view>热门视频</view>
+ </view>
+ <block>
+ <view class="item-cell item-cell-video" wx:for="{{ video }}" wx:key="index">
+ <view class="item-cell-content">
+ <view class="van-multi-ellipsis--l2">{{ item.title }}</view>
+ <view class="item-cell-text">
+ 发布时间:
+ <time-format format="YYYY-MM-DD" value="{{ item.pushTime }}" />
+ </view>
+ </view>
+ <video class="item-video" id="myVideo-{{index}}" show-mute-btn="{{ true }}" src="{{ item.showUrl }}" />
+ </view>
+ <view bindtap="handleGetMore" class="more-btn" data-type="hotVideo" wx:if="{{ videoMore }}">
+ <view>查看更多</view>
+ <image class="more-btn-image" src="{{ imgUrl }}downCircleOutlined.png" />
+ </view>
+ </block>
+ </view>
+ <!-- 最新资讯 -->
+ <view class="item-cell-group radius">
+ <view class="itemTitle">
+ <image class="itemTitle-image" src="{{ imgUrl }}new-msg.png" />
+ <view>最新资讯</view>
+ </view>
+ <block>
+ <view class="item-cell" wx:for="{{ newMessage }}" wx:key="index">
+ <view bindtap="goSeeMessage" class="van-multi-ellipsis--l3" data-url="{{ item.showUrl }}">{{ item.title }}</view>
+ <view class="item-cell-text">
+ 发布时间:
+ <time-format format="YYYY-MM-DD" value="{{ item.pushTime }}" />
+ </view>
+ </view>
+ <view bindtap="handleGetMore" class="more-btn" data-type="newMsg" wx:if="{{ newMessageMore }}">
+ <view>查看更多</view>
+ <image class="more-btn-image" src="{{ imgUrl }}downCircleOutlined.png" />
+ </view>
+ </block>
+ </view>
+ </view>
+ <!-- 平台服务协议弹出 -->
+ <van-popup bind:close="handleClosePopup" round show="{{ popupVisible }}" z-index="1000">
+ <scroll-view class="popup-scroll" scroll-y>
+ <rich-text nodes="{{ agreementMsg }}"></rich-text>
+ </scroll-view>
+ <view class="popup-button">
+ <van-button bind:click="handleAgree" block data-type="agree" round type="primary">同意</van-button>
+ <view bindtap="handleAgree" class="popup-button-no" data-type="noAgree">不同意并退出</view>
+ </view>
+ </van-popup>
+ <!-- 底部弹窗 -->
+ <block wx:for="{{ popupMsg }}" wx:key="index">
+ <van-popup bind:close="handleClosePopupMsg" closeable data-index="{{ index }}" position="bottom" round show="{{ item.show }}" title="{{ item.title || '' }}" zIndex="1000">
+ <view class="homePage-popupMsg">
+ <view class="homePage-popupMsg-subTitle" wx:if="{{ item.subTitle }}">{{ item.subTitle }}</view>
+ <image class="homePage-popupMsg-realNamePng" src="{{ imgUrl }}msg-realName.png" wx:if="{{ item.type === 1 }}" />
+ <scroll-view scroll-y="{{true}}" style="max-height:600rpx" wx:elif="{{ item.type === 3 }}">
+ <view bind:tap="handleClickPopupMsg" class="homePage-popupMsg-content-item" data-index="{{ index }}" data-item="{{ item }}" data-t="{{ t }}" data-type="more" wx:for="{{ item.content }}" wx:for-index="t" wx:for-item="x" wx:key="t">
+ <image class="homePage-popupMsg-content-itemImg" src="{{ imgUrl }}msg-order.png" />
+ <view class="homePage-popupMsg-content-itemTitle second-font">
+ <view>
+ 预约事项:{{ x.meetWayName }}
+ <text class="tag tag-green-border" style="margin-left:16rpx">{{x.meetTypeName}}</text>
+ </view>
+ <view>
+ 预约时间:今天
+ <time-format format="HH:mm" value="{{ x.orderStartTime }}" />
+ <text>~</text>
+ <time-format format="HH:mm" value="{{ x.orderEndTime }}" />
+ </view>
+ <view>预约地点:{{ x.meetAddr || '-' }}</view>
+ </view>
+ <van-icon name="arrow" size="16" wx:if="{{ item.content.length > 1 }}" />
+ </view>
+ </scroll-view>
+ <scroll-view scroll-y="{{true}}" style="max-height:600rpx" wx:else>
+ <view bind:tap="handleClickPopupMsg" class="homePage-popupMsg-content-item" data-index="{{ index }}" data-item="{{ item }}" data-t="{{ t }}" data-type="more" wx:for="{{ item.content }}" wx:for-index="t" wx:for-item="x" wx:key="t">
+ <image class="homePage-popupMsg-content-itemImg" src="{{ imgUrl }}msg-mediate-ing.png" />
+ <view class="homePage-popupMsg-content-itemTitle">
+ <view>{{ x[ item.type === 2 ? 'caseTitle' : 'judicTitle' ] || '-' }}</view>
+ <text class="tag tag-orange">进行中</text>
+ </view>
+ <van-icon name="arrow" size="16" wx:if="{{ item.content.length > 1 }}" />
+ </view>
+ </scroll-view>
+ </view>
+ <view class="homePage-popupMsg-button" wx:if="{{ item.type === 1 || item.content.length === 1 }}">
+ <van-button bind:click="handleClickPopupMsg" block data-index="{{ index }}" data-t="0" data-item="{{ item }}" type="primary">{{ item.buttonText }}</van-button>
+ </view>
+ </van-popup>
+ </block>
+
+
+</tabbar-page>
\ No newline at end of file
diff --git a/gz-wxparty/pages/homePage/index.wxss b/gz-wxparty/pages/homePage/index.wxss
new file mode 100644
index 0000000..5354393
--- /dev/null
+++ b/gz-wxparty/pages/homePage/index.wxss
@@ -0,0 +1,261 @@
+/* pages/homePage/index.wxss */
+@import '../../styles/public_components.wxss';
+
+.radius {
+ border-radius: var(--border-radius-card);
+}
+
+.pre {
+ font-size: 28rpx;
+ line-height: 1.5;
+}
+
+.swiper {
+ height: 300rpx;
+}
+
+.swiper-item {
+ height: 100%;
+ width: 100%;
+}
+
+.main {
+ padding: 16rpx var(--padding-my);
+}
+
+.mediate {
+ height: 140rpx;
+}
+
+.mediate-image {
+ height: 140rpx;
+ width: 100%;
+}
+
+.message-bg {
+ height: 24rpx;
+ padding: 16rpx;
+ background-color: #ffffff;
+ margin-top: 16rpx;
+ border-radius: 10rpx;
+}
+
+.message {
+ height: 24rpx;
+ font-size: 24rpx;
+ line-height: 24rpx;
+ display: flex;
+ align-items: center;
+}
+
+.message-content {
+ flex: 1;
+ overflow: hidden;
+ padding-right: 8rpx;
+}
+
+.message-item {
+ display: flex;
+ align-items: center;
+}
+
+.message-item:last-child {
+ margin-bottom: 0;
+}
+
+.message-item-round {
+ width: 12rpx;
+ height: 12rpx;
+ border-radius: 50%;
+ background-color: #000000;
+}
+
+.message-item-text {
+ flex: 1;
+ padding: 0 16rpx;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.message-item-time {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.resources {
+ background-color: #ffffff;
+ margin-top: 16rpx;
+ padding: 16rpx;
+}
+
+.item-resources {
+ display: flex;
+ overflow-x: auto;
+ margin: 0 -12rpx;
+}
+
+.item-resources-item-bg {
+ min-width: 33%;
+ max-width: 33%;
+ overflow: hidden;
+}
+
+.item-resources-item {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ padding: 32rpx 0 16rpx;
+}
+
+.item-resources-num {
+ font-size: 24rpx;
+ padding: 8rpx 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ width: 100%;
+ text-align: center;
+}
+
+.item-resources-title {
+ font-size: 24rpx;
+ margin-bottom: 12rpx;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ width: 100%;
+ text-align: center;
+}
+
+.item-resources-image {
+ height: 80rpx;
+ width: 80rpx;
+}
+
+.item-resources-btn {
+ font-size: 24rpx;
+ padding: 8rpx;
+ border: 1rpx solid;
+ border-radius: 21rpx;
+ line-height: 24rpx;
+}
+
+.itemTitle {
+ display: flex;
+ align-items: center;
+ color: var(--main-color);
+ font-weight: 600;
+}
+
+.itemTitle-image {
+ width: 28rpx;
+ height: 28rpx;
+ margin-right: 16rpx;
+}
+
+.item-video {
+ height: 132rpx;
+ width: 184rpx;
+ border-radius: 4rpx;
+}
+
+.item-cell-group {
+ background-color: #ffffff;
+ margin-top: 16rpx;
+ padding: 16rpx 16rpx 0;
+}
+
+.item-cell-video {
+ display: flex;
+ align-items: center;
+}
+
+.item-cell {
+ padding: 24rpx 0;
+ border-bottom: 2rpx solid rgba(0, 0, 0, 0.03);
+}
+
+.item-cell:last-child {
+ border: none;
+}
+
+.item-cell-content {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ flex: 1;
+ padding-right: 66rpx;
+}
+
+.item-cell-text {
+ margin-top: 24rpx;
+ font-size: 24rpx;
+ line-height: 40rpx;
+ color: #c8c9cc;
+ display: flex;
+}
+
+.van-cell-group--inset {
+ margin: 0 !important;
+ border-radius: 8rpx !important;
+}
+
+.popup-scroll {
+ height: 800rpx;
+ width: 600rpx;
+ padding: 24rpx;
+ background-color: #ffffff;
+}
+
+.popup-button {
+ padding: 0 64rpx 24rpx;
+}
+
+.popup-button-no {
+ font-size: 28rpx;
+ text-align: center;
+ padding: 24rpx 0 0;
+ text-decoration: underline;
+}
+
+.homePage-popupMsg {
+ padding: 32rpx;
+}
+
+.homePage-popupMsg-realNamePng {
+ width: 340rpx;
+ height: 300rpx;
+ position: relative;
+ left: 50%;
+ margin-left: -170rpx;
+}
+
+.homePage-popupMsg-content-item {
+ display: flex;
+ align-items: center;
+ margin-bottom: 16rpx;
+}
+
+.homePage-popupMsg-content-item:last-child {
+ margin-bottom: 0;
+}
+
+.homePage-popupMsg-content-itemImg {
+ width: 100rpx;
+ height: 100rpx;
+}
+
+.homePage-popupMsg-content-itemTitle {
+ flex: 1;
+ padding-left: 16rpx;
+}
+
+.homePage-popupMsg-subTitle {
+ margin-bottom: 32rpx;
+}
+
+.homePage-popupMsg-button {
+ padding: 32rpx 0;
+ margin: 0 32rpx;
+ border-top: 2rpx solid var(--border-color);
+}
diff --git a/gz-wxparty/pages/homePageInfo/index.js b/gz-wxparty/pages/homePageInfo/index.js
new file mode 100644
index 0000000..6a03049
--- /dev/null
+++ b/gz-wxparty/pages/homePageInfo/index.js
@@ -0,0 +1,47 @@
+// pages/homePageInfo/index.js
+const $$ = require('../../utils/util');
+
+// 热门资讯 与 视频
+function getVideoAndMessageApi(param) {
+ return $$.request({ url: 'paHotNews/listShow', type: 'get', submitData: param || {}, service: 'sys', noToken: true });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ searchValue: '',
+ type: '', // 'newMsg':最新资讯 'hotVideo':'热门视频'
+ data: [],
+ },
+
+ // 跳转资讯链接
+ goSeeMessage(e) {
+ let url = e.currentTarget.dataset.url;
+ wx.navigateTo({ url: '../webview/index?showUrl=' + url });
+ },
+
+ // 获取最新资讯 和 热门视频
+ async getVideoAndMessage({ appid, type }) {
+ $$.showLoading();
+ const res = await getVideoAndMessageApi({ appid });
+ if (res.type) {
+ let hotVideoList = res.data.hotVideoList || [];
+ let hotNewsList = res.data.hotNewsList || [];
+ this.setData({ data: type === 'newMsg' ? hotNewsList : hotVideoList, type });
+ }
+ $$.hideLoading();
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ let appid = wx.getAccountInfoSync().miniProgram.appId;
+ this.getVideoAndMessage({ appid, type: options.type });
+ wx.setNavigationBarTitle({
+ title: options.type === 'newMsg' ? '最新资讯' : '热门视频',
+ });
+ },
+});
diff --git a/gz-wxparty/pages/homePageInfo/index.json b/gz-wxparty/pages/homePageInfo/index.json
new file mode 100644
index 0000000..50292bd
--- /dev/null
+++ b/gz-wxparty/pages/homePageInfo/index.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents": {
+ "time-format": "../../components/time-format/index"
+ }
+}
diff --git a/gz-wxparty/pages/homePageInfo/index.wxml b/gz-wxparty/pages/homePageInfo/index.wxml
new file mode 100644
index 0000000..fe294d4
--- /dev/null
+++ b/gz-wxparty/pages/homePageInfo/index.wxml
@@ -0,0 +1,24 @@
+<!--更多资讯和更多视频页面-->
+<view class="homePageInfo-main">
+ <block wx:if="{{ type === 'newMsg' }}">
+ <view class="homePageInfo-main-item" wx:for="{{ data }}" wx:key="index">
+ <view bindtap="goSeeMessage" class="van-multi-ellipsis--l3" data-url="{{ item.showUrl }}">{{ item.title }}</view>
+ <view class="homePageInfo-main-item-text">
+ 发布时间:
+ <time-format format="YYYY-MM-DD" value="{{ item.pushTime }}" />
+ </view>
+ </view>
+ </block>
+ <block wx:else>
+ <view class="homePageInfo-main-item homePageInfo-main-itemVideo" wx:for="{{ data }}" wx:key="index">
+ <view class="homePageInfo-main-itemVideo-content">
+ <view class="van-multi-ellipsis--l2">{{ item.title }}</view>
+ <view class="homePageInfo-main-item-text">
+ 发布时间:
+ <time-format format="YYYY-MM-DD" value="{{ item.pushTime }}" />
+ </view>
+ </view>
+ <video class="homePageInfo-main-itemVideo-video" id="myVideo-{{index}}" show-mute-btn="{{ true }}" src="{{ item.showUrl }}" />
+ </view>
+ </block>
+</view>
diff --git a/gz-wxparty/pages/homePageInfo/index.wxss b/gz-wxparty/pages/homePageInfo/index.wxss
new file mode 100644
index 0000000..e5d2e6d
--- /dev/null
+++ b/gz-wxparty/pages/homePageInfo/index.wxss
@@ -0,0 +1,40 @@
+/* pages/homePageInfo/index.wxss */
+
+.homePageInfo-main {
+ margin: 32rpx 0;
+ padding: 0 var(--padding-my);
+}
+
+.homePageInfo-main-item {
+ border-radius: var(--border-radius-card);
+ padding: 24rpx 32rpx;
+ background-color: #ffffff;
+ margin-bottom: 24rpx;
+}
+
+.homePageInfo-main-item-text {
+ margin-top: 24rpx;
+ font-size: 24rpx;
+ line-height: 40rpx;
+ color: #c8c9cc;
+ display: flex;
+}
+
+.homePageInfo-main-itemVideo {
+ display: flex;
+ align-items: center;
+}
+
+.homePageInfo-main-itemVideo-content {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ flex: 1;
+ padding-right: 66rpx;
+}
+
+.homePageInfo-main-itemVideo-video {
+ height: 132rpx;
+ width: 184rpx;
+ border-radius: 4rpx;
+}
diff --git a/gz-wxparty/pages/login/index.js b/gz-wxparty/pages/login/index.js
new file mode 100644
index 0000000..168b0db
--- /dev/null
+++ b/gz-wxparty/pages/login/index.js
@@ -0,0 +1,67 @@
+// pages/login/index.js
+const app = getApp();
+const $$ = require('../../utils/util');
+
+// 登录
+function loginApi(submitData) {
+ return $$.request({ url: 'paAccount/empower', type: 'post', submitData, service: 'cust', noToken: true });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ imgUrl: $$.url.img, // icon图片地址
+ },
+
+ // 登录,获取用户信息
+ async handleGetUserInfo() {
+ $$.showLoading();
+ wx.getUserProfile({
+ desc: '完善用户信息',
+ complete(res) {
+ if (res.errMsg === 'getUserProfile:ok') {
+ wx.login({
+ async success(res2) {
+ if (res2.code) {
+ const accountInfo = wx.getAccountInfoSync();
+ const submitData = {
+ appid: accountInfo.miniProgram.appId,
+ code: res2.code,
+ avatar: res?.userInfo.avatarUrl,
+ encryptedData: res.encryptedData,
+ ivStr: res.iv,
+ };
+ const res3 = await loginApi(submitData);
+ $$.hideLoading();
+ if (res3.type) {
+ wx.setStorage({ key: 'userInfo', data: res3.data });
+ app.globalData.token = res3.data.token;
+ $$.showToast({ title: '登录成功', icon: 'success' });
+ await $$.sleep();
+ wx.reLaunch({
+ url: '../../pages/homePage/index',
+ });
+ }
+ } else {
+ $$.hideLoading();
+ $$.showToast('登录失败,请稍后重试');
+ }
+ },
+ });
+ } else {
+ $$.hideLoading();
+ $$.showToast({ title: '抱歉!授权失败' });
+ }
+ },
+ });
+ },
+
+ // 返回首页
+ handleGoToHomePage() {
+ wx.reLaunch({
+ url: '../../pages/homePage/index',
+ });
+ },
+});
diff --git a/gz-wxparty/pages/login/index.json b/gz-wxparty/pages/login/index.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/gz-wxparty/pages/login/index.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/gz-wxparty/pages/login/index.wxml b/gz-wxparty/pages/login/index.wxml
new file mode 100644
index 0000000..c343d2c
--- /dev/null
+++ b/gz-wxparty/pages/login/index.wxml
@@ -0,0 +1,11 @@
+<!--pages/login/index.wxml-->
+<view class="noLogin">
+ <view class="noLogin-content">
+ <image class="noLogin-image" src="{{ imgUrl }}me-center.png" />
+ <view>请先登录账号</view>
+ </view>
+ <van-button bind:click="handleGetUserInfo" block type="primary">登录</van-button>
+ <view style="margin-top: 32rpx;">
+ <van-button bind:click="handleGoToHomePage" block>返回首页</van-button>
+ </view>
+</view>
diff --git a/gz-wxparty/pages/login/index.wxss b/gz-wxparty/pages/login/index.wxss
new file mode 100644
index 0000000..f74b7a9
--- /dev/null
+++ b/gz-wxparty/pages/login/index.wxss
@@ -0,0 +1,16 @@
+/* pages/login/index.wxss */
+.noLogin {
+ background-color: #ffffff;
+ padding: 48rpx var(--padding-my);
+ text-align: center;
+ margin-top: 64rpx;
+}
+
+.noLogin-image {
+ width: 200rpx;
+ height: 200rpx;
+}
+
+.noLogin-content {
+ margin-bottom: 48rpx;
+}
diff --git a/gz-wxparty/pages/materialShow/index.js b/gz-wxparty/pages/materialShow/index.js
new file mode 100644
index 0000000..95b1747
--- /dev/null
+++ b/gz-wxparty/pages/materialShow/index.js
@@ -0,0 +1,169 @@
+// pages/materialUpload/index.js
+const $$ = require('../../utils/util');
+const app = getApp();
+
+// 获取附件
+function getCaseFilesApi(id) {
+ return $$.request({ url: 'paCaseInfo/listCaseFile?caseId=' + id, type: 'get', service: 'mediate' });
+}
+// 删除附件
+function delfileApi(id) {
+ return $$.request({ url: 'fileInfo/deleteById?id=' + id, type: 'get', service: 'sys', v1: true });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ settimeout: null,
+ previewImageVisible: false, // 判断是否进入查看图片
+ touchstarttime: '', //触摸开始时间
+ caseId: '',
+ data: {
+ imgUrl: $$.url.img,
+ material_data: [
+ {
+ icon: `${$$.url.img}material-evidence.png`,
+ iconActive: `${$$.url.img}material-evidence-active.png`,
+ num: 0,
+ title: '证据材料',
+ type: '22_00018-102',
+ explain: '证据材料:包括但不限于物证、书证、证词、鉴定结论等内容,可作为纠纷的重要判断依据,形式主要为图片、word、pdf等。',
+ files: [],
+ },
+ {
+ icon: `${$$.url.img}material-apply.png`,
+ iconActive: `${$$.url.img}material-apply-active.png`,
+ num: 0,
+ title: '申请材料',
+ type: '22_00018-101',
+ explain: '申请材料:申请材料包括但不限于纠纷登记表、送达地址确认书、司法确认申请表等,形式主要为图片、word、pdf等。',
+ files: [],
+ },
+ {
+ icon: `${$$.url.img}material-identity.png`,
+ iconActive: `${$$.url.img}material-identity-active.png`,
+ num: 0,
+ title: '身份材料',
+ type: '22_00018-202',
+ explain:
+ '身份材料:包括但不限于居民身份证、企业工商登记证明(法人时需要)、组织机构代码证(非法人组织时需要)、代理人授权委托书(代理人时需要)等,形式主要为图片、word、pdf等。',
+ files: [],
+ },
+ {
+ icon: `${$$.url.img}material-other.png`,
+ iconActive: `${$$.url.img}material-other-active.png`,
+ num: 0,
+ title: '其他材料',
+ type: '22_00018-199',
+ explain: '其他材料:与案件关系密切的其他材料,形式主要为图片、word、pdf等。',
+ files: [],
+ },
+ ],
+ activeMaterial: 0, // 当前选中的材料下标
+ editVisible: true, // 是否编辑状态
+ },
+
+ // 切换显示文件
+ handleChangeTab(e) {
+ this.setData({
+ activeMaterial: e.detail,
+ });
+ },
+
+ // 长按删除文件
+ handleTouchstart(e) {
+ this.touchstarttime = e.timeStamp;
+ let item = e.detail;
+ let that = this;
+ this.settimeout = setTimeout(() => {
+ if (this.touchstarttime && that.data.editVisible) {
+ $$.showModal({
+ content: '确定删除' + item.name + '吗?',
+ success: (res) => {
+ if (res.confirm) {
+ that.delfile(item.id);
+ }
+ },
+ });
+ }
+ }, 1500);
+ },
+
+ // 长按结束
+ handleTouchend(e) {
+ let item = e.detail;
+ if (e.timeStamp - this.touchstarttime < 1000) {
+ // 判断用户为点击
+ let imgUrl = $$.baseUrl + $$.url.fileShowUrl + item.id;
+ const visible = $$.openFiles(item.cat, imgUrl, [imgUrl]);
+ if (visible) {
+ this.previewImageVisible = true;
+ }
+ }
+ if (this.settimeout) {
+ clearTimeout(this.settimeout);
+ }
+ this.touchstarttime = false;
+ },
+
+ // 跳转至上传文件页面
+ handleGoUpload() {
+ wx.navigateTo({
+ url: '../../pages/materialUpload/index?activeMaterial=' + this.data.activeMaterial + '&caseId=' + this.caseId,
+ });
+ },
+
+ // 删除附件
+ async delfile(id) {
+ $$.showLoading();
+ const res = await delfileApi(id);
+ $$.hideLoading();
+ if (res.type) {
+ this.getCaseFiles(this.caseId, 'delete');
+ }
+ },
+
+ // 查询案件附件
+ async getCaseFiles(id, type) {
+ $$.showLoading();
+ const res = await getCaseFilesApi(id);
+ $$.hideLoading();
+ if (res.type) {
+ if (type) {
+ $$.showToast({ icon: 'success', title: '删除成功', duration: 500 });
+ }
+ let arr = ['evidenceFile', 'applyFile', 'identityFile', 'otherFile'];
+ arr.forEach((x, t) => {
+ this.data.material_data[t].num = res.data[x]?.size || 0;
+ this.data.material_data[t].files = res.data[x]?.dataList || [];
+ });
+ app.globalData.material.data = this.data.material_data;
+ this.setData({ activeMaterial: this.data.activeMaterial || 0, material_data: this.data.material_data });
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ if (options.caseId) {
+ this.caseId = options.caseId;
+ this.getCaseFiles(this.caseId);
+ }L
+ this.setData({ editVisible: !!options?.editVisible });
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+ if (this.caseId && !this.previewImageVisible && app.globalData.material.uploadVisible) {
+ app.globalData.material.uploadVisible = false;
+ this.getCaseFiles(this.caseId);
+ }
+ if (this.previewImageVisible) {
+ this.previewImageVisible = false;
+ }
+ },
+});
diff --git a/gz-wxparty/pages/materialShow/index.json b/gz-wxparty/pages/materialShow/index.json
new file mode 100644
index 0000000..d085bba
--- /dev/null
+++ b/gz-wxparty/pages/materialShow/index.json
@@ -0,0 +1,6 @@
+{
+ "navigationBarTitleText": "纠纷材料",
+ "usingComponents": {
+ "file-card": "../../components/file-card/index"
+ }
+}
diff --git a/gz-wxparty/pages/materialShow/index.wxml b/gz-wxparty/pages/materialShow/index.wxml
new file mode 100644
index 0000000..0a75384
--- /dev/null
+++ b/gz-wxparty/pages/materialShow/index.wxml
@@ -0,0 +1,43 @@
+<!--文件展示页面-->
+<common-page safeBottom="{{ false }}">
+ <view class="header second-font">{{ material_data[activeMaterial].explain }}</view>
+ <view class="header-title" wx:if="{{ material_data[activeMaterial].num > 0 }}">{{ material_data[activeMaterial].title }}:{{ material_data[activeMaterial].num }}</view>
+ <!-- 文件展示 -->
+ <view class="card {{ activeMaterial === 2 ? 'card2' : '' }}" wx:for="{{ material_data[activeMaterial].files }}" wx:for-index="t" wx:for-item="x" wx:key="t">
+ <view class="card-header" wx:if="{{ activeMaterial === 2 }}">
+ <image class="card-header-img" src="{{ imgUrl }}avatar-{{ x.perType === '15_020008-1' ? 'sqr' : 'bsqr' }}.png" />
+ <view>
+ <view class="card-header-title">{{ x.ownerName }}</view>
+ <view class="card-header-subTitle">{{ x.perType === '15_020008-1' ? '申请方' : '被申请方' }} | {{ x.agentStatus || '当事人' }}</view>
+ </view>
+ </view>
+ <!-- 文件 -->
+ <file-card backgroundColor="{{ activeMaterial === 2 ? '' : '#ffffff' }}" bind:ontouchend="handleTouchend" bind:ontouchstart="handleTouchstart" fileInfoList="{{ x.fileList }}" isPreview="{{false}}" />
+ </view>
+ <view class="case">
+ <view class="img-case_2">
+ <image src="/img/case_1.png" class="img"></image>
+ </view>
+ <view>
+ 通过与相似类案的大数据分析,建议您优先选择案件调解方式。这将有效为您节约时间和金钱成本,以更容易保持双方关系的方式让您收获满意的结果。
+ </view>
+ </view>
+
+ <!-- 空 -->
+ <view class="empty">
+ <van-empty description="暂无材料" image="{{ imgUrl }}empty.png" wx:if="{{ material_data[activeMaterial].files.length === 0 }}" />
+ </view>
+ <!-- 上传按钮 -->
+ <view bindtap="handleGoUpload" class="upload-icon" wx:if="{{ editVisible }}">
+ <van-icon name="{{ imgUrl }}material-upload.png" size="24" />
+ <view class="second-font">上传</view>
+ </view>
+ <!-- tabbar -->
+ <van-tabbar active="{{ activeMaterial }}" bind:change="handleChangeTab" myHeight="66" placeholder>
+ <van-tabbar-item wx:for="{{ material_data }}" wx:key="index">
+ <van-icon name="{{ item.icon }}" slot="icon" />
+ <van-icon name="{{ item.iconActive }}" slot="icon-active" />
+ {{ item.title }}
+ </van-tabbar-item>
+ </van-tabbar>
+</common-page>
\ No newline at end of file
diff --git a/gz-wxparty/pages/materialShow/index.wxss b/gz-wxparty/pages/materialShow/index.wxss
new file mode 100644
index 0000000..e82895b
--- /dev/null
+++ b/gz-wxparty/pages/materialShow/index.wxss
@@ -0,0 +1,92 @@
+/* pages/materialUpload/index.wxss */
+.header {
+ padding: 24rpx var(--padding-my);
+ background-color: #ffffff;
+}
+
+.header-title {
+ padding: 24rpx var(--padding-my);
+ font-weight: 600;
+}
+
+.empty {
+ position: absolute;
+ top: 50%;
+ margin-top: -142px;
+ left: 0;
+ right: 0;
+}
+
+.upload-icon {
+ color: #ffffff;
+ position: fixed;
+ right: 32rpx;
+ bottom: 164rpx;
+ width: 128rpx;
+ height: 128rpx;
+ background: linear-gradient(139deg, var(--main-color) 0%, var(--main-color) 100%);
+ border-radius: 50%;
+ box-shadow: 2rpx 2rpx 12rpx 0px rgba(0, 0, 0, 0.25);
+ margin-bottom: env(safe-area-inset-bottom);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+}
+
+.card {
+ padding: 0 var(--padding-my);
+ margin-bottom: 16rpx;
+}
+
+.card2 {
+ background-color: #ffffff;
+ border-radius: var(--border-radius-card);
+ padding: 32rpx 32rpx 16rpx;
+ margin-left: var(--padding-my);
+ margin-right: var(--padding-my);
+}
+
+.card-header {
+ display: flex;
+ align-items: center;
+ margin-bottom: 16rpx;
+}
+
+.card-header-img {
+ height: 88rpx;
+ width: 88rpx;
+ margin-right: 16rpx;
+}
+
+.card-header-title {
+ font-weight: 600;
+}
+
+.card-header-subTitle {
+ font-size: 24rpx;
+ line-height: 40rpx;
+ color: var(--second-text-color);
+}
+
+.case {
+ background-color: #FFEAE3;
+ padding: 4px 0;
+ margin-bottom: 8px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 4px 8px 4px 8px;
+ color: #FF5219;
+}
+
+.img-case_2 {
+ display: flex;
+ margin-top: 4px;
+}
+
+.img {
+ height: 12px;
+ width: 12px;
+ margin-right: 4px;
+}
diff --git a/gz-wxparty/pages/materialUpload/index.js b/gz-wxparty/pages/materialUpload/index.js
new file mode 100644
index 0000000..d6738f0
--- /dev/null
+++ b/gz-wxparty/pages/materialUpload/index.js
@@ -0,0 +1,297 @@
+// pages/materialUpload/index.js
+const app = getApp();
+const $$ = require('../../utils/util');
+
+// 删除附件
+function delfileApi(id) {
+ return $$.request({ url: 'fileInfo/deleteById?id=' + id, type: 'get', service: 'sys', v1: true });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ previewImageVisible: false, // 判断是否进入查看图片
+ filesArr: [],
+ data: {
+ popup: {}, // 下拉弹出框数据
+ data: [], // 材料数据
+ activeMaterial: 0, // 当前选中的材料下标
+ person: [], // 身份证明材料中选择的人员数据
+ activePerson: 0, // 人员数据下标
+ formatData: {
+ fileList: [],
+ personFile: [],
+ }, // 调整展示数据格式
+ caseId: 0, // 案件id
+ fileUrl: $$.baseUrl + $$.url.fileShowUrl,
+ },
+
+ // 展示弹出层
+ handleShowPopup(e) {
+ let data =
+ e.currentTarget.dataset.type === 'materialtype'
+ ? this.data.data.map((x) => {
+ delete x.fileList;
+ x.label = x.title;
+ return x;
+ })
+ : this.data.person.map((x) => {
+ x.label = x.trueName;
+ return x;
+ });
+ let index = 0;
+ foreach: for (let i = 0; i <= data.length; i++) {
+ if (data[i].label === e.currentTarget.dataset.value) {
+ index = i;
+ break foreach;
+ }
+ }
+ this.setData({
+ popup: {
+ visible: true,
+ title: e.currentTarget.dataset.title,
+ selectData: data,
+ type: e.currentTarget.dataset.type,
+ noPicker: true,
+ activeIndex: index,
+ },
+ });
+ },
+
+ // 关闭弹出层
+ handleClosePopup() {
+ this.data.popup.visible = false;
+ this.setData({ popup: this.data.popup });
+ },
+
+ // 下拉框确认选择
+ handleConfirmPicker({ detail }) {
+ let type = this.data.popup.type;
+ let index = detail.detail.index;
+ this.data.popup.visible = false;
+ if (type === 'materialtype') {
+ this.data.activeMaterial = index;
+ } else {
+ this.data.activePerson = index;
+ }
+ this.setData({ popup: this.data.popup, activeMaterial: this.data.activeMaterial, activePerson: this.data.activePerson }, () => {
+ this.formatData();
+ });
+ },
+
+ // 预览图片
+ handlePreviewImage(e) {
+ let index = e.currentTarget.dataset.index;
+ let personindex = e.currentTarget.dataset.personindex;
+ let urls = [];
+ let arr = this.data.activeMaterial !== 2 ? this.data.formatData.fileList : this.data.formatData.personFile[personindex].fileList;
+ arr.forEach((x) => {
+ urls.push(x.wxurl ? x.wxurl : `${this.data.fileUrl}${x.id}`);
+ });
+ wx.previewImage({
+ current: arr[index].wxurl || `${this.data.fileUrl}${arr[index].id}`,
+ urls: urls,
+ });
+ this.previewImageVisible = true;
+ },
+
+ // 删除图片
+ async handleDelImage(e) {
+ let ownerType = e.currentTarget.dataset.ownertype;
+ let ownerId = e.currentTarget.dataset.ownerid;
+ let id = e.currentTarget.dataset.id;
+ $$.showLoading();
+ const res = await delfileApi(id);
+ if (res.type) {
+ $$.showToast({ icon: 'success', title: '删除成功', duration: 500 });
+ let files = this.data.data[this.data.activeMaterial].files;
+ let num = this.data.data[this.data.activeMaterial].num;
+ let fileList = [];
+ if (this.data.activeMaterial !== 2) {
+ fileList = files.filter((item) => item.ownerType === ownerType)[0].fileList;
+ } else {
+ fileList = files.filter((item) => item.ownerId === ownerId)[0].fileList;
+ }
+ fileList.forEach((x, t) => {
+ if (x.id === id) {
+ fileList.splice(t, 1);
+ num = num - 1;
+ }
+ });
+ this.data.data[this.data.activeMaterial].num = num;
+ this.setData({ data: this.data.data }, () => {
+ app.globalData.material.data = this.data.data;
+ this.formatData();
+ });
+ }
+ },
+
+ // 数据格式化显示
+ formatData() {
+ let fileList = [];
+ let personFile = [];
+ if (this.data.activeMaterial !== 2) {
+ fileList = this.data.data[this.data.activeMaterial].files[0]?.fileList || [];
+ } else {
+ let person = this.data.person;
+ let files = this.data.data[this.data.activeMaterial].files;
+ let personId = person[this.data.activePerson].id;
+ let personFiles = files.filter((item) => item.ownerId === personId)[0]?.fileList || [];
+ if (person[this.data.activePerson].agent) {
+ // 代理人
+ personFile = [
+ {
+ ownerId: personId,
+ value: '22_00018-205',
+ title: '身份证明材料',
+ fileList: personFiles.filter((item) => item.ownerType === '22_00018-205'),
+ text: '请上传“居民身份证”',
+ },
+ {
+ ownerId: personId,
+ value: '22_00018-207',
+ title: '授权委托书',
+ fileList: personFiles.filter((item) => item.ownerType === '22_00018-207'),
+ text: '请上传代理人的“授权委托书”',
+ },
+ ];
+ } else {
+ // 当事人
+ if (person[this.data.activePerson].perClass === '09_01001-1') {
+ // 申请人 or 被申请人的人员类型:自然人
+ personFile = [
+ {
+ ownerId: personId,
+ value: '22_00018-202',
+ title: '身份证明材料',
+ fileList: personFiles.filter((item) => item.ownerType === '22_00018-202'),
+ text: '请上传“居民身份证”',
+ },
+ ];
+ } else if (person[this.data.activePerson].perClass === '09_01001-2' || person[this.data.activePerson].perClass === '09_01001-3') {
+ // 申请人 or 被申请人的人员类型:法人,非法人组织
+ let name = person[this.data.activePerson].perClass === '09_01001-2' ? '法定' : '机构';
+ personFile = [
+ {
+ ownerId: personId,
+ value: '22_00018-204',
+ title: name + '代表人身份证明',
+ text:
+ person[this.data.activePerson].perClass === '09_01001-2'
+ ? '请上传“法定代表人居民身份证”和“法定代表人证明书”'
+ : '请上传“机构代表人居民身份证”',
+ fileList: personFiles.filter((item) => item.ownerType === '22_00018-204'),
+ },
+ {
+ ownerId: personId,
+ value: '22_00018-203',
+ title: name + '登记材料',
+ text: '可上传“工商登记证明”或“组织机构代码证”',
+ fileList: personFiles.filter((item) => item.ownerType === '22_00018-203'),
+ },
+ ];
+ }
+ }
+ }
+ this.setData({ formatData: { fileList, personFile } });
+ },
+
+ // 上传文件图片
+ async handleUploadFile(e) {
+ let id = e.currentTarget.dataset.id;
+ let type = e.currentTarget.dataset.type;
+ let that = this;
+ this.filesArr = [];
+ wx.chooseMedia({
+ mediaType: ['image'],
+ success(res2) {
+ const tempFiles = res2.tempFiles;
+ // 多个文件逐一上传
+ tempFiles.forEach((x, t) => {
+ $$.showLoading('上传中...');
+ wx.uploadFile({
+ url: `${$$.baseUrl}${$$.url.sys}/api/v1/fileInfo/wechatUpload/${id}/${type}`,
+ filePath: x.tempFilePath,
+ name: 'file',
+ header: { Authorization: app.globalData.token },
+ complete(res) {
+ $$.hideLoading();
+ if (res.errMsg === 'uploadFile:ok') {
+ const data = { ...JSON.parse(res.data), wxurl: x.tempFilePath };
+ that.filesArr.splice(t, 0, data);
+ } else {
+ that.filesArr.splice(t, 0, { code: '400' });
+ }
+ if (tempFiles.length === that.filesArr.length) {
+ let errNum = 0;
+ let files = that.data.data[that.data.activeMaterial].files;
+ let num = that.data.data[that.data.activeMaterial].num;
+ that.filesArr.forEach((y) => {
+ if (y.code == 0) {
+ // 将文件数据回填展示
+ let file = y.data[0];
+ file.wxurl = y.tempFilePath;
+ let fileList = [];
+ // 判断是否是人员的身份材料上传
+ if (that.data.activeMaterial !== 2) {
+ if (files.length === 0) {
+ // 当无时添加默认
+ files[0] = { ownerType: type, fileList: [] };
+ }
+ fileList = files.filter((item) => item.ownerType === type)[0].fileList;
+ } else {
+ let personFiles = files.filter((item) => item.ownerId === id);
+ if (personFiles.length === 0) {
+ // 当无时添加默认
+ files.push({ ownerId: id, ownerName: that.data.person[that.data.activePerson].trueName, fileList: [] });
+ }
+ fileList = files.filter((item) => item.ownerId === id)[0].fileList;
+ }
+ num = num + 1;
+ fileList.push(file);
+ } else {
+ errNum = errNum + 1;
+ }
+ });
+ if (errNum !== 0) {
+ $$.showToast({ title: `已上传:${tempFiles.length - errNum},失败:${errNum}`, duration: 500 });
+ } else {
+ $$.showToast({ icon: 'success', title: '上传成功', duration: 500 });
+ }
+ app.globalData.material.uploadVisible = true;
+ that.data.data[that.data.activeMaterial].num = num;
+ that.setData({ data: that.data.data }, () => {
+ app.globalData.material.data = that.data.data;
+ that.formatData();
+ });
+ }
+ },
+ });
+ });
+ },
+ });
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ if (!this.previewImageVisible) {
+ this.setData(
+ {
+ data: app.globalData.material.data,
+ activeMaterial: parseInt(options.activeMaterial),
+ person: app.globalData.material.person,
+ caseId: options.caseId,
+ },
+ () => {
+ this.formatData();
+ }
+ );
+ }
+ if (this.previewImageVisible) {
+ this.previewImageVisible = false;
+ }
+ },
+});
diff --git a/gz-wxparty/pages/materialUpload/index.json b/gz-wxparty/pages/materialUpload/index.json
new file mode 100644
index 0000000..f2e3acb
--- /dev/null
+++ b/gz-wxparty/pages/materialUpload/index.json
@@ -0,0 +1,4 @@
+{
+ "navigationBarTitleText": "上传材料",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/gz-wxparty/pages/materialUpload/index.wxml b/gz-wxparty/pages/materialUpload/index.wxml
new file mode 100644
index 0000000..b54175a
--- /dev/null
+++ b/gz-wxparty/pages/materialUpload/index.wxml
@@ -0,0 +1,104 @@
+<!--材料附件上传页面-->
+<common-page
+ bind:onCancelPicker="handleClosePopup"
+ bind:onClosePopup="handleClosePopup"
+ bind:onConfirmPicker="handleConfirmPicker"
+ popup="{{ popup }}"
+>
+ <view class="upload-card">
+ <view bindtap="handleShowPopup" class="cell" data-title="材料类型" data-type="materialtype" data-value="{{ data[activeMaterial].title }}">
+ <view class="cell-title">材料类型</view>
+ <view class="cell-select">{{ data[activeMaterial].title || '' }}</view>
+ <view class="cell-arrow">
+ <van-icon name="arrow" />
+ </view>
+ </view>
+ <view class="upload-card-text">{{ data[activeMaterial].explain }}</view>
+ </view>
+ <view class="upload-card" wx:if="{{ activeMaterial === 2 }}">
+ <view bindtap="handleShowPopup" class="cell" data-title="选择对象" data-type="person" data-value="{{ person[activePerson].trueName }}">
+ <view class="cell-title">选择对象</view>
+ <view class="cell-select">{{ person[activePerson].trueName || '' }}</view>
+ <view class="cell-arrow">
+ <van-icon name="arrow" />
+ </view>
+ </view>
+ </view>
+ <view class="upload-card" wx:if="{{ activeMaterial !== 2 }}">
+ <!-- 证据材料 or 申请材料 or 其他材料 -->
+ <view class="cell2">
+ <view class="cell-title">材料上传</view>
+ <view class="upload-main">
+ <view class="upload-main-item" wx:for="{{ formatData.fileList }}" wx:if="{{ !!item.id }}" wx:key="index">
+ <view bindtap="handleDelImage" class="upload-main-item-close" data-id="{{ item.id }}" data-ownertype="{{ item.ownerType }}">
+ <van-icon name="clear" size="14" />
+ </view>
+ <van-image
+ bind:click="handlePreviewImage"
+ data-index="{{ index }}"
+ fit="contain"
+ height="84rpx"
+ radius="2"
+ src="{{ item.wxurl }}"
+ width="84rpx"
+ wx:if="{{ !!item.wxurl }}"
+ />
+ <van-image
+ bind:click="handlePreviewImage"
+ data-index="{{ index }}"
+ fit="contain"
+ height="84rpx"
+ radius="2"
+ src="{{ fileUrl }}{{ item.id }}"
+ width="84rpx"
+ wx:else
+ />
+ </view>
+ <view bindtap="handleUploadFile" class="upload-main-add" data-id="{{ caseId }}" data-type="{{ data[activeMaterial].type }}">
+ <van-icon name="plus" size="44rpx" />
+ </view>
+ </view>
+ </view>
+ </view>
+ <!-- 身份材料 -->
+ <block wx:else>
+ <view class="upload-card" wx:for="{{ formatData.personFile }}" wx:key="index">
+ <view class="cell2">
+ <view class="cell-title">{{ item.title }}</view>
+ <view class="upload-main">
+ <view class="upload-main-item" wx:for="{{ item.fileList }}" wx:for-index="t" wx:for-item="x" wx:if="{{ !!x.id }}" wx:key="t">
+ <view bindtap="handleDelImage" class="upload-main-item-close" data-id="{{ x.id }}" data-ownerid="{{ item.ownerId }}">
+ <van-icon name="clear" size="14" />
+ </view>
+ <van-image
+ bind:click="handlePreviewImage"
+ data-index="{{ t }}"
+ data-personindex="{{ index }}"
+ fit="contain"
+ height="84rpx"
+ radius="2"
+ src="{{ x.wxurl }}"
+ width="84rpx"
+ wx:if="{{ !!x.wxurl }}"
+ />
+ <van-image
+ bind:click="handlePreviewImage"
+ data-index="{{ t }}"
+ data-personindex="{{ index }}"
+ fit="contain"
+ height="84rpx"
+ radius="2"
+ src="{{ fileUrl }}{{ x.id }}"
+ width="84rpx"
+ wx:else
+ />
+ </view>
+ <view bindtap="handleUploadFile" class="upload-main-add" data-id="{{ person[activePerson].id }}" data-type="{{ item.value }}">
+ <van-icon name="plus" size="44rpx" />
+ </view>
+ </view>
+ <view class="upload-card-text upload-card-text2">{{ item.text }}</view>
+ </view>
+ </view>
+ </block>
+</common-page>
diff --git a/gz-wxparty/pages/materialUpload/index.wxss b/gz-wxparty/pages/materialUpload/index.wxss
new file mode 100644
index 0000000..b3d8ed3
--- /dev/null
+++ b/gz-wxparty/pages/materialUpload/index.wxss
@@ -0,0 +1,58 @@
+/* pages/materialUpload/index.wxss */
+@import '../../styles/public_components.wxss';
+
+.upload-card {
+ padding: 0 32rpx;
+ margin: 32rpx var(--padding-my) 0;
+ background-color: #ffffff;
+ border-radius: var(--border-radius-card);
+}
+
+.upload-card-text {
+ font-size: 24rpx;
+ line-height: 40rpx;
+ color: var(--second-text-color);
+ padding: 24rpx 0;
+ border-top: 2rpx solid var(--border-color);
+}
+
+.upload-card-text2 {
+ padding: 8rpx 0 0;
+ margin-top: 32rpx;
+}
+
+.upload-main {
+ display: flex;
+ flex-wrap: wrap;
+}
+
+.upload-main-item {
+ position: relative;
+ margin-right: 54rpx;
+ margin-top: 32rpx;
+}
+
+.upload-main-item-close {
+ position: absolute;
+ right: -14rpx;
+ z-index: 99;
+ top: -14rpx;
+ color: var(--red);
+ background-color: #ffffff;
+ border-radius: 50%;
+}
+
+.upload-main-add {
+ margin-top: 32rpx;
+ width: 84rpx;
+ height: 84rpx;
+ border: 2rpx dashed rgba(0, 0, 0, 0.5);
+ border-radius: 4rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.van-image {
+ background-color: #f2f2f2;
+}
diff --git a/gz-wxparty/pages/me/index.js b/gz-wxparty/pages/me/index.js
new file mode 100644
index 0000000..2a8563d
--- /dev/null
+++ b/gz-wxparty/pages/me/index.js
@@ -0,0 +1,62 @@
+/*
+ * @Company: hugeInfo
+ * @Author: ldh
+ * @Date: 2022-06-06 15:33:48
+ * @LastEditTime: 2022-06-15 17:10:03
+ * @LastEditors: ldh
+ * @Version: 1.0.0
+ * @Description:
+ */
+// pages/me/index.js
+const $$ = require('../../utils/util');
+
+// 获取用户信息
+function getUserInfoApi() {
+ return $$.request({ url: 'paUser/personal', type: 'get', service: 'cust' });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ imgUrl: $$.url.img, // icon图片地址
+ userInfo: {}, // 用户信息
+ },
+
+ // 点击完善资料
+ handleGo() {
+ let visible = this.data.userInfo.realStatus === '1';
+ wx.navigateTo({ url: visible ? '../../pages/perfectInformation/index?type=improvedata' : '../../pages/perfectInformation/index' });
+ },
+
+ // 退出登录
+ handleLoginOut() {
+ $$.showModal({
+ content: '是否确认退出登录?',
+ success: (res) => {
+ if (res.confirm) {
+ $$.loginOutClearData();
+ $$.showToast('已退出登录');
+ wx.reLaunch({
+ url: '../../pages/homePage/index',
+ });
+ }
+ },
+ });
+ },
+
+ // 获取用户信息
+ async getUserInfo() {
+ $$.showLoading();
+ const res = await getUserInfoApi();
+ $$.hideLoading();
+ if (res.type) {
+ this.setData({ userInfo: res.data });
+ }
+ },
+
+ onLoad: function () {
+ this.getUserInfo();
+ },
+});
diff --git a/gz-wxparty/pages/me/index.json b/gz-wxparty/pages/me/index.json
new file mode 100644
index 0000000..3fc5110
--- /dev/null
+++ b/gz-wxparty/pages/me/index.json
@@ -0,0 +1,4 @@
+{
+ "navigationBarTitleText": "个人中心",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/gz-wxparty/pages/me/index.wxml b/gz-wxparty/pages/me/index.wxml
new file mode 100644
index 0000000..47f976f
--- /dev/null
+++ b/gz-wxparty/pages/me/index.wxml
@@ -0,0 +1,64 @@
+<!--个人中心-->
+<common-page id="common-page">
+ <view>
+ <view bindtap="handleGo" class="header">
+ <view class="header-img">
+ <image class="header-img-image" src="{{ userInfo.avatar }}" wx:if="{{ userInfo.avatar }}" />
+ <van-icon name="user-circle-o" size="100rpx" wx:else />
+ </view>
+ <view>
+ <view class="header-title">{{ userInfo.trueName || '微信用户'}}</view>
+ <view class="header-subTitle">
+ <text>完善资料</text>
+ <van-icon name="records" size="28rpx" />
+ </view>
+ </view>
+ </view>
+ <view class="main-card">
+ <van-cell-group inset>
+ <van-cell is-link link-type="navigateTo" url="../../pages/messageCenter/index">
+ <view class="main-card-item" slot="title">
+ <image class="main-card-item-image" src="{{ imgUrl }}message.png" />
+ <text>我的消息</text>
+ </view>
+ <view class="main-msgRound" wx:if="{{ userInfo.msgCount }}">{{ userInfo.msgCount }}</view>
+ </van-cell>
+ <van-cell
+ border="{{ false }}"
+ is-link
+ link-type="navigateTo"
+ url="{{userInfo.realStatus === '1' ? '../../pages/perfectInformation/index?isCheck=true' : '../../pages/realNameAuthentication/index'}}"
+ >
+ <view class="main-card-item" slot="title">
+ <image class="main-card-item-image" src="{{ imgUrl }}realName.png" />
+ <text>实名认证</text>
+ </view>
+ <view
+ class="main-realName {{ userInfo.realStatus === '1' ? 'main-realName-green' : 'main-realName-red'}}"
+ >{{ userInfo.realStatus === '1' ? '已认证' : '未认证' }}</view>
+ </van-cell>
+ </van-cell-group>
+ </view>
+ <view class="main-card">
+ <van-cell-group inset>
+ <van-cell border="{{ false }}" is-link link-type="navigateTo" url="../../pages/agreement/index">
+ <view class="main-card-item" slot="title">
+ <image class="main-card-item-image" src="{{ imgUrl }}agreement.png" />
+ <text>服务协议</text>
+ </view>
+ </van-cell>
+ <!-- TODO:后期需求添加 -->
+ <!-- <van-cell is-link border="{{ false }}">
+ <view slot="title" class="main-card-item">
+ <image class="main-card-item-image" src="{{ imgUrl }}proposal.png" />
+ <text>反馈建议</text>
+ </view>
+ <view wx:if="{{ userInfo.opinionCount }}" class="main-msgRound">{{ userInfo.opinionCount }}</view>
+ </van-cell>-->
+ </van-cell-group>
+ </view>
+ <view class="loginOut">
+ <van-button bind:click="handleLoginOut" block type="default">退出登录</van-button>
+ </view>
+ </view>
+</common-page>
diff --git a/gz-wxparty/pages/me/index.wxss b/gz-wxparty/pages/me/index.wxss
new file mode 100644
index 0000000..7c0f259
--- /dev/null
+++ b/gz-wxparty/pages/me/index.wxss
@@ -0,0 +1,87 @@
+/* pages/me/index.wxss */
+.header {
+ padding: 24rpx var(--padding-my);
+ background-color: var(--main-color);
+ display: flex;
+ align-items: center;
+ color: #ffffff;
+}
+
+.header-img {
+ margin-right: 32rpx;
+ overflow: hidden;
+}
+
+.header-img-image {
+ height: 100rpx;
+ width: 100rpx;
+ border-radius: 50%;
+}
+
+.header-title {
+ font-size: 36rpx;
+ margin-bottom: 16rpx;
+}
+
+.header-subTitle {
+ color: var(--gray-1);
+}
+
+.header-subTitle text {
+ font-size: 28rpx;
+ margin-right: 8rpx;
+}
+
+.main-card {
+ margin-top: 48rpx;
+}
+
+.main-card-item {
+ display: flex;
+ align-items: center;
+}
+
+.main-card-item-image {
+ height: 56rpx;
+ width: 56rpx;
+ margin-right: 16rpx;
+}
+
+.main-msgRound {
+ width: 40rpx;
+ height: 40rpx;
+ border-radius: 50%;
+ background-color: var(--red);
+ color: #ffffff;
+ line-height: 40rpx;
+ text-align: center;
+ margin-right: 16rpx;
+ font-size: 28rpx;
+}
+
+.main-realName {
+ margin-right: 16rpx;
+}
+
+.main-realName-red {
+ color: var(--red);
+}
+
+.main-realName-green {
+ color: var(--green);
+}
+
+.van-cell {
+ align-items: center;
+}
+
+.van-cell__value {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+}
+
+.loginOut {
+ margin-top: 48rpx;
+ padding: 0 var(--padding-my);
+}
diff --git a/gz-wxparty/pages/mediateDetail/index.js b/gz-wxparty/pages/mediateDetail/index.js
new file mode 100644
index 0000000..7fcf4f7
--- /dev/null
+++ b/gz-wxparty/pages/mediateDetail/index.js
@@ -0,0 +1,110 @@
+// pages/mediateDetail/index.js
+const $$ = require('../../utils/util');
+
+// 获取案件详情
+function getCaseDetailApi(submitData, pageType) {
+ if (pageType === '1') {
+ // 调解
+ return $$.request({ url: 'paCaseInfo/getCaseInfo?id=' + submitData, type: 'get', service: 'mediate' });
+ } else {
+ // 司法确认
+ return $$.request({ url: 'paJudicInfo/getJudicInfo?judicId=' + submitData, type: 'get', service: 'mediate' });
+ }
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ pageType: '1', // '1':我的调解; '2':我的司法确认
+ type: '1', // '1':待受理;'2':待调解(待开始);'3':调解中(进行中);'4':调解结束(已结束);'5':调解-退回;'6':不予受理;'7':异常终止
+ steps: [],
+ stepsActive: 0,
+ caseData: {}, // 案件详情数据
+ },
+
+ // 数据处理
+ setMediateData(caseData, pageType) {
+ let type = '1';
+ if (caseData.process) {
+ if (caseData.process === '5') {
+ type = '5';
+ } else if (caseData.process === '6') {
+ type = '6';
+ } else {
+ type = caseData.process || '1';
+ }
+ }
+ if (pageType === '1') {
+ this.formatTime(caseData);
+ }
+ if (pageType === '2') {
+ this.formatTime(caseData.caseInfo);
+ this.formatTime(caseData.judicInfo);
+ }
+ this.setData({ caseData: caseData, type, stepsActive: ['5', '6', '7'].includes(type) ? 0 : parseInt(type) - 1 });
+ },
+
+ // 格式化时间
+ formatTime(data, pageType) {
+ if (pageType === '1') {
+ let arr = ['applyTime', 'mediStartTime', 'mediEndTime'],
+ arr2 = ['orderStartTime', 'orderEndTime'];
+ data.meetInfo = data.meetInfo || {};
+ arr.forEach((x) => {
+ if (data[x]) {
+ data[x] = $$.timeFormat(data[x]);
+ }
+ });
+ arr2.forEach((x) => {
+ if (data.meetInfo[x]) {
+ data.meetInfo[x] = $$.timeFormat(data.meetInfo[x]);
+ }
+ });
+ } else {
+ let arr = ['orderEndTime', 'orderStartTime'];
+ arr.forEach((x) => {
+ if (data[x]) {
+ data[x] = $$.timeFormat(data[x]);
+ }
+ });
+ }
+ },
+
+ // 获取案件信息
+ getTypeData(data) {
+ wx.setNavigationBarTitle({
+ title: data.pageType === '1' ? '调解详情' : '司法确认详情',
+ });
+ let arr = data.pageType === '1' ? ['待受理', '待调解', '调解中', '调解结束'] : ['待受理', '待开始', '进行中', '已结束'];
+ this.setData({
+ pageType: data.pageType,
+ steps: [
+ { title: arr[0], icon: '', activeIcon: 'steps-detail-1-active.png' },
+ { title: arr[1], icon: 'steps-detail-2.png', activeIcon: 'steps-detail-2-active.png' },
+ { title: arr[2], icon: 'steps-detail-3.png', activeIcon: 'steps-detail-3-active.png' },
+ { title: arr[3], icon: 'steps-detail-4.png', activeIcon: 'steps-detail-4-active.png' },
+ ],
+ stepsActive: parseInt(data.type || 1) - 1,
+ });
+ this.getCaseDetail(data.id, data.pageType);
+ },
+
+ // 获取纠纷案件详情
+ async getCaseDetail(id, pageType) {
+ $$.showLoading();
+ const res = await getCaseDetailApi(id, pageType);
+ $$.hideLoading();
+ if (res.type) {
+ let data = res.data || {};
+ this.setMediateData(data, pageType);
+ }
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ this.getTypeData(options);
+ },
+});
diff --git a/gz-wxparty/pages/mediateDetail/index.json b/gz-wxparty/pages/mediateDetail/index.json
new file mode 100644
index 0000000..d6eaef0
--- /dev/null
+++ b/gz-wxparty/pages/mediateDetail/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "steps": "../../components/steps/index",
+ "mediate-detail": "../../components/mediate-detail/index"
+ }
+}
\ No newline at end of file
diff --git a/gz-wxparty/pages/mediateDetail/index.wxml b/gz-wxparty/pages/mediateDetail/index.wxml
new file mode 100644
index 0000000..f8a74cf
--- /dev/null
+++ b/gz-wxparty/pages/mediateDetail/index.wxml
@@ -0,0 +1,9 @@
+<!--我的调解详情 or 我的司法确认详情-->
+<common-page>
+ <!-- 步骤条 -->
+ <view class="steps">
+ <steps stepsActive="{{ stepsActive }}" stepsData="{{ steps }}" stepsType="picture" />
+ </view>
+ <view class="steps-height" />
+ <mediate-detail caseData="{{ caseData }}" pageType="{{ pageType }}" type="{{ type }}" />
+</common-page>
diff --git a/gz-wxparty/pages/mediateDetail/index.wxss b/gz-wxparty/pages/mediateDetail/index.wxss
new file mode 100644
index 0000000..4a16dc1
--- /dev/null
+++ b/gz-wxparty/pages/mediateDetail/index.wxss
@@ -0,0 +1,14 @@
+/* pages/mediateDetail/index.wxss */
+.steps {
+ padding: 20rpx 0 12rpx;
+ background-color: #ffffff;
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ z-index: 99;
+}
+
+.steps-height {
+ height: 140rpx;
+}
diff --git a/gz-wxparty/pages/messageCenter/index.js b/gz-wxparty/pages/messageCenter/index.js
new file mode 100644
index 0000000..03c44df
--- /dev/null
+++ b/gz-wxparty/pages/messageCenter/index.js
@@ -0,0 +1,124 @@
+// pages/messageCenter/index.js
+const $$ = require('../../utils/util');
+
+// 获取我的消息
+function getMessageDataApi(submitData) {
+ return $$.request({ url: 'noticeParty/pageMyNotice', type: 'get', submitData, service: 'mediate' });
+}
+// 阅读我的消息,将消息标记为已读
+function setMessageReadApi(submitData) {
+ return $$.request({ url: 'noticeParty/readNotice?id=' + submitData, type: 'get', service: 'mediate' });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ imgUrl: $$.url.img,
+ tab: [
+ { title: '未读', name: '1' },
+ { title: '已读', name: '2' },
+ ],
+ loading: false, // 滚动到底部分页的加载状态
+ search: {
+ page: 1,
+ size: 20,
+ readStatus: '1',
+ },
+ listData: [],
+ total: 0, // 数据总数
+ popup: {
+ show: false,
+ buttonText: '我知道了',
+ },
+ },
+
+ // 切换tab
+ handleChangeTab(e) {
+ this.getMessageData({ ...this.data.search, readStatus: e.detail.name, page: 1 });
+ },
+
+ // 点击查看信息
+ handleRead(e) {},
+
+ // 点击开启弹窗
+ handleOpenPopup(e) {
+ let item = e.currentTarget.dataset.item;
+ let index = e.currentTarget.dataset.index;
+ this.setData({ popup: { ...item, index, show: true, buttonText: item.visitUrl ? '前往操作' : '我知道了' } });
+ },
+
+ // 消息弹窗操作
+ async handleClickPopup() {
+ if (this.data.popup.visitUrl) {
+ this.setData({ popup: { show: false } });
+ wx.navigateTo({
+ url: '../../' + this.data.popup.visitUrl,
+ });
+ } else {
+ const res = await setMessageReadApi(this.data.popup.id);
+ if (res.type) {
+ if (this.data.listData[this.data.popup.index]) {
+ this.data.listData[this.data.popup.index].readStatus = '2';
+ }
+ this.setData({ listData: this.data.listData, popup: { show: false } });
+ }
+ }
+ },
+
+ // 关闭弹窗
+ handleClosePopup() {
+ this.setData({ popup: { show: false } });
+ },
+
+ // 滚动到底部获取数据
+ handlescrolltolower() {
+ if (this.data.listData.length >= this.data.total) {
+ return false;
+ }
+ if (!this.data.loading) {
+ this.data.loading = true;
+ this.setData({ loading: this.data.loading });
+ let submitData = { ...this.data.search };
+ submitData.page = submitData.page + 1;
+ this.getMessageData(submitData);
+ }
+ },
+
+ // 获取消息数据
+ async getMessageData(submitData) {
+ $$.showLoading();
+ const res = await getMessageDataApi(submitData);
+ $$.hideLoading();
+ if (this.data.loading) {
+ // 取消滚动底部的加载状态
+ this.setData({ loading: false });
+ }
+ if (res.type) {
+ if (submitData.page === 1) {
+ this.data.listData = res.data?.content || [];
+ } else {
+ this.data.listData = this.data.listData.concat(res.data?.content || []);
+ }
+ this.setData({
+ tab: this.data.tab.map((x) => {
+ if (x.name == submitData.readStatus) {
+ x.title = `${x.name === '1' ? '未读' : '已读'}(${res.data?.totalElements || 0})`;
+ }
+ return x;
+ }),
+ search: submitData,
+ listData: this.data.listData,
+ total: res.data?.totalElements || 0,
+ });
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ this.getMessageData(this.data.search);
+ },
+});
diff --git a/gz-wxparty/pages/messageCenter/index.json b/gz-wxparty/pages/messageCenter/index.json
new file mode 100644
index 0000000..f7ab5e1
--- /dev/null
+++ b/gz-wxparty/pages/messageCenter/index.json
@@ -0,0 +1,6 @@
+{
+ "navigationBarTitleText": "我的消息",
+ "usingComponents": {
+ "time-format": "../../components/time-format/index"
+ }
+}
diff --git a/gz-wxparty/pages/messageCenter/index.wxml b/gz-wxparty/pages/messageCenter/index.wxml
new file mode 100644
index 0000000..bdba6d8
--- /dev/null
+++ b/gz-wxparty/pages/messageCenter/index.wxml
@@ -0,0 +1,53 @@
+<!--pages/messageCenter/index.wxml-->
+<common-page>
+ <view class="messageCenter">
+ <view class="messageCenter-tabs">
+ <van-tabs active="{{ search.readStatus }}" bind:change="handleChangeTab" line-width="54rpx" nav-class="tab-nav-class" tab-active-class="tab-active-class">
+ <van-tab name="{{item.name}}" title="{{item.title}}" wx:for="{{ tab }}" wx:key="index" />
+ </van-tabs>
+ </view>
+ <van-empty description="暂无数据" wx:if="{{ total === 0 }}" />
+ <view class="messageCenter-scroll" wx:else>
+ <scroll-view bindscrolltolower="handlescrolltolower" scroll-y="true" style="height: 100%;">
+ <view bind:tap="handleOpenPopup" class="msg-item {{ listData.length - 1 === index ? 'msg-item-last' : '' }} {{ item.readStatus === '2' ? 'msg-item-read' : '' }}" data-item="{{ item }}" data-index="{{ index }}" wx:for="{{ listData }}" wx:key="index">
+ <van-icon name="{{ imgUrl }}msg-{{ item.noticeType === '1' ? 'tongZhi' : 'gongGao' }}.png" size="44" />
+ <view class="msg-item-content">
+ <view class="msg-item-content-header">
+ <view class="msg-item-content-title">{{item.noticeType === '1' ? '系统通知' : '平台公告'}}</view>
+ <view class="msg-item-content-time">
+ <time-format fromtype="messageCenter" value="{{item.createTime}}" />
+ </view>
+ </view>
+ <view class="msg-item-content-text">{{item.content || '无'}}</view>
+ </view>
+ </view>
+ <block>
+ <van-divider contentPosition="center" wx:if="{{ listData.length >= total && dalistDatata.length !== 0 }}">已加载全部数据</van-divider>
+ <view style="text-align: center;" wx:if="{{ loading }}">
+ <van-loading type="spinner" />
+ </view>
+ </block>
+ </scroll-view>
+ </view>
+ <view class="safeHeight" />
+ </view>
+</common-page>
+
+<!-- 消息提示弹窗查看 -->
+<van-popup bind:close="handleClosePopup" closeable position="bottom" round show="{{ popup.show }}" title="消息详情" zIndex="999">
+ <view class="popup">
+ <view class="popup-header">
+ <van-icon name="{{ imgUrl }}msg-{{ popup.noticeType === '1' ? 'tongZhi' : 'gongGao' }}.png" size="44" />
+ <view class="popup-header-content">
+ <view class="popup-header-content-title">{{popup.noticeType === '1' ? '系统通知' : '平台公告'}}</view>
+ <view class="popup-header-content-text">
+ <time-format fromtype="messageCenter" value="{{popup.createTime}}" />
+ </view>
+ </view>
+ </view>
+ <view class="popup-content">{{popup.content || '无'}}</view>
+ </view>
+ <view class="popup-button">
+ <van-button bind:click="handleClickPopup" block type="primary">{{ popup.buttonText }}</van-button>
+ </view>
+</van-popup>
\ No newline at end of file
diff --git a/gz-wxparty/pages/messageCenter/index.wxss b/gz-wxparty/pages/messageCenter/index.wxss
new file mode 100644
index 0000000..22610d0
--- /dev/null
+++ b/gz-wxparty/pages/messageCenter/index.wxss
@@ -0,0 +1,104 @@
+/* pages/messageCenter/index.wxss */
+.messageCenter {
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+}
+
+.messageCenter-tabs {
+ padding: 40rpx 0;
+}
+
+.messageCenter-scroll {
+ flex: 1;
+ overflow: hidden;
+}
+
+.msg-item {
+ position: relative;
+ display: flex;
+ padding: 32rpx 20rpx;
+ background-color: #ffffff;
+}
+
+.msg-item::after {
+ content: '';
+ position: absolute;
+ border-top: 2rpx solid var(--border-color);
+ bottom: 0;
+ left: 20rpx;
+ right: 20rpx;
+}
+
+.msg-item-last::after {
+ border: none;
+}
+
+.msg-item-read {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.msg-item-content {
+ flex: 1;
+ padding-left: 16rpx;
+}
+
+.msg-item-content-header {
+ flex: 1;
+ display: flex;
+ align-items: center;
+}
+
+.msg-item-content-title {
+ font-weight: 600;
+ flex: 1;
+}
+
+.msg-item-content-time {
+ font-size: 24rpx;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.msg-item-content-text {
+ font-size: 24rpx;
+ line-height: 40rpx;
+ margin-top: 8rpx;
+}
+
+.popup {
+ padding: 0 32rpx;
+}
+
+.popup-header {
+ display: flex;
+ align-items: center;
+ padding: 32rpx 0;
+}
+
+.popup-header-content {
+ margin-left: 16rpx;
+}
+
+.popup-header-content-title {
+ font-weight: 600;
+}
+
+.popup-header-content-text {
+ font-size: 24rpx;
+ line-height: 40rpx;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.popup-button {
+ padding: 32rpx 0;
+ margin: 0 32rpx;
+ border-top: 2rpx solid var(--border-color);
+}
+
+.popup-content {
+ margin-bottom: 32rpx;
+}
diff --git a/gz-wxparty/pages/myJudicialConfirmation/index.js b/gz-wxparty/pages/myJudicialConfirmation/index.js
new file mode 100644
index 0000000..4d5723b
--- /dev/null
+++ b/gz-wxparty/pages/myJudicialConfirmation/index.js
@@ -0,0 +1,174 @@
+// pages/judicialComfirmation/index.js
+const $$ = require('../../utils/util');
+
+// 获取我的司法确认
+function getMyJudicialComfirmationApi(submitData) {
+ return $$.request({ url: 'paJudicInfo/pageMyJudic', type: 'get', service: 'mediate', submitData });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ imgUrl: $$.url.img,
+ tab: [
+ { title: '我是申请人', name: '15_020008-1' },
+ { title: '我是被申请人', name: '15_020008-2' },
+ ],
+ selectModel: [
+ {
+ name: '全部',
+ key: 'process',
+ data: [
+ { label: '全部', value: '', span: 24 },
+ { label: '待受理', value: '1' },
+ { label: '待开始', value: '2' },
+ { label: '进行中', value: '3' },
+ { label: '已结束', value: '4' },
+ { label: '不予受理', value: '5' },
+ { label: '异常终止', value: '6' },
+ ],
+ },
+ ],
+ loading: false,
+ search: {
+ page: 1,
+ size: 10,
+ perType: '15_020008-1',
+ process: '',
+ },
+ data: [], // 数据
+ total: 0, // 总数
+ scrollTop: 0,
+ popupMsg: {
+ show: false,
+ title: '',
+ data: null,
+ },
+ },
+
+ // 获取搜索参数
+ handleGetType(e) {
+ this.getMyJudicialComfirmation({ ...this.data.search, page: 1, process: e.detail.process });
+ },
+
+ // 切换tab
+ handleChangeTab(e) {
+ let type = null;
+ if (e.detail.name === '15_020008-1') {
+ type = [
+ { label: '全部', value: '', sapn: 24 },
+ { label: '待受理', value: '1' },
+ { label: '待开始', value: '2' },
+ { label: '进行中', value: '3' },
+ { label: '已结束', value: '4' },
+ { label: '不予受理', value: '5' },
+ { label: '异常终止', value: '6' },
+ ];
+ } else {
+ type = [
+ { label: '全部', value: '', span: 24 },
+ { label: '待开始', value: '2' },
+ { label: '进行中', value: '3' },
+ { label: '已结束', value: '4' },
+ { label: '异常终止', value: '6' },
+ ];
+ }
+ let submitData = {
+ page: 1,
+ size: 10,
+ perType: e.detail.name,
+ process: '',
+ };
+ let that = this;
+ this.setData({ data: [], selectModel: [{ name: '全部', key: 'process', data: type }], search: submitData }, () => {
+ that.getMyJudicialComfirmation(submitData);
+ });
+ },
+
+ // 滚动到底部获取案件
+ handlescrolltolower() {
+ if (this.data.data.length >= this.data.total) {
+ return false;
+ }
+ if (!this.data.loading) {
+ this.data.loading = true;
+ this.setData({ loading: this.data.loading });
+ let submitData = { ...this.data.search };
+ submitData.page = submitData.page + 1;
+ this.getMyJudicialComfirmation(submitData);
+ }
+ },
+
+ // 打开底部弹窗
+ handleOpenBottomPopup(e) {
+ let type = e.detail.type;
+ if (type === 'roomNo') {
+ this.setData({ popupMsg: { show: true, data: e.detail.data, title: '线上司法确认房间号' } });
+ }
+ },
+
+ // 底部弹窗显隐
+ _handleClosePopupMsg() {
+ this.setData({ popupMsg: { show: false } });
+ },
+
+ // 复制房间号
+ _handleCopy() {
+ let that = this;
+ wx.setClipboardData({
+ data: that.data.popupMsg.data,
+ success: function (res) {
+ wx.getClipboardData({
+ success: function (res) {
+ $$.showToast({ title: '复制成功' });
+ that.setData({ popupMsg: { show: false } });
+ },
+ });
+ },
+ });
+ },
+
+ // 获取我的司法确认案件
+ async getMyJudicialComfirmation(submitData, type) {
+ $$.showLoading();
+ const res = await getMyJudicialComfirmationApi(submitData);
+ $$.hideLoading();
+ if (this.data.loading) {
+ this.setData({ loading: false });
+ }
+ if (res.type) {
+ if (submitData.page === 1) {
+ this.data.data = res.data.content || [];
+ } else {
+ this.data.data = this.data.data.concat(res.data.content || []);
+ }
+ this.setData({ search: submitData, data: this.data.data, total: res.data.totalElements || 0 });
+ if (type === 'onPullDownRefresh') {
+ $$.showToast({ title: '已是最新记录', duration: 1000 });
+ wx.stopPullDownRefresh();
+ }
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.getMyJudicialComfirmation(this.data.search);
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+ let search = {
+ page: 1,
+ size: 10,
+ perType: this.data.search.perType,
+ process: '',
+ };
+ this.getMyJudicialComfirmation(search, 'onPullDownRefresh');
+ },
+});
diff --git a/gz-wxparty/pages/myJudicialConfirmation/index.json b/gz-wxparty/pages/myJudicialConfirmation/index.json
new file mode 100644
index 0000000..a86a270
--- /dev/null
+++ b/gz-wxparty/pages/myJudicialConfirmation/index.json
@@ -0,0 +1,8 @@
+{
+ "navigationBarTitleText": "我的司法确认",
+ "usingComponents": {
+ "drop-down-select": "../../components/drop-down-select/index",
+ "mediate-card": "../../components/mediate-card/index"
+ },
+ "enablePullDownRefresh": true
+}
diff --git a/gz-wxparty/pages/myJudicialConfirmation/index.wxml b/gz-wxparty/pages/myJudicialConfirmation/index.wxml
new file mode 100644
index 0000000..b285d1f
--- /dev/null
+++ b/gz-wxparty/pages/myJudicialConfirmation/index.wxml
@@ -0,0 +1,46 @@
+<!--pages/judicialComfirmation/index.wxml-->
+<common-page>
+ <view class="myMediate">
+ <view class="myMediate-fixed">
+ <van-tabs active="{{ tabActive }}" bind:change="handleChangeTab" line-width="54rpx" nav-class="tab-nav-class" tab-active-class="tab-active-class">
+ <van-tab name="{{item.name}}" title="{{item.title}}" wx:for="{{ tab }}" wx:key="index" />
+ </van-tabs>
+ <view class="divide-div" />
+ <drop-down-select bind:ongetvalue="handleGetType" data="{{ selectModel }}" active="{{ search }}" />
+ </view>
+ <van-empty description="暂无数据" wx:if="{{ total === 0 }}" />
+ <view class="myMediate-scroll" wx:else>
+ <scroll-view bindscrolltolower="handlescrolltolower" scroll-y="true" style="height: 100%;">
+ <view class="card-box" wx:for="{{ data }}" wx:key="index">
+ <mediate-card bind:onOpenBottomPopup="handleOpenBottomPopup" caseindex="{{ index }}" data="{{ item }}" pageType="2" />
+ </view>
+ <block>
+ <van-divider contentPosition="center" custom-style="margin-top: 0;" wx:if="{{ data.length >= total && data.length !== 0 }}">已加载全部数据</van-divider>
+ <view class="myMediate-scroll-loading" wx:if="{{ loading }}">
+ <van-loading type="spinner" />
+ </view>
+ </block>
+ </scroll-view>
+ </view>
+ <view class="safeHeight" />
+ </view>
+</common-page>
+
+<!-- 底部弹窗 -->
+<van-popup
+ bind:close="_handleClosePopupMsg"
+ closeable
+ position="bottom"
+ round
+ show="{{ popupMsg.show }}"
+ title="{{ popupMsg.title || '' }}"
+ zIndex="999"
+>
+ <view class="popup-roomNo">
+ <view>{{ popupMsg.data || '-' }}</view>
+ <view bind:tap="_handleCopy" class="popup-roomNo-copy">
+ <van-icon name="{{ imgUrl }}copy-active.png" size="12" />
+ <view style="padding-left:8rpx">复制</view>
+ </view>
+ </view>
+</van-popup>
diff --git a/gz-wxparty/pages/myJudicialConfirmation/index.wxss b/gz-wxparty/pages/myJudicialConfirmation/index.wxss
new file mode 100644
index 0000000..0df693f
--- /dev/null
+++ b/gz-wxparty/pages/myJudicialConfirmation/index.wxss
@@ -0,0 +1,2 @@
+/* pages/judicialComfirmation/index.wxss */
+@import '../myMediate/index.wxss';
diff --git a/gz-wxparty/pages/myMediate/index.js b/gz-wxparty/pages/myMediate/index.js
new file mode 100644
index 0000000..2381d6a
--- /dev/null
+++ b/gz-wxparty/pages/myMediate/index.js
@@ -0,0 +1,223 @@
+// pages/myMediate/index.js
+const $$ = require('../../utils/util');
+const app = getApp();
+
+// 获取我的调解
+function getMyMediateApi(submitData) {
+ return $$.request({ url: 'paCaseInfo/pageMyMediation', type: 'get', service: 'mediate', submitData });
+}
+
+// 撤销申请
+function cancelCaseApi(submitData) {
+ return $$.request({ url: 'paCaseInfo/revokeApply?id=' + submitData, type: 'get', service: 'mediate' });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ imgUrl: $$.url.img,
+ tab: [
+ { title: '我是申请人', name: '15_020008-1' },
+ { title: '我是被申请人', name: '15_020008-2' },
+ ],
+ selectModel: [
+ {
+ name: '全部',
+ key: 'process',
+ data: [
+ { label: '全部', value: '', span: 24 },
+ { label: '待受理', value: '1' },
+ { label: '待调解', value: '2' },
+ { label: '调解中', value: '3' },
+ { label: '调解结束', value: '4' },
+ { label: '退回', value: '5' },
+ { label: '不予受理', value: '6' },
+ { label: '申请人撤回', value: '7' },
+ ],
+ },
+ ],
+ loading: false, // 滚动到底部分页的加载状态
+ search: {
+ page: 1,
+ size: 10,
+ perType: '15_020008-1',
+ process: '',
+ caseStatus: '',
+ },
+ data: [], // 数据
+ total: 0, // 总数
+ popupMsg: {
+ show: false,
+ title: '',
+ data: null,
+ },
+ },
+
+ // 获取搜索参数
+ handleGetType(e) {
+ this.getMyMediate({ ...this.data.search, page: 1, process: e.detail.process });
+ },
+
+ // 切换tab
+ handleChangeTab(e) {
+ let type = null;
+ if (e.detail.name === '15_020008-1') {
+ type = [
+ { label: '全部', value: '', span: 24 },
+ { label: '待受理', value: '1' },
+ { label: '待调解', value: '2' },
+ { label: '调解中', value: '3' },
+ { label: '调解结束', value: '4' },
+ { label: '退回', value: '5' },
+ { label: '不予受理', value: '6' },
+ { label: '申请人撤回', value: '7' },
+ ];
+ } else {
+ type = [
+ { label: '全部', value: '', span: 24 },
+ { label: '待调解', value: '2' },
+ { label: '调解中', value: '3' },
+ { label: '调解结束', value: '4' },
+ { label: '申请人撤回', value: '7' },
+ ];
+ }
+ let submitData = {
+ page: 1,
+ size: 10,
+ perType: e.detail.name,
+ process: '',
+ caseStatus: '',
+ };
+ let that = this;
+ this.setData({ data: [], selectModel: [{ name: '全部', key: 'process', data: type }], search: submitData }, () => {
+ that.getMyMediate(submitData);
+ });
+ },
+
+ // 滚动到底部获取案件
+ handlescrolltolower() {
+ if (this.data.data.length >= this.data.total) {
+ return false;
+ }
+ if (!this.data.loading) {
+ this.data.loading = true;
+ this.setData({ loading: this.data.loading });
+ let submitData = { ...this.data.search };
+ submitData.page = submitData.page + 1;
+ this.getMyMediate(submitData);
+ }
+ },
+
+ // 打开底部弹窗
+ handleOpenBottomPopup(e) {
+ let type = e.detail.type;
+ if (type === 'roomNo') {
+ this.setData({ popupMsg: { show: true, data: e.detail.data, title: '线上调解房间号' } });
+ }
+ },
+
+ // 底部弹窗显隐
+ _handleClosePopupMsg() {
+ this.setData({ popupMsg: { show: false } });
+ },
+
+ // 复制房间号
+ _handleCopy() {
+ let that = this;
+ wx.setClipboardData({
+ data: that.data.popupMsg.data,
+ success: function (res) {
+ wx.getClipboardData({
+ success: function (res) {
+ $$.showToast({ title: '复制成功' });
+ that.setData({ popupMsg: { show: false } });
+ },
+ });
+ },
+ });
+ },
+
+ // 撤销申请
+ async handleCancelCase(e) {
+ let caseId = e.detail;
+ $$.showLoading();
+ const res = await cancelCaseApi(caseId);
+ $$.hideLoading();
+ if (res.type) {
+ $$.showToast({ icon: 'success', title: '撤销成功' });
+ await $$.sleep();
+ this.getMyMediate(this.data.search);
+ }
+ },
+
+ // 获取我的调解案件
+ async getMyMediate(submitData, caseMsg, type) {
+ $$.showLoading();
+ const res = await getMyMediateApi(submitData);
+ $$.hideLoading();
+ if (this.data.loading) {
+ // 取消滚动底部的加载状态
+ this.setData({ loading: false });
+ }
+ if (res.type) {
+ if (caseMsg) {
+ forEach: for (let i = 0; i <= res.data.content.length - 1; i++) {
+ if (res.data.content[i].id === caseMsg.id) {
+ this.data.data[caseMsg.caseIndex] = { ...res.data.content[i] };
+ this.setData({ data: JSON.parse(JSON.stringify(this.data.data)) });
+ break forEach;
+ }
+ }
+ } else {
+ if (submitData.page === 1) {
+ this.data.data = res.data.content || [];
+ } else {
+ this.data.data = this.data.data.concat(res.data.content || []);
+ }
+ this.setData({ search: submitData, data: this.data.data, total: res.data.totalElements || 0 });
+ if (type === 'onPullDownRefresh') {
+ $$.showToast({ title: '已是最新记录', duration: 1000 });
+ wx.stopPullDownRefresh();
+ }
+ }
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ this.getMyMediate(this.data.search);
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+ // 当其他页面返回时更新数据,caseIndex:判断那个案件的下标精确更新该案件,handleVisible:表示是否在其他页面操作了之后返回
+ let caseMsg = app.globalData.caseMsg;
+ if (caseMsg.id && caseMsg.caseIndex !== undefined && caseMsg.handleVisible) {
+ let search = this.data.search;
+ search.size = search.page * 10;
+ search.page = 1;
+ this.getMyMediate(search, caseMsg);
+ app.globalData.caseMsg = {};
+ }
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ let search = {
+ page: 1,
+ size: 10,
+ perType: this.data.search.perType,
+ process: '',
+ caseStatus: '',
+ };
+ this.getMyMediate(search, '', 'onPullDownRefresh');
+ },
+});
diff --git a/gz-wxparty/pages/myMediate/index.json b/gz-wxparty/pages/myMediate/index.json
new file mode 100644
index 0000000..eca674b
--- /dev/null
+++ b/gz-wxparty/pages/myMediate/index.json
@@ -0,0 +1,8 @@
+{
+ "navigationBarTitleText": "我的调解",
+ "usingComponents": {
+ "drop-down-select": "../../components/drop-down-select/index",
+ "mediate-card": "../../components/mediate-card/index"
+ },
+ "enablePullDownRefresh": true
+}
diff --git a/gz-wxparty/pages/myMediate/index.wxml b/gz-wxparty/pages/myMediate/index.wxml
new file mode 100644
index 0000000..fb0c965
--- /dev/null
+++ b/gz-wxparty/pages/myMediate/index.wxml
@@ -0,0 +1,40 @@
+<!--我的调解-->
+<common-page>
+ <view class="myMediate">
+ <view class="myMediate-fixed">
+ <van-tabs active="{{ search.perType }}" bind:change="handleChangeTab" line-width="54rpx" nav-class="tab-nav-class" tab-active-class="tab-active-class">
+ <van-tab name="{{item.name}}" title="{{item.title}}" wx:for="{{ tab }}" wx:key="index" />
+ </van-tabs>
+ <view class="divide-div" />
+ <drop-down-select bind:ongetvalue="handleGetType" data="{{ selectModel }}" active="{{ search }}" />
+ </view>
+ <van-empty description="暂无数据" wx:if="{{ total === 0 }}" />
+ <view class="myMediate-scroll" wx:else>
+ <scroll-view bindscrolltolower="handlescrolltolower" scroll-y="true" style="height: 100%;">
+ <view class="card-box" wx:for="{{ data }}" wx:key="index">
+ <mediate-card bind:load="onLoad" bind:onOpenBottomPopup="handleOpenBottomPopup" bind:onCancelCase="handleCancelCase" caseindex="{{ index }}" data="{{ item }}" pageType="1" />
+ </view>
+ <block>
+ <van-divider contentPosition="center" custom-style="margin-top: 0;" wx:if="{{ data.length >= total && data.length !== 0 }}">已加载全部数据</van-divider>
+ <view class="myMediate-scroll-loading" wx:if="{{ loading }}">
+ <van-loading type="spinner" />
+ </view>
+ </block>
+ </scroll-view>
+ </view>
+ <view class="safeHeight" />
+ </view>
+</common-page>
+
+<!-- 底部弹窗 -->
+<van-popup bind:close="_handleClosePopupMsg" closeable position="bottom" round show="{{ popupMsg.show }}" title="{{ popupMsg.title || '' }}" zIndex="999">
+ <view class="popup-roomNo">
+ <view>{{ popupMsg.data || '-' }}</view>
+ <view bind:tap="_handleCopy" class="popup-roomNo-copy">
+ <van-icon name="{{ imgUrl }}copy-active.png" size="12" />
+ <view style="padding-left:8rpx">复制</view>
+ </view>
+ </view>
+
+
+</van-popup>
\ No newline at end of file
diff --git a/gz-wxparty/pages/myMediate/index.wxss b/gz-wxparty/pages/myMediate/index.wxss
new file mode 100644
index 0000000..e36dd8f
--- /dev/null
+++ b/gz-wxparty/pages/myMediate/index.wxss
@@ -0,0 +1,41 @@
+/* pages/myMediate/index.wxss */
+@import '../../styles/public_components.wxss';
+
+.myMediate {
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ position: absolute;
+ left: 0;
+ right: 0;
+}
+
+.myMediate-fixed {
+ background-color: var(--bg-color, #f0f2f5);
+ padding-top: 28rpx;
+}
+
+.myMediate-scroll {
+ flex: 1;
+ overflow: hidden;
+ padding-top: 32rpx;
+}
+
+.myMediate-scroll-loading {
+ text-align: center;
+}
+
+.divide-div {
+ position: relative;
+ height: 32rpx;
+ background-color: var(--bg-color, #f0f2f5);
+ z-index: 99;
+}
+
+.card-box {
+ padding: 0 var(--padding-my, 20rpx) 32rpx;
+}
+
+.card-box-active {
+ background-color: var(--red-1);
+}
diff --git a/gz-wxparty/pages/orderConfirm/index.js b/gz-wxparty/pages/orderConfirm/index.js
new file mode 100644
index 0000000..a6baf2d
--- /dev/null
+++ b/gz-wxparty/pages/orderConfirm/index.js
@@ -0,0 +1,78 @@
+// pages/orderConfirm/index.js
+const $$ = require('../../utils/util');
+const app = getApp();
+
+function orderConfirmApi(submitData) {
+ return $$.request({ url: 'paMeetInfo/updateReserve', type: 'post', service: 'mediate', submitData });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ data: {},
+ submitData: {
+ id: 0,
+ fixStatus: '2',
+ fixStatusName: '已确认',
+ fixContent: '',
+ },
+ editVisible: true,
+ pageType: null, // '1':我的调解; '2':我的司法确认
+ },
+
+ // 点击修改 or 提交
+ handleCickEdit() {
+ if (!this.data.editVisible) {
+ this.data.submitData.fixStatus = this.data.data.meetInfo.fixStatus === '1' ? '2' : this.data.data.meetInfo.fixStatus;
+ this.data.submitData.fixStatusName = this.data.data.meetInfo.fixStatusName || '已确认';
+ this.data.submitData.fixContent = this.data.data.meetInfo.fixContent || '';
+ this.setData({ editVisible: true, submitData: this.data.submitData });
+ return false;
+ }
+ this.orderConfirm();
+ },
+
+ // 修改form
+ handleChange(e) {
+ let key = e.currentTarget.dataset.key;
+ let value = e.detail;
+ if (key === 'fixStatus') {
+ value = value ? '2' : '3';
+ }
+ this.data.submitData[key] = value;
+ this.setData({ submitData: this.data.submitData });
+ },
+
+ async orderConfirm() {
+ $$.showLoading();
+ let submitData = this.data.submitData;
+ submitData.fixStatusName = submitData.fixStatus === '2' ? '已确认' : '无法确认';
+ submitData.fixContent = submitData.fixStatus === '2' ? '' : submitData.fixContent;
+ const res = await orderConfirmApi(submitData);
+ $$.hideLoading();
+ if (res.type) {
+ app.globalData.caseMsg.handleVisible = true;
+ $$.showToast({ icon: 'success', title: '提交成功' });
+ this.data.data.meetInfo.fixStatus = submitData.fixStatus;
+ this.data.data.meetInfo.fixContent = submitData.fixContent;
+ this.setData({ editVisible: false, data: this.data.data });
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ if (options.meetUserId) {
+ this.data.submitData.id = options.meetUserId;
+ this.data.pageType = options.pageType;
+ this.setData({
+ submitData: this.data.submitData,
+ data: app.globalData.caseMsg,
+ editVisible: app.globalData.caseMsg.meetInfo.fixStatus === '1',
+ });
+ }
+ },
+});
diff --git a/gz-wxparty/pages/orderConfirm/index.json b/gz-wxparty/pages/orderConfirm/index.json
new file mode 100644
index 0000000..bb91262
--- /dev/null
+++ b/gz-wxparty/pages/orderConfirm/index.json
@@ -0,0 +1,4 @@
+{
+ "navigationBarTitleText": "预约确认",
+ "usingComponents": {}
+}
diff --git a/gz-wxparty/pages/orderConfirm/index.wxml b/gz-wxparty/pages/orderConfirm/index.wxml
new file mode 100644
index 0000000..0e00df5
--- /dev/null
+++ b/gz-wxparty/pages/orderConfirm/index.wxml
@@ -0,0 +1,62 @@
+<!--预约确认-->
+<common-page safeBottom="true">
+ <view class="card">
+ <view class="cell2">
+ <view class="cell-title-placeholder">预约时间</view>
+ <view>{{ data.meetInfo.orderStartTime || '-' }} ~ {{ data.meetInfo.orderEndTime || '-' }}</view>
+ </view>
+ <view class="cell2 cell-noPadding">
+ <view class="cell-title-placeholder">预约地点</view>
+ <view>{{ data.meetInfo.meetAddr || '-' }}</view>
+ </view>
+ <view class="cell2 cell-noPadding">
+ <view class="cell-title-placeholder">预约方式</view>
+ <view>{{ data.meetInfo.meetWayName || '-' }}</view>
+ </view>
+ <view class="cell2 cell-noPadding">
+ <view class="cell-title-placeholder">线上{{ pageType === '1' ? '调解' : '司法确认' }}房间号</view>
+ <view>{{ data.meetInfo.roomNo || '-' }}</view>
+ </view>
+ <view class="cell2 cell-noPadding">
+ <view class="cell-title-placeholder">预约说明</view>
+ <view>{{ data.meetInfo.meetAddr || '-' }}</view>
+ </view>
+ </view>
+ <view class="card" wx:if="{{ !editVisible }}">
+ <view class="cell2">
+ <view class="cell-title-placeholder">我将</view>
+ <view>{{ data.meetInfo.fixStatus === '2' ? '按时参与' : '无法参与' }}</view>
+ </view>
+ <view class="cell2 cell-noPadding" wx:if="{{ data.meetInfo.fixStatus !== '2' }}">
+ <view class="cell-title-placeholder">理由说明</view>
+ <view>{{ data.meetInfo.fixContent || '-' }}</view>
+ </view>
+ </view>
+ <view class="card" style="padding-top:0;padding-bottom:0;" wx:else>
+ <view class="orderConfirm-cell">
+ <view class="cell-title">我将</view>
+ <view class="orderConfirm-select">
+ <view style="margin-right:16rpx;">{{ submitData.fixStatus === '2' ? '按时参与' : '无法参与' }}</view>
+ <van-switch bind:change="handleChange" checked="{{ submitData.fixStatus === '2' ? true : false }}" data-key="fixStatus" size="22px" />
+ </view>
+ </view>
+ <view class="cell2 cell-noPadding" wx:if="{{ submitData.fixStatus !== '2' }}">
+ <view class="cell-title">理由说明</view>
+ <van-field
+ autosize="{{ { maxHeight: 88, minHeight: 22 } }}"
+ bind:change="handleChange"
+ border="{{ false }}"
+ custom-style="padding:0;"
+ data-key="fixContent"
+ placeholder="请简要描述您无法参与的理由"
+ placeholder-style="color: rgba(0, 0, 0, 0.5)"
+ type="textarea"
+ value="{{ submitData.fixContent }}"
+ />
+ </view>
+ </view>
+ <view class="orderConfirm-submitButton">
+ <van-button bind:click="handleCickEdit" block type="primary">{{ editVisible ? '提交' : '修改' }}</van-button>
+ <view class="safeHeight" />
+ </view>
+</common-page>
diff --git a/gz-wxparty/pages/orderConfirm/index.wxss b/gz-wxparty/pages/orderConfirm/index.wxss
new file mode 100644
index 0000000..67fe246
--- /dev/null
+++ b/gz-wxparty/pages/orderConfirm/index.wxss
@@ -0,0 +1,32 @@
+/* pages/orderConfirm/index.wxss */
+@import '../../styles/public_components.wxss';
+
+.card {
+ padding: 0 32rpx;
+ background-color: #ffffff;
+ margin: 0 var(--padding-my);
+ border-radius: var(--border-radius-card);
+ margin-top: 24rpx;
+}
+
+.orderConfirm-cell {
+ padding: 24rpx 0;
+ display: flex;
+ height: 44rpx;
+}
+
+.orderConfirm-select {
+ display: flex;
+ flex: 1;
+ justify-content: flex-end;
+}
+
+.orderConfirm-submitButton {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ padding: 32rpx var(--padding-my);
+ background-color: var(--bg-color);
+ z-index: 99;
+}
diff --git a/gz-wxparty/pages/perfectInformation/index.js b/gz-wxparty/pages/perfectInformation/index.js
new file mode 100644
index 0000000..b7bc4bc
--- /dev/null
+++ b/gz-wxparty/pages/perfectInformation/index.js
@@ -0,0 +1,200 @@
+// pages/perfectInformation/index.js
+const $$ = require('../../utils/util');
+
+// 保存信息
+function setUserInfoApi(submitData) {
+ return $$.request({ url: 'paUser/perfectInfo', type: 'post', submitData, service: 'cust' });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ copySubmitData: {}, // 数据复制
+ isCheck: false,
+ data: {
+ submitData: {
+ trueName: '',
+ mobile: '',
+ sex: '09_00003-1',
+ sexName: '男',
+ idcardType: '09_00015-1',
+ idcardTypeName: '身份证',
+ idcard: '',
+ prov: '',
+ provName: '',
+ city: '',
+ cityName: '',
+ area: '',
+ areaName: '',
+ road: '',
+ roadName: '',
+ village: '',
+ villageName: '',
+ addr: '',
+ },
+ popup: {}, // 下拉弹出框数据
+ isCheck: false, // 是否只是查看
+ isImproveData: false, // 是否是完善资料进入,则不显示身份证的修改
+ },
+
+ // 展示弹出层
+ handleShowPopup(e) {
+ this.setData({ popup: e.detail });
+ },
+
+ // 关闭弹出层
+ handleClosePopup() {
+ this.data.popup.visible = false;
+ this.setData({ popup: this.data.popup });
+ },
+
+ // 下拉框确认选择
+ handleConfirmPicker({ detail }) {
+ let type = this.data.popup.type;
+ let value = detail.detail.value;
+ let arr = [];
+ this.data.popup.visible = false;
+ if (type === 'location') {
+ arr = [
+ ['prov', 'provName'],
+ ['city', 'cityName'],
+ ['area', 'areaName'],
+ ['road', 'roadName'],
+ ['village', 'villageName'],
+ ];
+ arr.forEach((x, t) => {
+ this.data.submitData[x[0]] = value[t]?.value || '';
+ this.data.submitData[x[1]] = value[t]?.label || '';
+ });
+ } else {
+ if (type === 'cardType') {
+ arr = ['idcardType', 'idcardTypeName'];
+ } else if (type === 'sex') {
+ arr = ['sex', 'sexName'];
+ }
+ arr.forEach((x, t) => {
+ this.data.submitData[x] = value[t === 0 ? 'value' : 'label'];
+ });
+ }
+ this.setData({ submitData: this.data.submitData, popup: this.data.popup });
+ },
+
+ // form的change
+ handleChange(e) {
+ const { key, value } = e.detail;
+ this.data.submitData[key] = value;
+ this.setData({ submitData: this.data.submitData });
+ },
+
+ // 修改picker的列时触发
+ handleChangeColumns(e) {
+ if (this.data.popup.type === 'location') {
+ let selectData = $$.changeLocation(e, this.selectComponent('#personal-data-dom').location, this.data.popup.selectData);
+ this.setData({ popup: { ...this.data.popup, selectData } });
+ }
+ },
+
+ // 验证
+ checkSubmitData() {
+ if (this.data.submitData.mobile && !$$.mobileRegExp(this.data.submitData.mobile)) {
+ $$.showToast({ title: '请输入正确的手机号码' });
+ return false;
+ }
+ let userInfo = wx.getStorageSync('userInfo');
+ let that = this;
+ if (userInfo.realStatus === '1' && this.data.submitData.trueName !== this.copySubmitData.trueName) {
+ $$.showModal({
+ content: '您修改了姓名,修改后需重新实名认证,是否继续操作?',
+ success: (res) => {
+ if (res.confirm) {
+ userInfo.realStatus = '99';
+ wx.setStorageSync('userInfo', userInfo);
+ that.handleSave();
+ }
+ },
+ });
+ return false;
+ }
+ if (userInfo.realStatus === '1' && this.data.submitData.idcard !== this.copySubmitData.idcard) {
+ $$.showModal({
+ content: '您修改了身份证号码,修改后需重新实名认证,是否继续操作?',
+ success: (res) => {
+ if (res.confirm) {
+ userInfo.realStatus = '99';
+ wx.setStorageSync('userInfo', userInfo);
+ that.handleSave();
+ }
+ },
+ });
+ return false;
+ }
+ that.handleSave();
+ },
+
+ // 保存
+ async handleSave() {
+ $$.showLoading();
+ const res = await setUserInfoApi(this.data.submitData);
+ $$.hideLoading();
+ if (res.type) {
+ $$.showToast({ title: '操作成功', icon: 'success' });
+ let realStatus = wx.getStorageSync('userInfo')?.realStatus;
+ if (realStatus === '99') {
+ $$.showModal({
+ title: '实名认证提醒',
+ content: '检测到您尚未完成实名认证,认证后您将享受到更加完善的调解服务,是否现在前往认证?',
+ cancelText: '暂不认证',
+ confirmText: '前往认证',
+ success: (res) => {
+ if (res.confirm) {
+ wx.navigateTo({
+ url: '../../pages/realNameAuthentication/index?backNum=2',
+ });
+ } else {
+ wx.navigateBack({
+ delta: 1,
+ });
+ }
+ },
+ });
+ } else {
+ await $$.sleep();
+ wx.navigateBack({
+ delta: 1,
+ });
+ }
+ }
+ },
+
+ // 获取个人信息
+ getUserInfo(e) {
+ let data = e.detail || {};
+ let keys = Object.keys(this.data.submitData);
+ keys.forEach((x) => {
+ if (data[x]) {
+ this.data.submitData[x] = data[x];
+ }
+ });
+ if (this.isCheck && this.data.submitData.idcardType === '09_00015-1') {
+ this.data.submitData.idcard = `${this.data.submitData.idcard?.substring(0, 6)}********${this.data.submitData.idcard?.substring(14)}`;
+ }
+ this.setData({ submitData: this.data.submitData });
+ this.copySubmitData = Object.assign({}, this.data.submitData);
+ },
+
+ // 获取手机号码
+ async handleGetPhoneNumber(e) {
+ let phone = await this.selectComponent('#common-page').handleGetPhoneNumber(e.detail);
+ this.data.submitData.mobile = phone;
+ this.setData({ submitData: this.data.submitData });
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.setData({ isCheck: !!options.isCheck, isImproveData: !!options.type });
+ this.isCheck = !!options.isCheck;
+ },
+});
diff --git a/gz-wxparty/pages/perfectInformation/index.json b/gz-wxparty/pages/perfectInformation/index.json
new file mode 100644
index 0000000..78f9995
--- /dev/null
+++ b/gz-wxparty/pages/perfectInformation/index.json
@@ -0,0 +1,6 @@
+{
+ "navigationBarTitleText": "完善资料",
+ "usingComponents": {
+ "personal-data-dom": "../../components/personal-data-dom/index"
+ }
+}
diff --git a/gz-wxparty/pages/perfectInformation/index.wxml b/gz-wxparty/pages/perfectInformation/index.wxml
new file mode 100644
index 0000000..0aa5ec4
--- /dev/null
+++ b/gz-wxparty/pages/perfectInformation/index.wxml
@@ -0,0 +1,28 @@
+<!--完善资料-->
+<wxs module="wxs" src="../../utils/wxs/util.wxs" />
+
+<common-page
+ bind:onCancelPicker="handleClosePopup"
+ bind:onChangePicker="handleChangeColumns"
+ bind:onClosePopup="handleClosePopup"
+ bind:onConfirmPicker="handleConfirmPicker"
+ popup="{{ popup }}"
+ id="common-page"
+>
+ <!-- 表单 -->
+ <personal-data-dom
+ bind:getUserInfo="getUserInfo"
+ bind:handleChange="handleChange"
+ bind:handleGetPhoneNumber="handleGetPhoneNumber"
+ bind:handleShowPopup="handleShowPopup"
+ id="personal-data-dom"
+ isCheck="{{ isCheck }}"
+ submitData="{{ submitData }}"
+ type="perfectInformation"
+ isImproveData="{{ isImproveData }}"
+ />
+ <view class="submit" wx:if="{{ !isCheck }}">
+ <van-button bind:click="handleSave" block type="primary">保存</van-button>
+ <view class="safeHeight" />
+ </view>
+</common-page>
diff --git a/gz-wxparty/pages/perfectInformation/index.wxss b/gz-wxparty/pages/perfectInformation/index.wxss
new file mode 100644
index 0000000..17cf47b
--- /dev/null
+++ b/gz-wxparty/pages/perfectInformation/index.wxss
@@ -0,0 +1,8 @@
+/* pages/perfectInformation/index.wxss */
+.submit {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ padding: var(--padding-my);
+}
diff --git a/gz-wxparty/pages/realNameAuthentication/index.js b/gz-wxparty/pages/realNameAuthentication/index.js
new file mode 100644
index 0000000..0e1203a
--- /dev/null
+++ b/gz-wxparty/pages/realNameAuthentication/index.js
@@ -0,0 +1,184 @@
+// pages/realNameAuthentication/index.js
+const $$ = require('../../utils/util');
+
+// 实名认证
+function realNameAuthenticationApi(submitData) {
+ return $$.request({ url: 'paUser/realAuth', type: 'post', submitData, service: 'cust' });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ backNum: 1, // 如果从完善资料进入则返回两级到个人中心
+ data: {
+ steps: ['完善信息', '刷脸认证'],
+ submitData: {
+ trueName: '',
+ mobile: '',
+ idcardType: '09_00015-1',
+ idcardTypeName: '身份证',
+ idcard: '',
+ prov: '',
+ provName: '',
+ city: '',
+ cityName: '',
+ area: '',
+ areaName: '',
+ road: '',
+ roadName: '',
+ village: '',
+ villageName: '',
+ addr: '',
+ agree: false,
+ },
+ popup: {}, // 下拉弹出框数据
+ },
+
+ // 展示弹出层
+ handleShowPopup(e) {
+ this.setData({ popup: e.detail });
+ },
+
+ // 关闭弹出层
+ handleClosePopup() {
+ this.data.popup.visible = false;
+ this.setData({ popup: this.data.popup });
+ },
+
+ // 下拉框确认选择
+ handleConfirmPicker({ detail }) {
+ let type = this.data.popup.type;
+ let value = detail.detail.value;
+ let arr = [];
+ this.data.popup.visible = false;
+ if (type === 'location') {
+ arr = [
+ ['prov', 'provName'],
+ ['city', 'cityName'],
+ ['area', 'areaName'],
+ ['road', 'roadName'],
+ ['village', 'villageName'],
+ ];
+ arr.forEach((x, t) => {
+ this.data.submitData[x[0]] = value[t]?.value || '';
+ this.data.submitData[x[1]] = value[t]?.label || '';
+ });
+ } else {
+ if (type === 'cardType') {
+ arr = ['idcardType', 'idcardTypeName'];
+ } else if (type === 'sex') {
+ arr = ['sex', 'sexName'];
+ }
+ arr.forEach((x, t) => {
+ this.data.submitData[x] = value[t === 0 ? 'value' : 'label'];
+ });
+ }
+ this.setData({ popup: this.data.popup, submitData: this.data.submitData });
+ },
+
+ // form的change
+ handleChange(e) {
+ const { key, value } = e.detail;
+ this.data.submitData[key] = value;
+ this.setData({ submitData: this.data.submitData });
+ },
+
+ // 修改picker的列时触发
+ handleChangeColumns(e) {
+ if (this.data.popup.type === 'location') {
+ let selectData = $$.changeLocation(e, this.selectComponent('#personal-data-dom').location, this.data.popup.selectData);
+ this.setData({ popup: { ...this.data.popup, selectData } });
+ }
+ },
+
+ // 进行刷脸认证
+ handleRealName() {
+ let submitData = this.data.submitData;
+ let msg = '';
+ if (!submitData.trueName) {
+ msg = '请输入姓名';
+ } else if (!submitData.idcard) {
+ msg = '请输入证件号码';
+ } else if (!$$.mobileRegExp(submitData.mobile)) {
+ msg = '请输入正确的手机号码';
+ } else if (!submitData.agree) {
+ msg = '请勾选确认信息';
+ }
+ if (msg) {
+ $$.showToast({ title: msg });
+ return false;
+ }
+ let that = this;
+ wx.checkIsSupportFacialRecognition({
+ success() {
+ wx.startFacialRecognitionVerify({
+ name: that.data.submitData.trueName,
+ idCardNumber: that.data.submitData.idcard,
+ success() {
+ console.log('识别成功');
+ that.realNameAuthentication();
+ },
+ fail() {
+ $$.showToast({ title: '抱歉!识别失败,请稍后重试' });
+ },
+ });
+ },
+ fail(res) {
+ $$.showToast({ title: '抱歉!请求失败,稍后重试' });
+ },
+ });
+ },
+
+ // 上传实名认证数据
+ async realNameAuthentication() {
+ $$.showLoading();
+ const res = await realNameAuthenticationApi(this.data.submitData);
+ $$.hideLoading();
+ if (res.type) {
+ wx.getStorage({
+ key: 'userInfo',
+ success(res2) {
+ res2.data.realStatus = '1';
+ wx.setStorage({ key: 'userInfo', data: res2.data });
+ },
+ });
+ $$.showToast({ icon: 'success', title: '实名认证成功' });
+ wx.removeStorage({
+ key: 'access_token'
+ });
+ await $$.sleep();
+ wx.navigateBack({
+ delta: this.backNum || 1,
+ });
+ }
+ },
+
+ // 获取个人信息
+ async getUserInfo(e) {
+ let data = e.detail || {};
+ let keys = Object.keys(this.data.submitData);
+ keys.forEach((x) => {
+ if (data[x]) {
+ this.data.submitData[x] = data[x];
+ }
+ });
+ this.setData({ submitData: this.data.submitData });
+ },
+
+ // 获取手机号码
+ async handleGetPhoneNumber(e) {
+ let phone = await this.selectComponent('#common-page').handleGetPhoneNumber(e.detail);
+ this.data.submitData.mobile = phone;
+ this.setData({ submitData: this.data.submitData });
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if (options.backNum) {
+ this.backNum = 2;
+ }
+ },
+});
diff --git a/gz-wxparty/pages/realNameAuthentication/index.json b/gz-wxparty/pages/realNameAuthentication/index.json
new file mode 100644
index 0000000..0c344c4
--- /dev/null
+++ b/gz-wxparty/pages/realNameAuthentication/index.json
@@ -0,0 +1,7 @@
+{
+ "navigationBarTitleText": "实名认证",
+ "usingComponents": {
+ "steps": "../../components/steps/index",
+ "personal-data-dom": "../../components/personal-data-dom/index"
+ }
+}
diff --git a/gz-wxparty/pages/realNameAuthentication/index.wxml b/gz-wxparty/pages/realNameAuthentication/index.wxml
new file mode 100644
index 0000000..6bd275e
--- /dev/null
+++ b/gz-wxparty/pages/realNameAuthentication/index.wxml
@@ -0,0 +1,33 @@
+<!--实名认证-->
+<wxs module="wxs" src="../../utils/wxs/util.wxs" />
+
+<common-page
+ bind:onCancelPicker="handleClosePopup"
+ bind:onChangePicker="handleChangeColumns"
+ bind:onClosePopup="handleClosePopup"
+ bind:onConfirmPicker="handleConfirmPicker"
+ popup="{{ popup }}"
+ id="common-page"
+>
+ <!-- 步骤条 -->
+ <view class="steps">
+ <steps stepsData="{{steps}}" />
+ </view>
+ <!-- 表单 -->
+ <view class="form">
+ <view class="form-title">为了享受更完善的调解服务,请如实完善以下信息</view>
+ <personal-data-dom
+ bind:getUserInfo="getUserInfo"
+ bind:handleChange="handleChange"
+ bind:handleGetPhoneNumber="handleGetPhoneNumber"
+ bind:handleShowPopup="handleShowPopup"
+ id="personal-data-dom"
+ submitData="{{ submitData }}"
+ type="realNameAuthentication"
+ >
+ <van-cell border="{{ false }}">
+ <van-button bind:click="handleRealName" block slot="title" type="primary">进入刷脸认证</van-button>
+ </van-cell>
+ </personal-data-dom>
+ </view>
+</common-page>
diff --git a/gz-wxparty/pages/realNameAuthentication/index.wxss b/gz-wxparty/pages/realNameAuthentication/index.wxss
new file mode 100644
index 0000000..170e41e
--- /dev/null
+++ b/gz-wxparty/pages/realNameAuthentication/index.wxss
@@ -0,0 +1,19 @@
+/* pages/realNameAuthentication/index.wxss */
+.steps {
+ padding: 24rpx 0;
+ background-color: #ffffff;
+}
+
+.form {
+ background-color: #ffffff;
+ margin-top: var(--padding-my);
+}
+
+.form-title {
+ padding: 24rpx var(--padding-my);
+}
+
+.form-text {
+ font-size: 28rpx;
+ color: #646566;
+}
diff --git a/gz-wxparty/pages/register/index.js b/gz-wxparty/pages/register/index.js
new file mode 100644
index 0000000..6ffc318
--- /dev/null
+++ b/gz-wxparty/pages/register/index.js
@@ -0,0 +1,1232 @@
+// pages/register/index.js
+const $$ = require('../../utils/util');
+const app = getApp();
+import Toast from '../../components/vant/toast/toast';
+
+// 获取个人信息
+function getUserInfoApi() {
+ return $$.request({
+ url: 'paUser/getUserInfo',
+ type: 'get',
+ service: 'cust'
+ });
+}
+
+// 获取案件详情
+function getCaseDetailApi(submitData) {
+ return $$.request({
+ url: 'paCaseInfo/getCaseInfo?id=' + submitData,
+ type: 'get',
+ service: 'mediate'
+ });
+}
+
+// 获取保存的草稿案件
+function getDraftCaseApi(type) {
+ return $$.request({
+ url: 'paCaseInfo/listByInputUserAndStatus?inputStatus=' + type,
+ type: 'get',
+ service: 'mediate'
+ });
+}
+
+// 保存草稿 or 保存案件
+function submitCaseApi(submitData) {
+ return $$.request({
+ url: 'paCaseInfo/applyCase',
+ type: 'post',
+ submitData,
+ service: 'mediate'
+ });
+}
+
+// 检查请求中的风险
+function checkCaseClaimRiskApi(submitData) {
+ return $$.request({
+ url: 'guide/checkCaseClaimRisk',
+ type: 'post',
+ submitData,
+ v1: true,
+ service: 'mediate'
+ });
+}
+
+// 获取历史填写过的人员数据
+function getPersonHistoryApi() {
+ return $$.request({
+ url: 'paCaseInfo/pickUser',
+ type: 'get',
+ service: 'mediate'
+ });
+}
+
+//类案推荐缓存
+function getCaseApi(submitData) {
+ return $$.request({
+ url: 'guide/cacheLatjCaseGuide',
+ submitData,
+ type: 'get',
+ v1: true,
+ service: 'mediate'
+ });
+}
+
+//案件特征
+function getFeatureApi(submitData) {
+ return $$.request({
+ url: 'guide/cacheCaseFeature',
+ submitData,
+ type: 'get',
+ v1: true,
+ service: 'mediate'
+ });
+ }
+
+//调解策略及争议焦点
+function getCacheOpenAiCaseGuideList(submitData) {
+ return $$.request({
+ url: 'guide/cacheOpenAiCaseGuideList',
+ submitData,
+ type: 'get',
+ v1: true,
+ service: 'mediate'
+ });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ userInfo: {},
+ location: [], // 省市区等地理资源
+ select: {}, // 下拉框数据
+ goToMaterialSave: false, // 避免跳转到材料上传页面重复保存草稿
+ data: {
+ imgUrl: $$.url.img,
+ steps: [{
+ title: '填写申请',
+ icon: '',
+ activeIcon: 'steps-register-1-active.png'
+ },
+ {
+ title: '预览申请',
+ icon: 'steps-register-2.png',
+ activeIcon: 'steps-register-2-active.png'
+ },
+ {
+ title: '提交申请',
+ icon: 'steps-register-3.png',
+ activeIcon: 'steps-register-3-active.png'
+ },
+ ],
+ titleShow: {
+ '09_01001-1': ['自然人', '姓名', '真实姓名'],
+ '09_01001-2': ['法人', '企业名称', '企业全名', '法定代表人姓名'],
+ '09_01001-3': ['机构代表人', '机构名称', '机构全名', '机构代表人姓名'],
+ }, // 用于判断显示的输入框标题
+ stepsActive: 0, // 步骤条当前下标
+ submitData: {
+ caseDes: '',
+ caseType: '',
+ caseTypeName: '',
+ caseClaim: '',
+ prov: '',
+ provName: '',
+ city: '',
+ cityName: '',
+ area: '',
+ areaName: '',
+ road: '',
+ roadName: '',
+ village: '',
+ villageName: '',
+ addr: '',
+ wantUserId: '',
+ wantUserName: '',
+ wantUnitId: '',
+ wantUnitName: '',
+ plaintiffList: [],
+ defendantList: [],
+ }, // 表单数据
+ materialNum: 0, // 纠纷材料总数量
+ userInfoVisible: false, // 是否采用个人信息更新申请人信息
+ popup: {
+ formtype: '', // 控制在纠纷信息 or 申请人信息 or 被申请人添加数据
+ index: 0, // 如为申请人信息 or 被申请人确认下拉选择此参数为下标
+ }, // 下拉弹出框数据
+ changeVisible: false, // 是否是修改
+ recordingVisible: false, // 录音界面是否显示
+ popupMsg: {
+ show: false,
+ title: '',
+ type: 1,
+ editType: 'add',
+ buttonText: ''
+ }, // 弹窗, type: 1'恢复草稿',2'申请人',3'被申请人', editType: 'add'新增,'edit'修改
+ tipData: {
+ caseList: [].join("\n"),
+ guideList: [],
+ },
+ caseText: '',
+ caseTitle: '',
+ similarity: '',
+ showCase: false,
+ popupSelect: {
+ show: false,
+ data: [],
+ activeIndex: null
+ }, // 选择人员
+ caseCause: [{
+ value: '22_00039-0005',
+ label: '家庭婚姻纠纷',
+ },
+ {
+ value: '22_00039-0004',
+ label: '邻里纠纷',
+ },
+ {
+ value: '22_00039-0019',
+ label: '房屋宅基地纠纷',
+ },
+ {
+ value: '22_00039-0002',
+ label: '合同纠纷',
+ },
+ {
+ value: '22_00039-0020',
+ label: '生产经营纠纷',
+ },
+ {
+ value: '22_00039-0013',
+ label: '损害赔偿纠纷',
+ },
+ {
+ value: '22_00039-0015',
+ label: '山林土地纠纷',
+ },
+ {
+ value: '22_00039-0016',
+ label: '征地纠纷',
+ },
+ {
+ value: '22_00039-0021',
+ label: '环境污染纠纷',
+ },
+ {
+ value: '22_00039-0001',
+ label: '劳动争议纠纷',
+ },
+ {
+ value: '22_00039-0006',
+ label: '道路交通事故纠纷',
+ },
+ {
+ value: '22_00039-0007',
+ label: '医疗纠纷',
+ },
+ {
+ value: '22_00039-0022',
+ label: '物业管理纠纷',
+ },
+ {
+ value: '22_00039-0018',
+ label: '消费纠纷',
+ },
+ {
+ value: '22_00039-0023',
+ label: '旅游纠纷',
+ },
+ {
+ value: '22_00039-0008',
+ label: '知识产权纠纷',
+ },
+ {
+ value: '22_00039-0024',
+ label: '互联网纠纷',
+ },
+ {
+ value: '22_00039-0003',
+ label: '借贷纠纷',
+ },
+ {
+ value: '22_00039-0009',
+ label: '所有权纠纷',
+ },
+ {
+ value: '22_00039-0010',
+ label: '继承纠纷',
+ },
+ {
+ value: '22_00039-0011',
+ label: '人格权纠纷',
+ },
+ {
+ value: '22_00039-0012',
+ label: '股权转让纠纷',
+ },
+ {
+ value: '22_00039-0014',
+ label: '建设用地使用权纠纷',
+ },
+ {
+ value: '22_00039-0017',
+ label: '其他纠纷',
+ },
+ ],
+ },
+
+ //类案推荐展开隐藏
+ _case() {
+ this.setData({
+ showDetail: !this.data.showDetail,
+ })
+ },
+
+
+
+
+ // 身份证ocr
+ handleOCR(e) {
+ let that = this;
+ wx.chooseMedia({
+ count: 1,
+ mediaType: ['image'],
+ success(res2) {
+ const tempFiles = res2.tempFiles[0];
+ $$.showLoading();
+ wx.uploadFile({
+ url: `${$$.baseUrl}${$$.url.sys}/api/v1/fileInfo/wecatRecognition`,
+ filePath: tempFiles.tempFilePath,
+ name: 'file',
+ header: {
+ Authorization: app.globalData.token
+ },
+ complete(res3) {
+ $$.hideLoading();
+ if (res3.errMsg === 'uploadFile:ok') {
+ let {
+ code,
+ data
+ } = JSON.parse(res3.data);
+ if (code == -1) {
+ $$.errorModal({
+ content: '识别失败'
+ });
+ return;
+ }
+ let item = that.data.popupMsg.data;
+ that.data.popupMsg.data.certiNo = data?.ocrResult.certificateNumber;
+ that.data.popupMsg.data[item.perClass === '09_01001-1' ? 'trueName' : 'deputy'] = data?.ocrResult.trueName;
+ that.setData({
+ popupMsg: that.data.popupMsg
+ });
+ }
+ },
+ });
+ },
+ });
+ },
+
+ // 表单修改
+ handleChange(e) {
+ let formtype = e.currentTarget.dataset.formtype,
+ key = e.currentTarget.dataset.key,
+ value = e.detail;
+ if (formtype === 'popupMsg') {
+ // 修改申请人and被申请人的form
+ this.data.popupMsg.data[key] = value;
+ } else {
+ this.data.submitData[key] = value;
+ }
+ this.setData({
+ submitData: this.data.submitData
+ });
+ },
+
+ // 删除意向调解信息
+ handleDeleteWant() {
+ let that = this;
+ $$.showModal({
+ content: '确定删除意向调解信息吗?',
+ success: (res) => {
+ if (res.confirm) {
+ let obj = {
+ wantUserId: '',
+ wantUserName: '',
+ wantUnitId: '',
+ wantUnitName: '',
+ };
+ that.setData({
+ submitData: {
+ ...that.data.submitData,
+ ...obj
+ }
+ });
+ }
+ },
+ });
+ },
+
+ // 下拉框选择确认
+ handleConfirmPicker({
+ detail
+ }) {
+ let type = this.data.popup.type,
+ value = detail.detail.value,
+ arr = [];
+ this.data.popup.visible = false;
+ if (type === 'caseCause') {
+ arr = ['caseType', 'caseTypeName'];
+ arr.forEach((x, t) => {
+ this.data.submitData[x] = value[0][t === 0 ? 'value' : 'label'];
+ });
+ } else if (type === 'location') {
+ arr = [
+ ['prov', 'provName'],
+ ['city', 'cityName'],
+ ['area', 'areaName'],
+ ['road', 'roadName'],
+ ['village', 'villageName'],
+ ];
+ arr.forEach((x, t) => {
+ this.data.submitData[x[0]] = value[t]?.value || '';
+ this.data.submitData[x[1]] = value[t]?.label || '';
+ });
+ }
+ this.setData({
+ popup: this.data.popup,
+ submitData: this.data.submitData
+ });
+ },
+
+ // 多行下拉选择时,省市区选择
+ handleChangeColumns(e) {
+ if (this.data.popup.type === 'location') {
+ let selectData = $$.changeLocation(e, this.location, this.data.popup.selectData);
+ this.setData({
+ popup: {
+ ...this.data.popup,
+ selectData
+ }
+ });
+ }
+ },
+
+ // 下拉框选择开启
+ handleShowPopup(e) {
+ let type = e.currentTarget.dataset.type;
+ let selectData = [];
+ if (type === 'location') {
+ if (this.location.length === 0) {
+ return false;
+ }
+ let selectOption = JSON.parse(JSON.stringify(this.location));
+ let arr = $$.getLocationIndex(this.location, this.data.submitData); // 计算默认的市区县下标
+ selectData = [{
+ values: selectOption,
+ defaultIndex: arr[0]
+ },
+ {
+ values: selectOption[arr[0]].children,
+ defaultIndex: arr[1]
+ },
+ {
+ values: selectOption[arr[0]].children[arr[1]].children || [],
+ defaultIndex: arr[2]
+ },
+ {
+ values: selectOption[arr[0]].children[arr[1]].children[arr[2]].children || [],
+ defaultIndex: arr[3]
+ },
+ ];
+ selectData.forEach((x) => {
+ x.values.forEach((y) => {
+ delete y.children;
+ });
+ });
+ } else {
+ let selectOption = this.select[type];
+ selectData = [{
+ values: selectOption,
+ defaultIndex: 0
+ }];
+ }
+ this.setData({
+ popup: {
+ formtype: e.currentTarget.dataset.formtype,
+ index: e.currentTarget.dataset.index,
+ visible: true,
+ title: e.currentTarget.dataset.title,
+ type: type,
+ selectData: selectData,
+ },
+ });
+ },
+
+ // 关闭下拉框选择
+ handleClosePopup() {
+ this.data.popup.visible = false;
+ this.setData({
+ popup: this.data.popup
+ });
+ },
+
+ // 调解请求输入时额外的需求操作
+ handlecaseClaimFocus() {
+ if (!this.data.submitData.caseClaim) {
+ this.data.submitData.caseClaim = '请求1:';
+ this.setData({
+ submitData: this.data.submitData
+ });
+ }
+ },
+
+ // 点击新增 or 删除 or 修改 申请人或被申请人
+ handleEditParty(e) {
+ let that = this;
+ let formtype = e.currentTarget.dataset.formtype,
+ index = e.currentTarget.dataset.index,
+ edittype = e.currentTarget.dataset.edittype,
+ agent = e.currentTarget.dataset.agent;
+ let type = formtype === 'plaintiffList' ? 2 : 3;
+ if (edittype === 'delete') {
+ // 点击删除
+ $$.showModal({
+ content: '确定删除当前人员信息吗?',
+ success: (res) => {
+ if (res.confirm) {
+ let formtype_ = that.data.popupMsg.type === 2 ? 'plaintiffList' : 'defendantList';
+ let partyIndex = that.data.popupMsg.partyIndex;
+ if (this.data.popupMsg.partyTabActive === '2') {
+ that.data.submitData[formtype_][partyIndex].agent = null;
+ } else {
+ that.data.submitData[formtype_].splice(partyIndex, 1);
+ }
+ that.setData({
+ submitData: that.data.submitData,
+ popupMsg: {
+ show: false
+ }
+ });
+ }
+ },
+ });
+ } else if (edittype === 'edit') {
+ // 点击修改
+ let data = this.data.submitData[formtype][index];
+ this.setData({
+ popupMsg: {
+ show: true,
+ title: formtype === 'plaintiffList' ? '修改申请人' : '修改被申请人',
+ type: type,
+ editType: 'edit',
+ buttonText: '保存信息',
+ partyArr: this.select['personClass'],
+ partyTabActive: agent ? '2' : '1',
+ partyIndex: index,
+ perClassIndex: agent ? 0 : data.perClass === '09_01001-1' ? 0 : data.perClass === '09_01001-2' ? 1 : 2,
+ data: agent ? data.agent : data,
+ },
+ });
+ } else {
+ // 点击增加
+ this.setData({
+ popupMsg: {
+ show: true,
+ title: formtype === 'plaintiffList' ? '增加申请人' : '增加被申请人',
+ type: type,
+ editType: 'add',
+ buttonText: '保存信息',
+ partyArr: this.select['personClass'],
+ partyTabActive: '1', // 当事人代理人tab下标
+ perClassIndex: 0, // 当事人类型下标
+ data: {
+ id: $$.getBusinessId(),
+ perClass: '09_01001-1',
+ perClassName: '自然人',
+ trueName: '',
+ deputy: '',
+ mobile: '',
+ certiNo: '',
+ },
+ },
+ });
+ }
+ },
+
+ // 切换增加弹窗的'1'当事人,'2'代理人
+ handleChangeTab(e) {
+ if (this.data.popupMsg.editType === 'edit') {
+ Toast.fail('不支持修改类型');
+ return false;
+ }
+ this.setData({
+ popupMsg: {
+ ...this.data.popupMsg,
+ partyTabActive: e.detail.name,
+ perClassIndex: 0,
+ partyIndex: 0,
+ data: {
+ ...this.data.popupMsg.data,
+ perClass: '09_01001-1',
+ perClassName: '自然人',
+ trueName: '',
+ deputy: '',
+ mobile: '',
+ certiNo: '',
+ },
+ },
+ });
+ },
+
+ // 切换增加弹窗的人员类型
+ handleChangePerClass(e) {
+ if (this.data.popupMsg.editType === 'edit') {
+ Toast.fail('不支持修改类型');
+ return false;
+ }
+ let value = e.currentTarget.dataset.item;
+ let index = e.currentTarget.dataset.index;
+ let arr = ['perClass', 'perClassName'];
+ arr.forEach((x, t) => {
+ this.data.popupMsg.data[x] = value[t === 0 ? 'value' : 'label'];
+ });
+ this.data.popupMsg.data.trueName = '';
+ this.data.popupMsg.data.deputy = '';
+ this.data.popupMsg.perClassIndex = index;
+ this.setData({
+ popupMsg: this.data.popupMsg
+ });
+ },
+
+ // 选择代理人
+ handleSelectAgent(e) {
+ this.setData({
+ popupMsg: {
+ ...this.data.popupMsg,
+ partyIndex: e.currentTarget.dataset.index,
+ },
+ });
+ },
+
+ // 底部弹窗操作,恢复草稿
+ handleClickPopupMsg() {
+ if (this.data.popupMsg.type === 1) {
+ // 恢复草稿
+ this.setData({
+ materialNum: this.data.popupMsg.submitData.fileSize,
+ userInfoVisible: false,
+ submitData: {
+ ...this.data.submitData,
+ ...this.data.popupMsg.submitData,
+ ...this.data.popupMsg.intentionObj
+ },
+ popupMsg: {
+ show: false
+ },
+ });
+ } else {
+ // 当事人保存
+ let popupMsg = this.data.popupMsg;
+ let data = this.data.popupMsg.data;
+
+ // 信息校验
+ let msg = null;
+ let arr = this.data.submitData[popupMsg.type === 2 ? 'defendantList' : 'plaintiffList'];
+ let arr2 = this.data.submitData[popupMsg.type === 2 ? 'plaintiffList' : 'defendantList'];
+
+ console.log('arr2', arr2);
+ console.log('arr', arr);
+ console.log('data', data);
+ console.log('popupMsg', popupMsg);
+ forEach: for (let t = 0; t < arr.length; t++) {
+ if (arr[t].certiNo === data.certiNo && !!$$.verifyEmpty(data.certiNo)) {
+ msg = '申请人与被申请人不能相同';
+ break forEach;
+ }
+ }
+ forEach: for (let t = 0; t < arr2.length; t++) {
+ if (arr2[t].certiNo === data.certiNo && !!$$.verifyEmpty(data.certiNo) && arr2[t].perClass === data.perClass && t !== popupMsg.partyIndex) {
+ msg = `与${popupMsg.type === 3 ? '被' : ''}申请人不能重复`;
+ break forEach;
+ }
+ }
+ // 被申请人可不需要手机号码,申请人和代理人需要
+ if (
+ (data.mobile && !$$.mobileRegExp(data.mobile) && popupMsg.type === 3) ||
+ (!$$.mobileRegExp(data.mobile) && popupMsg.type === 2) ||
+ (!$$.mobileRegExp(data.mobile) && popupMsg.partyTabActive === '2')
+ ) {
+ msg = '请输入正确的手机号码';
+ }
+ if (!$$.verifyEmpty(data.trueName) || (data.perClass !== '09_01001-1' && !$$.verifyEmpty(data.deputy))) {
+ msg = '请补充' + (popupMsg.type === 3 ? '被' : '') + '申请人方的' + (popupMsg.partyTabActive === '1' ? '当事人' : '代理人') + '信息';
+ }
+ if (popupMsg.partyTabActive === '1') {
+
+ }
+ // 增加申请人的信息
+ // if (!arr2[popupMsg.partyIndex]?.trueName || !arr2[popupMsg.partyIndex]?.mobile) {
+ // msg = '请补充申请人方的当事人信息';
+ // }
+ if (msg) {
+ Toast.fail(msg);
+ return;
+ }
+ if (popupMsg.partyTabActive === '2' && typeof popupMsg.partyIndex !== 'number') {
+ Toast.fail('请选择代理对象');
+ return;
+ }
+ if (popupMsg.partyTabActive === '2' && arr2[popupMsg.partyIndex]?.certiNo === data.certiNo) {
+ Toast.fail('代理人与当事人不能相同');
+ return;
+ }
+
+ let type = popupMsg.type === 2 ? 'plaintiffList' : 'defendantList';
+ if (popupMsg.partyTabActive === '2') {
+ this.data.submitData[type][popupMsg.partyIndex] = {
+ ...this.data.submitData[type][popupMsg.partyIndex]
+ };
+ this.data.submitData[type][popupMsg.partyIndex].agent = {
+ ...this.data.submitData[type][popupMsg.partyIndex].agent,
+ ...data
+ };
+ } else {
+ if (popupMsg.editType === 'add') {
+ this.data.submitData[type] = [...this.data.submitData[type], data];
+ } else {
+ this.data.submitData[type][popupMsg.partyIndex] = {
+ ...this.data.submitData[type][popupMsg.partyIndex],
+ ...data
+ };
+ }
+ }
+ this.setData({
+ submitData: this.data.submitData,
+ popupMsg: {
+ show: false
+ }
+ });
+ }
+ },
+
+ // 关闭底部弹窗
+ handleClosePopupMsg() {
+ if (this.data.popupMsg.type === 1) {
+ this.getUserInfo(this.data.popupMsg.intentionObj);
+ } else {
+ this.setData({
+ popupMsg: {
+ show: false
+ }
+ });
+ }
+ },
+
+ // 关闭选择人员
+ handleVisiblePopupSelect(e) {
+ let type = e.currentTarget.dataset.type;
+ if (type === 'open') {
+ this.getPersonHistory();
+ } else {
+ this.setData({
+ popupSelect: {
+ show: false
+ }
+ });
+ }
+ },
+
+ // 选择人员
+ handleSelectPerson(e) {
+ this.setData({
+ popupSelect: {
+ ...this.data.popupSelect,
+ activeIndex: e.currentTarget.dataset.index
+ }
+ });
+ },
+
+ // 确定历史人员数据填充
+ handleConfirmPerson() {
+ if (typeof this.data.popupSelect.activeIndex !== 'number') {
+ Toast.fail('请选择人员');
+ return;
+ }
+ let data = this.data.popupSelect.data[this.data.popupSelect.activeIndex] || {};
+ this.data.popupMsg.perClassIndex =
+ this.data.popupMsg.partyTabActive === '2' ? 0 : data.perClass === '09_01001-1' ? 0 : data.perClass === '09_01001-2' ? 1 : 2;
+ this.data.popupMsg.data = {
+ ...this.data.popupMsg.data,
+ perClass: data.perClass,
+ perClassName: data.perClassName,
+ trueName: data.trueName,
+ deputy: data.deputy,
+ mobile: data.mobile,
+ certiNo: data.certiNo,
+ };
+ this.setData({
+ popupSelect: {
+ show: false
+ },
+ popupMsg: this.data.popupMsg
+ });
+ },
+
+ // 跳转至材料上传页面
+ handleGoToMaterial() {
+ // 先保存
+ if (this.data.submitData.inputStatus !== '2') {
+ this.goToMaterialSave = true;
+ this.saveCase();
+ }
+ // 获取人员数据保存至全局变量中,方便附件上传页面获取有多少人员
+ let person = [];
+ let arr = ['plaintiffList', 'defendantList'];
+ arr.forEach((y) => {
+ this.data.submitData[y].forEach((x) => {
+ if (x.trueName) {
+ person.push({
+ id: x.id,
+ perClass: x.perClass,
+ perClassName: x.perClassName,
+ trueName: x.trueName,
+ });
+ }
+ if (x.agent && x.agent.trueName) {
+ person.push({
+ agent: true,
+ id: x.agent.id,
+ perClass: x.agent.perClass,
+ perClassName: x.agent.perClassName,
+ trueName: x.agent.trueName,
+ });
+ }
+ });
+ });
+ app.globalData.material.person = person;
+ wx.navigateTo({
+ url: '../../pages/materialShow/index?caseId=' + this.data.submitData.id + '&editVisible=true',
+ });
+ },
+
+ // 下一步 or 上一步
+ handleNext(e) {
+ let type = e.currentTarget.dataset.type;
+ let content = this.data.tipData.guideList.length === 0 ?
+ '请再次仔细核对您的申请信息,确定提交调解申请吗?' :
+ `根据人工智能大数据分析,您的请求可调整为:【${this.data.tipData.guideList}】(以上建议仅供参考),确定提交调解申请吗?`
+ if (type === 'next' && this.data.stepsActive === 0) {
+ // this.checkCaseDetail();
+ this.fengxian();
+ } else if (type === 'next' && this.data.stepsActive === 1) {
+ let that = this;
+ $$.showModal({
+ title: '申请提交确认',
+ content: content,
+ success: (res) => {
+ if (res.confirm) {
+ that.submitCase();
+ }
+ },
+ });
+ } else if (type === 'back' && this.data.stepsActive === 1) {
+ this.setData({
+ stepsActive: 0
+ });
+ }
+ },
+
+ // 校验提交信息的必填项并下一步
+ checkCaseDetail() {
+ let msg = '';
+ let submitData = this.data.submitData;
+ let arr1 = [{
+ key: 'area',
+ title: '纠纷发生地'
+ },
+ {
+ key: 'caseDes',
+ title: '纠纷描述'
+ },
+ {
+ key: 'caseClaim',
+ title: '调解请求'
+ },
+ ];
+ forEach: for (let i = 0; i < arr1.length; i++) {
+ if (!$$.verifyEmpty(submitData[arr1[i].key])) {
+ msg = arr1[i].title;
+ break forEach;
+ }
+ }
+ if (msg) {
+ Toast.fail(msg + '未填写');
+ return false;
+ }
+ if (submitData.plaintiffList.length === 0) {
+ Toast.fail('至少添加一名申请人');
+ return false;
+ }
+ if (submitData.plaintiffList?.length > 0) {
+ if (!submitData.plaintiffList[0].trueName) {
+ Toast.fail('至少添加一名申请人');
+ return false;
+ }
+ }
+ if (submitData.defendantList.length === 0) {
+ Toast.fail('至少添加一名被申请人');
+ return false;
+ }
+ if (submitData.defendantList?.length > 0) {
+ if (!submitData.defendantList[0].trueName) {
+ Toast.fail('至少添加一名申请人');
+ return false;
+ }
+ }
+ if (msg) {
+ Toast.fail(msg);
+ return false;
+ }
+ // this.fengxian();
+ this.setData({
+ stepsActive: 1
+ });
+ },
+
+ // 返回首页
+ handleGoHomepage() {
+ if (this.data.changeVisible) {
+ wx.navigateBack({
+ delta: 1,
+ });
+ return false;
+ }
+ wx.reLaunch({
+ url: '../../pages/homePage/index',
+ });
+ },
+
+ // 录音组件开启 and 关闭触发
+ handleVisibleRecording(e) {
+ this.setData({
+ recordingVisible: !this.data.recordingVisible
+ });
+ },
+
+ // 获取录音转写的文字
+ handleGetWords(e) {
+ let key = e.currentTarget.dataset.type;
+ let value = e.detail;
+ if (key === 'caseDes') {
+ this.data.submitData[key] = this.data.submitData[key] + value;
+ this.setData({
+ submitData: this.data.submitData,
+ recordingVisible: !this.data.recordingVisible
+ });
+ } else {
+ if (!this.data.submitData.caseClaim) {
+ this.data.submitData[key] = '请求1:' + value;
+ } else {
+ this.data.submitData[key] = this.data.submitData[key] + value;
+ }
+ this.setData({
+ submitData: this.data.submitData,
+ recordingVisible: !this.data.recordingVisible
+ });
+ }
+ },
+
+ // 退出页面保存草稿前判断,如果地址没有更改则不需要保存。
+ handleCheckSave() {
+ if (this.data.popupMsg.type === 1 && this.data.popupMsg.show) {
+ // 恢复草稿弹窗时退出不保存
+ return;
+ }
+ if (this.goToMaterialSave || this.data.stepsActive !== 0 || this.data.submitData.inputStatus === '2') {
+ // 跳转纠纷材料 || 不在第一步骤 || 修改时则不保存
+ this.goToMaterialSave = false;
+ return;
+ }
+ // 地址变动后保存草稿
+ let save = false;
+ if (['prov', 'city', 'area', 'road', 'village'].map((x) => this.data.submitData[x]).join('') !== this.userInfo.address) save = true;
+ let arr = ['caseDes', 'caseType', 'caseTypeName', 'caseClaim', 'addr', 'wantUserId', 'wantUserName', 'wantUnitId', 'wantUnitName'];
+ arr.forEach((x) => {
+ if ($$.verifyEmpty(this.data.submitData[x])) save = true;
+ });
+ if (this.data.submitData['plaintiffList'].length > 1 || this.data.submitData['defendantList'].length > 0) {
+ save = true;
+ }
+ if (save) {
+ this.saveCase();
+ }
+ },
+
+ async fengxian() {
+ let that = this;
+ $$.showLoading();
+ let submitData = this.data.submitData;
+ const res = await checkCaseClaimRiskApi({
+ caseDes: submitData.caseDes,
+ caseClaim: submitData.caseClaim,
+ caseTypeName: submitData.caseTypeName,
+ });
+ $$.hideLoading();
+ if (res.type) {
+ if (res.data?.case_risk_claims || res.data?.guide_risk_claims) {
+ if (res.data?.case_risk_claims.length && res.data?.guide_risk_claims.length) {
+ let caseList = res.data?.case_risk_claims;
+ let guideList = res.data?.guide_risk_claims;
+ let caseText = res.data?.caseText;
+ let caseTitle = res.data?.caseTitle;
+ let similarity = res.data?.similarity;
+ if (!this.data.tipData.guideList || JSON.stringify(this.data.tipData.guideList) !== JSON.stringify(guideList)) {
+ this.setData({
+ 'tipData.guideList': guideList,
+ 'tipData.caseList': caseList,
+ caseText: caseText,
+ caseTitle: caseTitle,
+ similarity: similarity,
+ showCase: true,
+ });
+ } else {
+ this.checkCaseDetail();
+ }
+ that.setData({
+ tipData: {
+ caseList,
+ guideList
+ }
+ })
+ } else {
+ this.setData({
+ 'tipData.guideList': [],
+ 'tipData.caseList': [],
+ });
+ this.checkCaseDetail();
+ }
+ }
+ }
+ },
+
+ // 上传案件
+ async submitCase() {
+ $$.showLoading();
+ let submitData = this.data.submitData;
+ submitData.inputStatus = '2';
+ submitData.process = null;
+ const res = await submitCaseApi(submitData);
+ $$.hideLoading();
+ if (res.type) {
+ if (this.data.changeVisible) {
+ // 用于当“我的调解”页面等其他页面进入修改时,修改后返回更新数据凭证
+ app.globalData.caseMsg.handleVisible = true;
+ }
+ this.setData({
+ stepsActive: 2
+ });
+ let caseId = res.data;
+ // 在这里调用接口
+ // getCaseApi({
+ // caseId,
+ // start_page_num: '0',
+ // end_page_num: '100'
+ // });
+ // getFeatureApi({
+ // caseId,
+ // })
+ // getCacheOpenAiCaseGuideList({
+ // caseId,
+ // guideTypes: '5,6'
+ // })
+ }
+ },
+
+ // 保存草稿
+ async saveCase() {
+ let submitData = this.data.submitData;
+ submitData.inputStatus = '1';
+ const res = await submitCaseApi(submitData);
+ if (res.type) {
+ console.log('保存成功');
+ }
+ },
+
+ // 修改案件 时 获取案件信息
+ async getCaseData(caseId, changeVisible) {
+ $$.showLoading();
+ const res = await getCaseDetailApi(caseId);
+ $$.hideLoading();
+ if (res.type) {
+ this.setData({
+ materialNum: res.data.fileSize,
+ userInfoVisible: false,
+ submitData: res.data,
+ changeVisible: changeVisible,
+ });
+ }
+ },
+
+ // 获取当前页面是否存在草稿
+ async getDraftCase(options) {
+ let intentionObj = {};
+ if (options.type) {
+ // 找他调页面跳转进入赋值意向调解信息
+ let arr = [];
+ if (options.type === '1') {
+ arr = ['wantUserId', 'wantUserName'];
+ } else {
+ arr = ['wantUnitId', 'wantUnitName'];
+ }
+ intentionObj[arr[0]] = options.id;
+ intentionObj[arr[1]] = options.name;
+ }
+ $$.showLoading();
+ const res = await getDraftCaseApi('1');
+ if (res.type) {
+ if (res.data?.id) {
+ $$.hideLoading();
+ this.userInfo = {
+ address: ['prov', 'city', 'area', 'road', 'village'].map((x) => res.data[x]).join('')
+ };
+ this.setData({
+ popupMsg: {
+ show: true,
+ title: '恢复草稿',
+ buttonText: '恢复草稿',
+ type: 1,
+ intentionObj,
+ submitData: res.data
+ }
+ });
+ } else {
+ this.getUserInfo(intentionObj);
+ }
+ } else {
+ this.getUserInfo(intentionObj);
+ }
+ },
+
+ // 获取个人信息,填充个人信息材料至第一个申请人处,如有草稿则不执行
+ async getUserInfo(intentionObj) {
+ let obj = {},
+ locationObj = {};
+ const res = await getUserInfoApi();
+ $$.hideLoading();
+ if (res.type) {
+ this.data.userInfoVisible = true;
+ obj = {
+ trueName: res.data.trueName || '',
+ certiNo: res.data.idcard || '',
+ mobile: res.data.mobile || '',
+ address: ['prov', 'city', 'area', 'road', 'village'].map((x) => res.data[x]).join(''),
+ };
+ ['prov', 'provName', 'city', 'cityName', 'area', 'areaName', 'road', 'roadName', 'village', 'villageName'].forEach((x) => {
+ locationObj[x] = res.data[x] || '';
+ });
+ }
+ this.data.submitData.plaintiffList[0] = {
+ perClass: '09_01001-1',
+ perClassName: '自然人',
+ id: $$.getBusinessId(),
+ ...obj
+ };
+ this.userInfo = obj;
+ this.setData({
+ userInfoVisible: this.data.userInfoVisible,
+ submitData: {
+ ...this.data.submitData,
+ ...intentionObj,
+ ...locationObj,
+ id: $$.getBusinessId()
+ },
+ popupMsg: {
+ show: false
+ },
+ });
+ },
+
+ // 获取选择人员
+ async getPersonHistory() {
+ $$.showLoading();
+ const res = await getPersonHistoryApi();
+ $$.hideLoading();
+ if (res.type) {
+ this.setData({
+ popupSelect: {
+ show: true,
+ data: res.data || []
+ }
+ });
+ }
+ },
+
+ // 请求下拉框资源
+ async getSelectOptionData() {
+ const res = await $$.commonRequest({
+ url: `${$$.url.assets}selectOption.json`,
+ type: 'get'
+ });
+ if (res) {
+ this.select.cardType = res.data.cardType || [];
+ this.select.caseCause = this.data.caseCause || [];
+ this.select.personClass = res.data.personClass || [];
+ }
+ },
+
+ // 获取省市区等地理资源
+ async getLocationData() {
+ $$.showLoading();
+ const res = await $$.commonRequest({
+ url: `${$$.url.assets}locationSelect.json`,
+ type: 'get'
+ });
+ $$.hideLoading();
+ if (res) {
+ let location = [];
+ $$.province.forEach((x) => {
+ location.push(res[x][0]);
+ });
+ this.location = location;
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.getLocationData();
+ this.getSelectOptionData();
+ if (options.change) {
+ this.getCaseData(options.caseId, true);
+ } else {
+ this.getDraftCase(options);
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ if (app.globalData.material.data.length !== 0) {
+ // 计算附件数量
+ let num = 0;
+ app.globalData.material.data.forEach((x) => {
+ num = num + x.num;
+ });
+ app.globalData.material.data = [];
+ this.setData({
+ materialNum: num
+ });
+ }
+ },
+
+ onHide: function () {
+ this.handleCheckSave();
+ },
+
+ onUnload: function () {
+ this.handleCheckSave();
+ },
+});
\ No newline at end of file
diff --git a/gz-wxparty/pages/register/index.json b/gz-wxparty/pages/register/index.json
new file mode 100644
index 0000000..6d51ca3
--- /dev/null
+++ b/gz-wxparty/pages/register/index.json
@@ -0,0 +1,9 @@
+{
+ "navigationBarTitleText": "申请调解",
+ "usingComponents": {
+ "steps": "../../components/steps/index",
+ "mediate-detail": "../../components/mediate-detail/index",
+ "recording": "../../components/recording/index",
+ "ellipsis-text": "../../components/ellipsis-text/index"
+ }
+}
diff --git a/gz-wxparty/pages/register/index.wxml b/gz-wxparty/pages/register/index.wxml
new file mode 100644
index 0000000..f620ca7
--- /dev/null
+++ b/gz-wxparty/pages/register/index.wxml
@@ -0,0 +1,351 @@
+<!--申请调解-->
+<page-meta page-style="{{ popup.visible || recordingVisible || popupMsg.show ? 'overflow: hidden;' : '' }}" />
+
+<wxs module="wxs" src="../../utils/wxs/util.wxs" />
+
+<van-toast id="van-toast" />
+
+<common-page bind:onCancelPicker="handleClosePopup" bind:onChangePicker="handleChangeColumns" bind:onClosePopup="handleClosePopup" bind:onConfirmPicker="handleConfirmPicker" popup="{{ popup }}">
+ <!-- 步骤条 -->
+ <view class="steps">
+ <steps stepsActive="{{ stepsActive }}" stepsData="{{ steps }}" stepsType="picture" />
+ </view>
+ <!-- 未提交前 -->
+ <block wx:if="{{ stepsActive !== 2 }}">
+ <!-- 填写申请 -->
+ <block wx:if="{{ stepsActive === 0 }}">
+ <!-- 意向调解组织 or 意向调解员 -->
+ <view class="card" style="background: linear-gradient(95deg,rgba(173,198,255,0.50) 0%, rgba(214,228,255,0.80) 4%, rgba(214,228,255,0.55) 100%)" wx:if="{{ submitData.wantUserId || submitData.wantUnitId }}">
+ <view class="cell">
+ <view class="cell-title">意向{{ submitData.wantUserId ? '调解员' : '调解组织' }}</view>
+ <view class="cell-select">{{ submitData.wantUserId ? submitData.wantUserName : submitData.wantUnitName }}</view>
+ <view bind:tap="handleDeleteWant" class="wantUser-delete second-font">删除</view>
+ </view>
+ </view>
+ <!-- 纠纷信息 -->
+ <view class="card" style="padding-bottom:32rpx">
+ <view bindtap="handleShowPopup" class="cell" data-title="纠纷发生地" data-type="location">
+ <view class="cell-title">
+ 纠纷发生地
+ <text class="cell-required">(必填)</text>
+ </view>
+ <view class="{{ !submitData.prov ? 'cell-placeholder' : '' }} cell-select">{{ submitData.prov ? wxs.showLocation(submitData) : '未选择' }}</view>
+ <view class="cell-arrow">
+ <van-icon name="arrow" />
+ </view>
+ </view>
+ <view class="cell2 cell-noPadding">
+ <view class="cell-title-line">纠纷发生地详址</view>
+ <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0;" data-key="addr" placeholder="填写后优先推荐附近的调解组织" value="{{ submitData.addr }}" />
+ </view>
+ <view bindtap="handleShowPopup" class="cell cell-noPadding" data-title="纠纷类型" data-type="caseCause">
+ <view class="cell-title">纠纷类型</view>
+ <view class="{{ !submitData.caseTypeName ? 'cell-placeholder' : '' }} cell-select">{{ submitData.caseTypeName ? submitData.caseTypeName : '未选择' }}</view>
+ <view class="cell-arrow">
+ <van-icon name="arrow" />
+ </view>
+ </view>
+ <block>
+ <view class="cell2 cell-noPadding">
+ <view class="cell-title-line">
+ 纠纷描述
+ <text class="cell-required">(必填)</text>
+ </view>
+ <van-field autosize="{{ { maxHeight: 88, minHeight: 22 } }}" bind:change="handleChange" border="{{ false }}" custom-style="padding:0;" data-key="caseDes" placeholder="请简要描述纠纷发生的时间、地点及经过" type="textarea" value="{{ submitData.caseDes }}" />
+ <!-- <view class="case">
+ <view class="img-case_2">
+ <image src="/img/case_1.png" class="img1"></image>
+ </view>
+ <view>您在纠纷描述中提到了租赁合同,但您并未上传对应材料,请核实并补充对应材料。</view>
+ </view> -->
+ </view>
+ <recording bind:getwords="handleGetWords" bind:onVisible="handleVisibleRecording" data-type="caseDes" />
+ </block>
+ <block>
+ <view class="cell2">
+ <view class="cell-title-line">
+ 调解请求
+ <text class="cell-required">(必填)</text>
+ </view>
+ <van-field autosize="{{ { maxHeight: 88, minHeight: 22 } }}" bind:change="handleChange" bind:focus="handlecaseClaimFocus" border="{{ false }}" custom-style="padding:0;" data-key="caseClaim" placeholder="请逐条描述您的调解请求,如请求1...请求2..." placeholder-style="color: rgba(0, 0, 0, 0.5)" type="textarea" value="{{ submitData.caseClaim }}" />
+ <view wx:if="{{tipData.caseList.length}}" class="case">
+ <view style="display:'flex'">
+ <view class="img-case_2">
+ <image src="/img/case_1.png" class="img1"></image>
+ <view>请参考类案中的请求:</view>
+ </view>
+ <view>
+ 可能不合理或不完整的请求:
+ </view>
+ <view style="white-space: pre-line;" data-index="{{ index }}" data-item="{{ item }}" wx:for="{{tipData.caseList}}" wx:key="index">{{item}}
+ </view>
+ <view>
+ 类案中的请求:
+ </view>
+ <view data-index="{{ index }}" data-item="{{ item }}" wx:for="{{tipData.guideList}}" wx:key="index">{{item}}
+ </view>
+ </view>
+ </view>
+ <block wx:if="{{showCase}}">
+ <view class="caseBox-content" catch:tap="_case">
+ <view class="caseBox-dot">类案</view>
+ <!--【相似度80.3%】黑山县刘某某与张某某黑山县刘某某与张某某黑山县刘某某与张某某-->
+ <view class="caseBox-Item">{{similarity}}{{caseText}}</view>
+ <view class="caseBox-arrow">
+ <van-icon name="arrow-down" size="8" wx:if="{{showDetail}}" />
+ <van-icon name="arrow-up" size="8" wx:else />
+ </view>
+
+ </view>
+ <view wx:if="{{showDetail}}">
+ <view style="display:flex;font-size:12px;justify-content: center;">{{caseTitle}}</view>
+ <view style="background-color: #fff;font-size: 12px;display: flex;">{{caseText}}</view>
+ </view>
+
+ </block>
+ </view>
+ <recording bind:getwords="handleGetWords" bind:onVisible="handleVisibleRecording" data-type="caseClaim" />
+ </block>
+ </view>
+ <!-- 申请/被申请人信息 -->
+ <view class="card" style="padding:16rpx 16rpx 16rpx 32rpx;">
+ <!-- 申请人 -->
+ <block wx:for="{{ submitData.plaintiffList }}" wx:key="index">
+ <view class="party">
+ <view class="party-img party-img-shen">申请</view>
+ <view bind:tap="handleEditParty" class="party-content" data-edittype="edit" data-formtype="plaintiffList" data-index="{{index}}">
+ <view class="party-content-title">
+ <view class="party-content-title-name">
+ <ellipsis-text content="{{ item.trueName }}" />
+ </view>
+ <view class="party-content-title-phone">{{ item.mobile }}</view>
+ </view>
+ <view class="party-content-subTitle">
+ <ellipsis-text content="{{ titleShow[item.perClass][0] }}{{ item.deputy ? ' | ' : '' }}{{ item.deputy || '' }}{{ item.certiNo ? ' | ' : '' }}{{ item.certiNo || '' }}" fontsize="24" />
+ </view>
+ </view>
+ <view bind:tap="handleEditParty" class="party-add second-font" data-formtype="plaintiffList">增加</view>
+ </view>
+ <!-- 代理人 -->
+ <view class="party" wx:if="{{ !!item.agent }}">
+ <view class="party-img party-img-shen">申请</view>
+ <view bind:tap="handleEditParty" class="party-content" data-agent="{{true}}" data-edittype="edit" data-formtype="plaintiffList" data-index="{{index}}">
+ <view class="party-content-title">
+ <view class="party-content-title-name">
+ <ellipsis-text content="{{ item.agent.trueName }}" />
+ </view>
+ <view class="party-content-title-phone">{{ item.agent.mobile }}</view>
+ <view class="tag tag-cyan" style="margin-left:12rpx">代理人</view>
+ </view>
+ <view class="party-content-subTitle">
+ <ellipsis-text content="代理对象 | {{ item.trueName }}" fontsize="24" />
+ </view>
+ </view>
+ <view bind:tap="handleEditParty" class="party-add second-font" data-formtype="plaintiffList">增加</view>
+ </view>
+ </block>
+ <!-- 新增申请人button -->
+ <block wx:if="{{ submitData.plaintiffList.length === 0 }}">
+ <view class="party">
+ <view class="party-img party-img-shen">申请</view>
+ <view class="party-noneAdd">
+ <van-button bind:click="handleEditParty" block custom-style="border: 2rpx dashed rgba(0,0,0,0.20)" data-formtype="plaintiffList" icon="{{ imgUrl }}register-add-party.png">增加申请人信息</van-button>
+ </view>
+ </view>
+ </block>
+ <!-- 被申请人 -->
+ <block wx:for="{{ submitData.defendantList }}" wx:key="index">
+ <view class="party">
+ <view class="party-img party-img-bei">被申</view>
+ <view bind:tap="handleEditParty" class="party-content" data-edittype="edit" data-formtype="defendantList" data-index="{{index}}">
+ <view class="party-content-title">
+ <view class="party-content-title-name">
+ <ellipsis-text content="{{ item.trueName }}" />
+ </view>
+ <view class="party-content-title-phone">{{ item.mobile }}</view>
+ </view>
+ <view class="party-content-subTitle">
+ <ellipsis-text content="{{ titleShow[item.perClass][0] }}{{ item.deputy ? ' | ' : '' }}{{ item.deputy || '' }}{{ item.certiNo ? ' | ' : '' }}{{ item.certiNo || '' }}" fontsize="24" />
+ </view>
+ </view>
+ <view bind:tap="handleEditParty" class="party-add second-font" data-formtype="defendantList">增加</view>
+ </view>
+ <!-- 代理人 -->
+ <view class="party" wx:if="{{ !!item.agent }}">
+ <view class="party-img party-img-bei">被申</view>
+ <view bind:tap="handleEditParty" class="party-content" data-agent="{{true}}" data-edittype="edit" data-formtype="defendantList" data-index="{{index}}">
+ <view class="party-content-title">
+ <view class="party-content-title-name">
+ <ellipsis-text content="{{ item.agent.trueName }}" />
+ </view>
+ <view class="party-content-title-phone">{{ item.agent.mobile }}</view>
+ <view class="tag tag-orange" style="margin-left:12rpx">代理人</view>
+ </view>
+ <view class="party-content-subTitle">
+ <ellipsis-text content="代理对象 | {{ item.trueName }}" fontsize="24" />
+ </view>
+ </view>
+ <view bind:tap="handleEditParty" class="party-add second-font" data-formtype="defendantList">增加</view>
+ </view>
+ </block>
+ <!-- 新增被申请人button -->
+ <block wx:if="{{ submitData.defendantList.length === 0 }}">
+ <view class="party">
+ <view class="party-img party-img-bei">被申</view>
+ <view class="party-noneAdd">
+ <van-button bind:click="handleEditParty" block custom-style="border: 2rpx dashed rgba(0,0,0,0.20)" data-formtype="defendantList" icon="{{ imgUrl }}register-add-party.png">增加被申请人信息</van-button>
+ </view>
+ </view>
+ </block>
+ </view>
+ <!-- 纠纷材料 -->
+ <view class="card">
+ <view bindtap="handleGoToMaterial" class="cell" data-title="纠纷发生地" data-type="location">
+ <view class="cell-title">纠纷材料</view>
+ <view class="{{ !materialNum ? 'cell-placeholder' : '' }} cell-select">{{ materialNum ? materialNum + '份资料' : '未上传' }}</view>
+ <view class="cell-arrow">
+ <van-icon name="arrow" />
+ </view>
+ </view>
+ </view>
+ </block>
+ <!-- 核实申请 -->
+ <block wx:if="{{ stepsActive === 1 }}">
+ <mediate-detail caseData="{{ submitData }}" materialNum="{{ materialNum }}" pageType="3" />
+ </block>
+ <!-- 隔离出下层固定dom的高度便于page滚动 -->
+ <view class="height-none" catch:tap="_searchCase" />
+ <!-- 按钮 -->
+ <view class="submitButton" catch:tap="">
+ <view style="margin-right: 48rpx;" wx:if="{{ stepsActive === 1 }}">
+ <van-button bind:click="handleNext" block custom-class="btn" custom-style="width:240rpx;" data-type="back" type="default">修改</van-button>
+ </view>
+ <view style="flex: 1;">
+ <van-button bind:click="handleNext" block data-type="next" type="primary">{{ stepsActive === 1 ? '提交' : '预览申请' }}</van-button>
+ <view class="safeHeight" />
+ </view>
+ </view>
+ </block>
+ <!-- 已提交 -->
+ <block wx:else>
+ <view class="success">
+ <van-icon color="#07c160" name="checked" size="106rpx" />
+ <view class="success-title">申请已经提交</view>
+ <view class="success-subTitle">可通过小程序首页<navigator class="success-link" style="display: inline;" url="/pages/myMediate/index">我的调解</navigator>功能跟进调解进度</view>
+ <view class="success-NewButton">
+ <view class="success-RedButton">
+ <navigator url="/pages/myMediate/index" style="color: #fff;font-size: 14px;">我的调解</navigator>
+ </view>
+ </view>
+ <view>
+ <navigator class="success-link" style="display: inline;" url="/pages/homePage/index">返回首页</navigator>
+ </view>
+ <!-- <view class="success-button">
+ <van-button bind:click="handleGoHomepage" custom-class="btn btn-white" type="primary">{{ changeVisible ? '返回我的调解' : '返回首页' }}</van-button>
+ </view> -->
+ </view>
+ </block>
+ <!-- 消息提醒 and 新增当事人form -->
+ <van-popup bind:close="handleClosePopupMsg" closeable custom-style="background-color:{{ popupMsg.partyTabActive === '1' ? '#e5e5e5' : '#ffffff'}}" position="bottom" round show="{{ popupMsg.show }}" title="{{ popupMsg.title || '' }}" zIndex="999">
+ <view class="popupMsg-draft" wx:if="{{ popupMsg.type === 1 }}">检测到存在过往草稿申请记录,是否为您恢复?</view>
+ <!-- 新增当事人form -->
+ <view class="popupMsg" wx:else>
+ <view class="popupMsg-tab" style="padding-bottom:{{ popupMsg.partyTabActive === '2' ? 0 : undefind }}" wx:if="{{ popupMsg.partyTabActive }}">
+ <van-tabs active="{{ popupMsg.partyTabActive }}" bind:click="handleChangeTab" disabled="{{ popupMsg.editType === 'edit' ? true : false }}" line-width="54rpx" nav-class="{{ popupMsg.partyTabActive === '1' ? 'popupMsg-nav-class' : 'popupMsg-nav-class2'}}" tab-active-class="tab-active-class">
+ <van-tab name="1" title="当事人" />
+ <van-tab name="2" title="代理人" />
+ </van-tabs>
+ </view>
+ <view class="popupMsg-tab-card" wx:if="{{ popupMsg.partyTabActive === '1' }}">
+ <view bind:tap="handleChangePerClass" class="popupMsg-tab-card-item {{ popupMsg.data.perClass === item.value ? 'popupMsg-tab-card-item-active' : '' }}" data-index="{{ index }}" data-item="{{ item }}" wx:for="{{ popupMsg.partyArr }}" wx:key="index">
+ <view class="popupMsg-tab-card-item-bg" style="border-bottom-left-radius:{{ index === popupMsg.perClassIndex + 1 ? '20rpx' : '0' }};border-bottom-right-radius:{{ index === popupMsg.perClassIndex - 1 ? '20rpx' : '0' }};">{{ item.label }}</view>
+ </view>
+ </view>
+ <view class="popupMsg-form">
+ <view class="cell">
+ <view class="cell-title">
+ {{ titleShow[popupMsg.data.perClass][1] }}
+ <text class="cell-required">(必填)</text>
+ </view>
+ <view class="cell-select">
+ <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-formtype="popupMsg" data-key="trueName" input-align="right" placeholder="请输入{{ titleShow[popupMsg.data.perClass][2] }}" value="{{ popupMsg.data.trueName || '' }}" />
+ </view>
+ <view bind:tap="handleVisiblePopupSelect" class="popupMsg-check" data-type="open">选择</view>
+ </view>
+ <view class="cell cell-noPadding" wx:if="{{ popupMsg.data.perClass !== '09_01001-1' && popupMsg.partyTabActive === '1' }}">
+ <view class="cell-title">
+ {{ titleShow[popupMsg.data.perClass][3] }}
+ <text class="cell-required">(必填)</text>
+ </view>
+ <view class="cell-select">
+ <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-formtype="popupMsg" data-key="deputy" input-align="right" placeholder="请输入真实姓名" value="{{ popupMsg.data.deputy || '' }}" />
+ </view>
+ </view>
+ <view class="cell cell-noPadding">
+ <view class="cell-title">
+ 手机号码
+ <text wx:if="{{ popupMsg.type === 2 || popupMsg.partyTabActive === '2' }}" class="cell-required">(必填)</text>
+ </view>
+ <view class="cell-select">
+ <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-formtype="popupMsg" data-key="mobile" input-align="right" placeholder="请输入常用的手机号码" value="{{ popupMsg.data.mobile || '' }}" />
+ </view>
+ </view>
+ <view class="cell cell-noPadding">
+ <view class="cell-title">身份证号码</view>
+ <view class="cell-select">
+ <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-formtype="popupMsg" data-key="certiNo" input-align="right" placeholder="根据调解实名规定,需要填写此项" value="{{ popupMsg.data.certiNo || '' }}" />
+ </view>
+ </view>
+ </view>
+ <view class="popupMsg-ocrButton">
+ <van-button bind:click="handleOCR" block color="#F2F2F2" custom-style="color:rgba(0,0,0,85)" icon="{{ imgUrl }}camera.png" type="primary">拍照识别身份证</van-button>
+ </view>
+ <!-- 代理对象 -->
+ <view class="popupMsg-agent" wx:if="{{ popupMsg.partyTabActive === '2' }}">
+ <view class="cell-title">
+ 代理对象
+ <text class="cell-required">(必填)</text>
+ </view>
+ <view class="popupMsg-agent-content">
+ <view bind:tap="handleSelectAgent" class="popupMsg-agent-item {{ index === popupMsg.partyIndex ? 'popupMsg-agent-item-active' : '' }}" data-index="{{ index }}" wx:for="{{ submitData[popupMsg.type === 2 ? 'plaintiffList' : 'defendantList' ] }}" wx:if="{{ !!item.trueName }}" wx:key="index">
+ <view>{{ item.trueName || '无' }}</view>
+ <van-icon name="success" wx:if="{{ index === popupMsg.partyIndex }}" />
+ </view>
+ <block wx:if="{{ submitData[popupMsg.type === 2 ? 'plaintiffList' : 'defendantList' ].length === 0 }}">
+ <van-empty class="popupMsg-agent-none" description="尚未添加当事人" />
+ </block>
+ </view>
+ </view>
+ </view>
+ <view class="popupMsg-button">
+ <view style="margin-right:48rpx" wx:if="{{ popupMsg.editType === 'edit' }}">
+ <van-button bind:click="handleEditParty" block custom-class="btn btn-white" custom-style="width:240rpx;background-color:#f2f2f2;" data-edittype="delete" type="primary">删除</van-button>
+ </view>
+ <view style="flex:1">
+ <van-button bind:click="handleClickPopupMsg" block type="primary">{{ popupMsg.buttonText }}</van-button>
+ <view class="safeHeight" />
+ </view>
+ </view>
+ </van-popup>
+ <!-- 选择人员 -->
+ <van-popup bind:close="handleVisiblePopupSelect" data-type="close" round show="{{ popupSelect.show }}" zIndex="999">
+ <view class="popupSelect">
+ <scroll-view scroll-y="{{true}}" style="max-height:600rpx;padding:64rpx 0;">
+ <view bind:tap="handleSelectPerson" class="popupSelect-item" data-index="{{ index }}" wx:for="{{ popupSelect.data }}" wx:key="index">
+ <view class="popupSelect-item-content">
+ <view>{{ item.trueName }}</view>
+ <view class="popupSelect-item-content-subTitle">{{ titleShow[item.perClass][0] }}{{ !!item.deputy ? ' | ' : '' }}{{ item.deputy || '' }} | {{ item.mobile }}</view>
+ </view>
+ <view class="popupSelect-item-icon" wx:if="{{ index === popupSelect.activeIndex }}">
+ <van-icon name="success" size="20" />
+ </view>
+ </view>
+ <van-empty description="暂无历史人员数据" wx:if="{{ popupSelect.data.length === 0 }}" />
+ </scroll-view>
+ <view class="popupSelect-button">
+ <view bind:tap="handleVisiblePopupSelect" class="popupSelect-button-item" data-type="close">取消</view>
+ <view bind:tap="handleConfirmPerson" class="popupSelect-button-item">确定</view>
+ </view>
+ </view>
+ </van-popup>
+</common-page>
\ No newline at end of file
diff --git a/gz-wxparty/pages/register/index.wxss b/gz-wxparty/pages/register/index.wxss
new file mode 100644
index 0000000..de0882a
--- /dev/null
+++ b/gz-wxparty/pages/register/index.wxss
@@ -0,0 +1,355 @@
+/* pages/register/index.wxss */
+@import '../../styles/public_components.wxss';
+
+.steps {
+ padding: 20rpx 0 12rpx;
+ background-color: #ffffff;
+}
+
+.card {
+ background-color: #ffffff;
+ margin: 0 var(--padding-my);
+ margin-top: 16rpx;
+ border-radius: var(--border-radius-card);
+ padding: 0 32rpx;
+}
+
+.party-add,
+.wantUser-delete {
+ padding: 0 16rpx;
+ border-left: 2rpx solid var(--border-color);
+ margin-left: 16rpx;
+ color: var(--main-color);
+}
+
+.party-noneAdd {
+ flex: 1;
+ padding-left: 32rpx;
+ padding-right: 16rpx;
+}
+
+.popupMsg-draft {
+ padding: 32rpx;
+ margin-bottom: 140rpx;
+}
+
+.popupMsg {
+ margin-bottom: 140rpx;
+}
+
+.popupMsg-tab {
+ width: 292rpx;
+ padding: 24rpx 0 32rpx 0;
+}
+
+.popupMsg-tab .popupMsg-nav-class {
+ background-color: #e5e5e5;
+}
+
+.popupMsg-tab .popupMsg-nav-class2 {
+ background-color: #ffffff;
+}
+
+.popupMsg-tab-card {
+ display: flex;
+ align-items: flex-end;
+}
+
+.popupMsg-tab-card-item {
+ flex: 1;
+ background-color: #ffffff;
+ text-align: center;
+ line-height: 80rpx;
+ height: 80rpx;
+ position: relative;
+}
+
+/* .popupMsg-tab-card-item::before {
+ content: '';
+ position: absolute;
+ height: 60rpx;
+ border-right: 1rpx solid var(--border-color);
+ left: 0;
+ top: 10rpx;
+} */
+
+.popupMsg-tab-card-item:first-child {
+ border-radius: 0px 0px 0px 20rpx;
+}
+
+.popupMsg-tab-card-item:last-child {
+ border-radius: 0px 20rpx 0px 0px;
+}
+
+.popupMsg-tab-card-item-active {
+ height: 100rpx;
+ line-height: 100rpx;
+ font-size: 32rpx;
+ font-weight: 600;
+ border-radius: 20rpx 20rpx 0px 0px !important;
+}
+
+.popupMsg-tab-card-item-bg {
+ background-color: #f2f2f2;
+}
+
+.popupMsg-tab-card-item-active .popupMsg-tab-card-item-bg {
+ border-radius: 20rpx 20rpx 0px 0px;
+ background-color: #ffffff;
+}
+
+.popupMsg-form {
+ background-color: #ffffff;
+ padding: 8rpx 32rpx;
+}
+
+.popupMsg-form .cell {
+ padding: 48rpx 0;
+}
+
+.popupMsg-form .cell-noPadding {
+ margin-top: -48rpx;
+}
+
+.popupMsg-check {
+ padding-left: 16rpx;
+ border-left: 2rpx solid var(--border-color);
+ color: var(--main-color);
+ margin-left: 16rpx;
+}
+
+.popupMsg-ocrButton {
+ padding: 0 32rpx 40rpx;
+ background-color: #ffffff;
+}
+
+.popupMsg-agent {
+ background-color: #ffffff;
+ padding: 0 32rpx;
+}
+
+.popupMsg-agent-content {
+ padding: 8rpx 28rpx;
+}
+
+.popupMsg-agent-item {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 8rpx 0;
+}
+
+.popupMsg-agent-item-active {
+ color: var(--main-color);
+}
+
+.popupMsg-agent-none .van-empty__image {
+ width: 288rpx;
+ height: 288rpx;
+}
+
+.popupMsg-agent-none .van-empty {
+ padding: 0;
+}
+
+.popupMsg-agent-none .van-empty__bottom {
+ margin-top: 32rpx;
+}
+
+.popupMsg-button {
+ padding: 32rpx;
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background-color: #ffffff;
+ display: flex;
+}
+
+.popupMsg-button::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 32rpx;
+ right: 32rpx;
+ height: 2rpx;
+ background-color: var(--border-color);
+}
+
+.submitButton {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ display: flex;
+ padding: 32rpx var(--padding-my);
+ background-color: var(--bg-color);
+ z-index: 99;
+}
+
+.height-none {
+ height: calc(var(--padding-my) + var(--padding-my) + var(--padding-my) + var(--button-default-height));
+}
+
+.success {
+ text-align: center;
+ margin-top: 180rpx;
+}
+
+.success-title {
+ font-size: 34rpx;
+ line-height: 50rpx;
+ font-weight: 600;
+ padding: 32rpx 0;
+}
+
+.success-subTitle {
+ width: 383rpx;
+ color: var(--second-text-color);
+ margin: auto;
+}
+
+.success-button {
+ position: absolute;
+ bottom: 240rpx;
+ left: 50%;
+ margin-left: -200rpx;
+}
+
+
+.popupSelect {
+ width: 640rpx;
+}
+
+.popupSelect-button {
+ display: flex;
+}
+
+.popupSelect-button-item {
+ flex: 1;
+ text-align: center;
+ line-height: 112rpx;
+ border-top: 2rpx solid var(--border-color);
+}
+
+.popupSelect-button-item:first-child {
+ border-right: 2rpx solid var(--border-color);
+}
+
+.popupSelect-button-item:last-child {
+ color: var(--main-color);
+}
+
+.popupSelect-item {
+ display: flex;
+ align-items: center;
+ padding: 20rpx 32rpx;
+}
+
+.popupSelect-item-content {
+ flex: 1;
+}
+
+.popupSelect-item-icon {
+ color: var(--main-color);
+}
+
+.popupSelect-item-content-subTitle {
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.success-link {
+ color: #D1021C;
+}
+
+.success-NewButton {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-top: 40rpx;
+ margin-bottom: 24rpx;
+}
+
+.success-RedButton {
+ background-color: #D1021C;
+ width: 198rpx;
+ height: 80rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-radius: 12rpx;
+}
+
+.case {
+ border-top: 1px solid #E41100;
+ padding: 4px 0;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ color: #E41100;
+}
+
+.img-case_2 {
+ display: flex;
+ margin-top: 4px;
+}
+
+.img {
+ height: 12px;
+ width: 12px;
+ margin-right: 4px;
+}
+
+.img1 {
+ height: 12px;
+ width: 12px;
+ margin-right: 3px;
+ margin-top: 4px;
+}
+
+.caseLegalBox-dot {
+ height: 6px;
+ width: 6px;
+ border-radius: 50%;
+ background-color: rgba(217, 217, 217, 0.6);
+ margin-left: 8px;
+ margin-right: 4px;
+}
+
+
+.caseBox-Item {
+ font-size: 12px;
+ margin: 8px 19px 8px 6px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 250px;
+}
+
+.caseBox-arrow {
+ width: 16px;
+ height: 16px;
+ border-radius: 50%;
+ background-color: rgba(246, 247, 251, 1);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.caseBox-content {
+ background-color: #fff;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+
+
+.caseBox-dot {
+ display: flex;
+ background-color: #ffe6e6;
+ padding: 0px 4px;
+ font-size: 12px;
+ color: #d1021c;
+ border-radius: 4px;
+}
\ No newline at end of file
diff --git a/gz-wxparty/pages/signIn/index.js b/gz-wxparty/pages/signIn/index.js
new file mode 100644
index 0000000..b645075
--- /dev/null
+++ b/gz-wxparty/pages/signIn/index.js
@@ -0,0 +1,72 @@
+// pages/signIn/index.js
+const $$ = require('../../utils/util');
+const app = getApp();
+
+// 签到
+function signInApi(submitData) {
+ return $$.request({ url: 'paMeetInfo/updateSign', type: 'post', service: 'mediate', submitData: { id: submitData } });
+}
+// 获取个人信息
+function getUserInfoApi() {
+ return $$.request({ url: 'paUser/getUserInfo', type: 'get', service: 'cust' });
+}
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ meetUserId: 0, // 会议id
+ data: {
+ imgUrl: $$.url.img,
+ userInfo: {},
+ signInResult: '',
+ },
+
+ // 刷脸
+ handleRealName() {
+ this.signIn();
+ },
+
+ // 返回调解 or 重新签到
+ handleClickNext() {
+ if (this.data.signInResult === 'success') {
+ wx.navigateBack({
+ delta: 1,
+ });
+ } else {
+ this.handleRealName();
+ }
+ },
+
+ // 签到
+ async signIn() {
+ $$.showLoading();
+ const res = await signInApi(this.meetUserId);
+ $$.hideLoading();
+ if (res.type) {
+ app.globalData.caseMsg.handleVisible = true;
+ this.setData({ signInResult: 'success' });
+ } else {
+ app.globalData.caseMsg.handleVisible = true;
+ this.setData({ signInResult: 'fail' });
+ }
+ },
+
+ // 获取用户个人信息
+ async getUserInfo() {
+ $$.showLoading();
+ const res = await getUserInfoApi();
+ $$.hideLoading();
+ if (res.type) {
+ this.setData({ userInfo: res.data });
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ this.meetUserId = options.meetUserId;
+ this.getUserInfo();
+ },
+});
diff --git a/gz-wxparty/pages/signIn/index.json b/gz-wxparty/pages/signIn/index.json
new file mode 100644
index 0000000..c796644
--- /dev/null
+++ b/gz-wxparty/pages/signIn/index.json
@@ -0,0 +1,4 @@
+{
+ "navigationBarTitleText": "签到",
+ "usingComponents": {}
+}
diff --git a/gz-wxparty/pages/signIn/index.wxml b/gz-wxparty/pages/signIn/index.wxml
new file mode 100644
index 0000000..39efea9
--- /dev/null
+++ b/gz-wxparty/pages/signIn/index.wxml
@@ -0,0 +1,36 @@
+<!--签到-->
+<common-page>
+ <block wx:if="{{ !signInResult }}">
+ <view class="header">
+ <image class="header-image" src="{{ imgUrl }}women.png" />
+ <view class="header-title">签到操作需要确保参与人的身份的真实性,请核对以下信息:</view>
+ </view>
+ <view class="main">
+ <view class="card-cell">
+ <view class="card-cell-title">真实姓名:</view>
+ <view class="card-cell-value">{{ userInfo.trueName || '-' }}</view>
+ </view>
+ <view class="card-cell card-cell-border">
+ <view class="card-cell-title">证件类型:</view>
+ <view class="card-cell-value">{{ userInfo.idcardTypeName || '-' }}</view>
+ </view>
+ <view class="card-cell card-cell-border">
+ <view class="card-cell-title">证件号码:</view>
+ <view class="card-cell-value">{{ userInfo.idcard || '-' }}</view>
+ </view>
+ <view class="submit-button">
+ <van-button bind:click="handleRealName" block type="primary">签到</van-button>
+ </view>
+ </view>
+ </block>
+ <block wx:else>
+ <view class="result">
+ <block wx:if="{{ signInResult === 'success' }}">
+ <van-icon color="#07c160" name="checked" size="150rpx" />
+ </block>
+ <image class="result-image" src="{{ imgUrl }}cry.png" wx:else />
+ <view class="result-title">{{ signInResult === 'success' ? '签到成功' : '签到失败' }}</view>
+ <van-button bind:click="handleClickNext" type="primary">{{ signInResult === 'success' ? '返回' : '重新签到' }}</van-button>
+ </view>
+ </block>
+</common-page>
diff --git a/gz-wxparty/pages/signIn/index.wxss b/gz-wxparty/pages/signIn/index.wxss
new file mode 100644
index 0000000..8424326
--- /dev/null
+++ b/gz-wxparty/pages/signIn/index.wxss
@@ -0,0 +1,40 @@
+/* pages/signIn/index.wxss */
+@import '../../styles/public_components.wxss';
+
+.header {
+ background-color: #ffffff;
+ display: flex;
+ align-items: center;
+ padding: 32rpx 32rpx 24rpx;
+}
+
+.header-image {
+ width: 120rpx;
+ height: 120rpx;
+}
+
+.header-title {
+ flex: 1;
+ padding-left: 32rpx;
+}
+
+.main {
+ background-color: #ffffff;
+ padding-top: 32rpx;
+}
+
+.result {
+ background-color: #ffffff;
+ padding: 100rpx 32rpx;
+ text-align: center;
+}
+
+.result-title {
+ margin: 48rpx 0;
+ font-weight: 600;
+}
+
+.result-image {
+ width: 150rpx;
+ height: 150rpx;
+}
diff --git a/gz-wxparty/pages/webview/index.js b/gz-wxparty/pages/webview/index.js
new file mode 100644
index 0000000..5b9c7d5
--- /dev/null
+++ b/gz-wxparty/pages/webview/index.js
@@ -0,0 +1,18 @@
+// pages/webview/index.js
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ showUrl: '',
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ this.setData({
+ showUrl: options.showUrl,
+ });
+ },
+});
diff --git a/gz-wxparty/pages/webview/index.json b/gz-wxparty/pages/webview/index.json
new file mode 100644
index 0000000..00a975f
--- /dev/null
+++ b/gz-wxparty/pages/webview/index.json
@@ -0,0 +1,4 @@
+{
+ "navigationBarTitleText": "最新资讯",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/gz-wxparty/pages/webview/index.wxml b/gz-wxparty/pages/webview/index.wxml
new file mode 100644
index 0000000..606e2ef
--- /dev/null
+++ b/gz-wxparty/pages/webview/index.wxml
@@ -0,0 +1,2 @@
+<!--pages/webview/index.wxml-->
+<web-view src="{{ showUrl }}"></web-view>
diff --git a/gz-wxparty/pages/webview/index.wxss b/gz-wxparty/pages/webview/index.wxss
new file mode 100644
index 0000000..5e3b696
--- /dev/null
+++ b/gz-wxparty/pages/webview/index.wxss
@@ -0,0 +1 @@
+/* pages/webview/index.wxss */
\ No newline at end of file
diff --git a/gz-wxparty/project.config.json b/gz-wxparty/project.config.json
new file mode 100644
index 0000000..4627559
--- /dev/null
+++ b/gz-wxparty/project.config.json
@@ -0,0 +1,53 @@
+{
+ "description": "项目配置文件,详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
+ "setting": {
+ "bundle": false,
+ "userConfirmedBundleSwitch": false,
+ "urlCheck": true,
+ "scopeDataCheck": false,
+ "coverView": true,
+ "es6": true,
+ "postcss": true,
+ "compileHotReLoad": false,
+ "lazyloadPlaceholderEnable": false,
+ "preloadBackgroundData": false,
+ "minified": true,
+ "autoAudits": false,
+ "newFeature": false,
+ "uglifyFileName": false,
+ "uploadWithSourceMap": true,
+ "useIsolateContext": true,
+ "nodeModules": false,
+ "enhance": true,
+ "useMultiFrameRuntime": true,
+ "showShadowRootInWxmlPanel": true,
+ "packNpmManually": false,
+ "enableEngineNative": false,
+ "packNpmRelationList": [],
+ "minifyWXSS": true,
+ "showES6CompileOption": false,
+ "minifyWXML": true,
+ "useStaticServer": true,
+ "checkInvalidKey": true,
+ "babelSetting": {
+ "ignore": [],
+ "disablePlugins": [],
+ "outputPath": ""
+ },
+ "disableUseStrict": false,
+ "useCompilerPlugins": false,
+ "ignoreUploadUnusedFiles": true
+ },
+ "compileType": "miniprogram",
+ "condition": {},
+ "editorSetting": {
+ "tabIndent": "insertSpaces",
+ "tabSize": 2
+ },
+ "simulatorPluginLibVersion": {},
+ "packOptions": {
+ "ignore": [],
+ "include": []
+ },
+ "appid": "wx414ae04ac3f10b4e"
+}
\ No newline at end of file
diff --git a/gz-wxparty/project.private.config.json b/gz-wxparty/project.private.config.json
new file mode 100644
index 0000000..9014e9d
--- /dev/null
+++ b/gz-wxparty/project.private.config.json
@@ -0,0 +1,9 @@
+{
+ "projectname": "wx-party",
+ "setting": {
+ "compileHotReLoad": true,
+ "urlCheck": false
+ },
+ "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
+ "libVersion": "2.24.2"
+}
\ No newline at end of file
diff --git a/gz-wxparty/sitemap.json b/gz-wxparty/sitemap.json
new file mode 100644
index 0000000..ca02add
--- /dev/null
+++ b/gz-wxparty/sitemap.json
@@ -0,0 +1,7 @@
+{
+ "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+ "rules": [{
+ "action": "allow",
+ "page": "*"
+ }]
+}
\ No newline at end of file
diff --git a/gz-wxparty/styles/animate.wxss b/gz-wxparty/styles/animate.wxss
new file mode 100644
index 0000000..6974eae
--- /dev/null
+++ b/gz-wxparty/styles/animate.wxss
@@ -0,0 +1,31 @@
+@import './animate_base.wxss';
+
+@keyframes slideInUp {
+ from {
+ transform: translate3d(0, 100%, 0);
+ visibility: visible;
+ }
+
+ to {
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.slideInUp {
+ animation-name: slideInUp;
+}
+
+@keyframes slideInDown {
+ from {
+ transform: translate3d(0, -100%, 0);
+ visibility: visible;
+ }
+
+ to {
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.slideInDown {
+ animation-name: slideInDown;
+}
diff --git a/gz-wxparty/styles/animate_base.wxss b/gz-wxparty/styles/animate_base.wxss
new file mode 100644
index 0000000..d458b44
--- /dev/null
+++ b/gz-wxparty/styles/animate_base.wxss
@@ -0,0 +1,62 @@
+page {
+ --animate-duration: 1s;
+ --animate-delay: 1s;
+ --animate-repeat: 1;
+}
+
+.animated {
+ animation-duration: var(--animate-duration);
+ animation-fill-mode: both;
+}
+
+.animated.infinite {
+ animation-iteration-count: infinite;
+}
+
+.animated.repeat-1 {
+ animation-iteration-count: var(--animate-repeat);
+}
+
+.animated.repeat-2 {
+ animation-iteration-count: calc(var(--animate-repeat) * 2);
+}
+
+.animated.repeat-3 {
+ animation-iteration-count: calc(var(--animate-repeat) * 3);
+}
+
+.animated.delay-1s {
+ animation-delay: var(--animate-delay);
+}
+
+.animated.delay-2s {
+ animation-delay: calc(var(--animate-delay) * 2);
+}
+
+.animated.delay-3s {
+ animation-delay: calc(var(--animate-delay) * 3);
+}
+
+.animated.delay-4s {
+ animation-delay: calc(var(--animate-delay) * 4);
+}
+
+.animated.delay-5s {
+ animation-delay: calc(var(--animate-delay) * 5);
+}
+
+.animated.faster {
+ animation-duration: calc(var(--animate-duration) / 2);
+}
+
+.animated.fast {
+ animation-duration: calc(var(--animate-duration) * 0.8);
+}
+
+.animated.slow {
+ animation-duration: calc(var(--animate-duration) * 2);
+}
+
+.animated.slower {
+ animation-duration: calc(var(--animate-duration) * 3);
+}
diff --git a/gz-wxparty/styles/public.wxss b/gz-wxparty/styles/public.wxss
new file mode 100644
index 0000000..ac2d23b
--- /dev/null
+++ b/gz-wxparty/styles/public.wxss
@@ -0,0 +1,252 @@
+page {
+ /* color */
+ /* 主色 */
+ --main-color: #d10202;
+ /* page背景色 */
+ --bg-color: #f0f2f5;
+ /* 主色拓展 */
+ --red-1: #ffeae6;
+ /* Color Palette */
+ --black: #000;
+ --white: #fff;
+ --gray-1: #f7f8fa;
+ --gray-2: #f2f3f5;
+ --gray-3: #ebedf0;
+ --gray-4: #dcdee0;
+ --gray-5: #c8c9cc;
+ --gray-6: #969799;
+ --gray-7: #646566;
+ --gray-8: #323233;
+ --red: #ee0a24;
+ --blue: #1989fa;
+ --orange: #ff976a;
+ --orange-dark: #ed6a0c;
+ --orange-light: #fffbe8;
+ --green: #07c160;
+ /* font-color */
+ --text-color: rgba(0, 0, 0, 0.85);
+ --second-text-color: rgba(0, 0, 0, 0.65);
+
+ /* font */
+ --font-size-main: 28rpx;
+ --line-height-main: 44rpx;
+ --font-size-xs: 20rpx;
+ --font-size-sm: 24rpx;
+ --font-size-md: 28rpx;
+ --font-size-lg: 32rpx;
+ --font-weight-bold: 600;
+ --line-height-xs: 28rpx;
+ --line-height-sm: 36rpx;
+ --line-height-md: 44rpx;
+ --line-height-lg: 44rpx;
+ --base-font-family: system-ui;
+
+ /* Component Colors */
+ --active-color: var(--gray-2);
+ --active-opacity: 0.7;
+ --disabled-opacity: 0.5;
+ --background-color: var(--gray-1);
+ --background-color-light: #fafafa;
+ --text-link-color: #576b95;
+
+ /* Animation */
+ --animation-duration-base: 0.3s;
+ --animation-duration-fast: 0.2s;
+
+ /* padding */
+ --padding-my: 20rpx;
+ --padding-base: 8rpx;
+ --padding-xs: 16rpx;
+ --padding-sm: 24rpx;
+ --padding-md: 32rpx;
+ --padding-lg: 48rpx;
+ --padding-xl: 64rpx;
+
+ /* Border */
+ --border-color: rgba(0, 0, 0, 0.1);
+ --border-radius-card: 20rpx;
+ --border-radius-card-sm: 10rpx;
+ --border-width-base: 2rpx;
+ --border-radius-sm: 4rpx;
+ --border-radius-md: 8rpx;
+ --border-radius-lg: 16rpx;
+
+ /* Button */
+ --button-mini-height: 44rpx;
+ --button-mini-min-width: 100rpx;
+ --button-mini-font-size: var(--font-size-xs);
+ --button-small-height: 60rpx;
+ --button-small-font-size: var(--font-size-sm);
+ --button-small-min-width: 120rpx;
+ --button-normal-font-size: var(--font-size-md);
+ --button-large-height: 100rpx;
+ --button-default-color: var(--text-color);
+ --button-default-height: 80rpx;
+ --button-default-font-size: var(--font-size-lg);
+ --button-default-background-color: var(--white);
+ --button-default-border-color: var(--border-color);
+ --button-primary-color: var(--white);
+ --button-primary-background-color: var(--main-color);
+ --button-primary-border-color: var(--main-color);
+ --button-info-color: var(--white);
+ --button-info-background-color: var(--blue);
+ --button-info-border-color: var(--blue);
+ --button-danger-color: var(--white);
+ --button-danger-background-color: var(--red);
+ --button-danger-border-color: var(--red);
+ --button-warning-color: var(--white);
+ --button-warning-background-color: var(--orange);
+ --button-warning-border-color: var(--orange);
+ --button-line-height: 44rpx;
+ --button-border-width: 2rpx;
+ --button-border-radius: var(--border-radius-md);
+ --button-round-border-radius: var(--border-radius-max);
+ --button-plain-background-color: var(--white);
+ --button-disabled-opacity: var(--disabled-opacity);
+
+ /* Tabbar */
+ --tabbar-height: 92rpx;
+ --tabbar-background-color: var(--white);
+
+ /* TabbarItem */
+ --tabbar-item-font-size: var(--font-size-sm);
+ --tabbar-item-text-color: var(--text-color);
+ --tabbar-item-active-color: var(--main-color);
+ --tabbar-item-line-height: 1;
+ --tabbar-item-icon-size: 36rpx;
+ --tabbar-item-margin-bottom: 8rpx;
+
+ /* Tab */
+ --tab-text-color: var(--gray-7);
+ --tab-active-text-color: var(--text-color);
+ --tab-disabled-text-color: var(--gray-5);
+ --tab-font-size: var(--font-size-md);
+
+ /* Tabs */
+ --tabs-default-color: var(--main-color);
+ --tabs-line-height: 48rpx;
+ --tabs-card-height: 60rpx;
+ --tabs-nav-background-color: var(--white);
+ --tabs-bottom-bar-height: 4rpx;
+ --tabs-bottom-bar-color: var(--tabs-default-color);
+
+ /* Field */
+ --field-label-color: var(--gray-7);
+ --field-input-text-color: var(--text-color);
+ --field-input-error-text-color: var(--red);
+ --field-input-disabled-text-color: var(--gray-5);
+ --field-placeholder-text-color: rgba(0, 0, 0, 0.5);
+ --field-icon-size: 32rpx;
+ --field-clear-icon-size: 32rpx;
+ --field-clear-icon-color: var(--gray-5);
+ --field-icon-container-color: var(--gray-6);
+ --field-error-message-color: var(--red);
+ --field-error-message-text-font-size: var(--font-size-sm);
+ --field-text-area-min-height: 36rpx;
+ --field-word-limit-color: var(--gray-7);
+ --field-word-limit-font-size: var(--font-size-sm);
+ --field-word-limit-line-height: 32rpx;
+ --field-word-num-full-color: var(--red);
+ --field-disabled-text-color: var(--gray-5);
+
+ /* Cell */
+ --cell-font-size: var(--font-size-md);
+ --cell-line-height: var(--line-height-md);
+ --cell-vertical-padding: var(--padding-sm);
+ --cell-horizontal-padding: var(--padding-md);
+ --cell-text-color: var(--text-color);
+ --cell-background-color: var(--white);
+ --cell-border-color: var(--border-color);
+ --cell-active-color: var(--active-color);
+ --cell-required-color: var(--red);
+ --cell-label-color: var(--gray-6);
+ --cell-label-font-size: var(--font-size-sm);
+ --cell-label-line-height: 36rpx;
+ --cell-label-margin-top: 6rpx;
+ --cell-value-color: var(--gray-6);
+ --cell-icon-size: 32rpx;
+ --cell-right-icon-color: var(--gray-6);
+ --cell-large-vertical-padding: var(--padding-sm);
+ --cell-large-title-font-size: var(--font-size-lg);
+ --cell-large-value-font-size: var(--font-size-lg);
+ --cell-large-label-font-size: var(--font-size-md);
+
+ /* CellGroup */
+ --cell-group-background-color: var(--white);
+ --cell-group-title-color: var(--gray-6);
+ --cell-group-title-padding: var(--padding-md) var(--padding-md) var(--padding-xs);
+ --cell-group-title-font-size: var(--font-size-md);
+ --cell-group-title-line-height: 32rpx;
+ --cell-group-inset-padding: 0 var(--padding-my);
+ --cell-group-inset-border-radius: var(--border-radius-lg);
+ --cell-group-inset-title-padding: var(--padding-md) var(--padding-md) var(--padding-xs) var(--padding-xl);
+
+ /* Checkbox */
+ --checkbox-size: 40rpx;
+ --checkbox-border-color: var(--gray-5);
+ --checkbox-transition-duration: 0.2s;
+ --checkbox-label-margin: 20rpx;
+ --checkbox-label-color: --text-color;
+ --checkbox-checked-icon-color: var(--main-color);
+ --checkbox-disabled-icon-color: var(--gray-5);
+ --checkbox-disabled-label-color: var(--gray-5);
+ --checkbox-disabled-background-color: var(--border-color);
+
+ /* Popup */
+ --popup-background-color: var(--white);
+ --popup-round-border-radius: 20rpx;
+ --popup-close-icon-size: 36rpx;
+ --popup-close-icon-color: var(--black);
+ --popup-close-icon-margin: 32rpx;
+ --popup-close-icon-z-index: 1;
+
+ /* Search */
+ --search-background-color: #ffffff;
+ --search-padding: 16rpx var(--padding-my);
+ --search-input-height: 68rpx;
+ --search-label-padding: 0 10rpx;
+ --search-label-color: var(--text-color);
+ --search-label-font-size: var(--font-size-md);
+ --search-left-icon-color: var(--gray-6);
+ --search-action-padding: 0 var(--padding-xs);
+ --search-action-text-color: var(--text-color);
+ --search-action-font-size: var(--font-size-md);
+
+ /* Toast */
+ --toast-max-width: 90%;
+ --toast-font-size: 28rpx;
+ --toast-text-color: var(--white);
+ --toast-line-height: 40rpx;
+ --toast-border-radius: var(--border-radius-lg);
+ --toast-background-color: var(--second-text-color);
+ --toast-icon-size: 72rpx;
+ --toast-text-min-width: 192rpx;
+ --toast-text-padding: var(--padding-xs) var(--padding-sm);
+ --toast-default-padding: var(--padding-md);
+ --toast-default-width: 176rpx;
+ --toast-default-min-height: 176rpx;
+
+ /* Radio */
+ --radio-size: 40rpx;
+ --radio-border-color: var(--gray-5);
+ --radio-transition-duration: 0.2s;
+ --radio-label-margin: 20rpx;
+ --radio-label-color: var(--text-color);
+ --radio-checked-icon-color: var(--main-color);
+ --radio-disabled-icon-color: var(--gray-5);
+ --radio-disabled-label-color: var(--gray-5);
+ --radio-disabled-background-color: var(--border-color);
+
+ /* Switch */
+ --switch-width: 2em;
+ --switch-height: 1em;
+ --switch-node-size: 1em;
+ --switch-node-z-index: 1;
+ --switch-node-background-color: var(--white);
+ --switch-node-box-shadow: 0 6rpx 2rpx 0 rgba(0, 0, 0, 0.05), 0 4rpx 4rpx 0 rgba(0, 0, 0, 0.1), 0 6rpx 6rpx 0 rgba(0, 0, 0, 0.05);
+ --switch-background-color: var(--white);
+ --switch-on-background-color: var(--main-color);
+ --switch-transition-duration: 0.3s;
+ --switch-disabled-opacity: 0.4;
+ --switch-border: 2rpx solid rgba(0, 0, 0, 0.1);
+}
diff --git a/gz-wxparty/styles/public_components.wxss b/gz-wxparty/styles/public_components.wxss
new file mode 100644
index 0000000..c28106b
--- /dev/null
+++ b/gz-wxparty/styles/public_components.wxss
@@ -0,0 +1,313 @@
+.submit-button {
+ padding: 32rpx;
+}
+
+.pre {
+ white-space: pre-wrap;
+ word-wrap: break-word;
+ color: var(--text-color);
+ font-family: var(--base-font-family);
+ font-size: 28rpx;
+ line-height: 1.5;
+}
+
+/* 输入框单元格样式 */
+.card-cell {
+ display: flex;
+ padding: 0 32rpx 16rpx;
+}
+
+.card-cell-border {
+ padding-top: 20rpx;
+ border-top: 2rpx solid var(--border-color);
+ padding-left: 0;
+ padding-right: 0;
+ margin: 0 32rpx;
+}
+
+.card-cell-title {
+ color: var(--field-label-color);
+}
+
+.card-cell-value {
+ overflow: hidden;
+ text-align: left;
+ vertical-align: middle;
+ flex: 1;
+ color: var(--text-color);
+ word-break: break-word;
+}
+
+/* 预约信息card样式 */
+.order {
+ background: rgba(82, 196, 26, 0.1);
+ border-radius: var(--border-radius-card-sm);
+ display: flex;
+ align-items: center;
+ padding: 16rpx;
+ margin: 0 32rpx ;
+ font-size: 24rpx;
+ line-height: 40rpx;
+}
+
+.order-date {
+ padding: 16rpx;
+ color: #ffffff;
+ background: #52c41a;
+ border-radius: var(--border-radius-card-sm);
+ text-align: center;
+ margin-right: 16rpx;
+}
+
+.order-date-day {
+ font-size: 32rpx;
+ line-height: 32rpx;
+ margin-bottom: 8rpx;
+}
+
+.order-date-month {
+ font-size: 24rpx;
+ line-height: 24rpx;
+}
+
+.order-date-time {
+ display: flex;
+ align-items: center;
+}
+
+.order-date-type {
+ color: #52c41a;
+ border: 1rpx solid #73d13d;
+ border-radius: 4rpx;
+ padding: 6rpx;
+ font-size: 22rpx;
+ line-height: 22rpx;
+ margin-left: 8rpx;
+}
+
+/* 展示的单元格样式 */
+.cell {
+ display: flex;
+ align-items: center;
+ padding: 24rpx 0;
+}
+
+.cell2 {
+ padding: 24rpx 0;
+}
+
+.cell3 {
+ margin-bottom: 16rpx;
+}
+
+.cell-noPadding {
+ margin-top: -24rpx;
+}
+
+.cell-title,
+.cell-title-line {
+ font-size: 28rpx;
+ line-height: 44rpx;
+ font-weight: 600;
+}
+
+.cell-title-line {
+ margin-bottom: 4px;
+}
+
+.cell-title-placeholder {
+ font-size: 28rpx;
+ line-height: 44rpx;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.cell-required {
+ font-size: 24rpx;
+ line-height: 40rpx;
+ color: rgba(0, 0, 0, 0.5);
+ font-weight: 500;
+}
+
+.cell-placeholder {
+ flex: 1;
+ font-size: 28rpx;
+ line-height: 44rpx;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.cell-select {
+ flex: 1;
+ text-align: right;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.cell-arrow {
+ font-size: 32rpx;
+ color: rgba(0, 0, 0, 0.5);
+ padding-left: 16rpx;
+}
+
+/* 当事人card样式 */
+.party {
+ display: flex;
+ align-items: center;
+ padding: 16rpx 0;
+}
+
+.party-img {
+ width: 64rpx;
+ height: 64rpx;
+ border-radius: 10rpx;
+ line-height: 64rpx;
+ text-align: center;
+ color: #ffffff;
+ font-size: 24rpx;
+}
+
+.party-img-shen {
+ background: #05aeae;
+}
+
+.party-img-bei {
+ background: #ff5500;
+}
+
+.party-content {
+ flex: 1;
+ padding-left: 32rpx;
+ overflow: hidden;
+}
+
+.party-content-title {
+ display: flex;
+ align-items: center;
+ width: 100%;
+}
+
+.party-content-title-name {
+ padding-right: 16rpx;
+ overflow: hidden;
+}
+
+.party-content-subTitle {
+ font-size: 24rpx;
+ line-height: 40rpx;
+ color: var(--second-text-color);
+}
+
+/* 文件card样式 */
+.action-file {
+ padding: 16rpx;
+ border-radius: var(--border-radius-card-sm);
+ display: flex;
+ align-items: center;
+ margin-bottom: 24rpx;
+}
+
+.action-file-color1 {
+ background-color: rgba(5, 174, 174, 0.1);
+}
+
+.action-file-color2 {
+ background-color: rgba(236, 207, 165, 0.4);
+}
+
+.action-file-name {
+ border-radius: 5px;
+ font-size: 32rpx;
+ line-height: 40rpx;
+ text-align: center;
+ color: #ffffff;
+ padding: 8rpx 20rpx;
+ margin-right: 16rpx;
+}
+
+.action-file-name-color1 {
+ background-color: #05aeae;
+}
+
+.action-file-name-color2 {
+ background-color: #552719;
+}
+
+.action-file-content {
+ font-size: 24rpx;
+ line-height: 24rpx;
+}
+
+.action-file-content-name {
+ margin-bottom: 24rpx;
+ font-weight: 600;
+}
+
+.action-file-content-btn {
+ border-radius: 4rpx;
+ padding: 6rpx;
+ font-size: 22rpx;
+ line-height: 22rpx;
+ display: inline-block;
+}
+
+.action-file-content-btn-color1 {
+ border: 2rpx solid #05aeae;
+ color: #05aeae;
+}
+
+.action-file-content-btn-color2 {
+ border: 2rpx solid #552719;
+ color: #552719;
+}
+
+/* 我的调解 、 我的司法确认 底部弹窗样式 */
+.popup-roomNo {
+ display: flex;
+ align-items: center;
+ padding: 32rpx;
+}
+
+.popup-roomNo-copy {
+ display: flex;
+ align-items: center;
+ padding-left: 16rpx;
+ margin-left: 16rpx;
+ color: var(--main-color);
+ position: relative;
+}
+
+.popup-roomNo-copy::before {
+ content: '';
+ position: absolute;
+ left: 0;
+ height: 24rpx;
+ width: 2rpx;
+ background-color: var(--text-color);
+}
+
+/* tag标签样式 */
+.tag {
+ padding: 0 8rpx;
+ border-radius: 4rpx;
+ font-size: 24rpx;
+ line-height: 40rpx;
+ display: inline-block;
+}
+
+.tag-cyan {
+ color: #05aeae;
+ background-color: #d5ede9;
+}
+
+.tag-orange {
+ color: #ff5500;
+ background-color: #fff2e6;
+}
+
+.tag-green-border {
+ font-size: 22rpx;
+ line-height: 38rpx;
+ color: #73d13d;
+ background-color: #ffffff;
+ border: 1rpx solid #73d13d;
+}
diff --git a/gz-wxparty/utils/moment.js b/gz-wxparty/utils/moment.js
new file mode 100644
index 0000000..ab04eb6
--- /dev/null
+++ b/gz-wxparty/utils/moment.js
@@ -0,0 +1,4602 @@
+//! moment.js
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+ typeof define === 'function' && define.amd ? define(factory) :
+ global.moment = factory()
+}(this, (function () { 'use strict';
+
+ var hookCallback;
+
+ function hooks () {
+ return hookCallback.apply(null, arguments);
+ }
+
+ // This is done to register the method called with moment()
+ // without creating circular dependencies.
+ function setHookCallback (callback) {
+ hookCallback = callback;
+ }
+
+ function isArray(input) {
+ return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
+ }
+
+ function isObject(input) {
+ // IE8 will treat undefined and null as object if it wasn't for
+ // input != null
+ return input != null && Object.prototype.toString.call(input) === '[object Object]';
+ }
+
+ function isObjectEmpty(obj) {
+ if (Object.getOwnPropertyNames) {
+ return (Object.getOwnPropertyNames(obj).length === 0);
+ } else {
+ var k;
+ for (k in obj) {
+ if (obj.hasOwnProperty(k)) {
+ return false;
+ }
+ }
+ return true;
+ }
+ }
+
+ function isUndefined(input) {
+ return input === void 0;
+ }
+
+ function isNumber(input) {
+ return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';
+ }
+
+ function isDate(input) {
+ return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
+ }
+
+ function map(arr, fn) {
+ var res = [], i;
+ for (i = 0; i < arr.length; ++i) {
+ res.push(fn(arr[i], i));
+ }
+ return res;
+ }
+
+ function hasOwnProp(a, b) {
+ return Object.prototype.hasOwnProperty.call(a, b);
+ }
+
+ function extend(a, b) {
+ for (var i in b) {
+ if (hasOwnProp(b, i)) {
+ a[i] = b[i];
+ }
+ }
+
+ if (hasOwnProp(b, 'toString')) {
+ a.toString = b.toString;
+ }
+
+ if (hasOwnProp(b, 'valueOf')) {
+ a.valueOf = b.valueOf;
+ }
+
+ return a;
+ }
+
+ function createUTC (input, format, locale, strict) {
+ return createLocalOrUTC(input, format, locale, strict, true).utc();
+ }
+
+ function defaultParsingFlags() {
+ // We need to deep clone this object.
+ return {
+ empty : false,
+ unusedTokens : [],
+ unusedInput : [],
+ overflow : -2,
+ charsLeftOver : 0,
+ nullInput : false,
+ invalidMonth : null,
+ invalidFormat : false,
+ userInvalidated : false,
+ iso : false,
+ parsedDateParts : [],
+ meridiem : null,
+ rfc2822 : false,
+ weekdayMismatch : false
+ };
+ }
+
+ function getParsingFlags(m) {
+ if (m._pf == null) {
+ m._pf = defaultParsingFlags();
+ }
+ return m._pf;
+ }
+
+ var some;
+ if (Array.prototype.some) {
+ some = Array.prototype.some;
+ } else {
+ some = function (fun) {
+ var t = Object(this);
+ var len = t.length >>> 0;
+
+ for (var i = 0; i < len; i++) {
+ if (i in t && fun.call(this, t[i], i, t)) {
+ return true;
+ }
+ }
+
+ return false;
+ };
+ }
+
+ function isValid(m) {
+ if (m._isValid == null) {
+ var flags = getParsingFlags(m);
+ var parsedParts = some.call(flags.parsedDateParts, function (i) {
+ return i != null;
+ });
+ var isNowValid = !isNaN(m._d.getTime()) &&
+ flags.overflow < 0 &&
+ !flags.empty &&
+ !flags.invalidMonth &&
+ !flags.invalidWeekday &&
+ !flags.weekdayMismatch &&
+ !flags.nullInput &&
+ !flags.invalidFormat &&
+ !flags.userInvalidated &&
+ (!flags.meridiem || (flags.meridiem && parsedParts));
+
+ if (m._strict) {
+ isNowValid = isNowValid &&
+ flags.charsLeftOver === 0 &&
+ flags.unusedTokens.length === 0 &&
+ flags.bigHour === undefined;
+ }
+
+ if (Object.isFrozen == null || !Object.isFrozen(m)) {
+ m._isValid = isNowValid;
+ }
+ else {
+ return isNowValid;
+ }
+ }
+ return m._isValid;
+ }
+
+ function createInvalid (flags) {
+ var m = createUTC(NaN);
+ if (flags != null) {
+ extend(getParsingFlags(m), flags);
+ }
+ else {
+ getParsingFlags(m).userInvalidated = true;
+ }
+
+ return m;
+ }
+
+ // Plugins that add properties should also add the key here (null value),
+ // so we can properly clone ourselves.
+ var momentProperties = hooks.momentProperties = [];
+
+ function copyConfig(to, from) {
+ var i, prop, val;
+
+ if (!isUndefined(from._isAMomentObject)) {
+ to._isAMomentObject = from._isAMomentObject;
+ }
+ if (!isUndefined(from._i)) {
+ to._i = from._i;
+ }
+ if (!isUndefined(from._f)) {
+ to._f = from._f;
+ }
+ if (!isUndefined(from._l)) {
+ to._l = from._l;
+ }
+ if (!isUndefined(from._strict)) {
+ to._strict = from._strict;
+ }
+ if (!isUndefined(from._tzm)) {
+ to._tzm = from._tzm;
+ }
+ if (!isUndefined(from._isUTC)) {
+ to._isUTC = from._isUTC;
+ }
+ if (!isUndefined(from._offset)) {
+ to._offset = from._offset;
+ }
+ if (!isUndefined(from._pf)) {
+ to._pf = getParsingFlags(from);
+ }
+ if (!isUndefined(from._locale)) {
+ to._locale = from._locale;
+ }
+
+ if (momentProperties.length > 0) {
+ for (i = 0; i < momentProperties.length; i++) {
+ prop = momentProperties[i];
+ val = from[prop];
+ if (!isUndefined(val)) {
+ to[prop] = val;
+ }
+ }
+ }
+
+ return to;
+ }
+
+ var updateInProgress = false;
+
+ // Moment prototype object
+ function Moment(config) {
+ copyConfig(this, config);
+ this._d = new Date(config._d != null ? config._d.getTime() : NaN);
+ if (!this.isValid()) {
+ this._d = new Date(NaN);
+ }
+ // Prevent infinite loop in case updateOffset creates new moment
+ // objects.
+ if (updateInProgress === false) {
+ updateInProgress = true;
+ hooks.updateOffset(this);
+ updateInProgress = false;
+ }
+ }
+
+ function isMoment (obj) {
+ return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
+ }
+
+ function absFloor (number) {
+ if (number < 0) {
+ // -0 -> 0
+ return Math.ceil(number) || 0;
+ } else {
+ return Math.floor(number);
+ }
+ }
+
+ function toInt(argumentForCoercion) {
+ var coercedNumber = +argumentForCoercion,
+ value = 0;
+
+ if (coercedNumber !== 0 && isFinite(coercedNumber)) {
+ value = absFloor(coercedNumber);
+ }
+
+ return value;
+ }
+
+ // compare two arrays, return the number of differences
+ function compareArrays(array1, array2, dontConvert) {
+ var len = Math.min(array1.length, array2.length),
+ lengthDiff = Math.abs(array1.length - array2.length),
+ diffs = 0,
+ i;
+ for (i = 0; i < len; i++) {
+ if ((dontConvert && array1[i] !== array2[i]) ||
+ (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
+ diffs++;
+ }
+ }
+ return diffs + lengthDiff;
+ }
+
+ function warn(msg) {
+ if (hooks.suppressDeprecationWarnings === false &&
+ (typeof console !== 'undefined') && console.warn) {
+ console.warn('Deprecation warning: ' + msg);
+ }
+ }
+
+ function deprecate(msg, fn) {
+ var firstTime = true;
+
+ return extend(function () {
+ if (hooks.deprecationHandler != null) {
+ hooks.deprecationHandler(null, msg);
+ }
+ if (firstTime) {
+ var args = [];
+ var arg;
+ for (var i = 0; i < arguments.length; i++) {
+ arg = '';
+ if (typeof arguments[i] === 'object') {
+ arg += '\n[' + i + '] ';
+ for (var key in arguments[0]) {
+ arg += key + ': ' + arguments[0][key] + ', ';
+ }
+ arg = arg.slice(0, -2); // Remove trailing comma and space
+ } else {
+ arg = arguments[i];
+ }
+ args.push(arg);
+ }
+ warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack);
+ firstTime = false;
+ }
+ return fn.apply(this, arguments);
+ }, fn);
+ }
+
+ var deprecations = {};
+
+ function deprecateSimple(name, msg) {
+ if (hooks.deprecationHandler != null) {
+ hooks.deprecationHandler(name, msg);
+ }
+ if (!deprecations[name]) {
+ warn(msg);
+ deprecations[name] = true;
+ }
+ }
+
+ hooks.suppressDeprecationWarnings = false;
+ hooks.deprecationHandler = null;
+
+ function isFunction(input) {
+ return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
+ }
+
+ function set (config) {
+ var prop, i;
+ for (i in config) {
+ prop = config[i];
+ if (isFunction(prop)) {
+ this[i] = prop;
+ } else {
+ this['_' + i] = prop;
+ }
+ }
+ this._config = config;
+ // Lenient ordinal parsing accepts just a number in addition to
+ // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
+ // TODO: Remove "ordinalParse" fallback in next major release.
+ this._dayOfMonthOrdinalParseLenient = new RegExp(
+ (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
+ '|' + (/\d{1,2}/).source);
+ }
+
+ function mergeConfigs(parentConfig, childConfig) {
+ var res = extend({}, parentConfig), prop;
+ for (prop in childConfig) {
+ if (hasOwnProp(childConfig, prop)) {
+ if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
+ res[prop] = {};
+ extend(res[prop], parentConfig[prop]);
+ extend(res[prop], childConfig[prop]);
+ } else if (childConfig[prop] != null) {
+ res[prop] = childConfig[prop];
+ } else {
+ delete res[prop];
+ }
+ }
+ }
+ for (prop in parentConfig) {
+ if (hasOwnProp(parentConfig, prop) &&
+ !hasOwnProp(childConfig, prop) &&
+ isObject(parentConfig[prop])) {
+ // make sure changes to properties don't modify parent config
+ res[prop] = extend({}, res[prop]);
+ }
+ }
+ return res;
+ }
+
+ function Locale(config) {
+ if (config != null) {
+ this.set(config);
+ }
+ }
+
+ var keys;
+
+ if (Object.keys) {
+ keys = Object.keys;
+ } else {
+ keys = function (obj) {
+ var i, res = [];
+ for (i in obj) {
+ if (hasOwnProp(obj, i)) {
+ res.push(i);
+ }
+ }
+ return res;
+ };
+ }
+
+ var defaultCalendar = {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ };
+
+ function calendar (key, mom, now) {
+ var output = this._calendar[key] || this._calendar['sameElse'];
+ return isFunction(output) ? output.call(mom, now) : output;
+ }
+
+ var defaultLongDateFormat = {
+ LTS : 'h:mm:ss A',
+ LT : 'h:mm A',
+ L : 'MM/DD/YYYY',
+ LL : 'MMMM D, YYYY',
+ LLL : 'MMMM D, YYYY h:mm A',
+ LLLL : 'dddd, MMMM D, YYYY h:mm A'
+ };
+
+ function longDateFormat (key) {
+ var format = this._longDateFormat[key],
+ formatUpper = this._longDateFormat[key.toUpperCase()];
+
+ if (format || !formatUpper) {
+ return format;
+ }
+
+ this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
+ return val.slice(1);
+ });
+
+ return this._longDateFormat[key];
+ }
+
+ var defaultInvalidDate = 'Invalid date';
+
+ function invalidDate () {
+ return this._invalidDate;
+ }
+
+ var defaultOrdinal = '%d';
+ var defaultDayOfMonthOrdinalParse = /\d{1,2}/;
+
+ function ordinal (number) {
+ return this._ordinal.replace('%d', number);
+ }
+
+ var defaultRelativeTime = {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ ss : '%d seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ };
+
+ function relativeTime (number, withoutSuffix, string, isFuture) {
+ var output = this._relativeTime[string];
+ return (isFunction(output)) ?
+ output(number, withoutSuffix, string, isFuture) :
+ output.replace(/%d/i, number);
+ }
+
+ function pastFuture (diff, output) {
+ var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
+ return isFunction(format) ? format(output) : format.replace(/%s/i, output);
+ }
+
+ var aliases = {};
+
+ function addUnitAlias (unit, shorthand) {
+ var lowerCase = unit.toLowerCase();
+ aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
+ }
+
+ function normalizeUnits(units) {
+ return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
+ }
+
+ function normalizeObjectUnits(inputObject) {
+ var normalizedInput = {},
+ normalizedProp,
+ prop;
+
+ for (prop in inputObject) {
+ if (hasOwnProp(inputObject, prop)) {
+ normalizedProp = normalizeUnits(prop);
+ if (normalizedProp) {
+ normalizedInput[normalizedProp] = inputObject[prop];
+ }
+ }
+ }
+
+ return normalizedInput;
+ }
+
+ var priorities = {};
+
+ function addUnitPriority(unit, priority) {
+ priorities[unit] = priority;
+ }
+
+ function getPrioritizedUnits(unitsObj) {
+ var units = [];
+ for (var u in unitsObj) {
+ units.push({unit: u, priority: priorities[u]});
+ }
+ units.sort(function (a, b) {
+ return a.priority - b.priority;
+ });
+ return units;
+ }
+
+ function zeroFill(number, targetLength, forceSign) {
+ var absNumber = '' + Math.abs(number),
+ zerosToFill = targetLength - absNumber.length,
+ sign = number >= 0;
+ return (sign ? (forceSign ? '+' : '') : '-') +
+ Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
+ }
+
+ var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;
+
+ var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
+
+ var formatFunctions = {};
+
+ var formatTokenFunctions = {};
+
+ // token: 'M'
+ // padded: ['MM', 2]
+ // ordinal: 'Mo'
+ // callback: function () { this.month() + 1 }
+ function addFormatToken (token, padded, ordinal, callback) {
+ var func = callback;
+ if (typeof callback === 'string') {
+ func = function () {
+ return this[callback]();
+ };
+ }
+ if (token) {
+ formatTokenFunctions[token] = func;
+ }
+ if (padded) {
+ formatTokenFunctions[padded[0]] = function () {
+ return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
+ };
+ }
+ if (ordinal) {
+ formatTokenFunctions[ordinal] = function () {
+ return this.localeData().ordinal(func.apply(this, arguments), token);
+ };
+ }
+ }
+
+ function removeFormattingTokens(input) {
+ if (input.match(/\[[\s\S]/)) {
+ return input.replace(/^\[|\]$/g, '');
+ }
+ return input.replace(/\\/g, '');
+ }
+
+ function makeFormatFunction(format) {
+ var array = format.match(formattingTokens), i, length;
+
+ for (i = 0, length = array.length; i < length; i++) {
+ if (formatTokenFunctions[array[i]]) {
+ array[i] = formatTokenFunctions[array[i]];
+ } else {
+ array[i] = removeFormattingTokens(array[i]);
+ }
+ }
+
+ return function (mom) {
+ var output = '', i;
+ for (i = 0; i < length; i++) {
+ output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];
+ }
+ return output;
+ };
+ }
+
+ // format date using native date object
+ function formatMoment(m, format) {
+ if (!m.isValid()) {
+ return m.localeData().invalidDate();
+ }
+
+ format = expandFormat(format, m.localeData());
+ formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
+
+ return formatFunctions[format](m);
+ }
+
+ function expandFormat(format, locale) {
+ var i = 5;
+
+ function replaceLongDateFormatTokens(input) {
+ return locale.longDateFormat(input) || input;
+ }
+
+ localFormattingTokens.lastIndex = 0;
+ while (i >= 0 && localFormattingTokens.test(format)) {
+ format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
+ localFormattingTokens.lastIndex = 0;
+ i -= 1;
+ }
+
+ return format;
+ }
+
+ var match1 = /\d/; // 0 - 9
+ var match2 = /\d\d/; // 00 - 99
+ var match3 = /\d{3}/; // 000 - 999
+ var match4 = /\d{4}/; // 0000 - 9999
+ var match6 = /[+-]?\d{6}/; // -999999 - 999999
+ var match1to2 = /\d\d?/; // 0 - 99
+ var match3to4 = /\d\d\d\d?/; // 999 - 9999
+ var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999
+ var match1to3 = /\d{1,3}/; // 0 - 999
+ var match1to4 = /\d{1,4}/; // 0 - 9999
+ var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999
+
+ var matchUnsigned = /\d+/; // 0 - inf
+ var matchSigned = /[+-]?\d+/; // -inf - inf
+
+ var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
+ var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z
+
+ var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
+
+ // any word (or two) characters or numbers including two/three word month in arabic.
+ // includes scottish gaelic two word and hyphenated months
+ var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;
+
+ var regexes = {};
+
+ function addRegexToken (token, regex, strictRegex) {
+ regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
+ return (isStrict && strictRegex) ? strictRegex : regex;
+ };
+ }
+
+ function getParseRegexForToken (token, config) {
+ if (!hasOwnProp(regexes, token)) {
+ return new RegExp(unescapeFormat(token));
+ }
+
+ return regexes[token](config._strict, config._locale);
+ }
+
+ // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
+ function unescapeFormat(s) {
+ return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
+ return p1 || p2 || p3 || p4;
+ }));
+ }
+
+ function regexEscape(s) {
+ return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+ }
+
+ var tokens = {};
+
+ function addParseToken (token, callback) {
+ var i, func = callback;
+ if (typeof token === 'string') {
+ token = [token];
+ }
+ if (isNumber(callback)) {
+ func = function (input, array) {
+ array[callback] = toInt(input);
+ };
+ }
+ for (i = 0; i < token.length; i++) {
+ tokens[token[i]] = func;
+ }
+ }
+
+ function addWeekParseToken (token, callback) {
+ addParseToken(token, function (input, array, config, token) {
+ config._w = config._w || {};
+ callback(input, config._w, config, token);
+ });
+ }
+
+ function addTimeToArrayFromToken(token, input, config) {
+ if (input != null && hasOwnProp(tokens, token)) {
+ tokens[token](input, config._a, config, token);
+ }
+ }
+
+ var YEAR = 0;
+ var MONTH = 1;
+ var DATE = 2;
+ var HOUR = 3;
+ var MINUTE = 4;
+ var SECOND = 5;
+ var MILLISECOND = 6;
+ var WEEK = 7;
+ var WEEKDAY = 8;
+
+ // FORMATTING
+
+ addFormatToken('Y', 0, 0, function () {
+ var y = this.year();
+ return y <= 9999 ? '' + y : '+' + y;
+ });
+
+ addFormatToken(0, ['YY', 2], 0, function () {
+ return this.year() % 100;
+ });
+
+ addFormatToken(0, ['YYYY', 4], 0, 'year');
+ addFormatToken(0, ['YYYYY', 5], 0, 'year');
+ addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
+
+ // ALIASES
+
+ addUnitAlias('year', 'y');
+
+ // PRIORITIES
+
+ addUnitPriority('year', 1);
+
+ // PARSING
+
+ addRegexToken('Y', matchSigned);
+ addRegexToken('YY', match1to2, match2);
+ addRegexToken('YYYY', match1to4, match4);
+ addRegexToken('YYYYY', match1to6, match6);
+ addRegexToken('YYYYYY', match1to6, match6);
+
+ addParseToken(['YYYYY', 'YYYYYY'], YEAR);
+ addParseToken('YYYY', function (input, array) {
+ array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
+ });
+ addParseToken('YY', function (input, array) {
+ array[YEAR] = hooks.parseTwoDigitYear(input);
+ });
+ addParseToken('Y', function (input, array) {
+ array[YEAR] = parseInt(input, 10);
+ });
+
+ // HELPERS
+
+ function daysInYear(year) {
+ return isLeapYear(year) ? 366 : 365;
+ }
+
+ function isLeapYear(year) {
+ return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
+ }
+
+ // HOOKS
+
+ hooks.parseTwoDigitYear = function (input) {
+ return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
+ };
+
+ // MOMENTS
+
+ var getSetYear = makeGetSet('FullYear', true);
+
+ function getIsLeapYear () {
+ return isLeapYear(this.year());
+ }
+
+ function makeGetSet (unit, keepTime) {
+ return function (value) {
+ if (value != null) {
+ set$1(this, unit, value);
+ hooks.updateOffset(this, keepTime);
+ return this;
+ } else {
+ return get(this, unit);
+ }
+ };
+ }
+
+ function get (mom, unit) {
+ return mom.isValid() ?
+ mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
+ }
+
+ function set$1 (mom, unit, value) {
+ if (mom.isValid() && !isNaN(value)) {
+ if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {
+ mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));
+ }
+ else {
+ mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
+ }
+ }
+ }
+
+ // MOMENTS
+
+ function stringGet (units) {
+ units = normalizeUnits(units);
+ if (isFunction(this[units])) {
+ return this[units]();
+ }
+ return this;
+ }
+
+
+ function stringSet (units, value) {
+ if (typeof units === 'object') {
+ units = normalizeObjectUnits(units);
+ var prioritized = getPrioritizedUnits(units);
+ for (var i = 0; i < prioritized.length; i++) {
+ this[prioritized[i].unit](units[prioritized[i].unit]);
+ }
+ } else {
+ units = normalizeUnits(units);
+ if (isFunction(this[units])) {
+ return this[units](value);
+ }
+ }
+ return this;
+ }
+
+ function mod(n, x) {
+ return ((n % x) + x) % x;
+ }
+
+ var indexOf;
+
+ if (Array.prototype.indexOf) {
+ indexOf = Array.prototype.indexOf;
+ } else {
+ indexOf = function (o) {
+ // I know
+ var i;
+ for (i = 0; i < this.length; ++i) {
+ if (this[i] === o) {
+ return i;
+ }
+ }
+ return -1;
+ };
+ }
+
+ function daysInMonth(year, month) {
+ if (isNaN(year) || isNaN(month)) {
+ return NaN;
+ }
+ var modMonth = mod(month, 12);
+ year += (month - modMonth) / 12;
+ return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);
+ }
+
+ // FORMATTING
+
+ addFormatToken('M', ['MM', 2], 'Mo', function () {
+ return this.month() + 1;
+ });
+
+ addFormatToken('MMM', 0, 0, function (format) {
+ return this.localeData().monthsShort(this, format);
+ });
+
+ addFormatToken('MMMM', 0, 0, function (format) {
+ return this.localeData().months(this, format);
+ });
+
+ // ALIASES
+
+ addUnitAlias('month', 'M');
+
+ // PRIORITY
+
+ addUnitPriority('month', 8);
+
+ // PARSING
+
+ addRegexToken('M', match1to2);
+ addRegexToken('MM', match1to2, match2);
+ addRegexToken('MMM', function (isStrict, locale) {
+ return locale.monthsShortRegex(isStrict);
+ });
+ addRegexToken('MMMM', function (isStrict, locale) {
+ return locale.monthsRegex(isStrict);
+ });
+
+ addParseToken(['M', 'MM'], function (input, array) {
+ array[MONTH] = toInt(input) - 1;
+ });
+
+ addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
+ var month = config._locale.monthsParse(input, token, config._strict);
+ // if we didn't find a month name, mark the date as invalid.
+ if (month != null) {
+ array[MONTH] = month;
+ } else {
+ getParsingFlags(config).invalidMonth = input;
+ }
+ });
+
+ // LOCALES
+
+ var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;
+ var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');
+ function localeMonths (m, format) {
+ if (!m) {
+ return isArray(this._months) ? this._months :
+ this._months['standalone'];
+ }
+ return isArray(this._months) ? this._months[m.month()] :
+ this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];
+ }
+
+ var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
+ function localeMonthsShort (m, format) {
+ if (!m) {
+ return isArray(this._monthsShort) ? this._monthsShort :
+ this._monthsShort['standalone'];
+ }
+ return isArray(this._monthsShort) ? this._monthsShort[m.month()] :
+ this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
+ }
+
+ function handleStrictParse(monthName, format, strict) {
+ var i, ii, mom, llc = monthName.toLocaleLowerCase();
+ if (!this._monthsParse) {
+ // this is not used
+ this._monthsParse = [];
+ this._longMonthsParse = [];
+ this._shortMonthsParse = [];
+ for (i = 0; i < 12; ++i) {
+ mom = createUTC([2000, i]);
+ this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
+ this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
+ }
+ }
+
+ if (strict) {
+ if (format === 'MMM') {
+ ii = indexOf.call(this._shortMonthsParse, llc);
+ return ii !== -1 ? ii : null;
+ } else {
+ ii = indexOf.call(this._longMonthsParse, llc);
+ return ii !== -1 ? ii : null;
+ }
+ } else {
+ if (format === 'MMM') {
+ ii = indexOf.call(this._shortMonthsParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._longMonthsParse, llc);
+ return ii !== -1 ? ii : null;
+ } else {
+ ii = indexOf.call(this._longMonthsParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._shortMonthsParse, llc);
+ return ii !== -1 ? ii : null;
+ }
+ }
+ }
+
+ function localeMonthsParse (monthName, format, strict) {
+ var i, mom, regex;
+
+ if (this._monthsParseExact) {
+ return handleStrictParse.call(this, monthName, format, strict);
+ }
+
+ if (!this._monthsParse) {
+ this._monthsParse = [];
+ this._longMonthsParse = [];
+ this._shortMonthsParse = [];
+ }
+
+ // TODO: add sorting
+ // Sorting makes sure if one month (or abbr) is a prefix of another
+ // see sorting in computeMonthsParse
+ for (i = 0; i < 12; i++) {
+ // make the regex if we don't have it already
+ mom = createUTC([2000, i]);
+ if (strict && !this._longMonthsParse[i]) {
+ this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
+ this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
+ }
+ if (!strict && !this._monthsParse[i]) {
+ regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
+ this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
+ }
+ // test the regex
+ if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
+ return i;
+ } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
+ return i;
+ } else if (!strict && this._monthsParse[i].test(monthName)) {
+ return i;
+ }
+ }
+ }
+
+ // MOMENTS
+
+ function setMonth (mom, value) {
+ var dayOfMonth;
+
+ if (!mom.isValid()) {
+ // No op
+ return mom;
+ }
+
+ if (typeof value === 'string') {
+ if (/^\d+$/.test(value)) {
+ value = toInt(value);
+ } else {
+ value = mom.localeData().monthsParse(value);
+ // TODO: Another silent failure?
+ if (!isNumber(value)) {
+ return mom;
+ }
+ }
+ }
+
+ dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
+ mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
+ return mom;
+ }
+
+ function getSetMonth (value) {
+ if (value != null) {
+ setMonth(this, value);
+ hooks.updateOffset(this, true);
+ return this;
+ } else {
+ return get(this, 'Month');
+ }
+ }
+
+ function getDaysInMonth () {
+ return daysInMonth(this.year(), this.month());
+ }
+
+ var defaultMonthsShortRegex = matchWord;
+ function monthsShortRegex (isStrict) {
+ if (this._monthsParseExact) {
+ if (!hasOwnProp(this, '_monthsRegex')) {
+ computeMonthsParse.call(this);
+ }
+ if (isStrict) {
+ return this._monthsShortStrictRegex;
+ } else {
+ return this._monthsShortRegex;
+ }
+ } else {
+ if (!hasOwnProp(this, '_monthsShortRegex')) {
+ this._monthsShortRegex = defaultMonthsShortRegex;
+ }
+ return this._monthsShortStrictRegex && isStrict ?
+ this._monthsShortStrictRegex : this._monthsShortRegex;
+ }
+ }
+
+ var defaultMonthsRegex = matchWord;
+ function monthsRegex (isStrict) {
+ if (this._monthsParseExact) {
+ if (!hasOwnProp(this, '_monthsRegex')) {
+ computeMonthsParse.call(this);
+ }
+ if (isStrict) {
+ return this._monthsStrictRegex;
+ } else {
+ return this._monthsRegex;
+ }
+ } else {
+ if (!hasOwnProp(this, '_monthsRegex')) {
+ this._monthsRegex = defaultMonthsRegex;
+ }
+ return this._monthsStrictRegex && isStrict ?
+ this._monthsStrictRegex : this._monthsRegex;
+ }
+ }
+
+ function computeMonthsParse () {
+ function cmpLenRev(a, b) {
+ return b.length - a.length;
+ }
+
+ var shortPieces = [], longPieces = [], mixedPieces = [],
+ i, mom;
+ for (i = 0; i < 12; i++) {
+ // make the regex if we don't have it already
+ mom = createUTC([2000, i]);
+ shortPieces.push(this.monthsShort(mom, ''));
+ longPieces.push(this.months(mom, ''));
+ mixedPieces.push(this.months(mom, ''));
+ mixedPieces.push(this.monthsShort(mom, ''));
+ }
+ // Sorting makes sure if one month (or abbr) is a prefix of another it
+ // will match the longer piece.
+ shortPieces.sort(cmpLenRev);
+ longPieces.sort(cmpLenRev);
+ mixedPieces.sort(cmpLenRev);
+ for (i = 0; i < 12; i++) {
+ shortPieces[i] = regexEscape(shortPieces[i]);
+ longPieces[i] = regexEscape(longPieces[i]);
+ }
+ for (i = 0; i < 24; i++) {
+ mixedPieces[i] = regexEscape(mixedPieces[i]);
+ }
+
+ this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
+ this._monthsShortRegex = this._monthsRegex;
+ this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
+ this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
+ }
+
+ function createDate (y, m, d, h, M, s, ms) {
+ // can't just apply() to create a date:
+ // https://stackoverflow.com/q/181348
+ var date;
+ // the date constructor remaps years 0-99 to 1900-1999
+ if (y < 100 && y >= 0) {
+ // preserve leap years using a full 400 year cycle, then reset
+ date = new Date(y + 400, m, d, h, M, s, ms);
+ if (isFinite(date.getFullYear())) {
+ date.setFullYear(y);
+ }
+ } else {
+ date = new Date(y, m, d, h, M, s, ms);
+ }
+
+ return date;
+ }
+
+ function createUTCDate (y) {
+ var date;
+ // the Date.UTC function remaps years 0-99 to 1900-1999
+ if (y < 100 && y >= 0) {
+ var args = Array.prototype.slice.call(arguments);
+ // preserve leap years using a full 400 year cycle, then reset
+ args[0] = y + 400;
+ date = new Date(Date.UTC.apply(null, args));
+ if (isFinite(date.getUTCFullYear())) {
+ date.setUTCFullYear(y);
+ }
+ } else {
+ date = new Date(Date.UTC.apply(null, arguments));
+ }
+
+ return date;
+ }
+
+ // start-of-first-week - start-of-year
+ function firstWeekOffset(year, dow, doy) {
+ var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
+ fwd = 7 + dow - doy,
+ // first-week day local weekday -- which local weekday is fwd
+ fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
+
+ return -fwdlw + fwd - 1;
+ }
+
+ // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
+ function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
+ var localWeekday = (7 + weekday - dow) % 7,
+ weekOffset = firstWeekOffset(year, dow, doy),
+ dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
+ resYear, resDayOfYear;
+
+ if (dayOfYear <= 0) {
+ resYear = year - 1;
+ resDayOfYear = daysInYear(resYear) + dayOfYear;
+ } else if (dayOfYear > daysInYear(year)) {
+ resYear = year + 1;
+ resDayOfYear = dayOfYear - daysInYear(year);
+ } else {
+ resYear = year;
+ resDayOfYear = dayOfYear;
+ }
+
+ return {
+ year: resYear,
+ dayOfYear: resDayOfYear
+ };
+ }
+
+ function weekOfYear(mom, dow, doy) {
+ var weekOffset = firstWeekOffset(mom.year(), dow, doy),
+ week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
+ resWeek, resYear;
+
+ if (week < 1) {
+ resYear = mom.year() - 1;
+ resWeek = week + weeksInYear(resYear, dow, doy);
+ } else if (week > weeksInYear(mom.year(), dow, doy)) {
+ resWeek = week - weeksInYear(mom.year(), dow, doy);
+ resYear = mom.year() + 1;
+ } else {
+ resYear = mom.year();
+ resWeek = week;
+ }
+
+ return {
+ week: resWeek,
+ year: resYear
+ };
+ }
+
+ function weeksInYear(year, dow, doy) {
+ var weekOffset = firstWeekOffset(year, dow, doy),
+ weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
+ return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
+ }
+
+ // FORMATTING
+
+ addFormatToken('w', ['ww', 2], 'wo', 'week');
+ addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
+
+ // ALIASES
+
+ addUnitAlias('week', 'w');
+ addUnitAlias('isoWeek', 'W');
+
+ // PRIORITIES
+
+ addUnitPriority('week', 5);
+ addUnitPriority('isoWeek', 5);
+
+ // PARSING
+
+ addRegexToken('w', match1to2);
+ addRegexToken('ww', match1to2, match2);
+ addRegexToken('W', match1to2);
+ addRegexToken('WW', match1to2, match2);
+
+ addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
+ week[token.substr(0, 1)] = toInt(input);
+ });
+
+ // HELPERS
+
+ // LOCALES
+
+ function localeWeek (mom) {
+ return weekOfYear(mom, this._week.dow, this._week.doy).week;
+ }
+
+ var defaultLocaleWeek = {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 6th is the first week of the year.
+ };
+
+ function localeFirstDayOfWeek () {
+ return this._week.dow;
+ }
+
+ function localeFirstDayOfYear () {
+ return this._week.doy;
+ }
+
+ // MOMENTS
+
+ function getSetWeek (input) {
+ var week = this.localeData().week(this);
+ return input == null ? week : this.add((input - week) * 7, 'd');
+ }
+
+ function getSetISOWeek (input) {
+ var week = weekOfYear(this, 1, 4).week;
+ return input == null ? week : this.add((input - week) * 7, 'd');
+ }
+
+ // FORMATTING
+
+ addFormatToken('d', 0, 'do', 'day');
+
+ addFormatToken('dd', 0, 0, function (format) {
+ return this.localeData().weekdaysMin(this, format);
+ });
+
+ addFormatToken('ddd', 0, 0, function (format) {
+ return this.localeData().weekdaysShort(this, format);
+ });
+
+ addFormatToken('dddd', 0, 0, function (format) {
+ return this.localeData().weekdays(this, format);
+ });
+
+ addFormatToken('e', 0, 0, 'weekday');
+ addFormatToken('E', 0, 0, 'isoWeekday');
+
+ // ALIASES
+
+ addUnitAlias('day', 'd');
+ addUnitAlias('weekday', 'e');
+ addUnitAlias('isoWeekday', 'E');
+
+ // PRIORITY
+ addUnitPriority('day', 11);
+ addUnitPriority('weekday', 11);
+ addUnitPriority('isoWeekday', 11);
+
+ // PARSING
+
+ addRegexToken('d', match1to2);
+ addRegexToken('e', match1to2);
+ addRegexToken('E', match1to2);
+ addRegexToken('dd', function (isStrict, locale) {
+ return locale.weekdaysMinRegex(isStrict);
+ });
+ addRegexToken('ddd', function (isStrict, locale) {
+ return locale.weekdaysShortRegex(isStrict);
+ });
+ addRegexToken('dddd', function (isStrict, locale) {
+ return locale.weekdaysRegex(isStrict);
+ });
+
+ addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
+ var weekday = config._locale.weekdaysParse(input, token, config._strict);
+ // if we didn't get a weekday name, mark the date as invalid
+ if (weekday != null) {
+ week.d = weekday;
+ } else {
+ getParsingFlags(config).invalidWeekday = input;
+ }
+ });
+
+ addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
+ week[token] = toInt(input);
+ });
+
+ // HELPERS
+
+ function parseWeekday(input, locale) {
+ if (typeof input !== 'string') {
+ return input;
+ }
+
+ if (!isNaN(input)) {
+ return parseInt(input, 10);
+ }
+
+ input = locale.weekdaysParse(input);
+ if (typeof input === 'number') {
+ return input;
+ }
+
+ return null;
+ }
+
+ function parseIsoWeekday(input, locale) {
+ if (typeof input === 'string') {
+ return locale.weekdaysParse(input) % 7 || 7;
+ }
+ return isNaN(input) ? null : input;
+ }
+
+ // LOCALES
+ function shiftWeekdays (ws, n) {
+ return ws.slice(n, 7).concat(ws.slice(0, n));
+ }
+
+ var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
+ function localeWeekdays (m, format) {
+ var weekdays = isArray(this._weekdays) ? this._weekdays :
+ this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone'];
+ return (m === true) ? shiftWeekdays(weekdays, this._week.dow)
+ : (m) ? weekdays[m.day()] : weekdays;
+ }
+
+ var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');
+ function localeWeekdaysShort (m) {
+ return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow)
+ : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;
+ }
+
+ var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
+ function localeWeekdaysMin (m) {
+ return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow)
+ : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;
+ }
+
+ function handleStrictParse$1(weekdayName, format, strict) {
+ var i, ii, mom, llc = weekdayName.toLocaleLowerCase();
+ if (!this._weekdaysParse) {
+ this._weekdaysParse = [];
+ this._shortWeekdaysParse = [];
+ this._minWeekdaysParse = [];
+
+ for (i = 0; i < 7; ++i) {
+ mom = createUTC([2000, 1]).day(i);
+ this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();
+ this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();
+ this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
+ }
+ }
+
+ if (strict) {
+ if (format === 'dddd') {
+ ii = indexOf.call(this._weekdaysParse, llc);
+ return ii !== -1 ? ii : null;
+ } else if (format === 'ddd') {
+ ii = indexOf.call(this._shortWeekdaysParse, llc);
+ return ii !== -1 ? ii : null;
+ } else {
+ ii = indexOf.call(this._minWeekdaysParse, llc);
+ return ii !== -1 ? ii : null;
+ }
+ } else {
+ if (format === 'dddd') {
+ ii = indexOf.call(this._weekdaysParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._shortWeekdaysParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._minWeekdaysParse, llc);
+ return ii !== -1 ? ii : null;
+ } else if (format === 'ddd') {
+ ii = indexOf.call(this._shortWeekdaysParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._weekdaysParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._minWeekdaysParse, llc);
+ return ii !== -1 ? ii : null;
+ } else {
+ ii = indexOf.call(this._minWeekdaysParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._weekdaysParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._shortWeekdaysParse, llc);
+ return ii !== -1 ? ii : null;
+ }
+ }
+ }
+
+ function localeWeekdaysParse (weekdayName, format, strict) {
+ var i, mom, regex;
+
+ if (this._weekdaysParseExact) {
+ return handleStrictParse$1.call(this, weekdayName, format, strict);
+ }
+
+ if (!this._weekdaysParse) {
+ this._weekdaysParse = [];
+ this._minWeekdaysParse = [];
+ this._shortWeekdaysParse = [];
+ this._fullWeekdaysParse = [];
+ }
+
+ for (i = 0; i < 7; i++) {
+ // make the regex if we don't have it already
+
+ mom = createUTC([2000, 1]).day(i);
+ if (strict && !this._fullWeekdaysParse[i]) {
+ this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i');
+ this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i');
+ this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i');
+ }
+ if (!this._weekdaysParse[i]) {
+ regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
+ this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
+ }
+ // test the regex
+ if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
+ return i;
+ } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
+ return i;
+ } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
+ return i;
+ } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
+ return i;
+ }
+ }
+ }
+
+ // MOMENTS
+
+ function getSetDayOfWeek (input) {
+ if (!this.isValid()) {
+ return input != null ? this : NaN;
+ }
+ var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
+ if (input != null) {
+ input = parseWeekday(input, this.localeData());
+ return this.add(input - day, 'd');
+ } else {
+ return day;
+ }
+ }
+
+ function getSetLocaleDayOfWeek (input) {
+ if (!this.isValid()) {
+ return input != null ? this : NaN;
+ }
+ var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
+ return input == null ? weekday : this.add(input - weekday, 'd');
+ }
+
+ function getSetISODayOfWeek (input) {
+ if (!this.isValid()) {
+ return input != null ? this : NaN;
+ }
+
+ // behaves the same as moment#day except
+ // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
+ // as a setter, sunday should belong to the previous week.
+
+ if (input != null) {
+ var weekday = parseIsoWeekday(input, this.localeData());
+ return this.day(this.day() % 7 ? weekday : weekday - 7);
+ } else {
+ return this.day() || 7;
+ }
+ }
+
+ var defaultWeekdaysRegex = matchWord;
+ function weekdaysRegex (isStrict) {
+ if (this._weekdaysParseExact) {
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
+ computeWeekdaysParse.call(this);
+ }
+ if (isStrict) {
+ return this._weekdaysStrictRegex;
+ } else {
+ return this._weekdaysRegex;
+ }
+ } else {
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
+ this._weekdaysRegex = defaultWeekdaysRegex;
+ }
+ return this._weekdaysStrictRegex && isStrict ?
+ this._weekdaysStrictRegex : this._weekdaysRegex;
+ }
+ }
+
+ var defaultWeekdaysShortRegex = matchWord;
+ function weekdaysShortRegex (isStrict) {
+ if (this._weekdaysParseExact) {
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
+ computeWeekdaysParse.call(this);
+ }
+ if (isStrict) {
+ return this._weekdaysShortStrictRegex;
+ } else {
+ return this._weekdaysShortRegex;
+ }
+ } else {
+ if (!hasOwnProp(this, '_weekdaysShortRegex')) {
+ this._weekdaysShortRegex = defaultWeekdaysShortRegex;
+ }
+ return this._weekdaysShortStrictRegex && isStrict ?
+ this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
+ }
+ }
+
+ var defaultWeekdaysMinRegex = matchWord;
+ function weekdaysMinRegex (isStrict) {
+ if (this._weekdaysParseExact) {
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
+ computeWeekdaysParse.call(this);
+ }
+ if (isStrict) {
+ return this._weekdaysMinStrictRegex;
+ } else {
+ return this._weekdaysMinRegex;
+ }
+ } else {
+ if (!hasOwnProp(this, '_weekdaysMinRegex')) {
+ this._weekdaysMinRegex = defaultWeekdaysMinRegex;
+ }
+ return this._weekdaysMinStrictRegex && isStrict ?
+ this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
+ }
+ }
+
+
+ function computeWeekdaysParse () {
+ function cmpLenRev(a, b) {
+ return b.length - a.length;
+ }
+
+ var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],
+ i, mom, minp, shortp, longp;
+ for (i = 0; i < 7; i++) {
+ // make the regex if we don't have it already
+ mom = createUTC([2000, 1]).day(i);
+ minp = this.weekdaysMin(mom, '');
+ shortp = this.weekdaysShort(mom, '');
+ longp = this.weekdays(mom, '');
+ minPieces.push(minp);
+ shortPieces.push(shortp);
+ longPieces.push(longp);
+ mixedPieces.push(minp);
+ mixedPieces.push(shortp);
+ mixedPieces.push(longp);
+ }
+ // Sorting makes sure if one weekday (or abbr) is a prefix of another it
+ // will match the longer piece.
+ minPieces.sort(cmpLenRev);
+ shortPieces.sort(cmpLenRev);
+ longPieces.sort(cmpLenRev);
+ mixedPieces.sort(cmpLenRev);
+ for (i = 0; i < 7; i++) {
+ shortPieces[i] = regexEscape(shortPieces[i]);
+ longPieces[i] = regexEscape(longPieces[i]);
+ mixedPieces[i] = regexEscape(mixedPieces[i]);
+ }
+
+ this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
+ this._weekdaysShortRegex = this._weekdaysRegex;
+ this._weekdaysMinRegex = this._weekdaysRegex;
+
+ this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
+ this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
+ this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');
+ }
+
+ // FORMATTING
+
+ function hFormat() {
+ return this.hours() % 12 || 12;
+ }
+
+ function kFormat() {
+ return this.hours() || 24;
+ }
+
+ addFormatToken('H', ['HH', 2], 0, 'hour');
+ addFormatToken('h', ['hh', 2], 0, hFormat);
+ addFormatToken('k', ['kk', 2], 0, kFormat);
+
+ addFormatToken('hmm', 0, 0, function () {
+ return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
+ });
+
+ addFormatToken('hmmss', 0, 0, function () {
+ return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +
+ zeroFill(this.seconds(), 2);
+ });
+
+ addFormatToken('Hmm', 0, 0, function () {
+ return '' + this.hours() + zeroFill(this.minutes(), 2);
+ });
+
+ addFormatToken('Hmmss', 0, 0, function () {
+ return '' + this.hours() + zeroFill(this.minutes(), 2) +
+ zeroFill(this.seconds(), 2);
+ });
+
+ function meridiem (token, lowercase) {
+ addFormatToken(token, 0, 0, function () {
+ return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
+ });
+ }
+
+ meridiem('a', true);
+ meridiem('A', false);
+
+ // ALIASES
+
+ addUnitAlias('hour', 'h');
+
+ // PRIORITY
+ addUnitPriority('hour', 13);
+
+ // PARSING
+
+ function matchMeridiem (isStrict, locale) {
+ return locale._meridiemParse;
+ }
+
+ addRegexToken('a', matchMeridiem);
+ addRegexToken('A', matchMeridiem);
+ addRegexToken('H', match1to2);
+ addRegexToken('h', match1to2);
+ addRegexToken('k', match1to2);
+ addRegexToken('HH', match1to2, match2);
+ addRegexToken('hh', match1to2, match2);
+ addRegexToken('kk', match1to2, match2);
+
+ addRegexToken('hmm', match3to4);
+ addRegexToken('hmmss', match5to6);
+ addRegexToken('Hmm', match3to4);
+ addRegexToken('Hmmss', match5to6);
+
+ addParseToken(['H', 'HH'], HOUR);
+ addParseToken(['k', 'kk'], function (input, array, config) {
+ var kInput = toInt(input);
+ array[HOUR] = kInput === 24 ? 0 : kInput;
+ });
+ addParseToken(['a', 'A'], function (input, array, config) {
+ config._isPm = config._locale.isPM(input);
+ config._meridiem = input;
+ });
+ addParseToken(['h', 'hh'], function (input, array, config) {
+ array[HOUR] = toInt(input);
+ getParsingFlags(config).bigHour = true;
+ });
+ addParseToken('hmm', function (input, array, config) {
+ var pos = input.length - 2;
+ array[HOUR] = toInt(input.substr(0, pos));
+ array[MINUTE] = toInt(input.substr(pos));
+ getParsingFlags(config).bigHour = true;
+ });
+ addParseToken('hmmss', function (input, array, config) {
+ var pos1 = input.length - 4;
+ var pos2 = input.length - 2;
+ array[HOUR] = toInt(input.substr(0, pos1));
+ array[MINUTE] = toInt(input.substr(pos1, 2));
+ array[SECOND] = toInt(input.substr(pos2));
+ getParsingFlags(config).bigHour = true;
+ });
+ addParseToken('Hmm', function (input, array, config) {
+ var pos = input.length - 2;
+ array[HOUR] = toInt(input.substr(0, pos));
+ array[MINUTE] = toInt(input.substr(pos));
+ });
+ addParseToken('Hmmss', function (input, array, config) {
+ var pos1 = input.length - 4;
+ var pos2 = input.length - 2;
+ array[HOUR] = toInt(input.substr(0, pos1));
+ array[MINUTE] = toInt(input.substr(pos1, 2));
+ array[SECOND] = toInt(input.substr(pos2));
+ });
+
+ // LOCALES
+
+ function localeIsPM (input) {
+ // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
+ // Using charAt should be more compatible.
+ return ((input + '').toLowerCase().charAt(0) === 'p');
+ }
+
+ var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i;
+ function localeMeridiem (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'pm' : 'PM';
+ } else {
+ return isLower ? 'am' : 'AM';
+ }
+ }
+
+
+ // MOMENTS
+
+ // Setting the hour should keep the time, because the user explicitly
+ // specified which hour they want. So trying to maintain the same hour (in
+ // a new timezone) makes sense. Adding/subtracting hours does not follow
+ // this rule.
+ var getSetHour = makeGetSet('Hours', true);
+
+ var baseConfig = {
+ calendar: defaultCalendar,
+ longDateFormat: defaultLongDateFormat,
+ invalidDate: defaultInvalidDate,
+ ordinal: defaultOrdinal,
+ dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
+ relativeTime: defaultRelativeTime,
+
+ months: defaultLocaleMonths,
+ monthsShort: defaultLocaleMonthsShort,
+
+ week: defaultLocaleWeek,
+
+ weekdays: defaultLocaleWeekdays,
+ weekdaysMin: defaultLocaleWeekdaysMin,
+ weekdaysShort: defaultLocaleWeekdaysShort,
+
+ meridiemParse: defaultLocaleMeridiemParse
+ };
+
+ // internal storage for locale config files
+ var locales = {};
+ var localeFamilies = {};
+ var globalLocale;
+
+ function normalizeLocale(key) {
+ return key ? key.toLowerCase().replace('_', '-') : key;
+ }
+
+ // pick the locale from the array
+ // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
+ // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
+ function chooseLocale(names) {
+ var i = 0, j, next, locale, split;
+
+ while (i < names.length) {
+ split = normalizeLocale(names[i]).split('-');
+ j = split.length;
+ next = normalizeLocale(names[i + 1]);
+ next = next ? next.split('-') : null;
+ while (j > 0) {
+ locale = loadLocale(split.slice(0, j).join('-'));
+ if (locale) {
+ return locale;
+ }
+ if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
+ //the next array item is better than a shallower substring of this one
+ break;
+ }
+ j--;
+ }
+ i++;
+ }
+ return globalLocale;
+ }
+
+ function loadLocale(name) {
+ var oldLocale = null;
+ // TODO: Find a better way to register and load all the locales in Node
+ if (!locales[name] && (typeof module !== 'undefined') &&
+ module && module.exports) {
+ try {
+ oldLocale = globalLocale._abbr;
+ var aliasedRequire = require;
+ // aliasedRequire('./locale/' + name);
+ getSetGlobalLocale(oldLocale);
+ } catch (e) {}
+ }
+ return locales[name];
+ }
+
+ // This function will load locale and then set the global locale. If
+ // no arguments are passed in, it will simply return the current global
+ // locale key.
+ function getSetGlobalLocale (key, values) {
+ var data;
+ if (key) {
+ if (isUndefined(values)) {
+ data = getLocale(key);
+ }
+ else {
+ data = defineLocale(key, values);
+ }
+
+ if (data) {
+ // moment.duration._locale = moment._locale = data;
+ globalLocale = data;
+ }
+ else {
+ if ((typeof console !== 'undefined') && console.warn) {
+ //warn user if arguments are passed but the locale could not be set
+ console.warn('Locale ' + key + ' not found. Did you forget to load it?');
+ }
+ }
+ }
+
+ return globalLocale._abbr;
+ }
+
+ function defineLocale (name, config) {
+ if (config !== null) {
+ var locale, parentConfig = baseConfig;
+ config.abbr = name;
+ if (locales[name] != null) {
+ deprecateSimple('defineLocaleOverride',
+ 'use moment.updateLocale(localeName, config) to change ' +
+ 'an existing locale. moment.defineLocale(localeName, ' +
+ 'config) should only be used for creating a new locale ' +
+ 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');
+ parentConfig = locales[name]._config;
+ } else if (config.parentLocale != null) {
+ if (locales[config.parentLocale] != null) {
+ parentConfig = locales[config.parentLocale]._config;
+ } else {
+ locale = loadLocale(config.parentLocale);
+ if (locale != null) {
+ parentConfig = locale._config;
+ } else {
+ if (!localeFamilies[config.parentLocale]) {
+ localeFamilies[config.parentLocale] = [];
+ }
+ localeFamilies[config.parentLocale].push({
+ name: name,
+ config: config
+ });
+ return null;
+ }
+ }
+ }
+ locales[name] = new Locale(mergeConfigs(parentConfig, config));
+
+ if (localeFamilies[name]) {
+ localeFamilies[name].forEach(function (x) {
+ defineLocale(x.name, x.config);
+ });
+ }
+
+ // backwards compat for now: also set the locale
+ // make sure we set the locale AFTER all child locales have been
+ // created, so we won't end up with the child locale set.
+ getSetGlobalLocale(name);
+
+
+ return locales[name];
+ } else {
+ // useful for testing
+ delete locales[name];
+ return null;
+ }
+ }
+
+ function updateLocale(name, config) {
+ if (config != null) {
+ var locale, tmpLocale, parentConfig = baseConfig;
+ // MERGE
+ tmpLocale = loadLocale(name);
+ if (tmpLocale != null) {
+ parentConfig = tmpLocale._config;
+ }
+ config = mergeConfigs(parentConfig, config);
+ locale = new Locale(config);
+ locale.parentLocale = locales[name];
+ locales[name] = locale;
+
+ // backwards compat for now: also set the locale
+ getSetGlobalLocale(name);
+ } else {
+ // pass null for config to unupdate, useful for tests
+ if (locales[name] != null) {
+ if (locales[name].parentLocale != null) {
+ locales[name] = locales[name].parentLocale;
+ } else if (locales[name] != null) {
+ delete locales[name];
+ }
+ }
+ }
+ return locales[name];
+ }
+
+ // returns locale data
+ function getLocale (key) {
+ var locale;
+
+ if (key && key._locale && key._locale._abbr) {
+ key = key._locale._abbr;
+ }
+
+ if (!key) {
+ return globalLocale;
+ }
+
+ if (!isArray(key)) {
+ //short-circuit everything else
+ locale = loadLocale(key);
+ if (locale) {
+ return locale;
+ }
+ key = [key];
+ }
+
+ return chooseLocale(key);
+ }
+
+ function listLocales() {
+ return keys(locales);
+ }
+
+ function checkOverflow (m) {
+ var overflow;
+ var a = m._a;
+
+ if (a && getParsingFlags(m).overflow === -2) {
+ overflow =
+ a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :
+ a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
+ a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :
+ a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :
+ a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :
+ a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
+ -1;
+
+ if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
+ overflow = DATE;
+ }
+ if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
+ overflow = WEEK;
+ }
+ if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
+ overflow = WEEKDAY;
+ }
+
+ getParsingFlags(m).overflow = overflow;
+ }
+
+ return m;
+ }
+
+ // Pick the first defined of two or three arguments.
+ function defaults(a, b, c) {
+ if (a != null) {
+ return a;
+ }
+ if (b != null) {
+ return b;
+ }
+ return c;
+ }
+
+ function currentDateArray(config) {
+ // hooks is actually the exported moment object
+ var nowValue = new Date(hooks.now());
+ if (config._useUTC) {
+ return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
+ }
+ return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
+ }
+
+ // convert an array to a date.
+ // the array should mirror the parameters below
+ // note: all values past the year are optional and will default to the lowest possible value.
+ // [year, month, day , hour, minute, second, millisecond]
+ function configFromArray (config) {
+ var i, date, input = [], currentDate, expectedWeekday, yearToUse;
+
+ if (config._d) {
+ return;
+ }
+
+ currentDate = currentDateArray(config);
+
+ //compute day of the year from weeks and weekdays
+ if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
+ dayOfYearFromWeekInfo(config);
+ }
+
+ //if the day of the year is set, figure out what it is
+ if (config._dayOfYear != null) {
+ yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
+
+ if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
+ getParsingFlags(config)._overflowDayOfYear = true;
+ }
+
+ date = createUTCDate(yearToUse, 0, config._dayOfYear);
+ config._a[MONTH] = date.getUTCMonth();
+ config._a[DATE] = date.getUTCDate();
+ }
+
+ // Default to current date.
+ // * if no year, month, day of month are given, default to today
+ // * if day of month is given, default month and year
+ // * if month is given, default only year
+ // * if year is given, don't default anything
+ for (i = 0; i < 3 && config._a[i] == null; ++i) {
+ config._a[i] = input[i] = currentDate[i];
+ }
+
+ // Zero out whatever was not defaulted, including time
+ for (; i < 7; i++) {
+ config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
+ }
+
+ // Check for 24:00:00.000
+ if (config._a[HOUR] === 24 &&
+ config._a[MINUTE] === 0 &&
+ config._a[SECOND] === 0 &&
+ config._a[MILLISECOND] === 0) {
+ config._nextDay = true;
+ config._a[HOUR] = 0;
+ }
+
+ config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
+ expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();
+
+ // Apply timezone offset from input. The actual utcOffset can be changed
+ // with parseZone.
+ if (config._tzm != null) {
+ config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
+ }
+
+ if (config._nextDay) {
+ config._a[HOUR] = 24;
+ }
+
+ // check for mismatching day of week
+ if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {
+ getParsingFlags(config).weekdayMismatch = true;
+ }
+ }
+
+ function dayOfYearFromWeekInfo(config) {
+ var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;
+
+ w = config._w;
+ if (w.GG != null || w.W != null || w.E != null) {
+ dow = 1;
+ doy = 4;
+
+ // TODO: We need to take the current isoWeekYear, but that depends on
+ // how we interpret now (local, utc, fixed offset). So create
+ // a now version of current config (take local/utc/offset flags, and
+ // create now).
+ weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);
+ week = defaults(w.W, 1);
+ weekday = defaults(w.E, 1);
+ if (weekday < 1 || weekday > 7) {
+ weekdayOverflow = true;
+ }
+ } else {
+ dow = config._locale._week.dow;
+ doy = config._locale._week.doy;
+
+ var curWeek = weekOfYear(createLocal(), dow, doy);
+
+ weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
+
+ // Default to current week.
+ week = defaults(w.w, curWeek.week);
+
+ if (w.d != null) {
+ // weekday -- low day numbers are considered next week
+ weekday = w.d;
+ if (weekday < 0 || weekday > 6) {
+ weekdayOverflow = true;
+ }
+ } else if (w.e != null) {
+ // local weekday -- counting starts from beginning of week
+ weekday = w.e + dow;
+ if (w.e < 0 || w.e > 6) {
+ weekdayOverflow = true;
+ }
+ } else {
+ // default to beginning of week
+ weekday = dow;
+ }
+ }
+ if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
+ getParsingFlags(config)._overflowWeeks = true;
+ } else if (weekdayOverflow != null) {
+ getParsingFlags(config)._overflowWeekday = true;
+ } else {
+ temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
+ config._a[YEAR] = temp.year;
+ config._dayOfYear = temp.dayOfYear;
+ }
+ }
+
+ // iso 8601 regex
+ // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
+ var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
+ var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
+
+ var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
+
+ var isoDates = [
+ ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
+ ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
+ ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
+ ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
+ ['YYYY-DDD', /\d{4}-\d{3}/],
+ ['YYYY-MM', /\d{4}-\d\d/, false],
+ ['YYYYYYMMDD', /[+-]\d{10}/],
+ ['YYYYMMDD', /\d{8}/],
+ // YYYYMM is NOT allowed by the standard
+ ['GGGG[W]WWE', /\d{4}W\d{3}/],
+ ['GGGG[W]WW', /\d{4}W\d{2}/, false],
+ ['YYYYDDD', /\d{7}/]
+ ];
+
+ // iso time formats and regexes
+ var isoTimes = [
+ ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
+ ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
+ ['HH:mm:ss', /\d\d:\d\d:\d\d/],
+ ['HH:mm', /\d\d:\d\d/],
+ ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
+ ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
+ ['HHmmss', /\d\d\d\d\d\d/],
+ ['HHmm', /\d\d\d\d/],
+ ['HH', /\d\d/]
+ ];
+
+ var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
+
+ // date from iso format
+ function configFromISO(config) {
+ var i, l,
+ string = config._i,
+ match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
+ allowTime, dateFormat, timeFormat, tzFormat;
+
+ if (match) {
+ getParsingFlags(config).iso = true;
+
+ for (i = 0, l = isoDates.length; i < l; i++) {
+ if (isoDates[i][1].exec(match[1])) {
+ dateFormat = isoDates[i][0];
+ allowTime = isoDates[i][2] !== false;
+ break;
+ }
+ }
+ if (dateFormat == null) {
+ config._isValid = false;
+ return;
+ }
+ if (match[3]) {
+ for (i = 0, l = isoTimes.length; i < l; i++) {
+ if (isoTimes[i][1].exec(match[3])) {
+ // match[2] should be 'T' or space
+ timeFormat = (match[2] || ' ') + isoTimes[i][0];
+ break;
+ }
+ }
+ if (timeFormat == null) {
+ config._isValid = false;
+ return;
+ }
+ }
+ if (!allowTime && timeFormat != null) {
+ config._isValid = false;
+ return;
+ }
+ if (match[4]) {
+ if (tzRegex.exec(match[4])) {
+ tzFormat = 'Z';
+ } else {
+ config._isValid = false;
+ return;
+ }
+ }
+ config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
+ configFromStringAndFormat(config);
+ } else {
+ config._isValid = false;
+ }
+ }
+
+ // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
+ var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;
+
+ function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
+ var result = [
+ untruncateYear(yearStr),
+ defaultLocaleMonthsShort.indexOf(monthStr),
+ parseInt(dayStr, 10),
+ parseInt(hourStr, 10),
+ parseInt(minuteStr, 10)
+ ];
+
+ if (secondStr) {
+ result.push(parseInt(secondStr, 10));
+ }
+
+ return result;
+ }
+
+ function untruncateYear(yearStr) {
+ var year = parseInt(yearStr, 10);
+ if (year <= 49) {
+ return 2000 + year;
+ } else if (year <= 999) {
+ return 1900 + year;
+ }
+ return year;
+ }
+
+ function preprocessRFC2822(s) {
+ // Remove comments and folding whitespace and replace multiple-spaces with a single space
+ return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, '');
+ }
+
+ function checkWeekday(weekdayStr, parsedInput, config) {
+ if (weekdayStr) {
+ // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.
+ var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
+ weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
+ if (weekdayProvided !== weekdayActual) {
+ getParsingFlags(config).weekdayMismatch = true;
+ config._isValid = false;
+ return false;
+ }
+ }
+ return true;
+ }
+
+ var obsOffsets = {
+ UT: 0,
+ GMT: 0,
+ EDT: -4 * 60,
+ EST: -5 * 60,
+ CDT: -5 * 60,
+ CST: -6 * 60,
+ MDT: -6 * 60,
+ MST: -7 * 60,
+ PDT: -7 * 60,
+ PST: -8 * 60
+ };
+
+ function calculateOffset(obsOffset, militaryOffset, numOffset) {
+ if (obsOffset) {
+ return obsOffsets[obsOffset];
+ } else if (militaryOffset) {
+ // the only allowed military tz is Z
+ return 0;
+ } else {
+ var hm = parseInt(numOffset, 10);
+ var m = hm % 100, h = (hm - m) / 100;
+ return h * 60 + m;
+ }
+ }
+
+ // date and time from ref 2822 format
+ function configFromRFC2822(config) {
+ var match = rfc2822.exec(preprocessRFC2822(config._i));
+ if (match) {
+ var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
+ if (!checkWeekday(match[1], parsedArray, config)) {
+ return;
+ }
+
+ config._a = parsedArray;
+ config._tzm = calculateOffset(match[8], match[9], match[10]);
+
+ config._d = createUTCDate.apply(null, config._a);
+ config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
+
+ getParsingFlags(config).rfc2822 = true;
+ } else {
+ config._isValid = false;
+ }
+ }
+
+ // date from iso format or fallback
+ function configFromString(config) {
+ var matched = aspNetJsonRegex.exec(config._i);
+
+ if (matched !== null) {
+ config._d = new Date(+matched[1]);
+ return;
+ }
+
+ configFromISO(config);
+ if (config._isValid === false) {
+ delete config._isValid;
+ } else {
+ return;
+ }
+
+ configFromRFC2822(config);
+ if (config._isValid === false) {
+ delete config._isValid;
+ } else {
+ return;
+ }
+
+ // Final attempt, use Input Fallback
+ hooks.createFromInputFallback(config);
+ }
+
+ hooks.createFromInputFallback = deprecate(
+ 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
+ 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
+ 'discouraged and will be removed in an upcoming major release. Please refer to ' +
+ 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
+ function (config) {
+ config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
+ }
+ );
+
+ // constant that refers to the ISO standard
+ hooks.ISO_8601 = function () {};
+
+ // constant that refers to the RFC 2822 form
+ hooks.RFC_2822 = function () {};
+
+ // date from string and format string
+ function configFromStringAndFormat(config) {
+ // TODO: Move this to another part of the creation flow to prevent circular deps
+ if (config._f === hooks.ISO_8601) {
+ configFromISO(config);
+ return;
+ }
+ if (config._f === hooks.RFC_2822) {
+ configFromRFC2822(config);
+ return;
+ }
+ config._a = [];
+ getParsingFlags(config).empty = true;
+
+ // This array is used to make a Date, either with `new Date` or `Date.UTC`
+ var string = '' + config._i,
+ i, parsedInput, tokens, token, skipped,
+ stringLength = string.length,
+ totalParsedInputLength = 0;
+
+ tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
+
+ for (i = 0; i < tokens.length; i++) {
+ token = tokens[i];
+ parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
+ // console.log('token', token, 'parsedInput', parsedInput,
+ // 'regex', getParseRegexForToken(token, config));
+ if (parsedInput) {
+ skipped = string.substr(0, string.indexOf(parsedInput));
+ if (skipped.length > 0) {
+ getParsingFlags(config).unusedInput.push(skipped);
+ }
+ string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
+ totalParsedInputLength += parsedInput.length;
+ }
+ // don't parse if it's not a known token
+ if (formatTokenFunctions[token]) {
+ if (parsedInput) {
+ getParsingFlags(config).empty = false;
+ }
+ else {
+ getParsingFlags(config).unusedTokens.push(token);
+ }
+ addTimeToArrayFromToken(token, parsedInput, config);
+ }
+ else if (config._strict && !parsedInput) {
+ getParsingFlags(config).unusedTokens.push(token);
+ }
+ }
+
+ // add remaining unparsed input length to the string
+ getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
+ if (string.length > 0) {
+ getParsingFlags(config).unusedInput.push(string);
+ }
+
+ // clear _12h flag if hour is <= 12
+ if (config._a[HOUR] <= 12 &&
+ getParsingFlags(config).bigHour === true &&
+ config._a[HOUR] > 0) {
+ getParsingFlags(config).bigHour = undefined;
+ }
+
+ getParsingFlags(config).parsedDateParts = config._a.slice(0);
+ getParsingFlags(config).meridiem = config._meridiem;
+ // handle meridiem
+ config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
+
+ configFromArray(config);
+ checkOverflow(config);
+ }
+
+
+ function meridiemFixWrap (locale, hour, meridiem) {
+ var isPm;
+
+ if (meridiem == null) {
+ // nothing to do
+ return hour;
+ }
+ if (locale.meridiemHour != null) {
+ return locale.meridiemHour(hour, meridiem);
+ } else if (locale.isPM != null) {
+ // Fallback
+ isPm = locale.isPM(meridiem);
+ if (isPm && hour < 12) {
+ hour += 12;
+ }
+ if (!isPm && hour === 12) {
+ hour = 0;
+ }
+ return hour;
+ } else {
+ // this is not supposed to happen
+ return hour;
+ }
+ }
+
+ // date from string and array of format strings
+ function configFromStringAndArray(config) {
+ var tempConfig,
+ bestMoment,
+
+ scoreToBeat,
+ i,
+ currentScore;
+
+ if (config._f.length === 0) {
+ getParsingFlags(config).invalidFormat = true;
+ config._d = new Date(NaN);
+ return;
+ }
+
+ for (i = 0; i < config._f.length; i++) {
+ currentScore = 0;
+ tempConfig = copyConfig({}, config);
+ if (config._useUTC != null) {
+ tempConfig._useUTC = config._useUTC;
+ }
+ tempConfig._f = config._f[i];
+ configFromStringAndFormat(tempConfig);
+
+ if (!isValid(tempConfig)) {
+ continue;
+ }
+
+ // if there is any input that was not parsed add a penalty for that format
+ currentScore += getParsingFlags(tempConfig).charsLeftOver;
+
+ //or tokens
+ currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
+
+ getParsingFlags(tempConfig).score = currentScore;
+
+ if (scoreToBeat == null || currentScore < scoreToBeat) {
+ scoreToBeat = currentScore;
+ bestMoment = tempConfig;
+ }
+ }
+
+ extend(config, bestMoment || tempConfig);
+ }
+
+ function configFromObject(config) {
+ if (config._d) {
+ return;
+ }
+
+ var i = normalizeObjectUnits(config._i);
+ config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
+ return obj && parseInt(obj, 10);
+ });
+
+ configFromArray(config);
+ }
+
+ function createFromConfig (config) {
+ var res = new Moment(checkOverflow(prepareConfig(config)));
+ if (res._nextDay) {
+ // Adding is smart enough around DST
+ res.add(1, 'd');
+ res._nextDay = undefined;
+ }
+
+ return res;
+ }
+
+ function prepareConfig (config) {
+ var input = config._i,
+ format = config._f;
+
+ config._locale = config._locale || getLocale(config._l);
+
+ if (input === null || (format === undefined && input === '')) {
+ return createInvalid({nullInput: true});
+ }
+
+ if (typeof input === 'string') {
+ config._i = input = config._locale.preparse(input);
+ }
+
+ if (isMoment(input)) {
+ return new Moment(checkOverflow(input));
+ } else if (isDate(input)) {
+ config._d = input;
+ } else if (isArray(format)) {
+ configFromStringAndArray(config);
+ } else if (format) {
+ configFromStringAndFormat(config);
+ } else {
+ configFromInput(config);
+ }
+
+ if (!isValid(config)) {
+ config._d = null;
+ }
+
+ return config;
+ }
+
+ function configFromInput(config) {
+ var input = config._i;
+ if (isUndefined(input)) {
+ config._d = new Date(hooks.now());
+ } else if (isDate(input)) {
+ config._d = new Date(input.valueOf());
+ } else if (typeof input === 'string') {
+ configFromString(config);
+ } else if (isArray(input)) {
+ config._a = map(input.slice(0), function (obj) {
+ return parseInt(obj, 10);
+ });
+ configFromArray(config);
+ } else if (isObject(input)) {
+ configFromObject(config);
+ } else if (isNumber(input)) {
+ // from milliseconds
+ config._d = new Date(input);
+ } else {
+ hooks.createFromInputFallback(config);
+ }
+ }
+
+ function createLocalOrUTC (input, format, locale, strict, isUTC) {
+ var c = {};
+
+ if (locale === true || locale === false) {
+ strict = locale;
+ locale = undefined;
+ }
+
+ if ((isObject(input) && isObjectEmpty(input)) ||
+ (isArray(input) && input.length === 0)) {
+ input = undefined;
+ }
+ // object construction must be done this way.
+ // https://github.com/moment/moment/issues/1423
+ c._isAMomentObject = true;
+ c._useUTC = c._isUTC = isUTC;
+ c._l = locale;
+ c._i = input;
+ c._f = format;
+ c._strict = strict;
+
+ return createFromConfig(c);
+ }
+
+ function createLocal (input, format, locale, strict) {
+ return createLocalOrUTC(input, format, locale, strict, false);
+ }
+
+ var prototypeMin = deprecate(
+ 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
+ function () {
+ var other = createLocal.apply(null, arguments);
+ if (this.isValid() && other.isValid()) {
+ return other < this ? this : other;
+ } else {
+ return createInvalid();
+ }
+ }
+ );
+
+ var prototypeMax = deprecate(
+ 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
+ function () {
+ var other = createLocal.apply(null, arguments);
+ if (this.isValid() && other.isValid()) {
+ return other > this ? this : other;
+ } else {
+ return createInvalid();
+ }
+ }
+ );
+
+ // Pick a moment m from moments so that m[fn](other) is true for all
+ // other. This relies on the function fn to be transitive.
+ //
+ // moments should either be an array of moment objects or an array, whose
+ // first element is an array of moment objects.
+ function pickBy(fn, moments) {
+ var res, i;
+ if (moments.length === 1 && isArray(moments[0])) {
+ moments = moments[0];
+ }
+ if (!moments.length) {
+ return createLocal();
+ }
+ res = moments[0];
+ for (i = 1; i < moments.length; ++i) {
+ if (!moments[i].isValid() || moments[i][fn](res)) {
+ res = moments[i];
+ }
+ }
+ return res;
+ }
+
+ // TODO: Use [].sort instead?
+ function min () {
+ var args = [].slice.call(arguments, 0);
+
+ return pickBy('isBefore', args);
+ }
+
+ function max () {
+ var args = [].slice.call(arguments, 0);
+
+ return pickBy('isAfter', args);
+ }
+
+ var now = function () {
+ return Date.now ? Date.now() : +(new Date());
+ };
+
+ var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];
+
+ function isDurationValid(m) {
+ for (var key in m) {
+ if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {
+ return false;
+ }
+ }
+
+ var unitHasDecimal = false;
+ for (var i = 0; i < ordering.length; ++i) {
+ if (m[ordering[i]]) {
+ if (unitHasDecimal) {
+ return false; // only allow non-integers for smallest unit
+ }
+ if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
+ unitHasDecimal = true;
+ }
+ }
+ }
+
+ return true;
+ }
+
+ function isValid$1() {
+ return this._isValid;
+ }
+
+ function createInvalid$1() {
+ return createDuration(NaN);
+ }
+
+ function Duration (duration) {
+ var normalizedInput = normalizeObjectUnits(duration),
+ years = normalizedInput.year || 0,
+ quarters = normalizedInput.quarter || 0,
+ months = normalizedInput.month || 0,
+ weeks = normalizedInput.week || normalizedInput.isoWeek || 0,
+ days = normalizedInput.day || 0,
+ hours = normalizedInput.hour || 0,
+ minutes = normalizedInput.minute || 0,
+ seconds = normalizedInput.second || 0,
+ milliseconds = normalizedInput.millisecond || 0;
+
+ this._isValid = isDurationValid(normalizedInput);
+
+ // representation for dateAddRemove
+ this._milliseconds = +milliseconds +
+ seconds * 1e3 + // 1000
+ minutes * 6e4 + // 1000 * 60
+ hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
+ // Because of dateAddRemove treats 24 hours as different from a
+ // day when working around DST, we need to store them separately
+ this._days = +days +
+ weeks * 7;
+ // It is impossible to translate months into days without knowing
+ // which months you are are talking about, so we have to store
+ // it separately.
+ this._months = +months +
+ quarters * 3 +
+ years * 12;
+
+ this._data = {};
+
+ this._locale = getLocale();
+
+ this._bubble();
+ }
+
+ function isDuration (obj) {
+ return obj instanceof Duration;
+ }
+
+ function absRound (number) {
+ if (number < 0) {
+ return Math.round(-1 * number) * -1;
+ } else {
+ return Math.round(number);
+ }
+ }
+
+ // FORMATTING
+
+ function offset (token, separator) {
+ addFormatToken(token, 0, 0, function () {
+ var offset = this.utcOffset();
+ var sign = '+';
+ if (offset < 0) {
+ offset = -offset;
+ sign = '-';
+ }
+ return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
+ });
+ }
+
+ offset('Z', ':');
+ offset('ZZ', '');
+
+ // PARSING
+
+ addRegexToken('Z', matchShortOffset);
+ addRegexToken('ZZ', matchShortOffset);
+ addParseToken(['Z', 'ZZ'], function (input, array, config) {
+ config._useUTC = true;
+ config._tzm = offsetFromString(matchShortOffset, input);
+ });
+
+ // HELPERS
+
+ // timezone chunker
+ // '+10:00' > ['10', '00']
+ // '-1530' > ['-15', '30']
+ var chunkOffset = /([\+\-]|\d\d)/gi;
+
+ function offsetFromString(matcher, string) {
+ var matches = (string || '').match(matcher);
+
+ if (matches === null) {
+ return null;
+ }
+
+ var chunk = matches[matches.length - 1] || [];
+ var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
+ var minutes = +(parts[1] * 60) + toInt(parts[2]);
+
+ return minutes === 0 ?
+ 0 :
+ parts[0] === '+' ? minutes : -minutes;
+ }
+
+ // Return a moment from input, that is local/utc/zone equivalent to model.
+ function cloneWithOffset(input, model) {
+ var res, diff;
+ if (model._isUTC) {
+ res = model.clone();
+ diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();
+ // Use low-level api, because this fn is low-level api.
+ res._d.setTime(res._d.valueOf() + diff);
+ hooks.updateOffset(res, false);
+ return res;
+ } else {
+ return createLocal(input).local();
+ }
+ }
+
+ function getDateOffset (m) {
+ // On Firefox.24 Date#getTimezoneOffset returns a floating point.
+ // https://github.com/moment/moment/pull/1871
+ return -Math.round(m._d.getTimezoneOffset() / 15) * 15;
+ }
+
+ // HOOKS
+
+ // This function will be called whenever a moment is mutated.
+ // It is intended to keep the offset in sync with the timezone.
+ hooks.updateOffset = function () {};
+
+ // MOMENTS
+
+ // keepLocalTime = true means only change the timezone, without
+ // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
+ // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
+ // +0200, so we adjust the time as needed, to be valid.
+ //
+ // Keeping the time actually adds/subtracts (one hour)
+ // from the actual represented time. That is why we call updateOffset
+ // a second time. In case it wants us to change the offset again
+ // _changeInProgress == true case, then we have to adjust, because
+ // there is no such time in the given timezone.
+ function getSetOffset (input, keepLocalTime, keepMinutes) {
+ var offset = this._offset || 0,
+ localAdjust;
+ if (!this.isValid()) {
+ return input != null ? this : NaN;
+ }
+ if (input != null) {
+ if (typeof input === 'string') {
+ input = offsetFromString(matchShortOffset, input);
+ if (input === null) {
+ return this;
+ }
+ } else if (Math.abs(input) < 16 && !keepMinutes) {
+ input = input * 60;
+ }
+ if (!this._isUTC && keepLocalTime) {
+ localAdjust = getDateOffset(this);
+ }
+ this._offset = input;
+ this._isUTC = true;
+ if (localAdjust != null) {
+ this.add(localAdjust, 'm');
+ }
+ if (offset !== input) {
+ if (!keepLocalTime || this._changeInProgress) {
+ addSubtract(this, createDuration(input - offset, 'm'), 1, false);
+ } else if (!this._changeInProgress) {
+ this._changeInProgress = true;
+ hooks.updateOffset(this, true);
+ this._changeInProgress = null;
+ }
+ }
+ return this;
+ } else {
+ return this._isUTC ? offset : getDateOffset(this);
+ }
+ }
+
+ function getSetZone (input, keepLocalTime) {
+ if (input != null) {
+ if (typeof input !== 'string') {
+ input = -input;
+ }
+
+ this.utcOffset(input, keepLocalTime);
+
+ return this;
+ } else {
+ return -this.utcOffset();
+ }
+ }
+
+ function setOffsetToUTC (keepLocalTime) {
+ return this.utcOffset(0, keepLocalTime);
+ }
+
+ function setOffsetToLocal (keepLocalTime) {
+ if (this._isUTC) {
+ this.utcOffset(0, keepLocalTime);
+ this._isUTC = false;
+
+ if (keepLocalTime) {
+ this.subtract(getDateOffset(this), 'm');
+ }
+ }
+ return this;
+ }
+
+ function setOffsetToParsedOffset () {
+ if (this._tzm != null) {
+ this.utcOffset(this._tzm, false, true);
+ } else if (typeof this._i === 'string') {
+ var tZone = offsetFromString(matchOffset, this._i);
+ if (tZone != null) {
+ this.utcOffset(tZone);
+ }
+ else {
+ this.utcOffset(0, true);
+ }
+ }
+ return this;
+ }
+
+ function hasAlignedHourOffset (input) {
+ if (!this.isValid()) {
+ return false;
+ }
+ input = input ? createLocal(input).utcOffset() : 0;
+
+ return (this.utcOffset() - input) % 60 === 0;
+ }
+
+ function isDaylightSavingTime () {
+ return (
+ this.utcOffset() > this.clone().month(0).utcOffset() ||
+ this.utcOffset() > this.clone().month(5).utcOffset()
+ );
+ }
+
+ function isDaylightSavingTimeShifted () {
+ if (!isUndefined(this._isDSTShifted)) {
+ return this._isDSTShifted;
+ }
+
+ var c = {};
+
+ copyConfig(c, this);
+ c = prepareConfig(c);
+
+ if (c._a) {
+ var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
+ this._isDSTShifted = this.isValid() &&
+ compareArrays(c._a, other.toArray()) > 0;
+ } else {
+ this._isDSTShifted = false;
+ }
+
+ return this._isDSTShifted;
+ }
+
+ function isLocal () {
+ return this.isValid() ? !this._isUTC : false;
+ }
+
+ function isUtcOffset () {
+ return this.isValid() ? this._isUTC : false;
+ }
+
+ function isUtc () {
+ return this.isValid() ? this._isUTC && this._offset === 0 : false;
+ }
+
+ // ASP.NET json date format regex
+ var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/;
+
+ // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
+ // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
+ // and further modified to allow for strings containing both week and day
+ var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
+
+ function createDuration (input, key) {
+ var duration = input,
+ // matching against regexp is expensive, do it on demand
+ match = null,
+ sign,
+ ret,
+ diffRes;
+
+ if (isDuration(input)) {
+ duration = {
+ ms : input._milliseconds,
+ d : input._days,
+ M : input._months
+ };
+ } else if (isNumber(input)) {
+ duration = {};
+ if (key) {
+ duration[key] = input;
+ } else {
+ duration.milliseconds = input;
+ }
+ } else if (!!(match = aspNetRegex.exec(input))) {
+ sign = (match[1] === '-') ? -1 : 1;
+ duration = {
+ y : 0,
+ d : toInt(match[DATE]) * sign,
+ h : toInt(match[HOUR]) * sign,
+ m : toInt(match[MINUTE]) * sign,
+ s : toInt(match[SECOND]) * sign,
+ ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match
+ };
+ } else if (!!(match = isoRegex.exec(input))) {
+ sign = (match[1] === '-') ? -1 : 1;
+ duration = {
+ y : parseIso(match[2], sign),
+ M : parseIso(match[3], sign),
+ w : parseIso(match[4], sign),
+ d : parseIso(match[5], sign),
+ h : parseIso(match[6], sign),
+ m : parseIso(match[7], sign),
+ s : parseIso(match[8], sign)
+ };
+ } else if (duration == null) {// checks for null or undefined
+ duration = {};
+ } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {
+ diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));
+
+ duration = {};
+ duration.ms = diffRes.milliseconds;
+ duration.M = diffRes.months;
+ }
+
+ ret = new Duration(duration);
+
+ if (isDuration(input) && hasOwnProp(input, '_locale')) {
+ ret._locale = input._locale;
+ }
+
+ return ret;
+ }
+
+ createDuration.fn = Duration.prototype;
+ createDuration.invalid = createInvalid$1;
+
+ function parseIso (inp, sign) {
+ // We'd normally use ~~inp for this, but unfortunately it also
+ // converts floats to ints.
+ // inp may be undefined, so careful calling replace on it.
+ var res = inp && parseFloat(inp.replace(',', '.'));
+ // apply sign while we're at it
+ return (isNaN(res) ? 0 : res) * sign;
+ }
+
+ function positiveMomentsDifference(base, other) {
+ var res = {};
+
+ res.months = other.month() - base.month() +
+ (other.year() - base.year()) * 12;
+ if (base.clone().add(res.months, 'M').isAfter(other)) {
+ --res.months;
+ }
+
+ res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
+
+ return res;
+ }
+
+ function momentsDifference(base, other) {
+ var res;
+ if (!(base.isValid() && other.isValid())) {
+ return {milliseconds: 0, months: 0};
+ }
+
+ other = cloneWithOffset(other, base);
+ if (base.isBefore(other)) {
+ res = positiveMomentsDifference(base, other);
+ } else {
+ res = positiveMomentsDifference(other, base);
+ res.milliseconds = -res.milliseconds;
+ res.months = -res.months;
+ }
+
+ return res;
+ }
+
+ // TODO: remove 'name' arg after deprecation is removed
+ function createAdder(direction, name) {
+ return function (val, period) {
+ var dur, tmp;
+ //invert the arguments, but complain about it
+ if (period !== null && !isNaN(+period)) {
+ deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +
+ 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');
+ tmp = val; val = period; period = tmp;
+ }
+
+ val = typeof val === 'string' ? +val : val;
+ dur = createDuration(val, period);
+ addSubtract(this, dur, direction);
+ return this;
+ };
+ }
+
+ function addSubtract (mom, duration, isAdding, updateOffset) {
+ var milliseconds = duration._milliseconds,
+ days = absRound(duration._days),
+ months = absRound(duration._months);
+
+ if (!mom.isValid()) {
+ // No op
+ return;
+ }
+
+ updateOffset = updateOffset == null ? true : updateOffset;
+
+ if (months) {
+ setMonth(mom, get(mom, 'Month') + months * isAdding);
+ }
+ if (days) {
+ set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
+ }
+ if (milliseconds) {
+ mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
+ }
+ if (updateOffset) {
+ hooks.updateOffset(mom, days || months);
+ }
+ }
+
+ var add = createAdder(1, 'add');
+ var subtract = createAdder(-1, 'subtract');
+
+ function getCalendarFormat(myMoment, now) {
+ var diff = myMoment.diff(now, 'days', true);
+ return diff < -6 ? 'sameElse' :
+ diff < -1 ? 'lastWeek' :
+ diff < 0 ? 'lastDay' :
+ diff < 1 ? 'sameDay' :
+ diff < 2 ? 'nextDay' :
+ diff < 7 ? 'nextWeek' : 'sameElse';
+ }
+
+ function calendar$1 (time, formats) {
+ // We want to compare the start of today, vs this.
+ // Getting start-of-today depends on whether we're local/utc/offset or not.
+ var now = time || createLocal(),
+ sod = cloneWithOffset(now, this).startOf('day'),
+ format = hooks.calendarFormat(this, sod) || 'sameElse';
+
+ var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);
+
+ return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
+ }
+
+ function clone () {
+ return new Moment(this);
+ }
+
+ function isAfter (input, units) {
+ var localInput = isMoment(input) ? input : createLocal(input);
+ if (!(this.isValid() && localInput.isValid())) {
+ return false;
+ }
+ units = normalizeUnits(units) || 'millisecond';
+ if (units === 'millisecond') {
+ return this.valueOf() > localInput.valueOf();
+ } else {
+ return localInput.valueOf() < this.clone().startOf(units).valueOf();
+ }
+ }
+
+ function isBefore (input, units) {
+ var localInput = isMoment(input) ? input : createLocal(input);
+ if (!(this.isValid() && localInput.isValid())) {
+ return false;
+ }
+ units = normalizeUnits(units) || 'millisecond';
+ if (units === 'millisecond') {
+ return this.valueOf() < localInput.valueOf();
+ } else {
+ return this.clone().endOf(units).valueOf() < localInput.valueOf();
+ }
+ }
+
+ function isBetween (from, to, units, inclusivity) {
+ var localFrom = isMoment(from) ? from : createLocal(from),
+ localTo = isMoment(to) ? to : createLocal(to);
+ if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {
+ return false;
+ }
+ inclusivity = inclusivity || '()';
+ return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&
+ (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));
+ }
+
+ function isSame (input, units) {
+ var localInput = isMoment(input) ? input : createLocal(input),
+ inputMs;
+ if (!(this.isValid() && localInput.isValid())) {
+ return false;
+ }
+ units = normalizeUnits(units) || 'millisecond';
+ if (units === 'millisecond') {
+ return this.valueOf() === localInput.valueOf();
+ } else {
+ inputMs = localInput.valueOf();
+ return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
+ }
+ }
+
+ function isSameOrAfter (input, units) {
+ return this.isSame(input, units) || this.isAfter(input, units);
+ }
+
+ function isSameOrBefore (input, units) {
+ return this.isSame(input, units) || this.isBefore(input, units);
+ }
+
+ function diff (input, units, asFloat) {
+ var that,
+ zoneDelta,
+ output;
+
+ if (!this.isValid()) {
+ return NaN;
+ }
+
+ that = cloneWithOffset(input, this);
+
+ if (!that.isValid()) {
+ return NaN;
+ }
+
+ zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
+
+ units = normalizeUnits(units);
+
+ switch (units) {
+ case 'year': output = monthDiff(this, that) / 12; break;
+ case 'month': output = monthDiff(this, that); break;
+ case 'quarter': output = monthDiff(this, that) / 3; break;
+ case 'second': output = (this - that) / 1e3; break; // 1000
+ case 'minute': output = (this - that) / 6e4; break; // 1000 * 60
+ case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60
+ case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst
+ case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst
+ default: output = this - that;
+ }
+
+ return asFloat ? output : absFloor(output);
+ }
+
+ function monthDiff (a, b) {
+ // difference in months
+ var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),
+ // b is in (anchor - 1 month, anchor + 1 month)
+ anchor = a.clone().add(wholeMonthDiff, 'months'),
+ anchor2, adjust;
+
+ if (b - anchor < 0) {
+ anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
+ // linear across the month
+ adjust = (b - anchor) / (anchor - anchor2);
+ } else {
+ anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
+ // linear across the month
+ adjust = (b - anchor) / (anchor2 - anchor);
+ }
+
+ //check for negative zero, return zero if negative zero
+ return -(wholeMonthDiff + adjust) || 0;
+ }
+
+ hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
+ hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
+
+ function toString () {
+ return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
+ }
+
+ function toISOString(keepOffset) {
+ if (!this.isValid()) {
+ return null;
+ }
+ var utc = keepOffset !== true;
+ var m = utc ? this.clone().utc() : this;
+ if (m.year() < 0 || m.year() > 9999) {
+ return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');
+ }
+ if (isFunction(Date.prototype.toISOString)) {
+ // native implementation is ~50x faster, use it when we can
+ if (utc) {
+ return this.toDate().toISOString();
+ } else {
+ return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));
+ }
+ }
+ return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');
+ }
+
+ /**
+ * Return a human readable representation of a moment that can
+ * also be evaluated to get a new moment which is the same
+ *
+ * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
+ */
+ function inspect () {
+ if (!this.isValid()) {
+ return 'moment.invalid(/* ' + this._i + ' */)';
+ }
+ var func = 'moment';
+ var zone = '';
+ if (!this.isLocal()) {
+ func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
+ zone = 'Z';
+ }
+ var prefix = '[' + func + '("]';
+ var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';
+ var datetime = '-MM-DD[T]HH:mm:ss.SSS';
+ var suffix = zone + '[")]';
+
+ return this.format(prefix + year + datetime + suffix);
+ }
+
+ function format (inputString) {
+ if (!inputString) {
+ inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;
+ }
+ var output = formatMoment(this, inputString);
+ return this.localeData().postformat(output);
+ }
+
+ function from (time, withoutSuffix) {
+ if (this.isValid() &&
+ ((isMoment(time) && time.isValid()) ||
+ createLocal(time).isValid())) {
+ return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
+ } else {
+ return this.localeData().invalidDate();
+ }
+ }
+
+ function fromNow (withoutSuffix) {
+ return this.from(createLocal(), withoutSuffix);
+ }
+
+ function to (time, withoutSuffix) {
+ if (this.isValid() &&
+ ((isMoment(time) && time.isValid()) ||
+ createLocal(time).isValid())) {
+ return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
+ } else {
+ return this.localeData().invalidDate();
+ }
+ }
+
+ function toNow (withoutSuffix) {
+ return this.to(createLocal(), withoutSuffix);
+ }
+
+ // If passed a locale key, it will set the locale for this
+ // instance. Otherwise, it will return the locale configuration
+ // variables for this instance.
+ function locale (key) {
+ var newLocaleData;
+
+ if (key === undefined) {
+ return this._locale._abbr;
+ } else {
+ newLocaleData = getLocale(key);
+ if (newLocaleData != null) {
+ this._locale = newLocaleData;
+ }
+ return this;
+ }
+ }
+
+ var lang = deprecate(
+ 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
+ function (key) {
+ if (key === undefined) {
+ return this.localeData();
+ } else {
+ return this.locale(key);
+ }
+ }
+ );
+
+ function localeData () {
+ return this._locale;
+ }
+
+ var MS_PER_SECOND = 1000;
+ var MS_PER_MINUTE = 60 * MS_PER_SECOND;
+ var MS_PER_HOUR = 60 * MS_PER_MINUTE;
+ var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;
+
+ // actual modulo - handles negative numbers (for dates before 1970):
+ function mod$1(dividend, divisor) {
+ return (dividend % divisor + divisor) % divisor;
+ }
+
+ function localStartOfDate(y, m, d) {
+ // the date constructor remaps years 0-99 to 1900-1999
+ if (y < 100 && y >= 0) {
+ // preserve leap years using a full 400 year cycle, then reset
+ return new Date(y + 400, m, d) - MS_PER_400_YEARS;
+ } else {
+ return new Date(y, m, d).valueOf();
+ }
+ }
+
+ function utcStartOfDate(y, m, d) {
+ // Date.UTC remaps years 0-99 to 1900-1999
+ if (y < 100 && y >= 0) {
+ // preserve leap years using a full 400 year cycle, then reset
+ return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;
+ } else {
+ return Date.UTC(y, m, d);
+ }
+ }
+
+ function startOf (units) {
+ var time;
+ units = normalizeUnits(units);
+ if (units === undefined || units === 'millisecond' || !this.isValid()) {
+ return this;
+ }
+
+ var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
+
+ switch (units) {
+ case 'year':
+ time = startOfDate(this.year(), 0, 1);
+ break;
+ case 'quarter':
+ time = startOfDate(this.year(), this.month() - this.month() % 3, 1);
+ break;
+ case 'month':
+ time = startOfDate(this.year(), this.month(), 1);
+ break;
+ case 'week':
+ time = startOfDate(this.year(), this.month(), this.date() - this.weekday());
+ break;
+ case 'isoWeek':
+ time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));
+ break;
+ case 'day':
+ case 'date':
+ time = startOfDate(this.year(), this.month(), this.date());
+ break;
+ case 'hour':
+ time = this._d.valueOf();
+ time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);
+ break;
+ case 'minute':
+ time = this._d.valueOf();
+ time -= mod$1(time, MS_PER_MINUTE);
+ break;
+ case 'second':
+ time = this._d.valueOf();
+ time -= mod$1(time, MS_PER_SECOND);
+ break;
+ }
+
+ this._d.setTime(time);
+ hooks.updateOffset(this, true);
+ return this;
+ }
+
+ function endOf (units) {
+ var time;
+ units = normalizeUnits(units);
+ if (units === undefined || units === 'millisecond' || !this.isValid()) {
+ return this;
+ }
+
+ var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
+
+ switch (units) {
+ case 'year':
+ time = startOfDate(this.year() + 1, 0, 1) - 1;
+ break;
+ case 'quarter':
+ time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;
+ break;
+ case 'month':
+ time = startOfDate(this.year(), this.month() + 1, 1) - 1;
+ break;
+ case 'week':
+ time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;
+ break;
+ case 'isoWeek':
+ time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;
+ break;
+ case 'day':
+ case 'date':
+ time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;
+ break;
+ case 'hour':
+ time = this._d.valueOf();
+ time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;
+ break;
+ case 'minute':
+ time = this._d.valueOf();
+ time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;
+ break;
+ case 'second':
+ time = this._d.valueOf();
+ time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;
+ break;
+ }
+
+ this._d.setTime(time);
+ hooks.updateOffset(this, true);
+ return this;
+ }
+
+ function valueOf () {
+ return this._d.valueOf() - ((this._offset || 0) * 60000);
+ }
+
+ function unix () {
+ return Math.floor(this.valueOf() / 1000);
+ }
+
+ function toDate () {
+ return new Date(this.valueOf());
+ }
+
+ function toArray () {
+ var m = this;
+ return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
+ }
+
+ function toObject () {
+ var m = this;
+ return {
+ years: m.year(),
+ months: m.month(),
+ date: m.date(),
+ hours: m.hours(),
+ minutes: m.minutes(),
+ seconds: m.seconds(),
+ milliseconds: m.milliseconds()
+ };
+ }
+
+ function toJSON () {
+ // new Date(NaN).toJSON() === null
+ return this.isValid() ? this.toISOString() : null;
+ }
+
+ function isValid$2 () {
+ return isValid(this);
+ }
+
+ function parsingFlags () {
+ return extend({}, getParsingFlags(this));
+ }
+
+ function invalidAt () {
+ return getParsingFlags(this).overflow;
+ }
+
+ function creationData() {
+ return {
+ input: this._i,
+ format: this._f,
+ locale: this._locale,
+ isUTC: this._isUTC,
+ strict: this._strict
+ };
+ }
+
+ // FORMATTING
+
+ addFormatToken(0, ['gg', 2], 0, function () {
+ return this.weekYear() % 100;
+ });
+
+ addFormatToken(0, ['GG', 2], 0, function () {
+ return this.isoWeekYear() % 100;
+ });
+
+ function addWeekYearFormatToken (token, getter) {
+ addFormatToken(0, [token, token.length], 0, getter);
+ }
+
+ addWeekYearFormatToken('gggg', 'weekYear');
+ addWeekYearFormatToken('ggggg', 'weekYear');
+ addWeekYearFormatToken('GGGG', 'isoWeekYear');
+ addWeekYearFormatToken('GGGGG', 'isoWeekYear');
+
+ // ALIASES
+
+ addUnitAlias('weekYear', 'gg');
+ addUnitAlias('isoWeekYear', 'GG');
+
+ // PRIORITY
+
+ addUnitPriority('weekYear', 1);
+ addUnitPriority('isoWeekYear', 1);
+
+
+ // PARSING
+
+ addRegexToken('G', matchSigned);
+ addRegexToken('g', matchSigned);
+ addRegexToken('GG', match1to2, match2);
+ addRegexToken('gg', match1to2, match2);
+ addRegexToken('GGGG', match1to4, match4);
+ addRegexToken('gggg', match1to4, match4);
+ addRegexToken('GGGGG', match1to6, match6);
+ addRegexToken('ggggg', match1to6, match6);
+
+ addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {
+ week[token.substr(0, 2)] = toInt(input);
+ });
+
+ addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
+ week[token] = hooks.parseTwoDigitYear(input);
+ });
+
+ // MOMENTS
+
+ function getSetWeekYear (input) {
+ return getSetWeekYearHelper.call(this,
+ input,
+ this.week(),
+ this.weekday(),
+ this.localeData()._week.dow,
+ this.localeData()._week.doy);
+ }
+
+ function getSetISOWeekYear (input) {
+ return getSetWeekYearHelper.call(this,
+ input, this.isoWeek(), this.isoWeekday(), 1, 4);
+ }
+
+ function getISOWeeksInYear () {
+ return weeksInYear(this.year(), 1, 4);
+ }
+
+ function getWeeksInYear () {
+ var weekInfo = this.localeData()._week;
+ return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
+ }
+
+ function getSetWeekYearHelper(input, week, weekday, dow, doy) {
+ var weeksTarget;
+ if (input == null) {
+ return weekOfYear(this, dow, doy).year;
+ } else {
+ weeksTarget = weeksInYear(input, dow, doy);
+ if (week > weeksTarget) {
+ week = weeksTarget;
+ }
+ return setWeekAll.call(this, input, week, weekday, dow, doy);
+ }
+ }
+
+ function setWeekAll(weekYear, week, weekday, dow, doy) {
+ var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
+ date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
+
+ this.year(date.getUTCFullYear());
+ this.month(date.getUTCMonth());
+ this.date(date.getUTCDate());
+ return this;
+ }
+
+ // FORMATTING
+
+ addFormatToken('Q', 0, 'Qo', 'quarter');
+
+ // ALIASES
+
+ addUnitAlias('quarter', 'Q');
+
+ // PRIORITY
+
+ addUnitPriority('quarter', 7);
+
+ // PARSING
+
+ addRegexToken('Q', match1);
+ addParseToken('Q', function (input, array) {
+ array[MONTH] = (toInt(input) - 1) * 3;
+ });
+
+ // MOMENTS
+
+ function getSetQuarter (input) {
+ return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
+ }
+
+ // FORMATTING
+
+ addFormatToken('D', ['DD', 2], 'Do', 'date');
+
+ // ALIASES
+
+ addUnitAlias('date', 'D');
+
+ // PRIORITY
+ addUnitPriority('date', 9);
+
+ // PARSING
+
+ addRegexToken('D', match1to2);
+ addRegexToken('DD', match1to2, match2);
+ addRegexToken('Do', function (isStrict, locale) {
+ // TODO: Remove "ordinalParse" fallback in next major release.
+ return isStrict ?
+ (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :
+ locale._dayOfMonthOrdinalParseLenient;
+ });
+
+ addParseToken(['D', 'DD'], DATE);
+ addParseToken('Do', function (input, array) {
+ array[DATE] = toInt(input.match(match1to2)[0]);
+ });
+
+ // MOMENTS
+
+ var getSetDayOfMonth = makeGetSet('Date', true);
+
+ // FORMATTING
+
+ addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
+
+ // ALIASES
+
+ addUnitAlias('dayOfYear', 'DDD');
+
+ // PRIORITY
+ addUnitPriority('dayOfYear', 4);
+
+ // PARSING
+
+ addRegexToken('DDD', match1to3);
+ addRegexToken('DDDD', match3);
+ addParseToken(['DDD', 'DDDD'], function (input, array, config) {
+ config._dayOfYear = toInt(input);
+ });
+
+ // HELPERS
+
+ // MOMENTS
+
+ function getSetDayOfYear (input) {
+ var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
+ return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
+ }
+
+ // FORMATTING
+
+ addFormatToken('m', ['mm', 2], 0, 'minute');
+
+ // ALIASES
+
+ addUnitAlias('minute', 'm');
+
+ // PRIORITY
+
+ addUnitPriority('minute', 14);
+
+ // PARSING
+
+ addRegexToken('m', match1to2);
+ addRegexToken('mm', match1to2, match2);
+ addParseToken(['m', 'mm'], MINUTE);
+
+ // MOMENTS
+
+ var getSetMinute = makeGetSet('Minutes', false);
+
+ // FORMATTING
+
+ addFormatToken('s', ['ss', 2], 0, 'second');
+
+ // ALIASES
+
+ addUnitAlias('second', 's');
+
+ // PRIORITY
+
+ addUnitPriority('second', 15);
+
+ // PARSING
+
+ addRegexToken('s', match1to2);
+ addRegexToken('ss', match1to2, match2);
+ addParseToken(['s', 'ss'], SECOND);
+
+ // MOMENTS
+
+ var getSetSecond = makeGetSet('Seconds', false);
+
+ // FORMATTING
+
+ addFormatToken('S', 0, 0, function () {
+ return ~~(this.millisecond() / 100);
+ });
+
+ addFormatToken(0, ['SS', 2], 0, function () {
+ return ~~(this.millisecond() / 10);
+ });
+
+ addFormatToken(0, ['SSS', 3], 0, 'millisecond');
+ addFormatToken(0, ['SSSS', 4], 0, function () {
+ return this.millisecond() * 10;
+ });
+ addFormatToken(0, ['SSSSS', 5], 0, function () {
+ return this.millisecond() * 100;
+ });
+ addFormatToken(0, ['SSSSSS', 6], 0, function () {
+ return this.millisecond() * 1000;
+ });
+ addFormatToken(0, ['SSSSSSS', 7], 0, function () {
+ return this.millisecond() * 10000;
+ });
+ addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
+ return this.millisecond() * 100000;
+ });
+ addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
+ return this.millisecond() * 1000000;
+ });
+
+
+ // ALIASES
+
+ addUnitAlias('millisecond', 'ms');
+
+ // PRIORITY
+
+ addUnitPriority('millisecond', 16);
+
+ // PARSING
+
+ addRegexToken('S', match1to3, match1);
+ addRegexToken('SS', match1to3, match2);
+ addRegexToken('SSS', match1to3, match3);
+
+ var token;
+ for (token = 'SSSS'; token.length <= 9; token += 'S') {
+ addRegexToken(token, matchUnsigned);
+ }
+
+ function parseMs(input, array) {
+ array[MILLISECOND] = toInt(('0.' + input) * 1000);
+ }
+
+ for (token = 'S'; token.length <= 9; token += 'S') {
+ addParseToken(token, parseMs);
+ }
+ // MOMENTS
+
+ var getSetMillisecond = makeGetSet('Milliseconds', false);
+
+ // FORMATTING
+
+ addFormatToken('z', 0, 0, 'zoneAbbr');
+ addFormatToken('zz', 0, 0, 'zoneName');
+
+ // MOMENTS
+
+ function getZoneAbbr () {
+ return this._isUTC ? 'UTC' : '';
+ }
+
+ function getZoneName () {
+ return this._isUTC ? 'Coordinated Universal Time' : '';
+ }
+
+ var proto = Moment.prototype;
+
+ proto.add = add;
+ proto.calendar = calendar$1;
+ proto.clone = clone;
+ proto.diff = diff;
+ proto.endOf = endOf;
+ proto.format = format;
+ proto.from = from;
+ proto.fromNow = fromNow;
+ proto.to = to;
+ proto.toNow = toNow;
+ proto.get = stringGet;
+ proto.invalidAt = invalidAt;
+ proto.isAfter = isAfter;
+ proto.isBefore = isBefore;
+ proto.isBetween = isBetween;
+ proto.isSame = isSame;
+ proto.isSameOrAfter = isSameOrAfter;
+ proto.isSameOrBefore = isSameOrBefore;
+ proto.isValid = isValid$2;
+ proto.lang = lang;
+ proto.locale = locale;
+ proto.localeData = localeData;
+ proto.max = prototypeMax;
+ proto.min = prototypeMin;
+ proto.parsingFlags = parsingFlags;
+ proto.set = stringSet;
+ proto.startOf = startOf;
+ proto.subtract = subtract;
+ proto.toArray = toArray;
+ proto.toObject = toObject;
+ proto.toDate = toDate;
+ proto.toISOString = toISOString;
+ proto.inspect = inspect;
+ proto.toJSON = toJSON;
+ proto.toString = toString;
+ proto.unix = unix;
+ proto.valueOf = valueOf;
+ proto.creationData = creationData;
+ proto.year = getSetYear;
+ proto.isLeapYear = getIsLeapYear;
+ proto.weekYear = getSetWeekYear;
+ proto.isoWeekYear = getSetISOWeekYear;
+ proto.quarter = proto.quarters = getSetQuarter;
+ proto.month = getSetMonth;
+ proto.daysInMonth = getDaysInMonth;
+ proto.week = proto.weeks = getSetWeek;
+ proto.isoWeek = proto.isoWeeks = getSetISOWeek;
+ proto.weeksInYear = getWeeksInYear;
+ proto.isoWeeksInYear = getISOWeeksInYear;
+ proto.date = getSetDayOfMonth;
+ proto.day = proto.days = getSetDayOfWeek;
+ proto.weekday = getSetLocaleDayOfWeek;
+ proto.isoWeekday = getSetISODayOfWeek;
+ proto.dayOfYear = getSetDayOfYear;
+ proto.hour = proto.hours = getSetHour;
+ proto.minute = proto.minutes = getSetMinute;
+ proto.second = proto.seconds = getSetSecond;
+ proto.millisecond = proto.milliseconds = getSetMillisecond;
+ proto.utcOffset = getSetOffset;
+ proto.utc = setOffsetToUTC;
+ proto.local = setOffsetToLocal;
+ proto.parseZone = setOffsetToParsedOffset;
+ proto.hasAlignedHourOffset = hasAlignedHourOffset;
+ proto.isDST = isDaylightSavingTime;
+ proto.isLocal = isLocal;
+ proto.isUtcOffset = isUtcOffset;
+ proto.isUtc = isUtc;
+ proto.isUTC = isUtc;
+ proto.zoneAbbr = getZoneAbbr;
+ proto.zoneName = getZoneName;
+ proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);
+ proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);
+ proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);
+ proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);
+ proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);
+
+ function createUnix (input) {
+ return createLocal(input * 1000);
+ }
+
+ function createInZone () {
+ return createLocal.apply(null, arguments).parseZone();
+ }
+
+ function preParsePostFormat (string) {
+ return string;
+ }
+
+ var proto$1 = Locale.prototype;
+
+ proto$1.calendar = calendar;
+ proto$1.longDateFormat = longDateFormat;
+ proto$1.invalidDate = invalidDate;
+ proto$1.ordinal = ordinal;
+ proto$1.preparse = preParsePostFormat;
+ proto$1.postformat = preParsePostFormat;
+ proto$1.relativeTime = relativeTime;
+ proto$1.pastFuture = pastFuture;
+ proto$1.set = set;
+
+ proto$1.months = localeMonths;
+ proto$1.monthsShort = localeMonthsShort;
+ proto$1.monthsParse = localeMonthsParse;
+ proto$1.monthsRegex = monthsRegex;
+ proto$1.monthsShortRegex = monthsShortRegex;
+ proto$1.week = localeWeek;
+ proto$1.firstDayOfYear = localeFirstDayOfYear;
+ proto$1.firstDayOfWeek = localeFirstDayOfWeek;
+
+ proto$1.weekdays = localeWeekdays;
+ proto$1.weekdaysMin = localeWeekdaysMin;
+ proto$1.weekdaysShort = localeWeekdaysShort;
+ proto$1.weekdaysParse = localeWeekdaysParse;
+
+ proto$1.weekdaysRegex = weekdaysRegex;
+ proto$1.weekdaysShortRegex = weekdaysShortRegex;
+ proto$1.weekdaysMinRegex = weekdaysMinRegex;
+
+ proto$1.isPM = localeIsPM;
+ proto$1.meridiem = localeMeridiem;
+
+ function get$1 (format, index, field, setter) {
+ var locale = getLocale();
+ var utc = createUTC().set(setter, index);
+ return locale[field](utc, format);
+ }
+
+ function listMonthsImpl (format, index, field) {
+ if (isNumber(format)) {
+ index = format;
+ format = undefined;
+ }
+
+ format = format || '';
+
+ if (index != null) {
+ return get$1(format, index, field, 'month');
+ }
+
+ var i;
+ var out = [];
+ for (i = 0; i < 12; i++) {
+ out[i] = get$1(format, i, field, 'month');
+ }
+ return out;
+ }
+
+ // ()
+ // (5)
+ // (fmt, 5)
+ // (fmt)
+ // (true)
+ // (true, 5)
+ // (true, fmt, 5)
+ // (true, fmt)
+ function listWeekdaysImpl (localeSorted, format, index, field) {
+ if (typeof localeSorted === 'boolean') {
+ if (isNumber(format)) {
+ index = format;
+ format = undefined;
+ }
+
+ format = format || '';
+ } else {
+ format = localeSorted;
+ index = format;
+ localeSorted = false;
+
+ if (isNumber(format)) {
+ index = format;
+ format = undefined;
+ }
+
+ format = format || '';
+ }
+
+ var locale = getLocale(),
+ shift = localeSorted ? locale._week.dow : 0;
+
+ if (index != null) {
+ return get$1(format, (index + shift) % 7, field, 'day');
+ }
+
+ var i;
+ var out = [];
+ for (i = 0; i < 7; i++) {
+ out[i] = get$1(format, (i + shift) % 7, field, 'day');
+ }
+ return out;
+ }
+
+ function listMonths (format, index) {
+ return listMonthsImpl(format, index, 'months');
+ }
+
+ function listMonthsShort (format, index) {
+ return listMonthsImpl(format, index, 'monthsShort');
+ }
+
+ function listWeekdays (localeSorted, format, index) {
+ return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
+ }
+
+ function listWeekdaysShort (localeSorted, format, index) {
+ return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
+ }
+
+ function listWeekdaysMin (localeSorted, format, index) {
+ return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
+ }
+
+ getSetGlobalLocale('en', {
+ dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (toInt(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ }
+ });
+
+ // Side effect imports
+
+ hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
+ hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);
+
+ var mathAbs = Math.abs;
+
+ function abs () {
+ var data = this._data;
+
+ this._milliseconds = mathAbs(this._milliseconds);
+ this._days = mathAbs(this._days);
+ this._months = mathAbs(this._months);
+
+ data.milliseconds = mathAbs(data.milliseconds);
+ data.seconds = mathAbs(data.seconds);
+ data.minutes = mathAbs(data.minutes);
+ data.hours = mathAbs(data.hours);
+ data.months = mathAbs(data.months);
+ data.years = mathAbs(data.years);
+
+ return this;
+ }
+
+ function addSubtract$1 (duration, input, value, direction) {
+ var other = createDuration(input, value);
+
+ duration._milliseconds += direction * other._milliseconds;
+ duration._days += direction * other._days;
+ duration._months += direction * other._months;
+
+ return duration._bubble();
+ }
+
+ // supports only 2.0-style add(1, 's') or add(duration)
+ function add$1 (input, value) {
+ return addSubtract$1(this, input, value, 1);
+ }
+
+ // supports only 2.0-style subtract(1, 's') or subtract(duration)
+ function subtract$1 (input, value) {
+ return addSubtract$1(this, input, value, -1);
+ }
+
+ function absCeil (number) {
+ if (number < 0) {
+ return Math.floor(number);
+ } else {
+ return Math.ceil(number);
+ }
+ }
+
+ function bubble () {
+ var milliseconds = this._milliseconds;
+ var days = this._days;
+ var months = this._months;
+ var data = this._data;
+ var seconds, minutes, hours, years, monthsFromDays;
+
+ // if we have a mix of positive and negative values, bubble down first
+ // check: https://github.com/moment/moment/issues/2166
+ if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||
+ (milliseconds <= 0 && days <= 0 && months <= 0))) {
+ milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
+ days = 0;
+ months = 0;
+ }
+
+ // The following code bubbles up values, see the tests for
+ // examples of what that means.
+ data.milliseconds = milliseconds % 1000;
+
+ seconds = absFloor(milliseconds / 1000);
+ data.seconds = seconds % 60;
+
+ minutes = absFloor(seconds / 60);
+ data.minutes = minutes % 60;
+
+ hours = absFloor(minutes / 60);
+ data.hours = hours % 24;
+
+ days += absFloor(hours / 24);
+
+ // convert days to months
+ monthsFromDays = absFloor(daysToMonths(days));
+ months += monthsFromDays;
+ days -= absCeil(monthsToDays(monthsFromDays));
+
+ // 12 months -> 1 year
+ years = absFloor(months / 12);
+ months %= 12;
+
+ data.days = days;
+ data.months = months;
+ data.years = years;
+
+ return this;
+ }
+
+ function daysToMonths (days) {
+ // 400 years have 146097 days (taking into account leap year rules)
+ // 400 years have 12 months === 4800
+ return days * 4800 / 146097;
+ }
+
+ function monthsToDays (months) {
+ // the reverse of daysToMonths
+ return months * 146097 / 4800;
+ }
+
+ function as (units) {
+ if (!this.isValid()) {
+ return NaN;
+ }
+ var days;
+ var months;
+ var milliseconds = this._milliseconds;
+
+ units = normalizeUnits(units);
+
+ if (units === 'month' || units === 'quarter' || units === 'year') {
+ days = this._days + milliseconds / 864e5;
+ months = this._months + daysToMonths(days);
+ switch (units) {
+ case 'month': return months;
+ case 'quarter': return months / 3;
+ case 'year': return months / 12;
+ }
+ } else {
+ // handle milliseconds separately because of floating point math errors (issue #1867)
+ days = this._days + Math.round(monthsToDays(this._months));
+ switch (units) {
+ case 'week' : return days / 7 + milliseconds / 6048e5;
+ case 'day' : return days + milliseconds / 864e5;
+ case 'hour' : return days * 24 + milliseconds / 36e5;
+ case 'minute' : return days * 1440 + milliseconds / 6e4;
+ case 'second' : return days * 86400 + milliseconds / 1000;
+ // Math.floor prevents floating point math errors here
+ case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
+ default: throw new Error('Unknown unit ' + units);
+ }
+ }
+ }
+
+ // TODO: Use this.as('ms')?
+ function valueOf$1 () {
+ if (!this.isValid()) {
+ return NaN;
+ }
+ return (
+ this._milliseconds +
+ this._days * 864e5 +
+ (this._months % 12) * 2592e6 +
+ toInt(this._months / 12) * 31536e6
+ );
+ }
+
+ function makeAs (alias) {
+ return function () {
+ return this.as(alias);
+ };
+ }
+
+ var asMilliseconds = makeAs('ms');
+ var asSeconds = makeAs('s');
+ var asMinutes = makeAs('m');
+ var asHours = makeAs('h');
+ var asDays = makeAs('d');
+ var asWeeks = makeAs('w');
+ var asMonths = makeAs('M');
+ var asQuarters = makeAs('Q');
+ var asYears = makeAs('y');
+
+ function clone$1 () {
+ return createDuration(this);
+ }
+
+ function get$2 (units) {
+ units = normalizeUnits(units);
+ return this.isValid() ? this[units + 's']() : NaN;
+ }
+
+ function makeGetter(name) {
+ return function () {
+ return this.isValid() ? this._data[name] : NaN;
+ };
+ }
+
+ var milliseconds = makeGetter('milliseconds');
+ var seconds = makeGetter('seconds');
+ var minutes = makeGetter('minutes');
+ var hours = makeGetter('hours');
+ var days = makeGetter('days');
+ var months = makeGetter('months');
+ var years = makeGetter('years');
+
+ function weeks () {
+ return absFloor(this.days() / 7);
+ }
+
+ var round = Math.round;
+ var thresholds = {
+ ss: 44, // a few seconds to seconds
+ s : 45, // seconds to minute
+ m : 45, // minutes to hour
+ h : 22, // hours to day
+ d : 26, // days to month
+ M : 11 // months to year
+ };
+
+ // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
+ function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
+ return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
+ }
+
+ function relativeTime$1 (posNegDuration, withoutSuffix, locale) {
+ var duration = createDuration(posNegDuration).abs();
+ var seconds = round(duration.as('s'));
+ var minutes = round(duration.as('m'));
+ var hours = round(duration.as('h'));
+ var days = round(duration.as('d'));
+ var months = round(duration.as('M'));
+ var years = round(duration.as('y'));
+
+ var a = seconds <= thresholds.ss && ['s', seconds] ||
+ seconds < thresholds.s && ['ss', seconds] ||
+ minutes <= 1 && ['m'] ||
+ minutes < thresholds.m && ['mm', minutes] ||
+ hours <= 1 && ['h'] ||
+ hours < thresholds.h && ['hh', hours] ||
+ days <= 1 && ['d'] ||
+ days < thresholds.d && ['dd', days] ||
+ months <= 1 && ['M'] ||
+ months < thresholds.M && ['MM', months] ||
+ years <= 1 && ['y'] || ['yy', years];
+
+ a[2] = withoutSuffix;
+ a[3] = +posNegDuration > 0;
+ a[4] = locale;
+ return substituteTimeAgo.apply(null, a);
+ }
+
+ // This function allows you to set the rounding function for relative time strings
+ function getSetRelativeTimeRounding (roundingFunction) {
+ if (roundingFunction === undefined) {
+ return round;
+ }
+ if (typeof(roundingFunction) === 'function') {
+ round = roundingFunction;
+ return true;
+ }
+ return false;
+ }
+
+ // This function allows you to set a threshold for relative time strings
+ function getSetRelativeTimeThreshold (threshold, limit) {
+ if (thresholds[threshold] === undefined) {
+ return false;
+ }
+ if (limit === undefined) {
+ return thresholds[threshold];
+ }
+ thresholds[threshold] = limit;
+ if (threshold === 's') {
+ thresholds.ss = limit - 1;
+ }
+ return true;
+ }
+
+ function humanize (withSuffix) {
+ if (!this.isValid()) {
+ return this.localeData().invalidDate();
+ }
+
+ var locale = this.localeData();
+ var output = relativeTime$1(this, !withSuffix, locale);
+
+ if (withSuffix) {
+ output = locale.pastFuture(+this, output);
+ }
+
+ return locale.postformat(output);
+ }
+
+ var abs$1 = Math.abs;
+
+ function sign(x) {
+ return ((x > 0) - (x < 0)) || +x;
+ }
+
+ function toISOString$1() {
+ // for ISO strings we do not use the normal bubbling rules:
+ // * milliseconds bubble up until they become hours
+ // * days do not bubble at all
+ // * months bubble up until they become years
+ // This is because there is no context-free conversion between hours and days
+ // (think of clock changes)
+ // and also not between days and months (28-31 days per month)
+ if (!this.isValid()) {
+ return this.localeData().invalidDate();
+ }
+
+ var seconds = abs$1(this._milliseconds) / 1000;
+ var days = abs$1(this._days);
+ var months = abs$1(this._months);
+ var minutes, hours, years;
+
+ // 3600 seconds -> 60 minutes -> 1 hour
+ minutes = absFloor(seconds / 60);
+ hours = absFloor(minutes / 60);
+ seconds %= 60;
+ minutes %= 60;
+
+ // 12 months -> 1 year
+ years = absFloor(months / 12);
+ months %= 12;
+
+
+ // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
+ var Y = years;
+ var M = months;
+ var D = days;
+ var h = hours;
+ var m = minutes;
+ var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
+ var total = this.asSeconds();
+
+ if (!total) {
+ // this is the same as C#'s (Noda) and python (isodate)...
+ // but not other JS (goog.date)
+ return 'P0D';
+ }
+
+ var totalSign = total < 0 ? '-' : '';
+ var ymSign = sign(this._months) !== sign(total) ? '-' : '';
+ var daysSign = sign(this._days) !== sign(total) ? '-' : '';
+ var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
+
+ return totalSign + 'P' +
+ (Y ? ymSign + Y + 'Y' : '') +
+ (M ? ymSign + M + 'M' : '') +
+ (D ? daysSign + D + 'D' : '') +
+ ((h || m || s) ? 'T' : '') +
+ (h ? hmsSign + h + 'H' : '') +
+ (m ? hmsSign + m + 'M' : '') +
+ (s ? hmsSign + s + 'S' : '');
+ }
+
+ var proto$2 = Duration.prototype;
+
+ proto$2.isValid = isValid$1;
+ proto$2.abs = abs;
+ proto$2.add = add$1;
+ proto$2.subtract = subtract$1;
+ proto$2.as = as;
+ proto$2.asMilliseconds = asMilliseconds;
+ proto$2.asSeconds = asSeconds;
+ proto$2.asMinutes = asMinutes;
+ proto$2.asHours = asHours;
+ proto$2.asDays = asDays;
+ proto$2.asWeeks = asWeeks;
+ proto$2.asMonths = asMonths;
+ proto$2.asQuarters = asQuarters;
+ proto$2.asYears = asYears;
+ proto$2.valueOf = valueOf$1;
+ proto$2._bubble = bubble;
+ proto$2.clone = clone$1;
+ proto$2.get = get$2;
+ proto$2.milliseconds = milliseconds;
+ proto$2.seconds = seconds;
+ proto$2.minutes = minutes;
+ proto$2.hours = hours;
+ proto$2.days = days;
+ proto$2.weeks = weeks;
+ proto$2.months = months;
+ proto$2.years = years;
+ proto$2.humanize = humanize;
+ proto$2.toISOString = toISOString$1;
+ proto$2.toString = toISOString$1;
+ proto$2.toJSON = toISOString$1;
+ proto$2.locale = locale;
+ proto$2.localeData = localeData;
+
+ proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);
+ proto$2.lang = lang;
+
+ // Side effect imports
+
+ // FORMATTING
+
+ addFormatToken('X', 0, 0, 'unix');
+ addFormatToken('x', 0, 0, 'valueOf');
+
+ // PARSING
+
+ addRegexToken('x', matchSigned);
+ addRegexToken('X', matchTimestamp);
+ addParseToken('X', function (input, array, config) {
+ config._d = new Date(parseFloat(input, 10) * 1000);
+ });
+ addParseToken('x', function (input, array, config) {
+ config._d = new Date(toInt(input));
+ });
+
+ // Side effect imports
+
+
+ hooks.version = '2.24.0';
+
+ setHookCallback(createLocal);
+
+ hooks.fn = proto;
+ hooks.min = min;
+ hooks.max = max;
+ hooks.now = now;
+ hooks.utc = createUTC;
+ hooks.unix = createUnix;
+ hooks.months = listMonths;
+ hooks.isDate = isDate;
+ hooks.locale = getSetGlobalLocale;
+ hooks.invalid = createInvalid;
+ hooks.duration = createDuration;
+ hooks.isMoment = isMoment;
+ hooks.weekdays = listWeekdays;
+ hooks.parseZone = createInZone;
+ hooks.localeData = getLocale;
+ hooks.isDuration = isDuration;
+ hooks.monthsShort = listMonthsShort;
+ hooks.weekdaysMin = listWeekdaysMin;
+ hooks.defineLocale = defineLocale;
+ hooks.updateLocale = updateLocale;
+ hooks.locales = listLocales;
+ hooks.weekdaysShort = listWeekdaysShort;
+ hooks.normalizeUnits = normalizeUnits;
+ hooks.relativeTimeRounding = getSetRelativeTimeRounding;
+ hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
+ hooks.calendarFormat = getCalendarFormat;
+ hooks.prototype = proto;
+
+ // currently HTML5 input type only supports 24-hour formats
+ hooks.HTML5_FMT = {
+ DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" />
+ DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" />
+ DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" />
+ DATE: 'YYYY-MM-DD', // <input type="date" />
+ TIME: 'HH:mm', // <input type="time" />
+ TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" />
+ TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" />
+ WEEK: 'GGGG-[W]WW', // <input type="week" />
+ MONTH: 'YYYY-MM' // <input type="month" />
+ };
+
+ return hooks;
+
+})));
\ No newline at end of file
diff --git a/gz-wxparty/utils/util.js b/gz-wxparty/utils/util.js
new file mode 100644
index 0000000..ff41e3d
--- /dev/null
+++ b/gz-wxparty/utils/util.js
@@ -0,0 +1,495 @@
+const moment = require('./moment');
+const api = require('../api/api');
+
+// url
+const url = api.url;
+
+// 是否是开发环境
+const isDebug = true;
+
+const baseUrl = isDebug ? api.url.debug : api.url.web;
+
+//版本号
+const version = '1.0.0';
+
+// 当前用户省id, 默认广东19,海南23
+const province = ['19'];
+
+// request
+const request = ({
+ url,
+ type,
+ submitData,
+ service,
+ v1,
+ noToken
+}) => {
+ const app = getApp();
+
+ let token = app.globalData.token;
+ if (!token && !noToken) {
+ console.log(typeof app.globalData.access_token, 'app.globalData.access_token1111111111111')
+ if (!app.globalData.access_token) {
+ showModal({
+ title: '提示信息',
+ content: '抱歉!登录状态已失效,请重新登录',
+ confirmText: '重新登录',
+ showCancel: false,
+ success: (res) => {
+ if (res.confirm) {
+ loginOutClearData();
+ wx.navigateTo({
+ url: '../../pages/login/index',
+ });
+ }
+ },
+ });
+ return false;
+ }
+ }
+
+ let baseUrl = isDebug ? api.url.debug : api.url.web;
+
+ let visitUrl = `${baseUrl}${api.url[service] || ''}/api/${v1 ? 'v1' : 'weChat'}/${url}`;
+
+ return new Promise((resolve, reject) => {
+ wx.request({
+ url: visitUrl,
+ data: submitData,
+ method: type,
+ header: {
+ Authorization: token,
+ },
+ success: (res) => {
+ if (res.errMsg === 'request:ok') {
+ const {
+ statusCode
+ } = res;
+ if (statusCode >= 400) {
+ errorModal({
+ content: '抱歉!请求失败,稍后重试'
+ });
+ resolve({
+ type: false
+ });
+ return false;
+ }
+ const {
+ code,
+ data,
+ msg
+ } = res.data;
+ let obj = {};
+ if (code === '0' || code === 0) {
+ obj = {
+ type: true,
+ data
+ };
+ } else if (code === 401 || code === '401') {
+ if (app.globalData.access_token !== 1) {
+ errorModal({
+ title: '提示信息',
+ content: '抱歉!登录状态已失效,请重新登录',
+ confirmText: '重新登录',
+ success: () => {
+ loginOutClearData();
+ wx.navigateTo({
+ url: '../../pages/login/index'
+ });
+ },
+ });
+
+ }
+ obj = {
+ type: false
+ };
+ } else {
+ errorModal({
+ content: msg
+ });
+ obj = {
+ type: false
+ };
+ }
+ resolve(obj);
+ } else {
+ errorModal({
+ content: '抱歉!请求失败,稍后重试'
+ });
+ resolve({
+ type: false
+ });
+ }
+ },
+ fail: () => {
+ errorModal({
+ content: '抱歉!服务器出现错误,稍后重试'
+ });
+ resolve({
+ type: false
+ });
+ },
+ });
+ });
+};
+
+//
+const commonRequest = ({
+ url,
+ submitData,
+ type
+}) => {
+ return new Promise((resolve, reject) => {
+ wx.request({
+ url: url,
+ data: submitData,
+ method: type,
+ header: {
+ 'content-type': 'application/json; charset=utf-8', // 默认值
+ },
+ scriptCharset: 'utf-8',
+ success: (res) => {
+ const {
+ statusCode,
+ errMsg,
+ data
+ } = res;
+ if (statusCode >= 400) {
+ errorModal({
+ content: '抱歉!请求错误,稍后重试'
+ });
+ resolve(false);
+ return false;
+ }
+ if (errMsg === 'request:ok') {
+ resolve(data);
+ } else {
+ resolve(false);
+ }
+ },
+ fail: () => {
+ resolve(false);
+ },
+ });
+ });
+};
+
+// 消息提示框
+const showToast = ({
+ title,
+ icon = 'none',
+ mask = true,
+ duration = 2000,
+ success
+}) => {
+ return wx.showToast({
+ title: title,
+ icon: icon,
+ mask: mask,
+ duration: duration,
+ success: (res) => {
+ success && success(res);
+ },
+ });
+};
+
+//api错误modal框消息提示
+let errorNum = false; //控制报错信息不会重复弹出
+const errorModal = ({
+ title,
+ content,
+ confirmText,
+ success,
+ className
+}) => {
+ if (errorNum) {
+ return false;
+ }
+ errorNum = true;
+ return wx.showModal({
+ title: title || '错误提示',
+ content: content,
+ className: className,
+ showCancel: false,
+ confirmColor: '#d10202',
+ confirmText: confirmText || '知道了',
+ success: (res) => {
+ if (res.confirm) {
+ errorNum = false;
+ success && success(res);
+ }
+ },
+ });
+};
+
+//modal提示操作
+const showModal = ({
+ title = '温馨提示',
+ content,
+ showCancel = true,
+ cancelText = '取消',
+ confirmText = '确定',
+ success
+}) => {
+ return wx.showModal({
+ content: content,
+ showCancel: showCancel,
+ confirmColor: '#d10202',
+ title: title,
+ cancelText: cancelText,
+ confirmText: confirmText,
+ success: (res) => {
+ success && success(res);
+ },
+ });
+};
+
+//loading
+let loadingVisible = 0;
+const showLoading = (title = '加载中...', mask = true) => {
+ if (loadingVisible) {
+ loadingVisible = loadingVisible + 1;
+ return;
+ }
+ loadingVisible = 1;
+ return wx.showLoading({
+ title: title,
+ mask: mask,
+ });
+};
+
+const hideLoading = () => {
+ loadingVisible = loadingVisible - 1;
+ if (loadingVisible) return;
+ return wx.hideLoading();
+};
+
+// 时间格式化
+const timeFormat = (time, type) => {
+ let formatType = type ? type : 'YYYY-MM-DD HH:mm';
+ return time ? moment(time).format(formatType) : '';
+};
+
+// 计算消息时间距离当前时间
+const getMsgTime = (endTime, startTime = new Date()) => {
+ let end = moment(endTime),
+ start = moment(startTime),
+ minDiff = end.diff(start, 'minute');
+ if (minDiff < 60) {
+ return `${minDiff}分钟`;
+ }
+ let hoursDiff = minDiff / 60;
+ if (hoursDiff < 24) {
+ return `${hoursDiff}小时`;
+ }
+ let dayDiff = hoursDiff / 24;
+ return `${dayDiff}天`;
+};
+
+// 退出登录清除数据
+const loginOutClearData = () => {
+ const app = getApp();
+ app.globalData.token = '';
+ wx.removeStorage({
+ key: 'userInfo'
+ });
+};
+
+// 手机号码正则
+const mobileRegExp = (value) => {
+ return /^1(3[0-9]|5[0-3,5-9]|7[1-3,5-8]|8[0-9]|9[0-9])\d{8}$/g.test(value);
+};
+
+// 睡眠
+const sleep = (timeout = 500) => {
+ return new Promise((resolve) => setTimeout(resolve, timeout));
+};
+
+// 获取唯一的key
+const getBusinessId = () => {
+ let four = `${parseInt(Math.random() * 10)}${parseInt(Math.random() * 10)}${parseInt(Math.random() * 10)}${parseInt(Math.random() * 10)}`;
+ let result = `${moment().format('YYYYMMDDHHmmss')}${four}`;
+ return result;
+};
+
+// 省市区选择
+const changeLocation = (e, location, selectData) => {
+ const {
+ value,
+ index
+ } = e.detail.detail;
+ let value_id = value[index].value;
+ let faterArr = location;
+ for (let i = 0; i < index; i++) {
+ faterArr = faterArr[selectData[i].defaultIndex].children || [];
+ }
+ faterForEach: for (let i = 0; i <= faterArr.length - 1; i++) {
+ if (faterArr[i].value === value_id) {
+ selectData[index].defaultIndex = i;
+ let arr = faterArr[i];
+ for (let y = index + 1; y < value.length; y++) {
+ selectData[y].values = JSON.parse(JSON.stringify(arr.children)) || [];
+ selectData[y].defaultIndex = 0;
+ // 当children不存在时赋值
+ if (arr.children) {
+ arr = arr.children[0];
+ }
+ selectData[y].values.forEach((x) => {
+ delete x.children;
+ });
+ }
+ break faterForEach;
+ }
+ }
+ return selectData;
+};
+
+// 计算默认的省市区下标
+const getLocationIndex = (data, currentData) => {
+ let selectOption = JSON.parse(JSON.stringify(data));
+ let submitData = currentData;
+ let arr = [0, 0, 0, 0];
+ if (submitData.prov) {
+ forEach: for (let i = 0; i < selectOption.length; i++) {
+ if (selectOption[i].value === submitData.prov) {
+ arr[0] = i;
+ break forEach;
+ }
+ }
+ }
+ if (submitData.city) {
+ forEach: for (let i = 0; i < selectOption[arr[0]].children.length; i++) {
+ if (selectOption[arr[0]].children[i].value === submitData.city) {
+ arr[1] = i;
+ break forEach;
+ }
+ }
+ }
+ if (submitData.area) {
+ forEach: for (let i = 0; i < selectOption[arr[0]].children[arr[1]].children.length; i++) {
+ if (selectOption[arr[0]].children[arr[1]].children[i].value === submitData.area) {
+ arr[2] = i;
+ break forEach;
+ }
+ }
+ }
+ if (submitData.road) {
+ forEach: for (let i = 0; i < selectOption[arr[0]].children[arr[1]].children[arr[2]].children.length; i++) {
+ if (selectOption[arr[0]].children[arr[1]].children[arr[2]].children[i].value === submitData.road) {
+ arr[3] = i;
+ break forEach;
+ }
+ }
+ }
+ return arr;
+};
+
+// 判断附件打开形式
+const openFiles = (type, url, urls) => {
+ let visible = false;
+ if (type === '22_00017-3') {
+ wx.previewImage({
+ current: url,
+ urls: urls,
+ });
+ visible = true;
+ } else if (['22_00017-4', '22_00017-5', '22_00017-6', '22_00017-9'].includes(type)) {
+ showLoading();
+ wx.downloadFile({
+ url: url,
+ success: function (res) {
+ const filePath = res.tempFilePath;
+ wx.openDocument({
+ filePath: filePath,
+ complete: () => {
+ hideLoading();
+ },
+ });
+ },
+ });
+ visible = true;
+ } else {
+ showToast({
+ title: '抱歉!您所点击的附件暂不支持查看'
+ });
+ visible = false;
+ }
+ return visible;
+};
+
+// 校验登录'login' and 实名'realName' and 'all'
+const userTest = (type, direction) => {
+ const app = getApp();
+ if (!app.globalData.token && (type === 'login' || type === 'all')) {
+ showModal({
+ content: '抱歉您未登录,是否前往登录?',
+ success: (res) => {
+ if (res.confirm) {
+ wx.navigateTo({
+ url: '../../pages/login/index',
+ });
+ }
+ },
+ });
+ return false;
+ }
+ let realStatus = wx.getStorageSync('userInfo')?.realStatus;
+ if (realStatus !== '1' && (type === 'realName' || type === 'all')) {
+ if (direction !== 'bottom') {
+ showModal({
+ content: '检测到您未进行实名认证,该操作需先进行实名认证,是否前往认证?',
+ success: (res) => {
+ if (res.confirm) {
+ wx.navigateTo({
+ url: '../../pages/realNameAuthentication/index',
+ });
+ }
+ },
+ });
+ }
+ return false;
+ }
+ return true;
+};
+
+// 地址栏截取
+function getQueryString(href, name) {
+ let result = href.match(new RegExp('[?&]' + name + '=([^&]+)', 'i'));
+ if (!result || result.length < 1) {
+ return null;
+ }
+ return decodeURI(result[1]);
+}
+
+// 清除字符串中的空格,用于判断是否为空
+function verifyEmpty(value) {
+ return value?.replace(/\s+/g, '');
+}
+
+module.exports = {
+ moment,
+ url,
+ request,
+ commonRequest,
+ isDebug,
+ baseUrl,
+ version,
+ province,
+ showToast,
+ errorModal,
+ showModal,
+ showLoading,
+ hideLoading,
+ timeFormat,
+ getMsgTime,
+ loginOutClearData,
+ mobileRegExp,
+ sleep,
+ getBusinessId,
+ changeLocation,
+ getLocationIndex,
+ openFiles,
+ userTest,
+ getQueryString,
+ verifyEmpty,
+};
\ No newline at end of file
diff --git a/gz-wxparty/utils/wxs/util.wxs b/gz-wxparty/utils/wxs/util.wxs
new file mode 100644
index 0000000..867b9fd
--- /dev/null
+++ b/gz-wxparty/utils/wxs/util.wxs
@@ -0,0 +1,36 @@
+// 组合省市区街道展示
+function showLocation(value) {
+ var villageName = value.villageName ? '/' + value.villageName : '';
+ return value.provName + '/' + value.cityName + '/' + value.areaName + '/' + value.roadName + villageName;
+}
+// 判断文件类型
+function fileType(value) {
+ var obj = {
+ '22_00017-0': '未分类',
+ '22_00017-1': '音频',
+ '22_00017-2': '视频',
+ '22_00017-3': '图片',
+ '22_00017-4': 'Word文档',
+ '22_00017-5': 'Excel文档',
+ '22_00017-6': 'PDF文件',
+ '22_00017-7': 'txt文本',
+ '22_00017-8': '压缩文件',
+ '22_00017-9': 'PPT文件',
+ '22_00017-99': '其它文件',
+ };
+ return obj[value];
+}
+// 字符串转变数组
+function strArr(value) {
+ if (!value) {
+ return ['无'];
+ }
+ var arr = value.split(',');
+ return arr;
+}
+
+module.exports = {
+ showLocation: showLocation,
+ fileType: fileType,
+ strArr: strArr,
+};
--
Gitblit v1.8.0